summaryrefslogtreecommitdiff
path: root/TAO/tao/TAO_Server_Request.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tao/TAO_Server_Request.cpp')
-rw-r--r--TAO/tao/TAO_Server_Request.cpp28
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,