diff src/core/nginx.c @ 24:77c7629a2627

nginx-0.0.1-2002-12-10-21:05:12 import
author Igor Sysoev <igor@sysoev.ru>
date Tue, 10 Dec 2002 18:05:12 +0000
parents 708f8bb772ec
children 53cb81681040
line wrap: on
line diff
--- a/src/core/nginx.c
+++ b/src/core/nginx.c
@@ -18,6 +18,7 @@
 /* */
 
 
+static void ngx_set_signals(ngx_log_t *log);
 static void ngx_open_listening_sockets(ngx_log_t *log);
 
 
@@ -42,6 +43,8 @@ int main(int argc, char *const *argv)
     ngx_pool = ngx_create_pool(16 * 1024, &ngx_log);
     /* */
 
+    ngx_set_signals(&ngx_log);
+
     ngx_init_sockets(&ngx_log);
 
     /* TODO: read config */
@@ -70,6 +73,20 @@ int main(int argc, char *const *argv)
     return 0;
 }
 
+static void ngx_set_signals(ngx_log_t *log)
+{
+    struct sigaction sa;
+
+    ngx_memzero(&sa, sizeof(struct sigaction));
+    sa.sa_handler = SIG_IGN;
+    sigemptyset(&sa.sa_mask);
+    if (sigaction(SIGPIPE, &sa, NULL) == -1) {
+        ngx_log_error(NGX_LOG_EMERG, log, ngx_errno,
+                      "sigaction(SIGPIPE, SIG_IGN) failed");
+        exit(1);
+    }
+}
+
 static void ngx_open_listening_sockets(ngx_log_t *log)
 {
     int           times, failed, reuseaddr, i;