diff options
author | mcorino <mcorino@users.noreply.github.com> | 2006-11-08 14:48:35 +0000 |
---|---|---|
committer | mcorino <mcorino@users.noreply.github.com> | 2006-11-08 14:48:35 +0000 |
commit | 4f15e60dbde6ef121c4b7ab8123556ff33018d24 (patch) | |
tree | 4561c4bf5320c0f95520a37ce37892618d267e2b | |
parent | 47f979e6ecdb649e127d5f1aafa0f4f9a0ae9872 (diff) | |
download | ATCD-4f15e60dbde6ef121c4b7ab8123556ff33018d24.tar.gz |
ChangeLogTag: Tue Nov 08 15:40:10 UTC 2006 Martin Corino <mcorino@remedy.nl>
-rw-r--r-- | ACE/ChangeLog | 8 | ||||
-rw-r--r-- | ACE/ace/INET_Addr.inl | 21 |
2 files changed, 29 insertions, 0 deletions
diff --git a/ACE/ChangeLog b/ACE/ChangeLog index 0de2794105b..93ce4c90270 100644 --- a/ACE/ChangeLog +++ b/ACE/ChangeLog @@ -1,3 +1,11 @@ +Tue Nov 08 15:40:10 UTC 2006 Martin Corino <mcorino@remedy.nl> + + * ace/INET_Addr.inl: + + Enhanced operator <() to support IPv6 addresses as well. + Thanks to Andre Kostur (akostur at incognito dot com) for + submitting a patch for this. + Wed Nov 8 14:24:02 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> * configure.ac: diff --git a/ACE/ace/INET_Addr.inl b/ACE/ace/INET_Addr.inl index d87974675d8..15af6fe0a42 100644 --- a/ACE/ace/INET_Addr.inl +++ b/ACE/ace/INET_Addr.inl @@ -117,6 +117,27 @@ ACE_INET_Addr::get_addr_size (void) const ACE_INLINE bool ACE_INET_Addr::operator < (const ACE_INET_Addr &rhs) const { +#if defined (ACE_HAS_IPV6) + if (this->get_type() != rhs.get_type()) + { + return this->get_type() < rhs.get_type(); + } + + if (this->get_type() == PF_INET6) + { + int memval = ACE_OS::memcmp (this->ip_addr_pointer(), + rhs.ip_addr_pointer(), + this->ip_addr_size()); + + return memval < 0 + || (memval == 0 + && (this->get_port_number() < rhs.get_port_number() + || (this->get_port_number() == rhs.get_port_number() + && this->inet_addr_.in6_.sin6_scope_id < + rhs.inet_addr_.in6_.sin6_scope_id))); + } +#endif + return this->get_ip_address () < rhs.get_ip_address () || (this->get_ip_address () == rhs.get_ip_address () && this->get_port_number () < rhs.get_port_number ()); |