nginx-0.0.10-2004-09-14-19:55:24 import
diff --git a/src/core/ngx_inet.c b/src/core/ngx_inet.c
index 910846f..94d0c72 100644
--- a/src/core/ngx_inet.c
+++ b/src/core/ngx_inet.c
@@ -210,3 +210,58 @@
 
     return NGX_OK;
 }
+
+
+#if 0
+
+ngx_int_t ngx_inet_addr_port(ngx_conf_t *cf, ngx_command_t *cmd,
+                             ngx_str_t *addr_port)
+{
+    u_char          *host;
+    ngx_int_t        port;
+    ngx_uint_t       p;
+    struct hostent  *h;
+
+    for (p = 0; p < addr_port->len; p++) {
+        if (addr_port->data[p] == ':') {
+            break;
+        }
+    }
+
+    in_addr->host.len = p;
+    if (!(in_addr->host.data = ngx_palloc(pool, p + 1))) {
+        return NGX_ERROR;
+    }
+
+    ngx_cpystrn(in_addr->host.data, addr_port->data, p + 1);
+
+    if (p == addr_port->len) {
+        p = 0;
+    }
+
+    port = ngx_atoi(&addr[p], args[1].len - p);
+    if (port == NGX_ERROR && p == 0) {
+
+        /* default port */
+        iap->port = 0;
+
+    } else if ((port == NGX_ERROR && p != 0) /* "listen host:NONNUMBER" */
+               || (port < 1 || port > 65536)) { /* "listen 99999" */
+
+        ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
+                           "invalid port \"%s\" in \"%s\" directive, "
+                           "it must be a number between 1 and 65535",
+                           &addr[p], cmd->name.data);
+
+        return NGX_CONF_ERROR;
+
+    } else if (p == 0) {
+        ls->addr = INADDR_ANY;
+        ls->port = (in_port_t) port;
+        return NGX_CONF_OK;
+    }
+
+    return NGX_OK;
+}
+
+#endif
diff --git a/src/event/modules/ngx_kqueue_module.c b/src/event/modules/ngx_kqueue_module.c
index 6116de0..a1d6f59 100644
--- a/src/event/modules/ngx_kqueue_module.c
+++ b/src/event/modules/ngx_kqueue_module.c
@@ -707,11 +707,11 @@
 
 static ngx_int_t ngx_kqueue_process_changes(ngx_cycle_t *cycle, ngx_uint_t try)
 {
-    int              n;
-    ngx_int_t        rc;
-    ngx_err_t        err;
-    struct timespec  ts;
-    struct kevent   *changes;
+    int               n;
+    ngx_int_t         rc;
+    ngx_err_t         err;
+    struct timespec   ts;
+    struct kevent    *changes;
 
     if (ngx_mutex_lock(kevent_mutex) == NGX_ERROR) {
         return NGX_ERROR;
diff --git a/src/event/ngx_event_accept.c b/src/event/ngx_event_accept.c
index 10f24a6..a02318d 100644
--- a/src/event/ngx_event_accept.c
+++ b/src/event/ngx_event_accept.c
@@ -95,12 +95,14 @@
             err = ngx_socket_errno;
 
             if (err == NGX_EAGAIN) {
+#if 0
                 if (!(ngx_event_flags & NGX_USE_RTSIG_EVENT))
                 {
                     ngx_log_error(NGX_LOG_NOTICE, log, err,
                                   "EAGAIN after %d accepted connection(s)",
                                   accepted);
                 }
+#endif
 
                 ngx_destroy_pool(pool);
                 return;
diff --git a/src/http/ngx_http_core_module.c b/src/http/ngx_http_core_module.c
index 6c4f819..f00ae65 100644
--- a/src/http/ngx_http_core_module.c
+++ b/src/http/ngx_http_core_module.c
@@ -1479,10 +1479,14 @@
     ngx_str_t          *args;
     ngx_http_listen_t  *ls;
 
-    /* TODO: check duplicate 'listen' directives,
-             add resolved name to server names ??? */
+    /*
+     * TODO: check duplicate 'listen' directives,
+     *       add resolved name to server names ???
+     */
 
-    ngx_test_null(ls, ngx_push_array(&scf->listen), NGX_CONF_ERROR);
+    if (!(ls = ngx_array_push(&scf->listen))) {
+        return NGX_CONF_ERROR;
+    }
 
     /* AF_INET only */
 
diff --git a/src/os/unix/ngx_atomic.h b/src/os/unix/ngx_atomic.h
index 18d5eda..552edd5 100644
--- a/src/os/unix/ngx_atomic.h
+++ b/src/os/unix/ngx_atomic.h
@@ -68,6 +68,57 @@
 }
 
 
+#elif ( __sparc__ )
+
+typedef volatile uint32_t  ngx_atomic_t;
+
+
+static ngx_inline uint32_t ngx_atomic_inc(ngx_atomic_t *value)
+{
+    uint32_t  old, new, res;
+
+    old = *value;
+
+    for ( ;; ) {
+
+        new = old + 1;
+        res = new;
+
+        __asm__ volatile (
+
+        "casa [%1]ASI_P, %2, %0"
+
+        : "+r" (res) : "r" (value), "r" (old));
+
+        if (res == old) {
+            return new;
+        }
+
+        old = res;
+    }
+}
+
+
+/* STUB */
+#define ngx_atomic_dec(x)   (*(x))--;
+/**/
+
+
+static ngx_inline uint32_t ngx_atomic_cmp_set(ngx_atomic_t *lock,
+                                              ngx_atomic_t old,
+                                              ngx_atomic_t set)
+{
+    uint32_t  res = (u_int32_t) set;
+
+    __asm__ volatile (
+
+    "casa [%1]ASI_P, %2, %0"
+
+    : "+r" (res) : "r" (lock), "r" (old));
+
+    return (res == old);
+}
+
 #else
 
 typedef volatile uint32_t  ngx_atomic_t;