summaryrefslogtreecommitdiff
path: root/TAO/tao/IIOP_Profile.cpp
diff options
context:
space:
mode:
authorsma <sma@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2006-11-16 10:27:17 +0000
committersma <sma@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2006-11-16 10:27:17 +0000
commit70e95618843c7f963b649d13066af96d1a966f1e (patch)
treea49c37307a688caa3390dc951a530a5a2ff857eb /TAO/tao/IIOP_Profile.cpp
parent6c81af6aa85babeeb5ad5210a724dccb9dba30a0 (diff)
downloadATCD-70e95618843c7f963b649d13066af96d1a966f1e.tar.gz
Thu Nov 16 10:20:00 UTC 2006 Simon Massey <sma@prismtech.com>
Diffstat (limited to 'TAO/tao/IIOP_Profile.cpp')
-rw-r--r--TAO/tao/IIOP_Profile.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/TAO/tao/IIOP_Profile.cpp b/TAO/tao/IIOP_Profile.cpp
index 63cc46e53f8..ceb6d1f4fec 100644
--- a/TAO/tao/IIOP_Profile.cpp
+++ b/TAO/tao/IIOP_Profile.cpp
@@ -93,8 +93,13 @@ int
TAO_IIOP_Profile::decode_profile (TAO_InputCDR& cdr)
{
// Decode host and port into the <endpoint_>.
- if (cdr.read_string (this->endpoint_.host_.out ()) == 0
- || cdr.read_ushort (this->endpoint_.port_) == 0)
+ // it is necessary to do it indirectly so that IPv6 host addresses
+ // can be evaluated correctly.
+ CORBA::String_var host;
+ CORBA::UShort port;
+
+ if (cdr.read_string(host.out()) == 0 ||
+ cdr.read_ushort (port) == 0)
{
if (TAO_debug_level > 0)
ACE_DEBUG ((LM_DEBUG,
@@ -103,6 +108,9 @@ TAO_IIOP_Profile::decode_profile (TAO_InputCDR& cdr)
return -1;
}
+ this->endpoint_.host(host.in());
+ this->endpoint_.port(port);
+
if (cdr.good_bit ())
{
// Invalidate the object_addr_ until first access.