nginx-0.0.1-2003-05-13-20:02:32 import
diff --git a/src/event/modules/ngx_kqueue_module.c b/src/event/modules/ngx_kqueue_module.c
index 0c2ce35..917fe2c 100644
--- a/src/event/modules/ngx_kqueue_module.c
+++ b/src/event/modules/ngx_kqueue_module.c
@@ -343,9 +343,7 @@
         case EVFILT_AIO:
             ev->ready = 1;
 
-            if (ev->event_handler(ev) == NGX_ERROR) {
-                ev->close_handler(ev);
-            }
+            ev->event_handler(ev);
 
             break;
 
diff --git a/src/event/modules/ngx_poll_module.c b/src/event/modules/ngx_poll_module.c
index 23bcc3f..f0f39dd 100644
--- a/src/event/modules/ngx_poll_module.c
+++ b/src/event/modules/ngx_poll_module.c
@@ -251,9 +251,7 @@
             }
         }
 
-        if (ev->event_handler(ev) == NGX_ERROR) {
-            ev->close_handler(ev);
-        }
+        ev->event_handler(ev);
     }
 
     if (ready != 0) {
diff --git a/src/event/modules/ngx_select_module.c b/src/event/modules/ngx_select_module.c
index f325a65..74c790e 100644
--- a/src/event/modules/ngx_select_module.c
+++ b/src/event/modules/ngx_select_module.c
@@ -306,8 +306,7 @@
                 ngx_select_del_event(ev, NGX_READ_EVENT, 0);
         }
 
