diff options
author | Adam Mitz <mitza@ociweb.com> | 2017-12-01 13:30:07 -0600 |
---|---|---|
committer | Adam Mitz <mitza@ociweb.com> | 2017-12-01 13:30:07 -0600 |
commit | 4cfd0f592e8a2bce85c306d5592b6a842d200eae (patch) | |
tree | 1f000143b2c657109081253332a984ce88ffbcc1 | |
parent | 8a27a5e9f823948006f76d32f66230c9ff2239b5 (diff) | |
download | ATCD-4cfd0f592e8a2bce85c306d5592b6a842d200eae.tar.gz |
For BiDir GIOP over SSL, need to handle IPv4-mapped IPv6 addresses.
-rw-r--r-- | TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Transport.cpp | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Transport.cpp b/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Transport.cpp index 43db7edd65a..3a123c382f7 100644 --- a/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Transport.cpp +++ b/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Transport.cpp @@ -258,16 +258,18 @@ TAO::SSLIOP::Transport::get_listen_point ( // Get the local address of the connection ACE_INET_Addr local_addr; - { - if (this->connection_handler_->peer ().get_local_addr (local_addr) == -1) - { - ORBSVCS_ERROR_RETURN ((LM_ERROR, - ACE_TEXT ("(%P|%t) Could not resolve local host") - ACE_TEXT (" address in get_listen_point()\n")), - -1); - } + if (this->connection_handler_->peer ().get_local_addr (local_addr) == -1) + { + ORBSVCS_ERROR_RETURN ((LM_ERROR, + ACE_TEXT ("(%P|%t) Could not resolve local host") + ACE_TEXT (" address in get_listen_point()\n")), + -1); + } - } +#ifdef ACE_HAS_IPV6 + if (local_addr.is_ipv4_mapped_ipv6 ()) + local_addr.set (local_addr.get_port_number (), local_addr.get_ip_address ()); +#endif /* ACE_HAS_IPV6 */ // Note: Looks like there is no point in sending the list of // endpoints on interfaces on which this connection has not |