Merge ../paraslash.fml/paraslash
[paraslash.git] / server.c
index c7e681264cddcd3fe7223b2492485be97869f4cc..9688c6ccf2cb4ac29723b0a8dd6f40627c16d934 100644 (file)
--- a/server.c
+++ b/server.c
@@ -302,11 +302,18 @@ random:
 
 static unsigned init_network(void)
 {
-       int sockfd = init_tcp_socket(conf.port_arg);
+       int fd, ret = init_tcp_socket(conf.port_arg);
 
-       if (sockfd < 0)
-               exit(EXIT_FAILURE);
-       return sockfd;
+       if (ret < 0)
+               goto err;
+       fd = ret;
+       ret = mark_fd_nonblock(fd);
+       if (ret < 0)
+               goto err;
+       return fd;
+err:
+       PARA_EMERG_LOG("%s\n", PARA_STRERROR(-ret));
+       exit(EXIT_FAILURE);
 }
 
 static void init_random_seed(void)