diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2008-10-05 13:21:14 +0000 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2008-10-05 13:21:14 +0000 |
| commit | 389f770008f9d5bcc6252d2abd16047b1eca707d (patch) | |
| tree | a467e2d815a764cb0a651edcefca3532017cdfc9 /src/DHTAbstractMessage.cc | |
| parent | 04a2bd3818a3dd4f9843f294b1b857c7edd321fe (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.cc | 16 |
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) |
