From 28320ddb1ea2f2fec9f23fab87855e04a4aba367 Mon Sep 17 00:00:00 2001 From: Guenter Obiltschnig Date: Fri, 24 May 2013 22:06:15 +0200 Subject: [PATCH] fixed GH# 188: Net: SocketAddress operator < unusable for std::map key --- Net/src/SocketAddress.cpp | 8 +++++--- Net/testsuite/src/SocketAddressTest.cpp | 10 +++++----- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/Net/src/SocketAddress.cpp b/Net/src/SocketAddress.cpp index 827a6f2d3..58c080e30 100644 --- a/Net/src/SocketAddress.cpp +++ b/Net/src/SocketAddress.cpp @@ -161,9 +161,11 @@ SocketAddress::~SocketAddress() bool SocketAddress::operator < (const SocketAddress& socketAddress) const { - if (family() < socketAddress.family()) return true; - if (host() < socketAddress.host()) return true; - return (port() < socketAddress.port()); + if (family() < addr.family()) return true; + if (family() > addr.family()) return false; + if (host() < addr.host()) return true; + if (host() > addr.host()) return false; + return (port() < addr.port()); } diff --git a/Net/testsuite/src/SocketAddressTest.cpp b/Net/testsuite/src/SocketAddressTest.cpp index a00c5c635..cf2ba83ae 100644 --- a/Net/testsuite/src/SocketAddressTest.cpp +++ b/Net/testsuite/src/SocketAddressTest.cpp @@ -141,13 +141,13 @@ void SocketAddressTest::testSocketAddress() void SocketAddressTest::testSocketRelationals() { SocketAddress sa1("192.168.1.100", 100); - SocketAddress sa2("192.168.1.100:100"); + SocketAddress sa2("192.168.1.100:100"); assert (sa1 == sa2); - - SocketAddress sa3("192.168.1.101", "99"); + + SocketAddress sa3("192.168.1.101", "99"); assert (sa2 < sa3); - - SocketAddress sa4("192.168.1.100", "102"); + + SocketAddress sa4("192.168.1.101", "102"); assert (sa3 < sa4); }