]> git.tdb.fi Git - netvis.git/blob - source/address.h
Handle addresses in a more generic way
[netvis.git] / source / address.h
1 #ifndef ADDRESS_H_
2 #define ADDRESS_H_
3
4 #include <netinet/ip.h>
5 #include <string>
6
7 struct Address
8 {
9         unsigned short type;
10         unsigned char length;
11         unsigned char mask_bits;
12         unsigned char data[16];
13
14         Address();
15         Address(uint32_t);
16         Address(unsigned short, const unsigned char *, unsigned char);
17
18         void set_mask(const Address &);
19         std::string str() const;
20         unsigned common_prefix_length(const Address &) const;
21         bool masked_match(const Address &) const;
22         void to_sockaddr(sockaddr_storage &) const;
23
24         bool operator<(const Address &) const;
25 };
26
27 #endif