]> git.tdb.fi Git - libs/net.git/blob - source/inet.cpp
Style update: spaces around assignments
[libs/net.git] / source / inet.cpp
1 #include <msp/strings/formatter.h>
2 #include "inet.h"
3
4 using namespace std;
5
6 namespace Msp {
7 namespace Net {
8
9 InetAddr::InetAddr():
10         addr(0),
11         port(0)
12 { }
13
14 InetAddr::InetAddr(const sockaddr_in &sa):
15         addr(sa.sin_addr.s_addr),
16         port(sa.sin_port)
17 { }
18
19 InetAddr::InetAddr(in_addr_t a, in_port_t p):
20         addr(htonl(a)),
21         port(htons(p))
22 { }
23
24 string InetAddr::str() const
25 {
26         const unsigned char *ptr = reinterpret_cast<const unsigned char *>(&addr);
27         string result = format("%d.%d.%d.%d", ptr[0], ptr[1], ptr[2], ptr[3]);
28         if(port)
29                 result += format(":%d", ntohs(port));
30         return result;
31 }
32
33 unsigned InetAddr::fill_sockaddr(sockaddr &sa) const
34 {
35         sockaddr_in &sai = reinterpret_cast<sockaddr_in &>(sa);
36         sai.sin_family = AF_INET;
37         sai.sin_addr.s_addr = addr;
38         sai.sin_port = port;
39
40         return sizeof(sockaddr_in);
41 }
42
43 } // namespace Net
44 } // namespace Msp