Risistemate le trattazioni delle opzioni SO_KEEPALIVE e SO_REUSEADDR, con
[gapil.git] / sources / wwwd.c
index cb7752680ec47e59237c3e54b8c6fde06895f2fe..16838882a4fd8820eaf1317157f4adc04a6f9761 100644 (file)
@@ -74,6 +74,7 @@ int main(int argc, char *argv[])
     int list_fd, conn_fd;
     int compat = 0;
     int reroot = 0;
+    int reuse = 1;
     char * rootdir;
     pid_t pid;
     struct sockaddr_in cli_add;
@@ -85,7 +86,7 @@ int main(int argc, char *argv[])
      */
     int i;
     opterr = 0;         /* don't want writing to stderr */
-    while ( (i = getopt(argc, argv, "hdicr:")) != -1) {
+    while ( (i = getopt(argc, argv, "hwdicr:")) != -1) {
        switch (i) {
        /* 
         * Handling options 
@@ -104,6 +105,9 @@ int main(int argc, char *argv[])
        case 'd':
            debugging = 1;
            break;
+       case 'w':
+           reuse = 0;
+           break;
        case 'r':
            reroot = 1;
            rootdir = optarg;
@@ -129,7 +133,8 @@ int main(int argc, char *argv[])
        SignalRestart(SIGCHLD, HandSigCHLD);  /* restarting handler */
     }
     /* create and bind socket */
-    if ( (list_fd = sockbind2(argv[optind], "www", 6, SOCK_STREAM)) < 0) {
+    if ( (list_fd = sockbindopt(argv[optind], "www", 6, 
+                               SOCK_STREAM, reuse)) < 0) {
        return 1;
     }   
     /* chroot if requested */