Mercurial > hg > nginx-quic
comparison src/event/ngx_event_recv.c @ 59:e8cdc2989cee
nginx-0.0.1-2003-02-06-20:21:13 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Thu, 06 Feb 2003 17:21:13 +0000 |
parents | b5481d6fbbd4 |
children | 50186b49f2ad |
comparison
equal
deleted
inserted
replaced
58:6b13b1cadabe | 59:e8cdc2989cee |
---|---|
4 #include <ngx_errno.h> | 4 #include <ngx_errno.h> |
5 #include <ngx_log.h> | 5 #include <ngx_log.h> |
6 #include <ngx_recv.h> | 6 #include <ngx_recv.h> |
7 #include <ngx_connection.h> | 7 #include <ngx_connection.h> |
8 | 8 |
9 int ngx_event_recv_core(ngx_connection_t *c, char *buf, size_t size) | 9 ssize_t ngx_event_recv_core(ngx_connection_t *c, char *buf, size_t size) |
10 { | 10 { |
11 int n; | 11 int n; |
12 ngx_err_t err; | 12 ngx_err_t err; |
13 | 13 |
14 if (c->read->timedout) { | 14 if (c->read->timedout) { |
18 } | 18 } |
19 | 19 |
20 #if (HAVE_KQUEUE) | 20 #if (HAVE_KQUEUE) |
21 ngx_log_debug(c->log, "ngx_event_recv: eof:%d, avail:%d, err:%d" _ | 21 ngx_log_debug(c->log, "ngx_event_recv: eof:%d, avail:%d, err:%d" _ |
22 c->read->eof _ c->read->available _ c->read->error); | 22 c->read->eof _ c->read->available _ c->read->error); |
23 #if !(USE_KQUEUE) | |
24 if (ngx_event_type == NGX_KQUEUE_EVENT) | |
25 #endif | 23 #endif |
24 | |
25 #if (USE_KQUEUE) | |
26 | |
27 if (c->read->eof && c->read->available == 0) { | |
28 if (c->read->error) { | |
29 ngx_log_error(NGX_LOG_ERR, c->log, c->read->error, | |
30 "recv() failed"); | |
31 return NGX_ERROR; | |
32 } | |
33 | |
34 return 0; | |
35 } | |
36 | |
37 #elif (HAVE_KQUEUE) | |
38 | |
39 if (ngx_event_type == NGX_KQUEUE_EVENT) { | |
26 if (c->read->eof && c->read->available == 0) { | 40 if (c->read->eof && c->read->available == 0) { |
27 if (c->read->error) { | 41 if (c->read->error) { |
28 ngx_log_error(NGX_LOG_ERR, c->log, c->read->error, | 42 ngx_log_error(NGX_LOG_ERR, c->log, c->read->error, |
29 "recv() failed"); | 43 "recv() failed"); |
30 return NGX_ERROR; | 44 return NGX_ERROR; |
31 } | 45 } |
32 | 46 |
33 return 0; | 47 return 0; |
34 } | 48 } |
49 } | |
50 | |
35 #endif | 51 #endif |
36 | 52 |
37 n = ngx_recv(c->fd, buf, size, 0); | 53 n = ngx_recv(c->fd, buf, size, 0); |
38 | 54 |
39 if (n == -1) { | 55 if (n == -1) { |
46 | 62 |
47 ngx_log_error(NGX_LOG_ERR, c->log, err, "recv() failed"); | 63 ngx_log_error(NGX_LOG_ERR, c->log, err, "recv() failed"); |
48 return NGX_ERROR; | 64 return NGX_ERROR; |
49 } | 65 } |
50 | 66 |
51 #if (HAVE_KQUEUE) | 67 #if (USE_KQUEUE) |
52 #if !(USE_KQUEUE) | 68 |
53 if (ngx_event_type == NGX_KQUEUE_EVENT) | 69 c->read->available -= n; |
54 #endif | 70 |
71 #elif (HAVE_KQUEUE) | |
72 | |
73 if (ngx_event_type == NGX_KQUEUE_EVENT) { | |
55 c->read->available -= n; | 74 c->read->available -= n; |
75 } | |
76 | |
56 #endif | 77 #endif |
57 | 78 |
58 return n; | 79 return n; |
59 } | 80 } |