comparison src/event/ngx_event_read.c @ 0:4eff17414a43

nginx-0.0.1-2002-08-06-20:39:45 import The first code that uses "ngx_" prefix, the previous one used "gx_" prefix. At that point the code is not yet usable. The first draft ideas are dated back to 23.10.2001.
author Igor Sysoev <igor@sysoev.ru>
date Tue, 06 Aug 2002 16:39:45 +0000
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:4eff17414a43
1
2 #include <ngx_config.h>
3 #include <ngx_errno.h>
4 #include <ngx_log.h>
5 #include <ngx_connection.h>
6
7 int ngx_event_recv(ngx_connection_t *c, char *buf, size_t size)
8 {
9 int n;
10 ngx_err_t err;
11 ngx_event_t *ev = c->read;
12
13 #if (HAVE_KQUEUE)
14 #if !(USE_KQUEUE)
15 if (ngx_event_type == NGX_KQUEUE_EVENT)
16 #endif
17 if (ev->eof && ev->available == 0) {
18 if (ev->error) {
19 ngx_log_error(NGX_LOG_ERR, ev->log, ev->error,
20 "ngx_event_recv: recv failed while %s",
21 ev->log->action);
22
23 return -1;
24 }
25
26 return 0;
27 }
28 #endif
29
30 n = recv(c->fd, buf, size, 0);
31
32 if (n == -1) {
33 err = ngx_socket_errno;
34
35 if (err == NGX_EAGAIN) {
36 ngx_log_error(NGX_LOG_INFO, ev->log, err,
37 "ngx_event_recv: EAGAIN while %s", ev->log->action);
38 return -2;
39 }
40
41 ngx_log_error(NGX_LOG_INFO, ev->log, err,
42 "ngx_event_recv: recv failed while %s", ev->log->action);
43
44 return -1;
45 }
46
47 #if (HAVE_KQUEUE)
48 #if !(USE_KQUEUE)
49 if (ngx_event_type == NGX_KQUEUE_EVENT)
50 #endif
51 ev->available -= n;
52 #endif
53
54 return n;
55 }