diff options
Diffstat (limited to 'TAO/tao/TAO_Server_Request.cpp')
-rw-r--r-- | TAO/tao/TAO_Server_Request.cpp | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/TAO/tao/TAO_Server_Request.cpp b/TAO/tao/TAO_Server_Request.cpp index c4b7f69adb1..726825d5dcc 100644 --- a/TAO/tao/TAO_Server_Request.cpp +++ b/TAO/tao/TAO_Server_Request.cpp @@ -282,6 +282,12 @@ TAO_ServerRequest::init_reply (void) reply_params.reply_status_ = this->exception_type_; } + + this->outgoing_->message_attributes (this->request_id_, + 0, + TAO_Transport::TAO_REPLY, + 0); + // Construct a REPLY header. this->mesg_base_->generate_reply_header (*this->outgoing_, reply_params); @@ -325,10 +331,17 @@ TAO_ServerRequest::send_no_exception_reply (void) // No data anyway. reply_params.argument_flag_ = 0; + this->outgoing_->message_attributes (this->request_id_, + 0, + TAO_Transport::TAO_REPLY, + 0); + // Construct a REPLY header. this->mesg_base_->generate_reply_header (*this->outgoing_, reply_params); + this->outgoing_->more_fragments (false); + // Send the message. int result = this->transport_->send_message (*this->outgoing_, 0, @@ -355,6 +368,8 @@ TAO_ServerRequest::tao_send_reply (void) if (this->collocated ()) return; // No transport in the collocated case. + this->outgoing_->more_fragments (false); + int result = this->transport_->send_message (*this->outgoing_, 0, TAO_Transport::TAO_REPLY); @@ -414,6 +429,7 @@ TAO_ServerRequest::tao_send_reply_exception (CORBA::Exception &ex) this->orb_core_->output_cdr_dblock_allocator (), this->orb_core_->output_cdr_msgblock_allocator (), this->orb_core_->orb_params ()->cdr_memcpy_tradeoff (), + this->mesg_base_->fragmentation_strategy (), TAO_DEF_GIOP_MAJOR, TAO_DEF_GIOP_MINOR); @@ -429,6 +445,8 @@ TAO_ServerRequest::tao_send_reply_exception (CORBA::Exception &ex) } + this->outgoing_->more_fragments (false); + // Send the message if (this->transport_->send_message (*this->outgoing_, 0, @@ -475,10 +493,11 @@ TAO_ServerRequest::send_cached_reply (CORBA::OctetSeq &s) this->orb_core_->output_cdr_dblock_allocator (), this->orb_core_->output_cdr_msgblock_allocator (), this->orb_core_->orb_params ()->cdr_memcpy_tradeoff (), + this->mesg_base_->fragmentation_strategy (), TAO_DEF_GIOP_MAJOR, TAO_DEF_GIOP_MINOR); - this->transport_->assign_translators(0,&output); + this->transport_->assign_translators (0, &output); // A copy of the reply parameters TAO_Pluggable_Reply_Params_Base reply_params; @@ -496,6 +515,11 @@ TAO_ServerRequest::send_cached_reply (CORBA::OctetSeq &s) // Make a default reply status reply_params.reply_status_ = TAO_GIOP_NO_EXCEPTION; + this->outgoing_->message_attributes (this->request_id_, + 0, + TAO_Transport::TAO_REPLY, + 0); + // Make the reply message if (this->mesg_base_->generate_reply_header (*this->outgoing_, reply_params) == -1) @@ -516,6 +540,8 @@ TAO_ServerRequest::send_cached_reply (CORBA::OctetSeq &s) ACE_TEXT ("TAO (%P|%t) - ServerRequest::send_cached_reply, ") ACE_TEXT ("could not marshal reply\n"))); + this->outgoing_->more_fragments (false); + // Send the message if (this->transport_->send_message (*this->outgoing_, 0, |