From: Mark Whitley Date: Mon, 12 Mar 2001 19:51:09 +0000 (-0000) Subject: Applied patch from Gennady Feldman to use single-thread instead of forking. X-Git-Tag: 0_50~63 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=1a49fc5e92e2b6478f46b0e22edd6079b75dc30e;p=oweals%2Fbusybox.git Applied patch from Gennady Feldman to use single-thread instead of forking. --- diff --git a/sysklogd/syslogd.c b/sysklogd/syslogd.c index 8049fc5d1..1276201c3 100644 --- a/sysklogd/syslogd.c +++ b/sysklogd/syslogd.c @@ -362,32 +362,24 @@ static void doSyslogd (void) --n_ready; if (fd == sock_fd) { - int conn; - pid_t pid; + //printf("New Connection request.\n"); if ((conn = accept (sock_fd, (struct sockaddr *) &sunx, &addrLength)) < 0) { perror_msg_and_die ("accept error"); } - pid = fork(); - - if (pid < 0) { - perror ("syslogd: fork"); - close (conn); - continue; - } - - if (pid == 0) { - serveConnection (conn); - close (conn); - exit( TRUE); - } - close (conn); - } - } - } - } + FD_SET(conn, &fds); + //printf("conn: %i, set_size: %i\n",conn,FD_SETSIZE); + } else { + //printf("Serving connection: %i\n",fd); + serveConnection (fd); + close (fd); + FD_CLR(fd, &fds); + } /* fd == sock_fd */ + }/* FD_ISSET() */ + }/* for */ + } /* for main loop */ } #ifdef BB_FEATURE_KLOGD diff --git a/syslogd.c b/syslogd.c index 8049fc5d1..1276201c3 100644 --- a/syslogd.c +++ b/syslogd.c @@ -362,32 +362,24 @@ static void doSyslogd (void) --n_ready; if (fd == sock_fd) { - int conn; - pid_t pid; + //printf("New Connection request.\n"); if ((conn = accept (sock_fd, (struct sockaddr *) &sunx, &addrLength)) < 0) { perror_msg_and_die ("accept error"); } - pid = fork(); - - if (pid < 0) { - perror ("syslogd: fork"); - close (conn); - continue; - } - - if (pid == 0) { - serveConnection (conn); - close (conn); - exit( TRUE); - } - close (conn); - } - } - } - } + FD_SET(conn, &fds); + //printf("conn: %i, set_size: %i\n",conn,FD_SETSIZE); + } else { + //printf("Serving connection: %i\n",fd); + serveConnection (fd); + close (fd); + FD_CLR(fd, &fds); + } /* fd == sock_fd */ + }/* FD_ISSET() */ + }/* for */ + } /* for main loop */ } #ifdef BB_FEATURE_KLOGD