IpAddress comparison operators lie

From: Alex Rousskov <rousskov_at_measurement-factory.com>
Date: Fri, 30 Apr 2010 22:34:22 -0600

Hello,

    Current IpAddress comparison operators are broken from logic point
of view. For example, if a and b are IpAddress objects, then

* both (a < b) and (a > b) are true if exactly one address is NoAddr;

* (ip1 == ip2) may be true even if the addresses have different ports

There may be more inconsistencies; I have not checked all possible
combinations.

These bugs make it impossible to reliably sort or compare addresses
using C++ operators. However, I do not know whether some code already
relies on this broken behavior. Does it? In other words, should we just
fix the operators or is there more to it?

Thank you,

Alex.
Received on Sat May 01 2010 - 04:34:34 MDT

This archive was generated by hypermail 2.2.0 : Sat May 01 2010 - 12:00:18 MDT