X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fnet%2Fsockaddr.cpp;h=a3d3eed306626df06991cbc61f9c14e428a476e5;hb=HEAD;hp=e9b14333b51586c69727b038a384bb4bec5e1fd3;hpb=b5f2e718a2fd3d2e7422476e70ca7b1de5e32175;p=libs%2Fnet.git diff --git a/source/net/sockaddr.cpp b/source/net/sockaddr.cpp index e9b1433..a3d3eed 100644 --- a/source/net/sockaddr.cpp +++ b/source/net/sockaddr.cpp @@ -1,4 +1,6 @@ +#include "sockaddr.h" #include +#include "platform_api.h" #include "inet.h" #include "inet6.h" #include "sockaddr_private.h" @@ -24,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