summaryrefslogtreecommitdiff
path: root/src/DHTAbstractMessage.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2008-10-05 13:21:14 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2008-10-05 13:21:14 +0000
commit389f770008f9d5bcc6252d2abd16047b1eca707d (patch)
treea467e2d815a764cb0a651edcefca3532017cdfc9 /src/DHTAbstractMessage.cc
parent04a2bd3818a3dd4f9843f294b1b857c7edd321fe (diff)
2008-10-05 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Made socket for dht connections non-blocking * src/DHTAbstractMessage.cc * src/DHTAbstractMessage.h * src/DHTConnection.h * src/DHTConnectionImpl.cc * src/DHTConnectionImpl.h * src/DHTMessage.h * src/DHTMessageDispatcherImpl.cc * src/DHTMessageDispatcherImpl.h * src/DHTUnknownMessage.cc * src/DHTUnknownMessage.h * src/SocketCore.cc * src/SocketCore.h * test/MockDHTMessage.h
Diffstat (limited to 'src/DHTAbstractMessage.cc')
-rw-r--r--src/DHTAbstractMessage.cc16
1 files changed, 11 insertions, 5 deletions
diff --git a/src/DHTAbstractMessage.cc b/src/DHTAbstractMessage.cc
index fe6b46b9..3a25ef63 100644
--- a/src/DHTAbstractMessage.cc
+++ b/src/DHTAbstractMessage.cc
@@ -33,6 +33,9 @@
*/
/* copyright --> */
#include "DHTAbstractMessage.h"
+
+#include <cassert>
+
#include "DHTNode.h"
#include "BencodeVisitor.h"
#include "DHTConnection.h"
@@ -64,13 +67,16 @@ std::string DHTAbstractMessage::getBencodedMessage()
return v.getBencodedData();
}
-void DHTAbstractMessage::send()
+bool DHTAbstractMessage::send()
{
std::string message = getBencodedMessage();
- _connection->sendMessage(reinterpret_cast<const unsigned char*>(message.c_str()),
- message.size(),
- _remoteNode->getIPAddress(),
- _remoteNode->getPort());
+ ssize_t r = _connection->sendMessage
+ (reinterpret_cast<const unsigned char*>(message.c_str()),
+ message.size(),
+ _remoteNode->getIPAddress(),
+ _remoteNode->getPort());
+ assert(r >= 0);
+ return r == static_cast<ssize_t>(message.size());
}
void DHTAbstractMessage::setConnection(const WeakHandle<DHTConnection>& connection)