comparison src/os/unix/ngx_freebsd_sendfile_chain.c @ 195:8dee38ea9117

nginx-0.0.1-2003-11-25-23:44:56 import
author Igor Sysoev <igor@sysoev.ru>
date Tue, 25 Nov 2003 20:44:56 +0000
parents 2357fa41738a
children 0b81c7a0b133
comparison
equal deleted inserted replaced
194:2357fa41738a 195:8dee38ea9117
20 */ 20 */
21 21
22 22
23 ngx_chain_t *ngx_freebsd_sendfile_chain(ngx_connection_t *c, ngx_chain_t *in) 23 ngx_chain_t *ngx_freebsd_sendfile_chain(ngx_connection_t *c, ngx_chain_t *in)
24 { 24 {
25 int rc, eintr, eagain; 25 int rc;
26 char *prev; 26 char *prev;
27 off_t sent, fprev; 27 off_t sent, fprev;
28 size_t hsize, fsize, size; 28 size_t hsize, fsize, size;
29 ngx_int_t eintr, eagain;
29 struct iovec *iov; 30 struct iovec *iov;
30 struct sf_hdtr hdtr; 31 struct sf_hdtr hdtr;
31 ngx_err_t err; 32 ngx_err_t err;
33 ngx_hunk_t *file;
32 ngx_array_t header, trailer; 34 ngx_array_t header, trailer;
33 ngx_event_t *wev; 35 ngx_event_t *wev;
34 ngx_hunk_t *file;
35 ngx_chain_t *cl, *tail; 36 ngx_chain_t *cl, *tail;
36 37
37 wev = c->write; 38 wev = c->write;
38 39
39 if (!wev->ready) { 40 if (!wev->ready) {
51 } 52 }
52 53
53 #endif 54 #endif
54 55
55 do { 56 do {
56 cl = in;
57 file = NULL; 57 file = NULL;
58 fsize = 0; 58 fsize = 0;
59 hsize = 0; 59 hsize = 0;
60 eintr = 0; 60 eintr = 0;
61 eagain = 0; 61 eagain = 0;
154 c->tcp_nopush = 1; 154 c->tcp_nopush = 1;
155 155
156 ngx_log_debug(c->log, "NOPUSH"); 156 ngx_log_debug(c->log, "NOPUSH");
157 157
158 if (ngx_tcp_nopush(c->fd) == NGX_ERROR) { 158 if (ngx_tcp_nopush(c->fd) == NGX_ERROR) {
159 ngx_log_error(NGX_LOG_CRIT, c->log, ngx_socket_errno, 159 ngx_log_error(NGX_LOG_CRIT, c->log, ngx_errno,
160 ngx_tcp_nopush_n " failed"); 160 ngx_tcp_nopush_n " failed");
161 return NGX_CHAIN_ERROR; 161 return NGX_CHAIN_ERROR;
162 } 162 }
163 } 163 }
164 164