refactor: TCPListenSocket, replace make protected members private, use protected methods to acces them in the subclasses
This commit is contained in:
parent
4e01e3f337
commit
0c728beb01
2 changed files with 26 additions and 12 deletions
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue