X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=listati%2FTCP_echod_second.c;h=26f09871052943903c1cebe9246d71a6e6c2d2cf;hp=d5c8bba93c29bd192f8021ec45ca687c036582a6;hb=26f7a8bb19c6cb198c213757a97b6ac79e40db4b;hpb=efe29e351db06b5f8cc7dd8280d00eee483157a7 diff --git a/listati/TCP_echod_second.c b/listati/TCP_echod_second.c index d5c8bba..26f0987 100644 --- a/listati/TCP_echod_second.c +++ b/listati/TCP_echod_second.c @@ -1,11 +1,28 @@ int main(int argc, char *argv[]) { ... + int waiting = 0; + int compat = 0; ... + + /* Main code begin here */ + if (compat) { /* install signal handler */ + Signal(SIGCHLD, HandSigCHLD); /* non restarting handler */ + } else { + SignalRestart(SIGCHLD, HandSigCHLD); /* restarting handler */ + } + ... + + /* main body */ + if (listen(list_fd, BACKLOG) < 0 ) { + PrintErr("listen error"); + exit(1); + } if (waiting) sleep(waiting); /* handle echo to client */ while (1) { /* accept connection */ + len = sizeof(cli_add); while (((conn_fd = accept(list_fd, (struct sockaddr *)&cli_add, &len)) < 0) && (errno == EINTR)); if ( conn_fd < 0) { @@ -22,7 +39,7 @@ int main(int argc, char *argv[]) } } /* fork to handle connection */ - ... ... } + return; }