From 1a49fc5e92e2b6478f46b0e22edd6079b75dc30e Mon Sep 17 00:00:00 2001 From: Mark Whitley Date: Mon, 12 Mar 2001 19:51:09 +0000 Subject: [PATCH] Applied patch from Gennady Feldman to use single-thread instead of forking. --- sysklogd/syslogd.c | 32 ++++++++++++-------------------- syslogd.c | 32 ++++++++++++-------------------- 2 files changed, 24 insertions(+), 40 deletions(-) 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 -- 2.25.1