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.