This repository has been archived by the owner. It is now read-only.
Permalink
Browse files

#5680 Stop deleting socket twice if it's been adopted by PacketStream

  • Loading branch information...
Jerry (Xinyu Hou)
Jerry (Xinyu Hou) committed Oct 18, 2016
1 parent a6ff907 commit dc4beba9e915440bbfc2e01f05da60348dcba605
@@ -41,14 +41,7 @@ class IListenSocket : public ISocket {
*/
virtual IDataSocket*
accept() = 0;
-
- //! Delete connection socket
- /*!
- This is used when the socket was created but not adopted by a client
- proxy.
- */
- virtual void deleteSocket(void*) = 0;
-
+
//@}
// ISocket overrides
@@ -93,14 +93,3 @@ SecureListenSocket::accept()
throw ex;
}
}
-
-void
-SecureListenSocket::deleteSocket(void* socket)
-{
- SecureSocketSet::iterator it;
- it = m_secureSocketSet.find((IDataSocket*)socket);
- if (it != m_secureSocketSet.end()) {
- delete *it;
- m_secureSocketSet.erase(it);
- }
-}
@@ -33,7 +33,6 @@ class SecureListenSocket : public TCPListenSocket{
// IListenSocket overrides
virtual IDataSocket*
accept();
- void deleteSocket(void*);
private:
typedef std::set<IDataSocket*> SecureSocketSet;
@@ -43,7 +43,6 @@ class TCPListenSocket : public IListenSocket {
// IListenSocket overrides
virtual IDataSocket*
accept();
- virtual void deleteSocket(void*) { }
protected:
void setListeningJob();
@@ -106,12 +106,6 @@ ClientListener::setServer(Server* server)
m_server = server;
}
-void
-ClientListener::deleteSocket(void* socket)
-{
- m_listen->deleteSocket(socket);
-}
-
ClientProxy*
ClientListener::getNextClient()
{
@@ -213,10 +207,6 @@ ClientListener::handleUnknownClient(const Event&, void* vclient)
}
delete unknownClient;
-
- if (m_useSecureNetwork && !handshakeOk) {
- deleteSocket(socket);
- }
}
void
@@ -48,8 +48,6 @@ class ClientListener {
//@}
- void deleteSocket(void* socket);
-
//! @name accessors
//@{
@@ -1378,10 +1378,7 @@ Server::handleClientDisconnected(const Event&, void* vclient)
removeActiveClient(client);
removeOldClient(client);
- PacketStreamFilter* streamFileter = dynamic_cast<PacketStreamFilter*>(client->getStream());
- TCPSocket* socket = dynamic_cast<TCPSocket*>(streamFileter->getStream());
delete client;
- m_clientListener->deleteSocket(socket);
}
void
@@ -1391,10 +1388,8 @@ Server::handleClientCloseTimeout(const Event&, void* vclient)
BaseClientProxy* client = static_cast<BaseClientProxy*>(vclient);
LOG((CLOG_NOTE "forced disconnection of client \"%s\"", getName(client).c_str()));
removeOldClient(client);
- PacketStreamFilter* streamFileter = dynamic_cast<PacketStreamFilter*>(client->getStream());
- TCPSocket* socket = dynamic_cast<TCPSocket*>(streamFileter->getStream());
+
delete client;
- m_clientListener->deleteSocket(socket);
}
void

0 comments on commit dc4beba

Please sign in to comment.