Mercurial > hg > nginx
comparison src/os/unix/ngx_writev_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 |
---|---|
132 c->sent += sent; | 132 c->sent += sent; |
133 | 133 |
134 in = ngx_handle_sent_chain(in, sent); | 134 in = ngx_handle_sent_chain(in, sent); |
135 | 135 |
136 if (eintr) { | 136 if (eintr) { |
137 send = prev_send; | |
137 continue; | 138 continue; |
138 } | 139 } |
139 | 140 |
140 if (send - prev_send != sent) { | 141 if (send - prev_send != sent) { |
141 wev->ready = 0; | 142 wev->ready = 0; |