-        if (ev->event_handler(ev) == NGX_ERROR)
-            ev->close_handler(ev);
+        ev->event_handler(ev);
     }
 
     if (ready != 0) {
diff --git a/src/event/ngx_event.c b/src/event/ngx_event.c
index 2dabf60..d3acb4f 100644
--- a/src/event/ngx_event.c
+++ b/src/event/ngx_event.c
@@ -9,7 +9,6 @@
 #include <ngx_listen.h>
 #include <ngx_connection.h>
 #include <ngx_event.h>
-#include <ngx_event_accept.h>
 
 #include <ngx_select_module.h>
 
diff --git a/src/event/ngx_event.h b/src/event/ngx_event.h
index bc8cae5..72f4ba9 100644
--- a/src/event/ngx_event.h
+++ b/src/event/ngx_event.h
@@ -28,9 +28,11 @@
 
 struct ngx_event_s {
     void            *data;
+    void           (*event_handler)(ngx_event_t *ev);
 
-    int            (*event_handler)(ngx_event_t *ev);
+#if 0
     int            (*close_handler)(ngx_event_t *ev);
+#endif
     void            *context;
     char            *action;
 
@@ -39,7 +41,9 @@
     ngx_event_t     *prev;     /* queue in mutex(), aio_read(), aio_write()  */
     ngx_event_t     *next;     /*                                            */
 
+#if 0
     int            (*timer_handler)(ngx_event_t *ev);
+#endif
     ngx_event_t     *timer_prev;
     ngx_event_t     *timer_next;
 
@@ -165,7 +169,7 @@
 #define NGX_HAVE_KQUEUE_EVENT   8
 
 /* The event filter supports low water mark - kqueue's NOTE_LOWAT.
-   Early kqueue implementations have no NOTE_LOWAT so we need a separate flag */
+   kqueue in FreeBSD 4.1-4.2 has no NOTE_LOWAT so we need a separate flag */
 #define NGX_HAVE_LOWAT_EVENT    0x00000010
 
 /* The event filter notifies only the changes (the edges)
@@ -294,6 +298,9 @@
 #endif
 
 
+void ngx_event_accept(ngx_event_t *ev);
+
+
 ssize_t ngx_event_recv_core(ngx_connection_t *c, char *buf, size_t size);
 int ngx_event_close_connection(ngx_event_t *ev);
 
diff --git a/src/event/ngx_event_accept.c b/src/event/ngx_event_accept.c
index 411f2b1..26bc2e3 100644
--- a/src/event/ngx_event_accept.c
+++ b/src/event/ngx_event_accept.c
@@ -7,14 +7,9 @@
 #include <ngx_log.h>
 #include <ngx_connection.h>
 #include <ngx_event.h>
-#include <ngx_event_close.h>
-#include <ngx_event_accept.h>
 
 
-/* This function should always return NGX_OK even there are some failures
-   because if we return NGX_ERROR then listening socket would be closed */
-
-int ngx_event_accept(ngx_event_t *ev)
+void ngx_event_accept(ngx_event_t *ev)
 {
     int                instance;
     socklen_t          len;
@@ -37,9 +32,16 @@
 #endif
 
     do {
-        ngx_test_null(pool, ngx_create_pool(ls->pool_size, ev->log), NGX_OK);
+        pool = ngx_create_pool(ls->pool_size, ev->log);
+        if (pool == NULL) {
+            return;
+        }
 
-        ngx_test_null(sa, ngx_palloc(pool, ls->socklen), NGX_OK);
+        sa = ngx_palloc(pool, ls->socklen);
+        if (sa == NULL) {
+            return;
+        }
+
         len = ls->socklen;
 
         s = accept(ls->fd, sa, &len);
@@ -50,12 +52,12 @@
             if (err == NGX_EAGAIN) {
                 ngx_log_error(NGX_LOG_NOTICE, ev->log, err,
                               "EAGAIN while accept %s", ls->addr_text.data);
-                return NGX_OK;
+                return;
             }
 
             ngx_log_error(NGX_LOG_ALERT, ev->log, err,
                           "accept %s failed", ls->addr_text.data);
-            return NGX_OK;
+            return;
         }
 
 
@@ -66,7 +68,7 @@
             if (ngx_blocking(s) == -1) {
                 ngx_log_error(NGX_LOG_ALERT, ev->log, ngx_socket_errno,
                               ngx_blocking_n " %s failed", ls->addr_text.data);
-                return NGX_OK;
+                return;
             }
         }
 #endif
@@ -78,14 +80,14 @@
             if (ngx_nonblocking(s) == -1) {
                 ngx_log_error(NGX_LOG_ALERT, ev->log, ngx_socket_errno,
                            ngx_nonblocking_n " %s failed", ls->addr_text.data);
-                return NGX_OK;
+                return;
             }
         }
 #else
         if (ngx_nonblocking(s) == -1) {
             ngx_log_error(NGX_LOG_ALERT, ev->log, ngx_socket_errno,
                           ngx_nonblocking_n " %s failed", ls->addr_text.data);
-            return NGX_OK;
+            return;
         }
 #endif
 
@@ -133,13 +135,13 @@
 
         /* STUB ? */ wev->timer = rev->timer = 10000;
 
-        wev->timer_handler = rev->timer_handler = ngx_event_close_connection;
-        wev->close_handler = rev->close_handler = ngx_event_close_connection;
-
         c->ctx = ls->ctx;
         c->servers = ls->servers;
 
-        ngx_test_null(c->log, ngx_palloc(c->pool, sizeof(ngx_log_t)), NGX_OK);
+        c->log = ngx_palloc(c->pool, sizeof(ngx_log_t));
+        if (c->log == NULL) {
+            return;
+        }
         ngx_memcpy(c->log, ev->log, sizeof(ngx_log_t));
         rev->log = wev->log = c->log;
 
@@ -159,7 +161,7 @@
 
         if (ngx_event_flags & NGX_HAVE_EDGE_EVENT) {
             if (ngx_edge_add_event(ev) == NGX_ERROR) {
-                return NGX_OK;
+                return;
             }
         }
 
@@ -183,5 +185,5 @@
 #endif
     } while (ev->available);
   
-    return NGX_OK;
+    return;
 }
diff --git a/src/event/ngx_event_accept.h b/src/event/ngx_event_accept.h
deleted file mode 100644
index 7596c6e..0000000
--- a/src/event/ngx_event_accept.h
+++ /dev/null
@@ -1,10 +0,0 @@
-#ifndef _NGX_EVENT_ACCEPT_H_INCLUDED_
-#define _NGX_EVENT_ACCEPT_H_INCLUDED_
-
-
-#include <ngx_event.h>
-
-int ngx_event_accept(ngx_event_t *ev);
-
-
-#endif /* _NGX_EVENT_ACCEPT_H_INCLUDED_ */
diff --git a/src/event/ngx_event_timer.c b/src/event/ngx_event_timer.c
index f32ce47..b5dfdf9 100644
--- a/src/event/ngx_event_timer.c
+++ b/src/event/ngx_event_timer.c
@@ -136,9 +136,7 @@
                 ev->timedout = 1;
             }
 
-            if (ev->event_handler(ev) == NGX_ERROR) {
-                ev->close_handler(ev);
-            }
+            ev->event_handler(ev);
         }
     }
 }