projects
/
openvswitch
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
vswitchd: Update lacp before bonding.
[openvswitch]
/
lib
/
daemon.c
diff --git
a/lib/daemon.c
b/lib/daemon.c
index 9db6c1f8a9bd3e43901f5a6f64e1560ad90837da..2f6f08192016c03827047a14f4cc1c0e0b917e4e 100644
(file)
--- a/
lib/daemon.c
+++ b/
lib/daemon.c
@@
-223,11
+223,11
@@
make_pidfile(void)
pidfile, strerror(errno));
}
}
pidfile, strerror(errno));
}
}
- free(text);
} else {
VLOG_ERR("%s: write failed: %s", tmpfile, strerror(errno));
close(fd);
}
} else {
VLOG_ERR("%s: write failed: %s", tmpfile, strerror(errno));
close(fd);
}
+ free(text);
} else {
VLOG_ERR("%s: fcntl failed: %s", tmpfile, strerror(errno));
close(fd);
} else {
VLOG_ERR("%s: fcntl failed: %s", tmpfile, strerror(errno));
close(fd);
@@
-475,11
+475,14
@@
daemonize_start(void)
}
/* If daemonization is configured, then this function notifies the parent
}
/* If daemonization is configured, then this function notifies the parent
- * process that the child process has completed startup successfully. */
+ * process that the child process has completed startup successfully.
+ *
+ * Calling this function more than once has no additional effect. */
void
daemonize_complete(void)
{
fork_notify_startup(daemonize_fd);
void
daemonize_complete(void)
{
fork_notify_startup(daemonize_fd);
+ daemonize_fd = -1;
if (detach) {
setsid();
if (detach) {
setsid();
@@
-487,6
+490,7
@@
daemonize_complete(void)
ignore(chdir("/"));
}
close_standard_fds();
ignore(chdir("/"));
}
close_standard_fds();
+ detach = false;
}
}
}
}