projects
/
citadel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Sockets: make clear we don't close a socket again.
[citadel.git]
/
citadel
/
sysdep.c
diff --git
a/citadel/sysdep.c
b/citadel/sysdep.c
index 6bdbac3e74c8402846a39331361abe962a118834..193458d5667de921c4d0ead5b8cff7967c7823a8 100644
(file)
--- a/
citadel/sysdep.c
+++ b/
citadel/sysdep.c
@@
-917,18
+917,39
@@
void close_masters (void)
if (serviceptr->tcp_port > 0)
{
if (serviceptr->tcp_port > 0)
{
- syslog(LOG_INFO, "Closing %d listener on port %d\n",
+ const char *Text;
+
+ if (serviceptr->msock == -1)
+ Text = "not closing again";
+ else
+ Text = "Closing";
+
+ syslog(LOG_INFO, "%s %d listener on port %d\n",
+ Text,
serviceptr->msock,
serviceptr->tcp_port);
serviceptr->tcp_port = 0;
}
if (serviceptr->sockpath != NULL)
serviceptr->msock,
serviceptr->tcp_port);
serviceptr->tcp_port = 0;
}
if (serviceptr->sockpath != NULL)
- syslog(LOG_INFO, "Closing %d listener on '%s'\n",
+ {
+ if (serviceptr->msock == -1)
+ Text = "not closing again";
+ else
+ Text = "Closing";
+
+ syslog(LOG_INFO, "%s %d listener on '%s'\n",
+ Text,
serviceptr->msock,
serviceptr->sockpath);
serviceptr->msock,
serviceptr->sockpath);
+ }
+
if (serviceptr->msock != -1)
if (serviceptr->msock != -1)
+ {
close(serviceptr->msock);
close(serviceptr->msock);
+ serviceptr->msock = -1;
+ }
+
/* If it's a Unix domain socket, remove the file. */
if (serviceptr->sockpath != NULL) {
unlink(serviceptr->sockpath);
/* If it's a Unix domain socket, remove the file. */
if (serviceptr->sockpath != NULL) {
unlink(serviceptr->sockpath);