summaryrefslogtreecommitdiffhomepage
path: root/src/thread.c
diff options
context:
space:
mode:
authorRobert James Kaes <rjkaes@users.sourceforge.net>2001-12-28 22:29:11 +0000
committerRobert James Kaes <rjkaes@users.sourceforge.net>2001-12-28 22:29:11 +0000
commita0dee6c57f27d59b253ce496818bc12aa2de9a56 (patch)
tree2e26843a9e5bf78c18c4c1a0f7df805d2f427baa /src/thread.c
parent8cfe33fc4a2252c09ff0e901f940614d146fa145 (diff)
Check for errors returned by the accept() function.
Diffstat (limited to 'src/thread.c')
-rw-r--r--src/thread.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/thread.c b/src/thread.c
index 66f13d9..4ea1bbf 100644
--- a/src/thread.c
+++ b/src/thread.c
@@ -1,4 +1,4 @@
-/* $Id: thread.c,v 1.18 2001-11-22 00:31:10 rjkaes Exp $
+/* $Id: thread.c,v 1.19 2001-12-28 22:29:11 rjkaes Exp $
*
* Handles the creation/destruction of the various threads required for
* processing incoming connections.
@@ -131,6 +131,15 @@ thread_main(void *arg)
connfd = accept(listenfd, cliaddr, &clilen);
pthread_mutex_unlock(&mlock);
+ /*
+ * Make sure no error occurred...
+ */
+ if (connfd < 0) {
+ log_message(LOG_ERR, "Accept returned an error (%s) ... retrying.", strerror(errno));
+ continue;
+ }
+
+
ptr->status = T_CONNECTED;
SERVER_DEC();