diff src/event/modules/ngx_kqueue_module.c @ 324:f7cd062ee035 NGINX_0_6_6

nginx 0.6.6 *) Feature: the --sysconfdir=PATH option in configure. *) Feature: named locations. *) Feature: the $args variable can be set with the "set" directive. *) Feature: the $is_args variable. *) Bugfix: fair big weight upstream balancer. *) Bugfix: if a client has closed connection to mail proxy then nginx might not close connection to backend. *) Bugfix: if the same host without specified port was used as backend for HTTP and HTTPS, then nginx used only one port - 80 or 443. *) Bugfix: fix building on Solaris/amd64 by Sun Studio 11 and early versions; bug appeared in 0.6.4.
author Igor Sysoev <http://sysoev.ru>
date Mon, 30 Jul 2007 00:00:00 +0400
parents 1b490fc19afa
children 3a91bfeffaba
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, c->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;
 }