Mercurial > hg > nginx-vendor-0-5
diff src/event/modules/ngx_kqueue_module.c @ 326:f70f2f565fe0 NGINX_0_5_33
nginx 0.5.33
*) Change: now by default the "echo" SSI command uses entity encoding.
*) Feature: the "encoding" parameter in the "echo" SSI command.
*) Change: mail proxy was split on three modules: pop3, imap and smtp.
*) Feature: the --without-mail_pop3_module, --without-mail_imap_module,
and --without-mail_smtp_module configuration parameters.
*) Feature: the "smtp_greeting_delay" and "smtp_client_buffer"
directives of the ngx_mail_smtp_module.
*) Feature: the "server_name" and "valid_referers" directives support
regular expressions.
*) Feature: the "server_name", "map", and "valid_referers" directives
support the "www.example.*" wildcards.
*) Bugfix: sub_filter did not work with empty substitution.
*) Bugfix: in sub_filter parsing.
*) Bugfix: a worker process may got caught in an endless loop, if the
memcached was used.
*) Bugfix: nginx supported low case only "close" and "keep-alive"
values in the "Connection" request header line; bug appeared in
0.5.32.
*) Bugfix: nginx could not start on Solaris if the shared PCRE library
located in non-standard place was used.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Wed, 07 Nov 2007 00:00:00 +0300 |
parents | 7cf404023f50 |
children |
line wrap: on
line diff
--- a/src/event/modules/ngx_kqueue_module.c +++ b/src/event/modules/ngx_kqueue_module.c @@ -11,16 +11,19 @@ typedef struct { - int changes; - int events; + ngx_uint_t changes; + ngx_uint_t events; } ngx_kqueue_conf_t; static ngx_int_t ngx_kqueue_init(ngx_cycle_t *cycle, ngx_msec_t timer); static void ngx_kqueue_done(ngx_cycle_t *cycle); -static ngx_int_t ngx_kqueue_add_event(ngx_event_t *ev, int event, u_int flags); -static ngx_int_t ngx_kqueue_del_event(ngx_event_t *ev, int event, u_int flags); -static ngx_int_t ngx_kqueue_set_event(ngx_event_t *ev, int filter, u_int flags); +static ngx_int_t ngx_kqueue_add_event(ngx_event_t *ev, ngx_int_t event, + ngx_uint_t flags); +static ngx_int_t ngx_kqueue_del_event(ngx_event_t *ev, ngx_int_t event, + ngx_uint_t flags); +static ngx_int_t ngx_kqueue_set_event(ngx_event_t *ev, ngx_int_t filter, + ngx_uint_t flags); static ngx_int_t ngx_kqueue_process_changes(ngx_cycle_t *cycle, ngx_uint_t try); static ngx_int_t ngx_kqueue_process_events(ngx_cycle_t *cycle, ngx_msec_t timer, ngx_uint_t flags); @@ -43,7 +46,7 @@ int ngx_kqueue = -1; static struct kevent *change_list, *change_list0, *change_list1; static struct kevent *event_list; -static int max_changes, nchanges, nevents; +static ngx_uint_t max_changes, nchanges, nevents; #if (NGX_THREADS) static ngx_mutex_t *list_mutex; @@ -151,7 +154,9 @@ ngx_kqueue_init(ngx_cycle_t *cycle, ngx_ ts.tv_sec = 0; ts.tv_nsec = 0; - if (kevent(ngx_kqueue, change_list, nchanges, NULL, 0, &ts) == -1) { + if (kevent(ngx_kqueue, change_list, (int) nchanges, NULL, 0, &ts) + == -1) + { ngx_log_error(NGX_LOG_ALERT, cycle->log, ngx_errno, "kevent() failed"); return NGX_ERROR; @@ -273,7 +278,7 @@ ngx_kqueue_done(ngx_cycle_t *cycle) static ngx_int_t -ngx_kqueue_add_event(ngx_event_t *ev, int event, u_int flags) +ngx_kqueue_add_event(ngx_event_t *ev, ngx_int_t event, ngx_uint_t flags) { ngx_int_t rc; #if 0 @@ -289,7 +294,7 @@ ngx_kqueue_add_event(ngx_event_t *ev, in #if 0 - if (ev->index < (u_int) nchanges + if (ev->index < nchanges && ((uintptr_t) change_list[ev->index].udata & (uintptr_t) ~1) == (uintptr_t) ev) { @@ -301,10 +306,10 @@ ngx_kqueue_add_event(ngx_event_t *ev, in */ ngx_log_debug2(NGX_LOG_DEBUG_EVENT, ev->log, 0, - "kevent activated: %d: ft:%d", + "kevent activated: %d: ft:%i", ngx_event_ident(ev->data), event); - if (ev->index < (u_int) --nchanges) { + if (ev->index < --nchanges) { e = (ngx_event_t *) ((uintptr_t) change_list[nchanges].udata & (uintptr_t) ~1); change_list[ev->index] = change_list[nchanges]; @@ -337,7 +342,7 @@ ngx_kqueue_add_event(ngx_event_t *ev, in static ngx_int_t -ngx_kqueue_del_event(ngx_event_t *ev, int event, u_int flags) +ngx_kqueue_del_event(ngx_event_t *ev, ngx_int_t event, ngx_uint_t flags) { ngx_int_t rc; ngx_event_t *e; @@ -347,19 +352,19 @@ ngx_kqueue_del_event(ngx_event_t *ev, in ngx_mutex_lock(list_mutex); - if (ev->index < (u_int) nchanges + if (ev->index < nchanges && ((uintptr_t) change_list[ev->index].udata & (uintptr_t) ~1) == (uintptr_t) ev) { ngx_log_debug2(NGX_LOG_DEBUG_EVENT, ev->log, 0, - "kevent deleted: %d: ft:%d", + "kevent deleted: %d: ft:%i", ngx_event_ident(ev->data), event); /* if the event is still not passed to a kernel we will not pass it */ nchanges--; - if (ev->index < (u_int) nchanges) { + if (ev->index < nchanges) { e = (ngx_event_t *) ((uintptr_t) change_list[nchanges].udata & (uintptr_t) ~1); change_list[ev->index] = change_list[nchanges]; @@ -396,7 +401,7 @@ ngx_kqueue_del_event(ngx_event_t *ev, in static ngx_int_t -ngx_kqueue_set_event(ngx_event_t *ev, int filter, u_int flags) +ngx_kqueue_set_event(ngx_event_t *ev, ngx_int_t filter, ngx_uint_t flags) { struct kevent *kev; struct timespec ts; @@ -405,7 +410,7 @@ ngx_kqueue_set_event(ngx_event_t *ev, in c = ev->data; ngx_log_debug3(NGX_LOG_DEBUG_EVENT, ev->log, 0, - "kevent set event: %d: ft:%d fl:%04Xd", + "kevent set event: %d: ft:%i fl:%04Xi", c->fd, filter, flags); if (nchanges >= max_changes) { @@ -415,7 +420,9 @@ ngx_kqueue_set_event(ngx_event_t *ev, in ts.tv_sec = 0; ts.tv_nsec = 0; - if (kevent(ngx_kqueue, change_list, nchanges, NULL, 0, &ts) == -1) { + if (kevent(ngx_kqueue, change_list, (int) nchanges, NULL, 0, &ts) + == -1) + { ngx_log_error(NGX_LOG_ALERT, ev->log, ngx_errno, "kevent() failed"); return NGX_ERROR; } @@ -426,8 +433,8 @@ ngx_kqueue_set_event(ngx_event_t *ev, in kev = &change_list[nchanges]; kev->ident = c->fd; - kev->filter = filter; - kev->flags = flags; + kev->filter = (short) filter; + kev->flags = (u_short) flags; kev->udata = NGX_KQUEUE_UDATA_T ((uintptr_t) ev | ev->instance); if (filter == EVFILT_VNODE) { @@ -482,7 +489,7 @@ ngx_kqueue_process_events(ngx_cycle_t *c n = 0; } else { - n = nchanges; + n = (int) nchanges; nchanges = 0; } @@ -510,7 +517,7 @@ ngx_kqueue_process_events(ngx_cycle_t *c ngx_log_debug2(NGX_LOG_DEBUG_EVENT, cycle->log, 0, "kevent timer: %M, changes: %d", timer, n); - events = kevent(ngx_kqueue, change_list, n, event_list, nevents, tp); + events = kevent(ngx_kqueue, change_list, n, event_list, (int) nevents, tp); if (events == -1) { err = ngx_errno; @@ -696,7 +703,7 @@ ngx_kqueue_process_changes(ngx_cycle_t * change_list = change_list0; } - n = nchanges; + n = (int) nchanges; nchanges = 0; ngx_mutex_unlock(list_mutex); @@ -758,8 +765,8 @@ ngx_kqueue_init_conf(ngx_cycle_t *cycle, { ngx_kqueue_conf_t *kcf = conf; - ngx_conf_init_value(kcf->changes, 512); - ngx_conf_init_value(kcf->events, 512); + ngx_conf_init_uint_value(kcf->changes, 512); + ngx_conf_init_uint_value(kcf->events, 512); return NGX_CONF_OK; }