diff --git a/YSFGateway/YSFGateway.cpp b/YSFGateway/YSFGateway.cpp index 2ae0bb0..57c6cae 100644 --- a/YSFGateway/YSFGateway.cpp +++ b/YSFGateway/YSFGateway.cpp @@ -133,10 +133,6 @@ int CYSFGateway::run() return -1; } - ::close(STDIN_FILENO); - ::close(STDOUT_FILENO); - ::close(STDERR_FILENO); - // If we are currently root... if (getuid() == 0) { struct passwd* user = ::getpwnam("mmdvm"); @@ -174,6 +170,14 @@ int CYSFGateway::run() return 1; } +#if !defined(_WIN32) && !defined(_WIN64) + if (m_daemon) { + ::close(STDIN_FILENO); + ::close(STDOUT_FILENO); + ::close(STDERR_FILENO); + } +#endif + m_callsign = m_conf.getCallsign(); m_suffix = m_conf.getSuffix(); diff --git a/YSFReflector/YSFReflector.cpp b/YSFReflector/YSFReflector.cpp index 51f7ea0..e49f2e8 100644 --- a/YSFReflector/YSFReflector.cpp +++ b/YSFReflector/YSFReflector.cpp @@ -117,10 +117,6 @@ void CYSFReflector::run() return; } - ::close(STDIN_FILENO); - ::close(STDOUT_FILENO); - ::close(STDERR_FILENO); - // If we are currently root... if (getuid() == 0) { struct passwd* user = ::getpwnam("mmdvm"); @@ -158,6 +154,14 @@ void CYSFReflector::run() return; } +#if !defined(_WIN32) && !defined(_WIN64) + if (m_daemon) { + ::close(STDIN_FILENO); + ::close(STDOUT_FILENO); + ::close(STDERR_FILENO); + } +#endif + CNetwork network(m_conf.getNetworkPort(), m_conf.getName(), m_conf.getDescription(), m_conf.getNetworkDebug()); ret = network.open();