summaryrefslogtreecommitdiff
path: root/cleopatre/application/managerd/src/managerd.c
diff options
context:
space:
mode:
Diffstat (limited to 'cleopatre/application/managerd/src/managerd.c')
-rw-r--r--cleopatre/application/managerd/src/managerd.c19
1 files changed, 14 insertions, 5 deletions
diff --git a/cleopatre/application/managerd/src/managerd.c b/cleopatre/application/managerd/src/managerd.c
index 4944cf21b0..31ae831f34 100644
--- a/cleopatre/application/managerd/src/managerd.c
+++ b/cleopatre/application/managerd/src/managerd.c
@@ -74,13 +74,22 @@ static int managerd_process(struct managerd_ctx *ctx)
//Select
result = select(ctx->sock_br + 3, &readfds, NULL, NULL, &timeout);
- //Select error
- if(0 > result)
+ /* Select error */
+ if (0 > result)
{
- syslog(LOG_WARNING, "select failed (%s)", strerror(errno));
- return -1;
+ /* look for interrupt */
+ if (EINTR == errno)
+ {
+ /* reset errno */
+ errno = 0;
+ /* process interrupt */
+ }
+ else
+ {
+ syslog (LOG_WARNING, "select failed (%s)", strerror (errno));
+ return -1;
+ }
}
-
else if(0 == result)
{
//No reception coming, take time to manage simple connect