Unix listener: chmod and change group

Fix #1955
This commit is contained in:
Alexey Sokolov
2025-06-24 09:04:29 +01:00
parent 4b12c0dc3c
commit c46bd41037
7 changed files with 237 additions and 60 deletions
+12 -4
View File
@@ -1744,13 +1744,16 @@ bool CZNC::AddTCPListener(unsigned short uPort, const CString& sBindHost,
bool CZNC::AddUnixListener(const CString& sPath, const CString& sURIPrefix,
bool bSSL, CListener::EAcceptType eAccept,
CString& sError) {
CUtils::PrintAction("Binding to path [" + sPath + "]" + (bSSL ? " with SSL" : ""));
const CString& sGroup, const CString& sMode, CString& sError) {
CUtils::PrintAction("Binding to path [" + sPath + "]" +
(bSSL ? " with SSL" : "") +
(sGroup.empty() ? CString() : " gid=" + sGroup) +
(sMode.empty() ? CString() : " mode=" + sMode));
if (!CheckSslAndPemFile(bSSL, sError)) return false;
CListener* pListener =
new CUnixListener(sPath, sURIPrefix, bSSL, eAccept);
new CUnixListener(sPath, sURIPrefix, bSSL, eAccept, sGroup, sMode);
return FinishAddingListener(pListener, sError);
}
@@ -1841,8 +1844,13 @@ bool CZNC::AddListener(CConfig* pConfig, CString& sError) {
return AddTCPListener(uPort, sBindHost, sURIPrefix, bSSL, eAddr,
eAccept, sError);
} else {
CString sGroup;
CString sMode;
pConfig->FindStringEntry("group", sGroup);
pConfig->FindStringEntry("mode", sMode);
return AddUnixListener(sPath, sURIPrefix, bSSL, eAccept, sGroup, sMode, sError);
}
return AddUnixListener(sPath, sURIPrefix, bSSL, eAccept, sError);
}
bool CZNC::AddListener(CListener* pListener) {