comparison src/os/unix/ngx_linux_sendfile_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
314 c->sent += sent; 314 c->sent += sent;
315 315
316 in = ngx_handle_sent_chain(in, sent); 316 in = ngx_handle_sent_chain(in, sent);
317 317
318 if (eintr) { 318 if (eintr) {
319 send = prev_send;
319 continue; 320 continue;
320 } 321 }
321 322
322 if (send - prev_send != sent) { 323 if (send - prev_send != sent) {
323 wev->ready = 0; 324 wev->ready = 0;