Mercurial > hg > nginx
comparison src/os/unix/ngx_solaris_sendfilev_chain.c @ 5868:6bbad2e73245
Fixed counting of sent bytes in the send chain functions on EINTR.
Previously, a value of the "send" variable wasn't properly adjusted
in a rare case when syscall was interrupted by a signal. As a result,
these functions could send less data than the limit allows.
author | Valentin Bartenev <vbart@nginx.com> |
---|---|
date | Wed, 27 Aug 2014 20:51:01 +0400 |
parents | b63e829621ab |
children | de68ed551bfb |
comparison
equal
deleted
inserted
replaced
5867:26d28506282a | 5868:6bbad2e73245 |
---|---|
198 c->sent += sent; | 198 c->sent += sent; |
199 | 199 |
200 in = ngx_handle_sent_chain(in, sent); | 200 in = ngx_handle_sent_chain(in, sent); |
201 | 201 |
202 if (eintr) { | 202 if (eintr) { |
203 send = prev_send + sent; | |
203 continue; | 204 continue; |
204 } | 205 } |
205 | 206 |
206 if (send - prev_send != (off_t) sent) { | 207 if (send - prev_send != (off_t) sent) { |
207 wev->ready = 0; | 208 wev->ready = 0; |