Aggiunta figura sul caso di aborto precoce della connessione. con revisione
[gapil.git] / sources / TCP_echod.c
index 3cc5ba30804a43fa09616701a420c9999e192d43..08d926f5d462b700d0888e754472a8e8546013d2 100644 (file)
@@ -26,7 +26,7 @@
  *
  * Usage: echod -h give all info
  *
- * $Id: TCP_echod.c,v 1.3 2003/05/12 22:52:29 piccardi Exp $ 
+ * $Id: TCP_echod.c,v 1.4 2003/06/18 21:19:24 piccardi Exp $ 
  *
  ****************************************************************/
 /* 
 #include <time.h>
 #include <syslog.h>      /* syslog system functions */
 #include <signal.h>      /* signal functions */
+#include <errno.h>       /* error code */
 #include "Gapil.h"
 
 #define BACKLOG 10
 #define MAXLINE 256
-int demonize  = 1;  /* daemon use option */
-int debugging = 0;  /* debug info printing option */
+int demonize  = 1;  /* daemon use option: default is daemon */
+int debugging = 0;  /* debug info printing option: default is no debug */
 /* Subroutines declaration */
 void usage(void);
 void ServEcho(int sockfd);
@@ -57,6 +58,7 @@ int main(int argc, char *argv[])
  * Variables definition  
  */
     int list_fd, conn_fd;
+    int waiting;
     pid_t pid;
     struct sockaddr_in serv_add;
     /*
@@ -65,7 +67,7 @@ int main(int argc, char *argv[])
      */
     int i;
     opterr = 0;         /* don't want writing to stderr */
-    while ( (i = getopt(argc, argv, "hdi")) != -1) {
+    while ( (i = getopt(argc, argv, "hdiw:")) != -1) {
        switch (i) {
        /* 
         * Handling options 
@@ -81,6 +83,9 @@ int main(int argc, char *argv[])
        case 'd':
            debugging = 1;
            break;
+       case 'w':
+           waiting = strtol(optarg, NULL, 10);
+           break;
        case '?':   /* unrecognized options */
            printf("Unrecognized options -%c\n",optopt);
            usage();
@@ -133,6 +138,7 @@ int main(int argc, char *argv[])
        PrintErr("listen error");
        exit(1);
     }
+    if (waiting) sleep(waiting);
     /* handle echo to client */
     while (1) {
        /* accept connection */