diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2013-01-11 14:20:34 +0900 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2013-01-11 16:50:04 +0900 |
| commit | 8ba0d58ee1a9fc2249839339549293ddc183fe66 (patch) | |
| tree | 3fe0018527530e93fb01cf0ea76641193b75be5d /src/SimpleBtMessage.cc | |
| parent | 74e570de379752508d7f363dd0d1a0c4ae8b7319 (diff) | |
Vectorized write for SocketBuffer to avoid small packet
Diffstat (limited to 'src/SimpleBtMessage.cc')
| -rw-r--r-- | src/SimpleBtMessage.cc | 32 |
1 files changed, 11 insertions, 21 deletions
diff --git a/src/SimpleBtMessage.cc b/src/SimpleBtMessage.cc index 565eab29..c7aa670a 100644 --- a/src/SimpleBtMessage.cc +++ b/src/SimpleBtMessage.cc @@ -48,29 +48,19 @@ SimpleBtMessage::SimpleBtMessage(uint8_t id, const char* name) {} void SimpleBtMessage::send() { - if(isInvalidate()) { + if(isInvalidate() || !sendPredicate()) { return; } - if(!sendPredicate() && !isSendingInProgress()) { - return; - } - if(!isSendingInProgress()) { - A2_LOG_INFO(fmt(MSG_SEND_PEER_MESSAGE, - getCuid(), - getPeer()->getIPAddress().c_str(), - getPeer()->getPort(), - toString().c_str())); - unsigned char* msg = createMessage(); - size_t msgLength = getMessageLength(); - A2_LOG_DEBUG(fmt("msglength = %lu bytes", - static_cast<unsigned long>(msgLength))); - getPeerConnection()->pushBytes(msg, msgLength); - } - getPeerConnection()->sendPendingData(); - setSendingInProgress(!getPeerConnection()->sendBufferIsEmpty()); - if(!isSendingInProgress()) { - onSendComplete(); - } + A2_LOG_INFO(fmt(MSG_SEND_PEER_MESSAGE, + getCuid(), + getPeer()->getIPAddress().c_str(), + getPeer()->getPort(), + toString().c_str())); + unsigned char* msg = createMessage(); + size_t msgLength = getMessageLength(); + A2_LOG_DEBUG(fmt("msglength = %lu bytes", + static_cast<unsigned long>(msgLength))); + getPeerConnection()->pushBytes(msg, msgLength, getProgressUpdate()); } } // namespace aria2 |
