1 #include "platform_api.h"
3 #include <msp/strings/format.h>
4 #include "sockaddr_private.h"
11 InetAddr::InetAddr(const SysAddr &sa)
13 const sockaddr_in &sai = reinterpret_cast<const sockaddr_in &>(sa.addr);
14 const char *ptr = reinterpret_cast<const char *>(&sai.sin_addr.s_addr);
15 std::copy(ptr, ptr+4, addr);
16 port = ntohs(sai.sin_port);
19 InetAddr InetAddr::wildcard(unsigned port)
26 InetAddr InetAddr::localhost(unsigned port)
35 SockAddr::SysAddr InetAddr::to_sys() const
38 sa.size = sizeof(sockaddr_in);
39 sockaddr_in &sai = reinterpret_cast<sockaddr_in &>(sa.addr);
40 sai.sin_family = AF_INET;
41 char *ptr = reinterpret_cast<char *>(&sai.sin_addr.s_addr);
42 std::copy(addr, addr+4, ptr);
43 sai.sin_port = htons(port);
48 string InetAddr::str() const
50 string result = format("%d.%d.%d.%d", addr[0], addr[1], addr[2], addr[3]);
52 result += format(":%d", port);