]> git.meshlink.io Git - meshlink/blob - sockaddr.h
1a98d47897f87f57e530115330a1fec17c377655
[meshlink] / sockaddr.h
1 #ifndef MESHLINK_SOCKADDR_H
2 #define MESHLINK_SOCKADDR_H
3
4 #define AF_UNKNOWN 255
5
6 #ifdef SA_LEN
7 #define SALEN(s) SA_LEN(&s)
8 #else
9 #define SALEN(s) (s.sa_family==AF_INET?sizeof(struct sockaddr_in):sizeof(struct sockaddr_in6))
10 #endif
11
12 struct sockaddr_unknown {
13         uint16_t family;
14         uint16_t pad1;
15         uint32_t pad2;
16         char *address;
17         char *port;
18 };
19
20 typedef union sockaddr_t {
21         struct sockaddr sa;
22         struct sockaddr_in in;
23         struct sockaddr_in6 in6;
24         struct sockaddr_unknown unknown;
25         struct sockaddr_storage storage;
26 } sockaddr_t;
27
28 #endif