From d2c5d7150253a5ae5613cac1d65e84b3aa5d33bc Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Thu, 27 Mar 2014 17:42:02 -0700 Subject: [PATCH] Finally fixed TCP sockets. --- node/SocketManager.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/node/SocketManager.cpp b/node/SocketManager.cpp index f81faf474..659f448c1 100644 --- a/node/SocketManager.cpp +++ b/node/SocketManager.cpp @@ -395,8 +395,13 @@ bool SocketManager::send(const InetAddress &to,bool tcp,const void *msg,unsigned } ts = SharedPtr(new TcpSocket(this,s,connecting,to)); - if (!ts->send(to,msg,msglen)) + if (!ts->send(to,msg,msglen)) { + _fdSetLock.lock(); + FD_CLR(s,&_readfds); + FD_CLR(s,&_writefds); + _fdSetLock.unlock(); return false; + } { Mutex::Lock _l(_tcpSockets_m); @@ -408,6 +413,8 @@ bool SocketManager::send(const InetAddress &to,bool tcp,const void *msg,unsigned if (connecting) FD_SET(s,&_writefds); _fdSetLock.unlock(); + + _updateNfds(); whack(); return true;