Fix problem with closing 0-fds
[citadel.git] / citadel / sysdep.c
index 816ed3f16d0f527627d6571c4746d7406bef580d..8f71b7ea41ec3c4a09882d727ed3454ca417f308 100644 (file)
@@ -927,16 +927,18 @@ void close_masters (void)
 
                if (serviceptr->tcp_port > 0)
                {
-                       syslog(LOG_INFO, "Closing listener on port %d\n",
-                               serviceptr->tcp_port);
+                       syslog(LOG_INFO, "Closing %d listener on port %d\n",
+                              serviceptr->msock,
+                              serviceptr->tcp_port);
                        serviceptr->tcp_port = 0;
                }
                
                if (serviceptr->sockpath != NULL)
-                       syslog(LOG_INFO, "Closing listener on '%s'\n",
-                               serviceptr->sockpath);
-
-               close(serviceptr->msock);
+                       syslog(LOG_INFO, "Closing %d listener on '%s'\n",
+                              serviceptr->msock,
+                              serviceptr->sockpath);
+                if (serviceptr->msock != -1)
+                       close(serviceptr->msock);
                /* If it's a Unix domain socket, remove the file. */
                if (serviceptr->sockpath != NULL) {
                        unlink(serviceptr->sockpath);