X-Git-Url: https://git.sesse.net/?p=cubemap;a=blobdiff_plain;f=sa_compare.cpp;fp=sa_compare.cpp;h=aff5d2f1203520bd1db796659adffaf5d0ef2452;hp=0000000000000000000000000000000000000000;hb=f2530dbb8415f9e7cc0f2d4b45741120c95e8a05;hpb=40eab3b7a07862a5547fc178e1edec22522ed7dc diff --git a/sa_compare.cpp b/sa_compare.cpp new file mode 100644 index 0000000..aff5d2f --- /dev/null +++ b/sa_compare.cpp @@ -0,0 +1,17 @@ +#include "sa_compare.h" + +#include +#include +#include + +bool Sockaddr6Compare::operator() (const sockaddr_in6 &a, const sockaddr_in6 &b) const +{ + assert(a.sin6_family == AF_INET6); + assert(b.sin6_family == AF_INET6); + int addr_cmp = memcmp(&a.sin6_addr, &b.sin6_addr, sizeof(a.sin6_addr)); + if (addr_cmp == 0) { + return (ntohs(a.sin6_port) < ntohs(b.sin6_port)); + } else { + return (addr_cmp < 0); + } +}