diff options
Diffstat (limited to 'src/os')
-rw-r--r-- | src/os/unix/ngx_channel.c | 4 | ||||
-rw-r--r-- | src/os/unix/ngx_freebsd_config.h | 3 | ||||
-rw-r--r-- | src/os/unix/ngx_linux_config.h | 5 | ||||
-rw-r--r-- | src/os/unix/ngx_linux_init.c | 2 | ||||
-rw-r--r-- | src/os/unix/ngx_posix_config.h | 7 | ||||
-rw-r--r-- | src/os/unix/ngx_posix_init.c | 3 | ||||
-rw-r--r-- | src/os/unix/ngx_process.h | 6 | ||||
-rw-r--r-- | src/os/unix/ngx_process_cycle.c | 1 | ||||
-rw-r--r-- | src/os/unix/ngx_send.c | 2 | ||||
-rw-r--r-- | src/os/unix/ngx_setproctitle.c | 18 | ||||
-rw-r--r-- | src/os/unix/ngx_setproctitle.h | 45 | ||||
-rw-r--r-- | src/os/unix/ngx_solaris_config.h | 6 | ||||
-rw-r--r-- | src/os/unix/ngx_solaris_init.c | 2 | ||||
-rw-r--r-- | src/os/unix/ngx_time.c | 40 | ||||
-rw-r--r-- | src/os/unix/ngx_time.h | 2 | ||||
-rw-r--r-- | src/os/unix/ngx_user.c | 27 | ||||
-rw-r--r-- | src/os/win32/ngx_gui.c | 3 | ||||
-rw-r--r-- | src/os/win32/ngx_process_cycle.c | 21 | ||||
-rw-r--r-- | src/os/win32/ngx_time.c | 22 | ||||
-rw-r--r-- | src/os/win32/ngx_time.h | 2 | ||||
-rw-r--r-- | src/os/win32/ngx_win32_config.h | 19 |
21 files changed, 164 insertions, 76 deletions
diff --git a/src/os/unix/ngx_channel.c b/src/os/unix/ngx_channel.c index 853c5d6fd..c052b6022 100644 --- a/src/os/unix/ngx_channel.c +++ b/src/os/unix/ngx_channel.c @@ -137,7 +137,7 @@ ngx_int_t ngx_read_channel(ngx_socket_t s, ngx_channel_t *ch, size_t size, if (ch->command == NGX_CMD_OPEN_CHANNEL) { - if (cmsg.cm.cmsg_len < sizeof(cmsg)) { + if (cmsg.cm.cmsg_len < (socklen_t) sizeof(cmsg)) { ngx_log_error(NGX_LOG_ALERT, log, 0, "recvmsg() returned too small ancillary data"); return NGX_ERROR; @@ -215,7 +215,7 @@ ngx_int_t ngx_add_channel_event(ngx_cycle_t *cycle, ngx_fd_t fd, ev = (event == NGX_READ_EVENT) ? rev : wev; - ev->event_handler = handler; + ev->handler = handler; if (ngx_add_conn && (ngx_event_flags & NGX_USE_EPOLL_EVENT) == 0) { if (ngx_add_conn(c) == NGX_ERROR) { diff --git a/src/os/unix/ngx_freebsd_config.h b/src/os/unix/ngx_freebsd_config.h index a61eeed7d..8d0e983fd 100644 --- a/src/os/unix/ngx_freebsd_config.h +++ b/src/os/unix/ngx_freebsd_config.h @@ -97,9 +97,6 @@ pid_t rfork_thread(int flags, void *stack, int (*func)(void *arg), void *arg); #endif -#define ngx_setproctitle setproctitle - - extern char *malloc_options; diff --git a/src/os/unix/ngx_linux_config.h b/src/os/unix/ngx_linux_config.h index 29d8aae1b..5bad6451c 100644 --- a/src/os/unix/ngx_linux_config.h +++ b/src/os/unix/ngx_linux_config.h @@ -97,10 +97,5 @@ extern ssize_t sendfile(int s, int fd, int32_t *offset, size_t size); #define NGX_HAVE_SELECT_CHANGE_TIMEOUT 1 #endif -#ifndef NGX_SETPROCTITLE_USES_ENV -#define NGX_SETPROCTITLE_USES_ENV 1 -#define NGX_SETPROCTITLE_PAD '\0' -#endif - #endif /* _NGX_LINUX_CONFIG_H_INCLUDED_ */ diff --git a/src/os/unix/ngx_linux_init.c b/src/os/unix/ngx_linux_init.c index 7f7be890a..6cb2449fa 100644 --- a/src/os/unix/ngx_linux_init.c +++ b/src/os/unix/ngx_linux_init.c @@ -73,8 +73,6 @@ ngx_os_init(ngx_log_t *log) ngx_linux_rtsig_max = 0; } - ngx_init_setproctitle(log); - return ngx_posix_init(log); } diff --git a/src/os/unix/ngx_posix_config.h b/src/os/unix/ngx_posix_config.h index 904060e76..0862726c3 100644 --- a/src/os/unix/ngx_posix_config.h +++ b/src/os/unix/ngx_posix_config.h @@ -102,13 +102,6 @@ #endif -#if (NGX_HAVE_SETPROCTITLE) -#define ngx_setproctitle setproctitle -#else -#define ngx_setproctitle(title) -#endif - - #define NGX_POSIX_IO 1 diff --git a/src/os/unix/ngx_posix_init.c b/src/os/unix/ngx_posix_init.c index d48343b30..a66560acb 100644 --- a/src/os/unix/ngx_posix_init.c +++ b/src/os/unix/ngx_posix_init.c @@ -6,6 +6,7 @@ #include <ngx_config.h> #include <ngx_core.h> +#include <ngx_setproctitle.h> ngx_int_t ngx_ncpu; @@ -97,6 +98,8 @@ ngx_int_t ngx_posix_init(ngx_log_t *log) ngx_signal_t *sig; struct sigaction sa; + ngx_init_setproctitle(log); + ngx_pagesize = getpagesize(); if (ngx_ncpu == 0) { diff --git a/src/os/unix/ngx_process.h b/src/os/unix/ngx_process.h index 995e93ce2..b85c528d1 100644 --- a/src/os/unix/ngx_process.h +++ b/src/os/unix/ngx_process.h @@ -62,12 +62,6 @@ void ngx_debug_point(void); #endif -#if !defined(ngx_setproctitle) -ngx_int_t ngx_init_setproctitle(ngx_log_t *log); -void ngx_setproctitle(char *title); -#endif - - extern int ngx_argc; extern char **ngx_argv; extern char **ngx_os_argv; diff --git a/src/os/unix/ngx_process_cycle.c b/src/os/unix/ngx_process_cycle.c index 23589c997..ffa9dfec7 100644 --- a/src/os/unix/ngx_process_cycle.c +++ b/src/os/unix/ngx_process_cycle.c @@ -7,6 +7,7 @@ #include <ngx_config.h> #include <ngx_core.h> #include <ngx_event.h> +#include <ngx_setproctitle.h> #include <ngx_channel.h> diff --git a/src/os/unix/ngx_send.c b/src/os/unix/ngx_send.c index ecd136265..ffe6bcba2 100644 --- a/src/os/unix/ngx_send.c +++ b/src/os/unix/ngx_send.c @@ -63,7 +63,7 @@ ssize_t ngx_unix_send(ngx_connection_t *c, u_char *buf, size_t size) } else { wev->error = 1; - ngx_connection_error(c, err, "recv() failed"); + ngx_connection_error(c, err, "send() failed"); return NGX_ERROR; } } diff --git a/src/os/unix/ngx_setproctitle.c b/src/os/unix/ngx_setproctitle.c index 712c22c98..8ae643d9b 100644 --- a/src/os/unix/ngx_setproctitle.c +++ b/src/os/unix/ngx_setproctitle.c @@ -6,6 +6,7 @@ #include <ngx_config.h> #include <ngx_core.h> +#include <ngx_setproctitle.h> #if (NGX_SETPROCTITLE_USES_ENV) @@ -131,19 +132,4 @@ ngx_setproctitle(char *title) "setproctitle: \"%s\"", ngx_os_argv[0]); } - -#elif !defined(ngx_setproctitle) - -ngx_int_t -ngx_init_setproctitle(ngx_log_t *log) -{ - return NGX_OK; -} - -void -ngx_setproctitle(char *title) -{ - return; -} - -#endif +#endif /* NGX_SETPROCTITLE_USES_ENV */ diff --git a/src/os/unix/ngx_setproctitle.h b/src/os/unix/ngx_setproctitle.h new file mode 100644 index 000000000..107725a0a --- /dev/null +++ b/src/os/unix/ngx_setproctitle.h @@ -0,0 +1,45 @@ + +/* + * Copyright (C) Igor Sysoev + */ + + +#ifndef _NGX_SETPROCTITLE_H_INCLUDED_ +#define _NGX_SETPROCTITLE_H_INCLUDED_ + + +#if (NGX_HAVE_SETPROCTITLE) + +/* FreeBSD, NetBSD, OpenBSD */ + +#define ngx_init_setproctitle(log) +#define ngx_setproctitle setproctitle + + +#elif !defined NGX_SETPROCTITLE_USES_ENV + +#define NGX_SETPROCTITLE_USES_ENV 1 + +#if (NGX_SOLARIS) + +#define NGX_SETPROCTITLE_PAD ' ' + +#elif (NGX_LINUX) || (NGX_DARWIN) + +#define NGX_SETPROCTITLE_PAD '\0' + +#endif + +ngx_int_t ngx_init_setproctitle(ngx_log_t *log); +void ngx_setproctitle(char *title); + + +#else /* !NGX_SETPROCTITLE_USES_ENV */ + +#define ngx_init_setproctitle(log) +#define ngx_setproctitle(title) + +#endif + + +#endif /* _NGX_SETPROCTITLE_H_INCLUDED_ */ diff --git a/src/os/unix/ngx_solaris_config.h b/src/os/unix/ngx_solaris_config.h index 088fbd023..437e50654 100644 --- a/src/os/unix/ngx_solaris_config.h +++ b/src/os/unix/ngx_solaris_config.h @@ -83,10 +83,4 @@ #endif -#ifndef NGX_SETPROCTITLE_USES_ENV -#define NGX_SETPROCTITLE_USES_ENV 1 -#define NGX_SETPROCTITLE_PAD ' ' -#endif - - #endif /* _NGX_SOLARIS_CONFIG_H_INCLUDED_ */ diff --git a/src/os/unix/ngx_solaris_init.c b/src/os/unix/ngx_solaris_init.c index 03072edad..9080eb20c 100644 --- a/src/os/unix/ngx_solaris_init.c +++ b/src/os/unix/ngx_solaris_init.c @@ -53,8 +53,6 @@ ngx_int_t ngx_os_init(ngx_log_t *log) return NGX_ERROR; } - ngx_init_setproctitle(log); - return ngx_posix_init(log); } diff --git a/src/os/unix/ngx_time.c b/src/os/unix/ngx_time.c index 20ec4644b..72137f952 100644 --- a/src/os/unix/ngx_time.c +++ b/src/os/unix/ngx_time.c @@ -29,3 +29,43 @@ void ngx_localtime(ngx_tm_t *tm) tm->ngx_tm_mon++; tm->ngx_tm_year += 1900; } + + +void ngx_libc_localtime(struct tm *tm) +{ +#if (NGX_HAVE_LOCALTIME_R) + time_t now; + + now = ngx_time(); + localtime_r(&now, tm); + +#else + time_t now; + struct tm *t; + + now = ngx_time(); + t = localtime(&now); + *tm = *t; + +#endif +} + + +void ngx_libc_gmtime(struct tm *tm) +{ +#if (NGX_HAVE_LOCALTIME_R) + time_t now; + + now = ngx_time(); + gmtime_r(&now, tm); + +#else + time_t now; + struct tm *t; + + now = ngx_time(); + t = gmtime(&now); + *tm = *t; + +#endif +} diff --git a/src/os/unix/ngx_time.h b/src/os/unix/ngx_time.h index f257325d0..6e5a38ae2 100644 --- a/src/os/unix/ngx_time.h +++ b/src/os/unix/ngx_time.h @@ -54,6 +54,8 @@ typedef struct tm ngx_tm_t; void ngx_localtime(ngx_tm_t *tm); +void ngx_libc_localtime(struct tm *tm); +void ngx_libc_gmtime(struct tm *tm); #define ngx_gettimeofday(tp) gettimeofday(tp, NULL); #define ngx_msleep(ms) usleep(ms * 1000) diff --git a/src/os/unix/ngx_user.c b/src/os/unix/ngx_user.c index fe2f79489..22eafd20e 100644 --- a/src/os/unix/ngx_user.c +++ b/src/os/unix/ngx_user.c @@ -27,11 +27,18 @@ ngx_crypt(ngx_pool_t *pool, u_char *key, u_char *salt, u_char **encrypted) { char *value; size_t len; + ngx_err_t err; struct crypt_data cd; + ngx_set_errno(0); + + cd.initialized = 0; + value = crypt_r((char *) key, (char *) salt, &cd); - if (value) { + err = ngx_errno; + + if (err == 0) { len = ngx_strlen(value); *encrypted = ngx_palloc(pool, len); @@ -41,6 +48,8 @@ ngx_crypt(ngx_pool_t *pool, u_char *key, u_char *salt, u_char **encrypted) } } + ngx_log_error(NGX_LOG_CRIT, pool->log, err, "crypt_r() failed"); + return NGX_ERROR; } @@ -51,7 +60,7 @@ ngx_crypt(ngx_pool_t *pool, u_char *key, u_char *salt, u_char **encrypted) { char *value; size_t len; - ngx_int_t rc; + ngx_err_t err; #if (NGX_THREADS && NGX_NONREENTRANT_CRYPT) @@ -63,7 +72,7 @@ ngx_crypt(ngx_pool_t *pool, u_char *key, u_char *salt, u_char **encrypted) #endif - rc = NGX_ERROR; + ngx_set_errno(0); value = crypt((char *) key, (char *) salt); @@ -73,15 +82,23 @@ ngx_crypt(ngx_pool_t *pool, u_char *key, u_char *salt, u_char **encrypted) *encrypted = ngx_palloc(pool, len); if (*encrypted) { ngx_memcpy(*encrypted, value, len + 1); - rc = NGX_OK; } + +#if (NGX_THREADS && NGX_NONREENTRANT_CRYPT) + ngx_mutex_unlock(ngx_crypt_mutex); +#endif + return NGX_OK; } + err = ngx_errno; + #if (NGX_THREADS && NGX_NONREENTRANT_CRYPT) ngx_mutex_unlock(ngx_crypt_mutex); #endif - return rc; + ngx_log_error(NGX_LOG_CRIT, pool->log, err, "crypt() failed"); + + return NGX_ERROR; } #endif diff --git a/src/os/win32/ngx_gui.c b/src/os/win32/ngx_gui.c index 36d3c49d2..138d44a6b 100644 --- a/src/os/win32/ngx_gui.c +++ b/src/os/win32/ngx_gui.c @@ -11,7 +11,8 @@ #define NGX_MAX_TEXT 2048 -void ngx_cdecl ngx_message_box(char *title, ngx_uint_t type, ngx_err_t err, +void __cdecl +ngx_message_box(char *title, ngx_uint_t type, ngx_err_t err, const char *fmt, ...) { va_list args; diff --git a/src/os/win32/ngx_process_cycle.c b/src/os/win32/ngx_process_cycle.c index 2251ff2df..7eabefe5c 100644 --- a/src/os/win32/ngx_process_cycle.c +++ b/src/os/win32/ngx_process_cycle.c @@ -12,7 +12,7 @@ static void *ngx_worker_thread_cycle(void *data); static long __stdcall ngx_window_procedure(HWND window, u_int message, - u_int wparam, long lparam); + u_int wparam, long lparam); #if 0 ngx_pid_t ngx_new_binary; @@ -45,7 +45,8 @@ sig_atomic_t ngx_change_binary; static HMENU ngx_menu; -void ngx_master_process_cycle(ngx_cycle_t *cycle) +void +ngx_master_process_cycle(ngx_cycle_t *cycle) { ngx_log_error(NGX_LOG_EMERG, cycle->log, 0, "master mode is not supported"); @@ -53,7 +54,8 @@ void ngx_master_process_cycle(ngx_cycle_t *cycle) } -void ngx_single_process_cycle(ngx_cycle_t *cycle) +void +ngx_single_process_cycle(ngx_cycle_t *cycle) { int rc; ngx_int_t i; @@ -165,7 +167,7 @@ void ngx_single_process_cycle(ngx_cycle_t *cycle) if (ngx_system_tray_icon(window, NIM_ADD, tray, (u_char *) " nginx") - == NGX_ERROR) + != NGX_OK) { ngx_log_error(NGX_LOG_EMERG, cycle->log, ngx_errno, "Shell_NotifyIcon(NIM_ADD) failed"); @@ -200,7 +202,8 @@ void ngx_single_process_cycle(ngx_cycle_t *cycle) } -static void *ngx_worker_thread_cycle(void *data) +static void * +ngx_worker_thread_cycle(void *data) { ngx_cycle_t *cycle; @@ -216,8 +219,8 @@ static void *ngx_worker_thread_cycle(void *data) } -static long __stdcall ngx_window_procedure(HWND window, u_int message, - u_int wparam, long lparam) +static long __stdcall +ngx_window_procedure(HWND window, u_int message, u_int wparam, long lparam) { POINT mouse; @@ -251,13 +254,13 @@ static long __stdcall ngx_window_procedure(HWND window, u_int message, case WM_COMMAND: if (wparam == NGX_WM_ABOUT) { ngx_message_box("nginx", MB_OK, 0, - NGINX_VER CRLF "(C) 2002-2004 Igor Sysoev"); + NGINX_VER CRLF "(C) 2002-2005 Igor Sysoev"); return 0; } if (wparam == NGX_WM_EXIT) { if (ngx_system_tray_icon(window, NIM_DELETE, NULL, NULL) - == NGX_ERROR) + != NGX_OK) { ngx_log_error(NGX_LOG_ALERT, ngx_cycle->log, ngx_errno, "Shell_NotifyIcon(NIM_DELETE) failed"); diff --git a/src/os/win32/ngx_time.c b/src/os/win32/ngx_time.c index ca072029c..04a1af6a3 100644 --- a/src/os/win32/ngx_time.c +++ b/src/os/win32/ngx_time.c @@ -36,6 +36,28 @@ void ngx_gettimeofday(struct timeval *tp) } +void ngx_libc_localtime(struct tm *tm) +{ + time_t now; + struct tm *t; + + now = ngx_time(); + t = localtime(&now); + *tm = *t; +} + + +void ngx_libc_gmtime(struct tm *tm) +{ + time_t now; + struct tm *t; + + now = ngx_time(); + t = gmtime(&now); + *tm = *t; +} + + ngx_int_t ngx_gettimezone(void) { TIME_ZONE_INFORMATION tz; diff --git a/src/os/win32/ngx_time.h b/src/os/win32/ngx_time.h index 4cb984194..cc90c462a 100644 --- a/src/os/win32/ngx_time.h +++ b/src/os/win32/ngx_time.h @@ -42,6 +42,8 @@ typedef FILETIME ngx_mtime_t; #define NGX_HAVE_GETTIMEZONE 1 ngx_int_t ngx_gettimezone(void); +void ngx_libc_localtime(struct tm *tm); +void ngx_libc_gmtime(struct tm *tm); void ngx_gettimeofday(struct timeval *tp); diff --git a/src/os/win32/ngx_win32_config.h b/src/os/win32/ngx_win32_config.h index f49a16c96..a814acbdc 100644 --- a/src/os/win32/ngx_win32_config.h +++ b/src/os/win32/ngx_win32_config.h @@ -29,6 +29,14 @@ #include <stdlib.h> #include <stdarg.h> +#ifdef __WATCOMC__ +#define _TIME_T_DEFINED +typedef long time_t; +/* OpenWatcom defines time_t as "unsigned long" */ +#endif + +#include <time.h> /* localtime(), strftime() */ + #ifdef _MSC_VER @@ -51,11 +59,6 @@ /* FD_SET() and FD_CLR(): conditional expression is constant */ #pragma warning(disable:4127) -#if 0 -/* assignment within conditional expression */ -#pragma warning(disable:4706) -#endif - /* function 'ngx_handle_write_event' not inlined */ #pragma warning(disable:4710) @@ -81,11 +84,6 @@ /* unreferenced formal parameter */ #pragma warn -8057 -#if 0 -/* assignment within conditional expression */ -#pragma warn -8060 -#endif - #endif @@ -117,7 +115,6 @@ typedef unsigned __int64 uint64_t; typedef u_int uintptr_t; typedef int ssize_t; -typedef long time_t; typedef __int64 off_t; typedef uint32_t in_addr_t; typedef u_short in_port_t; |