nginx-0.0.1-2003-11-14-10:20:34 import
diff --git a/src/os/unix/ngx_aio_read.c b/src/os/unix/ngx_aio_read.c index 28deac6..c5fb4a5 100644 --- a/src/os/unix/ngx_aio_read.c +++ b/src/os/unix/ngx_aio_read.c
@@ -25,12 +25,12 @@ rev = c->read; if (!rev->ready) { - ngx_log_error(NGX_LOG_ALERT, rev->log, 0, "SECOND AIO POST"); + ngx_log_error(NGX_LOG_ALERT, c->log, 0, "SECOND AIO POST"); return NGX_AGAIN; } - ngx_log_debug(rev->log, "rev->complete: %d" _ rev->complete); - ngx_log_debug(rev->log, "aio size: %d" _ size); + ngx_log_debug(c->log, "rev->complete: %d" _ rev->complete); + ngx_log_debug(c->log, "aio size: %d" _ size); if (!rev->complete) { ngx_memzero(&rev->aiocb, sizeof(struct aiocb)); @@ -52,7 +52,7 @@ return NGX_ERROR; } - ngx_log_debug(rev->log, "aio_read: #%d OK" _ c->fd); + ngx_log_debug(c->log, "aio_read: #%d OK" _ c->fd); rev->active = 1; rev->ready = 0; @@ -62,7 +62,7 @@ n = aio_error(&rev->aiocb); if (n == -1) { - ngx_log_error(NGX_LOG_ALERT, rev->log, ngx_errno, "aio_error() failed"); + ngx_log_error(NGX_LOG_ALERT, c->log, ngx_errno, "aio_error() failed"); rev->error = 1; return NGX_ERROR; } @@ -70,14 +70,14 @@ if (n != 0) { if (n == NGX_EINPROGRESS) { if (rev->ready) { - ngx_log_error(NGX_LOG_ALERT, rev->log, n, + ngx_log_error(NGX_LOG_ALERT, c->log, n, "aio_read() still in progress"); rev->ready = 0; } return NGX_AGAIN; } - ngx_log_error(NGX_LOG_CRIT, rev->log, n, "aio_read() failed"); + ngx_log_error(NGX_LOG_CRIT, c->log, n, "aio_read() failed"); rev->error = 1; rev->ready = 0; return NGX_ERROR; @@ -85,7 +85,7 @@ n = aio_return(&rev->aiocb); if (n == -1) { - ngx_log_error(NGX_LOG_ALERT, rev->log, ngx_errno, + ngx_log_error(NGX_LOG_ALERT, c->log, ngx_errno, "aio_return() failed"); rev->error = 1;
diff --git a/src/os/unix/ngx_files.h b/src/os/unix/ngx_files.h index 9990ae8..369c3ad 100644 --- a/src/os/unix/ngx_files.h +++ b/src/os/unix/ngx_files.h
@@ -45,7 +45,7 @@ off_t offset, ngx_pool_t *pool); -#define ngx_rename_file rename +#define ngx_rename_file(from, to, pool) rename(from->data, to->data) #define ngx_rename_file_n "rename"
diff --git a/src/os/unix/ngx_os.h b/src/os/unix/ngx_os.h index 33e3943..658c0a4 100644 --- a/src/os/unix/ngx_os.h +++ b/src/os/unix/ngx_os.h
@@ -35,6 +35,8 @@ int ngx_os_init(ngx_log_t *log); int ngx_daemon(ngx_log_t *log); int ngx_posix_init(ngx_log_t *log); +int ngx_posix_post_conf_init(ngx_log_t *log); + ssize_t ngx_unix_recv(ngx_connection_t *c, char *buf, size_t size); ssize_t ngx_readv_chain(ngx_connection_t *c, ngx_chain_t *entry);
diff --git a/src/os/unix/ngx_recv.c b/src/os/unix/ngx_recv.c index 1a14fd9..e759379 100644 --- a/src/os/unix/ngx_recv.c +++ b/src/os/unix/ngx_recv.c
@@ -40,6 +40,8 @@ } do { + rev->ready = 1; + n = recv(c->fd, buf, size, 0); ngx_log_debug(c->log, "recv: %d:%d" _ n _ size); @@ -78,11 +80,14 @@ } rev->ready = 0; - rev->error = 1; n = ngx_unix_recv_error(rev, ngx_socket_errno); } while (n == NGX_EINTR); + if (n == NGX_ERROR){ + rev->error = 1; + } + return n; } @@ -96,6 +101,8 @@ rev = c->read; do { + rev->ready = 1; + n = recv(c->fd, buf, size, 0); ngx_log_debug(c->log, "recv: %d:%d" _ n _ size); @@ -113,11 +120,14 @@ } rev->ready = 0; - rev->error = 1; n = ngx_unix_recv_error(rev, ngx_socket_errno); } while (n == NGX_EINTR); + if (n == NGX_ERROR){ + rev->error = 1; + } + return n; }
diff --git a/src/os/unix/ngx_unix_init.c b/src/os/unix/ngx_unix_init.c index 9574164..ab33979 100644 --- a/src/os/unix/ngx_unix_init.c +++ b/src/os/unix/ngx_unix_init.c
@@ -3,17 +3,19 @@ #include <ngx_core.h> +#if 0 /* STUB */ ssize_t ngx_unix_recv(ngx_connection_t *c, char *buf, size_t size); ngx_chain_t *ngx_writev_chain(ngx_connection_t *c, ngx_chain_t *in); int ngx_posix_init(ngx_log_t *log); int ngx_posix_post_conf_init(ngx_log_t *log); /* */ +#endif ngx_os_io_t ngx_os_io = { ngx_unix_recv, - NULL, + ngx_readv_chain, NULL, ngx_writev_chain, NGX_HAVE_ZEROCOPY
diff --git a/src/os/unix/ngx_writev_chain.c b/src/os/unix/ngx_writev_chain.c index 6ead65f..9b9e629 100644 --- a/src/os/unix/ngx_writev_chain.c +++ b/src/os/unix/ngx_writev_chain.c
@@ -24,6 +24,7 @@ iov = NULL; /* create the iovec and coalesce the neighbouring hunks */ + for (cl = in; cl; cl = cl->next) { if (prev == cl->hunk->pos) { @@ -57,7 +58,7 @@ sent = n > 0 ? n : 0; #if (NGX_DEBUG_WRITE_CHAIN) - ngx_log_debug(c->log, "writev: %qd" _ sent); + ngx_log_debug(c->log, "writev: " OFF_FMT _ sent); #endif c->sent += sent; @@ -75,12 +76,6 @@ cl->hunk->pos = cl->hunk->last; } -#if 0 - if (cl->hunk->type & NGX_HUNK_FILE) { - cl->hunk->file_pos = cl->hunk->file_last; - } -#endif - continue; } @@ -88,12 +83,6 @@ cl->hunk->pos += sent; } -#if 0 - if (cl->hunk->type & NGX_HUNK_FILE) { - cl->hunk->file_pos += sent; - } -#endif - break; }