From a87a2219de6fd68449103d46e736d5f9aac56b2b Mon Sep 17 00:00:00 2001 From: Matej Sekoranja Date: Thu, 29 Sep 2011 08:03:19 +0200 Subject: [PATCH] send to multiple addresses fixed --- pvAccessApp/remote/blockingUDPTransport.cpp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/pvAccessApp/remote/blockingUDPTransport.cpp b/pvAccessApp/remote/blockingUDPTransport.cpp index 7ecef79..b663563 100644 --- a/pvAccessApp/remote/blockingUDPTransport.cpp +++ b/pvAccessApp/remote/blockingUDPTransport.cpp @@ -327,23 +327,23 @@ namespace epics { bool BlockingUDPTransport::send(ByteBuffer* buffer) { if(!_sendAddresses) return false; + buffer->flip(); + + bool allOK = true; for(size_t i = 0; i<_sendAddresses->size(); i++) { - buffer->flip(); int retval = sendto(_channel, buffer->getArray(), buffer->getLimit(), 0, &(_sendAddresses->at(i).sa), sizeof(sockaddr)); + if(unlikely(retval<0)) { - if(unlikely(retval<0)) - { - char errStr[64]; - epicsSocketConvertErrnoToString(errStr, sizeof(errStr)); - LOG(logLevelDebug, "Socket sendto error: %s", errStr); - } - return false; + char errStr[64]; + epicsSocketConvertErrnoToString(errStr, sizeof(errStr)); + LOG(logLevelDebug, "Socket sendto error: %s", errStr); + allOK = false; } } - return true; + return allOK; } int BlockingUDPTransport::getSocketReceiveBufferSize() const {