diff options
author | sma <sma@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2006-11-16 10:27:17 +0000 |
---|---|---|
committer | sma <sma@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2006-11-16 10:27:17 +0000 |
commit | 70e95618843c7f963b649d13066af96d1a966f1e (patch) | |
tree | a49c37307a688caa3390dc951a530a5a2ff857eb /TAO/tao/IIOP_Profile.cpp | |
parent | 6c81af6aa85babeeb5ad5210a724dccb9dba30a0 (diff) | |
download | ATCD-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.cpp | 12 |
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. |