]> git.tdb.fi Git - libs/net.git/blob - source/net/sockaddr.cpp
Merge branch 'http-master'
[libs/net.git] / source / net / sockaddr.cpp
1 #include <stdexcept>
2 #include "inet.h"
3 #include "inet6.h"
4 #include "sockaddr_private.h"
5
6 using namespace std;
7
8 namespace Msp {
9 namespace Net {
10
11 SockAddr *SockAddr::new_from_sys(const SysAddr &sa)
12 {
13         switch(sa.addr.ss_family)
14         {
15         case AF_INET:
16                 return new InetAddr(sa);
17         case AF_INET6:
18                 return new Inet6Addr(sa);
19         default:
20                 throw invalid_argument("SockAddr::create");
21         }
22 }
23
24 SockAddr::SysAddr::SysAddr():
25         size(sizeof(sockaddr_storage))
26 {
27         addr.ss_family = AF_UNSPEC;
28 }
29
30 } // namespace Net
31 } // namespace Msp