diff options
author | bala <balanatarajan@users.noreply.github.com> | 2001-05-17 17:12:01 +0000 |
---|---|---|
committer | bala <balanatarajan@users.noreply.github.com> | 2001-05-17 17:12:01 +0000 |
commit | e94156f6c78ac9ed92cb25f9852edb36a780cbe3 (patch) | |
tree | f85e0aaee6745bb19055130812b9f9234ab0ef40 /TAO/tao/Strategies | |
parent | df534b3fa800174c12ce12a996a152533b5d8ba8 (diff) | |
download | ATCD-e94156f6c78ac9ed92cb25f9852edb36a780cbe3.tar.gz |
ChangeLogTag: Thu May 17 12:10:26 2001 Balachandran Natarajan <bala@cs.wustl.edu>
Diffstat (limited to 'TAO/tao/Strategies')
-rw-r--r-- | TAO/tao/Strategies/GIOP_Message_NonReactive_Base.cpp | 9 | ||||
-rw-r--r-- | TAO/tao/Strategies/GIOP_Message_NonReactive_Handler.cpp | 22 |
2 files changed, 18 insertions, 13 deletions
diff --git a/TAO/tao/Strategies/GIOP_Message_NonReactive_Base.cpp b/TAO/tao/Strategies/GIOP_Message_NonReactive_Base.cpp index b1167496e9a..f69ec58ab89 100644 --- a/TAO/tao/Strategies/GIOP_Message_NonReactive_Base.cpp +++ b/TAO/tao/Strategies/GIOP_Message_NonReactive_Base.cpp @@ -30,8 +30,8 @@ TAO_GIOP_Message_NonReactive_Base::read_message (TAO_Transport *transport, // Error in the message that was received - if (retval == -1) - return -1; + if (retval <= 0) + return retval; // Get the message state TAO_GIOP_Message_State &state = @@ -46,14 +46,13 @@ TAO_GIOP_Message_NonReactive_Base::read_message (TAO_Transport *transport, TAO_InputCDR &cdr = this->message_handler_.input_cdr (); - char *buf = cdr.rd_ptr (); + char *base = cdr.start ()->base (); - buf -= TAO_GIOP_MESSAGE_HEADER_LEN; size_t len = cdr.length () + TAO_GIOP_MESSAGE_HEADER_LEN; this->dump_msg ("Recv", ACE_reinterpret_cast (u_char *, - buf), + base), len); } diff --git a/TAO/tao/Strategies/GIOP_Message_NonReactive_Handler.cpp b/TAO/tao/Strategies/GIOP_Message_NonReactive_Handler.cpp index 7f3b35b9f62..5650aba7414 100644 --- a/TAO/tao/Strategies/GIOP_Message_NonReactive_Handler.cpp +++ b/TAO/tao/Strategies/GIOP_Message_NonReactive_Handler.cpp @@ -99,16 +99,18 @@ TAO_GIOP_Message_NonReactive_Handler::read_parse_message(TAO_Transport *transpor buf = this->input_cdr_.rd_ptr (); // Read the rest of the message - if (this->read_message (transport, - buf, - msg_size - TAO_GIOP_MESSAGE_HEADER_LEN, - max_wait_time) == -1) + int retval = this->read_message (transport, + buf, + msg_size - TAO_GIOP_MESSAGE_HEADER_LEN, + max_wait_time); + if (retval <= 0) { if (TAO_debug_level > 1) ACE_ERROR ((LM_ERROR, ACE_TEXT ("(%P|%t) : (%N | %l) \n") - ACE_TEXT ("Error during message read \n"))); - return -1; + ACE_TEXT ("(%P|%t) Error during message read \n"))); + + return retval; } // Parse the GIOP fragment header. @@ -129,7 +131,7 @@ TAO_GIOP_Message_NonReactive_Handler::read_parse_message(TAO_Transport *transpor // Now we have parsed almost every thing that is part of the GIOP // header. Return a succes value - return 0; + return 1; } @@ -160,9 +162,13 @@ TAO_GIOP_Message_NonReactive_Handler::read_message (TAO_Transport *transport, // @@ Do we need to check for errno != EWOULDBLOCK?? and errno == // @@ ECONNRESET. Does such things make sense here?? + if (bytes == -1 && errno == EAGAIN) + return 0; + if (bytes == 0 || bytes == -1) - return bytes; + return -1; + buf += bytes; } |