summaryrefslogtreecommitdiff
path: root/TAO/tao/Strategies
diff options
context:
space:
mode:
authorbala <balanatarajan@users.noreply.github.com>2001-05-17 17:12:01 +0000
committerbala <balanatarajan@users.noreply.github.com>2001-05-17 17:12:01 +0000
commite94156f6c78ac9ed92cb25f9852edb36a780cbe3 (patch)
treef85e0aaee6745bb19055130812b9f9234ab0ef40 /TAO/tao/Strategies
parentdf534b3fa800174c12ce12a996a152533b5d8ba8 (diff)
downloadATCD-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.cpp9
-rw-r--r--TAO/tao/Strategies/GIOP_Message_NonReactive_Handler.cpp22
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;
}