X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fnet%2Finet6.cpp;h=1b8fc39ce2628bd793a2148723e2e33868a1ad64;hb=d6ba60220dadabe552f9f7dc2b4fc34b51cf4d32;hp=f33ed182305882d4753d2365116d31e4163a7263;hpb=136c9eec2b72bfad4788908de5552fbd62216148;p=libs%2Fnet.git diff --git a/source/net/inet6.cpp b/source/net/inet6.cpp index f33ed18..1b8fc39 100644 --- a/source/net/inet6.cpp +++ b/source/net/inet6.cpp @@ -1,11 +1,7 @@ -#ifdef _WIN32 -#include -#include -#else -#include -#endif -#include #include "inet6.h" +#include "platform_api.h" +#include +#include #include "sockaddr_private.h" using namespace std; @@ -13,12 +9,6 @@ using namespace std; namespace Msp { namespace Net { -Inet6Addr::Inet6Addr(): - port(0) -{ - fill(addr, addr+16, 0); -} - Inet6Addr::Inet6Addr(const SysAddr &sa) { const sockaddr_in6 &sai6 = reinterpret_cast(sa.addr); @@ -26,6 +16,21 @@ Inet6Addr::Inet6Addr(const SysAddr &sa) port = htons(sai6.sin6_port); } +Inet6Addr Inet6Addr::wildcard(unsigned port) +{ + Inet6Addr addr; + addr.port = port; + return addr; +} + +Inet6Addr Inet6Addr::localhost(unsigned port) +{ + Inet6Addr addr; + addr.addr[15] = 1; + addr.port = port; + return addr; +} + SockAddr::SysAddr Inet6Addr::to_sys() const { SysAddr sa; @@ -45,9 +50,9 @@ string Inet6Addr::str() const string result = "["; for(unsigned i=0; i<16; i+=2) { - unsigned short part = (addr[i]<<8) | addr[i+1]; if(i>0) result += ':'; + unsigned short part = (addr[i]<<8) | addr[i+1]; result += format("%x", part); } result += ']';