X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fnet%2Fsockaddr.cpp;h=a3d3eed306626df06991cbc61f9c14e428a476e5;hb=HEAD;hp=db436fe17227218e193e71f7ad28b18cfac4cab0;hpb=88bbb4039aa274c7f41ebe3a18085b63427e5475;p=libs%2Fnet.git diff --git a/source/net/sockaddr.cpp b/source/net/sockaddr.cpp index db436fe..a3d3eed 100644 --- a/source/net/sockaddr.cpp +++ b/source/net/sockaddr.cpp @@ -1,3 +1,4 @@ +#include "sockaddr.h" #include #include "platform_api.h" #include "inet.h" @@ -25,11 +26,35 @@ SockAddr *SockAddr::new_from_sys(const SysAddr &sa) } } -SockAddr::SysAddr::SysAddr(): - size(sizeof(sockaddr_storage)) +SockAddr::SysAddr::SysAddr() { addr.ss_family = AF_UNSPEC; } + +int family_to_sys(Family f) +{ + switch(f) + { + case UNSPEC: return AF_UNSPEC; + case INET: return AF_INET; + case INET6: return AF_INET6; + case UNIX: return AF_UNIX; + default: throw invalid_argument("family_to_sys"); + } +} + +Family family_from_sys(int f) +{ + switch(f) + { + case AF_UNSPEC: return UNSPEC; + case AF_INET: return INET; + case AF_INET6: return INET6; + case AF_UNIX: return UNIX; + default: throw invalid_argument("family_from_sys"); + } +} + } // namespace Net } // namespace Msp