nginx-0.0.1-2003-11-21-09:30:49 import
diff --git a/src/event/modules/ngx_devpoll_module.c b/src/event/modules/ngx_devpoll_module.c
index c8f3684..08aff29 100644
--- a/src/event/modules/ngx_devpoll_module.c
+++ b/src/event/modules/ngx_devpoll_module.c
@@ -101,7 +101,7 @@
 
 static int ngx_devpoll_init(ngx_cycle_t *cycle)
 {
-    int                  n;
+    size_t               n;
     ngx_devpoll_conf_t  *dpcf;
 
     dpcf = ngx_event_get_conf(cycle->conf_ctx, ngx_devpoll_module);
@@ -122,7 +122,7 @@
     if (max_changes < dpcf->changes) {
         if (nchanges) {
             n = nchanges * sizeof(struct pollfd);
-            if (write(dp, change_list, n) != n) {
+            if ((size_t) write(dp, change_list, n) != n) {
                 ngx_log_error(NGX_LOG_ALERT, cycle->log, ngx_errno,
                               "write(/dev/poll) failed");
                 return NGX_ERROR;
@@ -271,7 +271,7 @@
 
 static int ngx_devpoll_set_event(ngx_event_t *ev, int event, u_int flags)
 {
-    int                n;
+    size_t             n;
     ngx_connection_t  *c;
 
     c = ev->data;
@@ -286,7 +286,7 @@
                       "/dev/pool change list is filled up");
 
         n = nchanges * sizeof(struct pollfd);
-        if (write(dp, change_list, n) != n) {
+        if ((size_t) write(dp, change_list, n) != n) {
             ngx_log_error(NGX_LOG_ALERT, ev->log, ngx_errno,
                           "write(/dev/poll) failed");
             return NGX_ERROR;
@@ -306,7 +306,7 @@
 
     if (flags & NGX_CLOSE_EVENT) {
         n = nchanges * sizeof(struct pollfd);
-        if (write(dp, change_list, n) != n) {
+        if ((size_t) write(dp, change_list, n) != n) {
             ngx_log_error(NGX_LOG_ALERT, ev->log, ngx_errno,
                           "write(/dev/poll) failed");
             return NGX_ERROR;
@@ -321,7 +321,8 @@
 
 int ngx_devpoll_process_events(ngx_log_t *log)
 {
-    int                 events, n, i, j;
+    int                 events, i, j;
+    size_t              n;
     ngx_msec_t          timer;
     ngx_err_t           err;
     ngx_cycle_t       **cycle;
@@ -337,7 +338,7 @@
         delta = tv.tv_sec * 1000 + tv.tv_usec / 1000;
 
     } else {
-        timer = INFTIM;
+        timer = (ngx_msec_t) INFTIM;
         delta = 0;
     }
 
@@ -347,7 +348,7 @@
 
     if (nchanges) {
         n = nchanges * sizeof(struct pollfd);
-        if (write(dp, change_list, n) != n) {
+        if ((size_t) write(dp, change_list, n) != n) {
             ngx_log_error(NGX_LOG_ALERT, log, ngx_errno,
                           "write(/dev/poll) failed");
             return NGX_ERROR;
diff --git a/src/event/modules/ngx_kqueue_module.c b/src/event/modules/ngx_kqueue_module.c
index 2590548..f51886e 100644
--- a/src/event/modules/ngx_kqueue_module.c
+++ b/src/event/modules/ngx_kqueue_module.c
@@ -11,8 +11,8 @@
 
 
 typedef struct {
-    u_int           changes;
-    u_int           events;
+    int  changes;
+    int  events;
 } ngx_kqueue_conf_t;
 
 
@@ -30,7 +30,7 @@
 int                    ngx_kqueue = -1;
 
 static struct kevent  *change_list, *event_list;
-static u_int           max_changes, nchanges, nevents;
+static int             max_changes, nchanges, nevents;
 
 
 static ngx_str_t      kqueue_name = ngx_string("kqueue");
@@ -196,8 +196,9 @@
     ev->oneshot = (flags & NGX_ONESHOT_EVENT) ? 1 : 0;
 
     if (nchanges > 0
-        && ev->index < nchanges
-        && (void *) ((uintptr_t) change_list[ev->index].udata & ~1) == ev)
+        && ev->index < (u_int) nchanges
+        && ((uintptr_t) change_list[ev->index].udata & (uintptr_t) ~1)
+                                                             == (uintptr_t) ev)
     {
         c = ev->data;
         ngx_log_error(NGX_LOG_ALERT, ev->log, 0,
@@ -206,7 +207,7 @@
         return NGX_ERROR;
     }
 
-    return ngx_kqueue_set_event(ev, event, EV_ADD | flags);
+    return ngx_kqueue_set_event(ev, event, EV_ADD|flags);
 }
 
 
@@ -217,8 +218,9 @@
     ev->active = 0;
 
     if (nchanges > 0
-        && ev->index < nchanges
-        && (void *) ((uintptr_t) change_list[ev->index].udata & ~1) == ev)
+        && ev->index < (u_int) nchanges
+        && ((uintptr_t) change_list[ev->index].udata & (uintptr_t) ~1)
+                                                             == (uintptr_t) ev)
     {
 #if (NGX_DEBUG_EVENT)
         ngx_connection_t *c = (ngx_connection_t *) ev->data;
@@ -228,7 +230,7 @@
 
         /* if the event is still not passed to a kernel we will not pass it */
 
-        if (ev->index < --nchanges) {
+        if (ev->index < (u_int) --nchanges) {
             e = (ngx_event_t *) change_list[nchanges].udata;
             change_list[ev->index] = change_list[nchanges];
             e->index = ev->index;
@@ -247,7 +249,8 @@
         return NGX_OK;
     }
 
-    return ngx_kqueue_set_event(ev, event, EV_DELETE);
+    return ngx_kqueue_set_event(ev, event,
+                           flags & NGX_DISABLE_EVENT ? EV_DISABLE : EV_DELETE);
 }
 
 
@@ -420,7 +423,7 @@
         case EVFILT_WRITE:
 
             instance = (uintptr_t) ev & 1;
-            ev = (void *) ((uintptr_t) ev & ~1);
+            ev = (ngx_event_t *) ((uintptr_t) ev & (uintptr_t) ~1);
 
             /*
              * it's a stale event from a file descriptor
@@ -486,8 +489,8 @@
 {
     ngx_kqueue_conf_t *kcf = conf;
 
-    ngx_conf_init_unsigned_value(kcf->changes, 512);
-    ngx_conf_init_unsigned_value(kcf->events, 512);
+    ngx_conf_init_value(kcf->changes, 512);
+    ngx_conf_init_value(kcf->events, 512);
 
     return NGX_CONF_OK;
 }
diff --git a/src/event/modules/ngx_poll_module.c b/src/event/modules/ngx_poll_module.c
index e771e92..4bd4177 100644
--- a/src/event/modules/ngx_poll_module.c
+++ b/src/event/modules/ngx_poll_module.c
@@ -17,7 +17,7 @@
 
 
 static struct pollfd  *event_list;
-static u_int           nevents;
+static int             nevents;
 
 static ngx_event_t   **event_index;
 static ngx_event_t   **ready_index;
@@ -203,7 +203,7 @@
 #endif
 
     if (e == NULL || e->index == NGX_INVALID_INDEX) {
-        if (ev->index < --nevents) {
+        if (ev->index < (u_int) --nevents) {
             event_list[ev->index] = event_list[nevents];
             event_index[ev->index] = event_index[nevents];
             event_index[ev->index]->index = ev->index;
@@ -222,8 +222,7 @@
 
 static int ngx_poll_process_events(ngx_log_t *log)
 {
-    int                 ready, found, j;
-    u_int               nready, i;
+    int                 i, j, ready, nready, found;
     ngx_msec_t          timer;
     ngx_err_t           err;
     ngx_cycle_t       **cycle;
@@ -239,7 +238,7 @@
         delta = tv.tv_sec * 1000 + tv.tv_usec / 1000;
 
     } else {
-        timer = INFTIM;
+        timer = (ngx_msec_t) INFTIM;
         delta = 0;
     }
 
@@ -252,7 +251,7 @@
     ngx_log_debug(log, "poll timer: %d" _ timer);
 #endif
 
-    ready = poll(event_list, nevents, timer);
+    ready = poll(event_list, (u_int) nevents, (int) timer);
 
     if (ready == -1) {
         err = ngx_errno;
diff --git a/src/event/modules/ngx_select_module.c b/src/event/modules/ngx_select_module.c
index 9e7a08f..52c30dd 100644
--- a/src/event/modules/ngx_select_module.c
+++ b/src/event/modules/ngx_select_module.c
@@ -30,7 +30,7 @@
 static int            max_fd;
 #endif
 
-static u_int          nevents;
+static int            nevents;
 
 static ngx_event_t  **event_index;
 static ngx_event_t  **ready_index;
@@ -233,7 +233,7 @@
 
 #endif
 
-    if (ev->index < --nevents) {
+    if (ev->index < (u_int) --nevents) {
         event_index[ev->index] = event_index[nevents];
         event_index[ev->index]->index = ev->index;
     }
@@ -247,8 +247,7 @@
 
 static int ngx_select_process_events(ngx_log_t *log)
 {
-    int                ready, found;
-    u_int              i, nready;
+    int                i, ready, nready,found;
     ngx_err_t          err;
     ngx_msec_t         timer;
     ngx_event_t       *ev;
diff --git a/src/event/ngx_event.h b/src/event/ngx_event.h
index e539d7f..48ef29b 100644
--- a/src/event/ngx_event.h
+++ b/src/event/ngx_event.h
@@ -6,7 +6,7 @@
 #include <ngx_core.h>
 
 
-#define NGX_INVALID_INDEX  0x80000000
+#define NGX_INVALID_INDEX  0xd0d0d0d0
 
 
 #if (HAVE_IOCP)
@@ -28,7 +28,7 @@
     void            *context;
     char            *action;
 
-    unsigned int     index;
+    u_int            index;
 
     /* queue in mutex(), aio_read(), aio_write()  */
     ngx_event_t     *prev;
@@ -230,8 +230,9 @@
 #define NGX_CLOSE_EVENT    1
 
 
-/* this flag has meaning only for kqueue */
+/* these flags have a meaning only for kqueue */
 #define NGX_LOWAT_EVENT    0
+#define NGX_DISABLE_EVENT  0
 
 
 #if (HAVE_KQUEUE)
@@ -256,6 +257,9 @@
 #define NGX_ONESHOT_EVENT  EV_ONESHOT
 #define NGX_CLEAR_EVENT    EV_CLEAR
 
+#undef  NGX_DISABLE_EVENT
+#define NGX_DISABLE_EVENT  EV_DISABLE
+
 
 #elif (HAVE_POLL)
 
@@ -362,7 +366,7 @@
 
 
 
-ngx_inline static int ngx_handle_read_event(ngx_event_t *rev, int flags)
+ngx_inline static int ngx_handle_read_event(ngx_event_t *rev, u_int flags)
 {
     if (ngx_event_flags & NGX_USE_CLEAR_EVENT) {
 
@@ -432,7 +436,7 @@
 }
 
 
-ngx_inline static int ngx_handle_write_event(ngx_event_t *wev, int flags)
+ngx_inline static int ngx_handle_write_event(ngx_event_t *wev, u_int flags)
 {
     if (ngx_event_flags & NGX_USE_CLEAR_EVENT) {
 
diff --git a/src/event/ngx_event_connect.c b/src/event/ngx_event_connect.c
index 1a61ef7..7884cd8 100644
--- a/src/event/ngx_event_connect.c
+++ b/src/event/ngx_event_connect.c
@@ -9,7 +9,8 @@
 
 int ngx_event_connect_peer(ngx_peer_connection_t *pc)
 {
-    int                  rc, instance, event;
+    int                  rc, instance;
+    u_int                event;
     time_t               now;
     ngx_err_t            err;
     ngx_peer_t          *peer;
diff --git a/src/event/ngx_event_pipe.c b/src/event/ngx_event_pipe.c
index dddf2cf..5696cbc 100644
--- a/src/event/ngx_event_pipe.c
+++ b/src/event/ngx_event_pipe.c
@@ -19,7 +19,7 @@
 
 int ngx_event_pipe(ngx_event_pipe_t *p, int do_write)
 {
-    int           flags;
+    u_int         flags;
     ngx_event_t  *rev, *wev;
 
     for ( ;; ) {