Endil

operator< for sockaddr_in

Sep 21st, 2015
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.37 KB | None | 0 0
  1. bool operator < (const sockaddr_in addr_left, const sockaddr_in addr_right) {
  2.     /*unsigned long long left = addr_left.sin_addr.S_un.S_un_b.s_b1 * 100000000000000 + addr_left.sin_addr.S_un.S_un_b.s_b2 * 100000000000 + addr_left.sin_addr.S_un.S_un_b.s_b3 * 100000000 + addr_left.sin_addr.S_un.S_un_b.s_b4 * 100000 + addr_left.sin_port;
  3.     unsigned long long right = addr_right.sin_addr.S_un.S_un_b.s_b1 * 100000000000000 + addr_right.sin_addr.S_un.S_un_b.s_b2 * 100000000000 + addr_right.sin_addr.S_un.S_un_b.s_b3 * 100000000 + addr_right.sin_addr.S_un.S_un_b.s_b4 * 100000 + addr_right.sin_port;
  4.     return left < right;*/
  5.     if (addr_left.sin_addr.S_un.S_un_b.s_b1 != addr_right.sin_addr.S_un.S_un_b.s_b1)
  6.         return addr_left.sin_addr.S_un.S_un_b.s_b1 < addr_right.sin_addr.S_un.S_un_b.s_b1;
  7.     if (addr_left.sin_addr.S_un.S_un_b.s_b2 != addr_right.sin_addr.S_un.S_un_b.s_b2)
  8.         return addr_left.sin_addr.S_un.S_un_b.s_b2 < addr_right.sin_addr.S_un.S_un_b.s_b2;
  9.     if (addr_left.sin_addr.S_un.S_un_b.s_b3 != addr_right.sin_addr.S_un.S_un_b.s_b3)
  10.         return addr_left.sin_addr.S_un.S_un_b.s_b3 < addr_right.sin_addr.S_un.S_un_b.s_b3;
  11.     if (addr_left.sin_addr.S_un.S_un_b.s_b4 != addr_right.sin_addr.S_un.S_un_b.s_b4)
  12.         return addr_left.sin_addr.S_un.S_un_b.s_b4 < addr_right.sin_addr.S_un.S_un_b.s_b4;
  13.     if (addr_left.sin_port != addr_right.sin_port)
  14.         return addr_left.sin_port < addr_right.sin_port;
  15. }
Advertisement
Add Comment
Please, Sign In to add comment