]> git.tdb.fi Git - libs/net.git/blobdiff - source/net/sockaddr.cpp
Add a dynamic receiver class for more flexible packet handling
[libs/net.git] / source / net / sockaddr.cpp
index db436fe17227218e193e71f7ad28b18cfac4cab0..a3d3eed306626df06991cbc61f9c14e428a476e5 100644 (file)
@@ -1,3 +1,4 @@
+#include "sockaddr.h"
 #include <stdexcept>
 #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