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 }