nginx-0.0.1-2003-11-26-18:42:18 import
diff --git a/src/event/modules/ngx_kqueue_module.c b/src/event/modules/ngx_kqueue_module.c index 1f06979..9371ece 100644 --- a/src/event/modules/ngx_kqueue_module.c +++ b/src/event/modules/ngx_kqueue_module.c
@@ -311,7 +311,12 @@ if (filter == EVFILT_VNODE) { change_list[nchanges].fflags = NOTE_DELETE|NOTE_WRITE|NOTE_EXTEND - |NOTE_ATTRIB|NOTE_RENAME|NOTE_REVOKE; + |NOTE_ATTRIB|NOTE_RENAME +#if (__FreeBSD__ == 4 && __FreeBSD_version >= 430000) \ + || __FreeBSD_version >= 500018 + |NOTE_REVOKE +#endif + ; change_list[nchanges].data = 0; } else {
diff --git a/src/os/unix/ngx_files.c b/src/os/unix/ngx_files.c index 7563009..5d0cd38 100644 --- a/src/os/unix/ngx_files.c +++ b/src/os/unix/ngx_files.c
@@ -11,7 +11,7 @@ { ssize_t n; - ngx_log_debug(file->log, "read: %d, %x, %d, %qd" _ + ngx_log_debug(file->log, "read: %d, %x, %d, " OFF_T_FMT _ file->fd _ buf _ size _ offset); #if (HAVE_PREAD)
diff --git a/src/os/unix/ngx_freebsd_config.h b/src/os/unix/ngx_freebsd_config.h index 24fb7b0..f208bf1 100644 --- a/src/os/unix/ngx_freebsd_config.h +++ b/src/os/unix/ngx_freebsd_config.h
@@ -79,4 +79,5 @@ #define HAVE_LITTLE_ENDIAN 1 + #endif /* _NGX_FREEBSD_CONFIG_H_INCLUDED_ */
diff --git a/src/os/unix/ngx_freebsd_init.c b/src/os/unix/ngx_freebsd_init.c index 3446382..c755a3e 100644 --- a/src/os/unix/ngx_freebsd_init.c +++ b/src/os/unix/ngx_freebsd_init.c
@@ -22,7 +22,7 @@ NULL, #if (HAVE_SENDFILE) ngx_freebsd_sendfile_chain, - NGX_HAVE_SENDFILE + NGX_IO_SENDFILE #else ngx_writev_chain, 0
diff --git a/src/os/unix/ngx_linux.h b/src/os/unix/ngx_linux.h index 12ccb97..0cbb677 100644 --- a/src/os/unix/ngx_linux.h +++ b/src/os/unix/ngx_linux.h
@@ -2,7 +2,7 @@ #define _NGX_LINUX_H_INCLUDED_ -ngx_chain_t *ngx_linux_sendfile_chain(ngx_connection_t *c, ngx_chain_t *in) +ngx_chain_t *ngx_linux_sendfile_chain(ngx_connection_t *c, ngx_chain_t *in); #endif /* _NGX_LINUX_H_INCLUDED_ */
diff --git a/src/os/unix/ngx_linux_config.h b/src/os/unix/ngx_linux_config.h index 761263f..59e1b09 100644 --- a/src/os/unix/ngx_linux_config.h +++ b/src/os/unix/ngx_linux_config.h
@@ -4,8 +4,10 @@ #define _GNU_SOURCE /* pread(), pwrite(), gethostname() */ +#if 0 #define _FILE_OFFSET_BITS 64 #define _LARGEFILE_SOURCE +#endif #include <unistd.h> @@ -24,8 +26,11 @@ #include <sys/ioctl.h> #include <sys/resource.h> #include <sys/sysctl.h> +#include <sys/wait.h> #include <sys/socket.h> +#include <sys/sendfile.h> #include <netinet/in.h> +#include <netinet/tcp.h> /* TCP_CORK */ #include <arpa/inet.h> #include <dirent.h> #include <netdb.h>
diff --git a/src/os/unix/ngx_linux_init.c b/src/os/unix/ngx_linux_init.c index 86b98aa..387a491 100644 --- a/src/os/unix/ngx_linux_init.c +++ b/src/os/unix/ngx_linux_init.c
@@ -11,8 +11,8 @@ ngx_unix_recv, NULL, NULL, - ngx_writev_chain, - NGX_HAVE_ZEROCOPY + ngx_linux_sendfile_chain, + NGX_IO_SENDFILE };
diff --git a/src/os/unix/ngx_linux_sendfile_chain.c b/src/os/unix/ngx_linux_sendfile_chain.c index 31bcf3d..0b8e417 100644 --- a/src/os/unix/ngx_linux_sendfile_chain.c +++ b/src/os/unix/ngx_linux_sendfile_chain.c
@@ -8,7 +8,7 @@ { int rc; char *prev; - off_t fprev; + off_t offset; size_t size, fsize, sent; ngx_int_t use_cork, eintr; struct iovec *iov; @@ -16,7 +16,7 @@ ngx_hunk_t *file; ngx_array_t header; ngx_event_t *wev; - ngx_chain_t *cl; + ngx_chain_t *cl, *tail; wev = c->write; @@ -24,8 +24,6 @@ return in; } - cork = 0; - do { file = NULL; fsize = 0; @@ -84,20 +82,20 @@ file = cl->hunk; fsize = (size_t) (file->file_last - file->file_pos); - fprev = file->file_last; + offset = file->file_last; cl = cl->next; /* coalesce the neighbouring file hunks */ while (cl && (cl->hunk->type & NGX_HUNK_FILE)) { if (file->file->fd != cl->hunk->file->fd - || fprev != cl->hunk->file_pos) + || offset != cl->hunk->file_pos) { break; } fsize += (size_t) (cl->hunk->file_last - cl->hunk->file_pos); - fprev = cl->hunk->file_last; + offset = cl->hunk->file_last; cl = cl->next; } } @@ -110,7 +108,8 @@ tail = cl; if (fsize) { - rc = sendfile(c->fd, file->file->fd, file->file_pos, fsize); + offset = file->file_pos; + rc = sendfile(c->fd, file->file->fd, &offset, fsize); if (rc == -1) { err = ngx_errno;
diff --git a/src/os/unix/ngx_os.h b/src/os/unix/ngx_os.h index 658c0a4..1cc597b 100644 --- a/src/os/unix/ngx_os.h +++ b/src/os/unix/ngx_os.h
@@ -57,4 +57,9 @@ #endif +#ifdef __linux__ +#include <ngx_linux.h> +#endif + + #endif /* _NGX_OS_H_INCLUDED_ */
diff --git a/src/os/unix/ngx_solaris_config.h b/src/os/unix/ngx_solaris_config.h index 57ef672..078d8d0 100644 --- a/src/os/unix/ngx_solaris_config.h +++ b/src/os/unix/ngx_solaris_config.h
@@ -17,8 +17,9 @@ #include <fcntl.h> #include <signal.h> #include <strings.h> - #include <sys/types.h> +#include <sys/stat.h> +#include <sys/wait.h> #include <sys/filio.h> /* FIONBIO */ #include <sys/stropts.h> /* INFTIM */ #include <sys/socket.h> @@ -26,16 +27,7 @@ #include <netinet/in.h> #include <arpa/inet.h> #include <netdb.h> - - -#if 0 -#define OFF_FMT "%lld" -#define SIZE_FMT "%d" -#define SIZEX_FMT "%x" -#define TIME_FMT "%ld" -#define PID_FMT "%ld" -#define RLIM_FMT "%lu" -#endif +#include <dirent.h> #ifndef HAVE_SELECT
diff --git a/src/os/unix/ngx_solaris_init.c b/src/os/unix/ngx_solaris_init.c index c593ed9..3b13838 100644 --- a/src/os/unix/ngx_solaris_init.c +++ b/src/os/unix/ngx_solaris_init.c
@@ -13,7 +13,7 @@ NULL, NULL, ngx_writev_chain, - NGX_HAVE_ZEROCOPY + 0 }; @@ -40,7 +40,7 @@ return NGX_ERROR; } - ngx_log_error(NGX_LOG_INFO, log, 0, "OS: %s %s" + ngx_log_error(NGX_LOG_INFO, log, 0, "OS: %s %s", ngx_solaris_sysname, ngx_solaris_release); ngx_log_error(NGX_LOG_INFO, log, 0, "version: %s",