]> git.meshlink.io Git - meshlink/blob - src/sockaddr.h
Move timespec functions to utils.h.
[meshlink] / src / 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