From a2126b635fb50062567f627696bd50713da07953 Mon Sep 17 00:00:00 2001 From: Mark Spencer <markster@digium.com> Date: Mon, 29 Sep 2003 20:20:04 +0000 Subject: [PATCH] Check with select before accept (bug #325) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@1580 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- asterisk.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/asterisk.c b/asterisk.c index 58fb6f3d09..ac7173f4f2 100755 --- a/asterisk.c +++ b/asterisk.c @@ -216,6 +216,7 @@ static void *netconsole(void *vconsole) static void *listener(void *unused) { struct sockaddr_un sun; + fd_set fds; int s; int len; int x; @@ -226,6 +227,13 @@ static void *listener(void *unused) for(;;) { if (ast_socket < 0) return NULL; + FD_ZERO(&fds); + FD_SET(ast_socket, &fds); + s = ast_select(ast_socket + 1, &fds, NULL, NULL, NULL); + if (s < 0) { + ast_log(LOG_WARNING, "Select retured error: %s\n", strerror(errno)); + continue; + } len = sizeof(sun); s = accept(ast_socket, (struct sockaddr *)&sun, &len); if (s < 0) { -- GitLab