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

View File

@@ -97,9 +97,7 @@ class CTCPListener : public CListener {
class CUnixListener : public CListener {
public:
CUnixListener(const CString& sPath, const CString& sURIPrefix, bool bSSL,
EAcceptType eAccept)
: CListener(sURIPrefix, bSSL, eAccept),
m_sPath(sPath) {}
EAcceptType eAccept, const CString& sGid, const CString& sMode);
~CUnixListener();
CUnixListener(const CUnixListener&) = delete;
@@ -107,6 +105,8 @@ class CUnixListener : public CListener {
// Getters
const CString& GetPath() const { return m_sPath; }
const CString& GetGroup() const { return m_sGid; }
CString GetMode() const;
// !Getters
bool Listen() override;
@@ -114,6 +114,8 @@ class CUnixListener : public CListener {
protected:
CString m_sPath;
CString m_sGid;
int m_iMode;
};
class CRealListener : public CZNCSock {

View File

@@ -209,8 +209,9 @@ class CZNC : private CCoreTranslationMixin {
bool AddTCPListener(unsigned short uPort, const CString& sBindHost,
const CString& sURIPrefix, bool bSSL, EAddrType eAddr,
CListener::EAcceptType eAccept, CString& sError);
bool AddUnixListener(const CString& sPath, const CString& sURIPrefix, bool bSSL,
CListener::EAcceptType eAccept, CString& sError);
bool AddUnixListener(const CString& sPath, const CString& sURIPrefix,
bool bSSL, CListener::EAcceptType eAccept,
const CString& sGroup, const CString& sMode, CString& sError);
bool DelListener(CListener*);
// For backwards-compatibility TODO: Remove