From 7ef0edec043efa3c0bb37731555d99993758bd9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Thu, 23 Apr 2015 22:09:36 +0200 Subject: [PATCH] syslog_daemon: don't delete the port on quit. * It belongs to the launch daemon. --- src/servers/syslog_daemon/SyslogDaemon.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/servers/syslog_daemon/SyslogDaemon.cpp b/src/servers/syslog_daemon/SyslogDaemon.cpp index 8bc9cba62f..bb3796086e 100644 --- a/src/servers/syslog_daemon/SyslogDaemon.cpp +++ b/src/servers/syslog_daemon/SyslogDaemon.cpp @@ -28,6 +28,9 @@ #define B_TRANSLATION_CONTEXT "SyslogDaemon" +static const int32 kQuitDaemon = 'quit'; + + SyslogDaemon::SyslogDaemon() : BApplication(B_SYSTEM_LOGGER_SIGNATURE), @@ -89,10 +92,8 @@ SyslogDaemon::AboutRequested() bool SyslogDaemon::QuitRequested() { - delete_port(fPort); - - int32 returnCode; - wait_for_thread(fDaemon, &returnCode); + write_port(fPort, kQuitDaemon, NULL, 0); + wait_for_thread(fDaemon, NULL); return true; } @@ -144,6 +145,9 @@ SyslogDaemon::_Daemon() break; } + if (code == kQuitDaemon) + return; + // if we don't get what we want, ignore it if (bytesRead < (ssize_t)sizeof(syslog_message) || code != SYSLOG_MESSAGE)