refactor: TCPListenSocket, replace make protected members private, use protected methods to acces them in the subclasses

This commit is contained in:
sithlord48 2025-08-02 09:03:06 -04:00 committed by Nick Bolton
parent 4e01e3f337
commit 0c728beb01
2 changed files with 26 additions and 12 deletions

View file

@ -34,12 +34,12 @@ SecureListenSocket::SecureListenSocket(
std::unique_ptr<IDataSocket> SecureListenSocket::accept() std::unique_ptr<IDataSocket> SecureListenSocket::accept()
{ {
std::unique_ptr<SecureSocket> socket; std::unique_ptr<SecureSocket> secureSocket;
try { try {
socket = std::make_unique<SecureSocket>( secureSocket = std::make_unique<SecureSocket>(
m_events, m_socketMultiplexer, ARCH->acceptSocket(m_socket, nullptr), m_securityLevel events(), socketMultiplexer(), ARCH->acceptSocket(socket(), nullptr), m_securityLevel
); );
socket->initSsl(true); secureSocket->initSsl(true);
setListeningJob(); setListeningJob();
@ -51,20 +51,20 @@ std::unique_ptr<IDataSocket> SecureListenSocket::accept()
certificateFilename = ArgParser::argsBase().m_tlsCertFile; certificateFilename = ArgParser::argsBase().m_tlsCertFile;
} }
if (!socket->loadCertificates(certificateFilename)) { if (!secureSocket->loadCertificates(certificateFilename)) {
return nullptr; return nullptr;
} }
socket->secureAccept(); secureSocket->secureAccept();
return socket; return secureSocket;
} catch (XArchNetwork &) { } catch (XArchNetwork &) {
if (socket) { if (secureSocket) {
setListeningJob(); setListeningJob();
} }
return nullptr; return nullptr;
} catch (std::exception &ex) { } catch (std::exception &ex) {
if (socket) { if (secureSocket) {
setListeningJob(); setListeningJob();
} }
throw ex; throw ex;

View file

@ -44,10 +44,24 @@ public:
protected: protected:
void setListeningJob(); void setListeningJob();
IEventQueue *m_events; ArchSocket socket() const
ArchSocket m_socket; {
SocketMultiplexer *m_socketMultiplexer; return m_socket;
}
IEventQueue *events() const
{
return m_events;
}
SocketMultiplexer *socketMultiplexer() const
{
return m_socketMultiplexer;
}
private: private:
ArchSocket m_socket;
IEventQueue *m_events;
SocketMultiplexer *m_socketMultiplexer;
std::mutex m_mutex; std::mutex m_mutex;
}; };