diff options
author | Robert James Kaes <rjkaes@users.sourceforge.net> | 2001-12-28 22:29:11 +0000 |
---|---|---|
committer | Robert James Kaes <rjkaes@users.sourceforge.net> | 2001-12-28 22:29:11 +0000 |
commit | a0dee6c57f27d59b253ce496818bc12aa2de9a56 (patch) | |
tree | 2e26843a9e5bf78c18c4c1a0f7df805d2f427baa /src/thread.c | |
parent | 8cfe33fc4a2252c09ff0e901f940614d146fa145 (diff) |
Check for errors returned by the accept() function.
Diffstat (limited to 'src/thread.c')
-rw-r--r-- | src/thread.c | 11 |
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(); |