Mercurial > hg > nginx
comparison src/os/unix/ngx_solaris_sendfilev_chain.c @ 4595:6cd5d4a279d6
Fixed loop in ngx_writev_chain() and ngx_solaris_sendfilev_chain().
The "complete" flag wasn't cleared on loop iteration start, resulting in
broken behaviour if there were more than IOV_MAX buffers and first
iteration was fully completed (and hence the "complete" flag was set
to 1).
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Tue, 17 Apr 2012 09:10:50 +0000 |
parents | d620f497c50f |
children | 089cc5154c1e |
comparison
equal
deleted
inserted
replaced
4594:7d0561b2e0fb | 4595:6cd5d4a279d6 |
---|---|
72 limit = NGX_MAX_SIZE_T_VALUE - ngx_pagesize; | 72 limit = NGX_MAX_SIZE_T_VALUE - ngx_pagesize; |
73 } | 73 } |
74 | 74 |
75 | 75 |
76 send = 0; | 76 send = 0; |
77 complete = 0; | |
78 | 77 |
79 vec.elts = sfvs; | 78 vec.elts = sfvs; |
80 vec.size = sizeof(sendfilevec_t); | 79 vec.size = sizeof(sendfilevec_t); |
81 vec.nalloc = NGX_SENDFILEVECS; | 80 vec.nalloc = NGX_SENDFILEVECS; |
82 vec.pool = c->pool; | 81 vec.pool = c->pool; |
85 fd = SFV_FD_SELF; | 84 fd = SFV_FD_SELF; |
86 prev = NULL; | 85 prev = NULL; |
87 fprev = 0; | 86 fprev = 0; |
88 sfv = NULL; | 87 sfv = NULL; |
89 eintr = 0; | 88 eintr = 0; |
89 complete = 0; | |
90 sent = 0; | 90 sent = 0; |
91 prev_send = send; | 91 prev_send = send; |
92 | 92 |
93 vec.nelts = 0; | 93 vec.nelts = 0; |
94 | 94 |