]> git.meshlink.io Git - meshlink/blob - src/sockaddr.h
Set meshlink_errno everywhere an error is returned by the public API.
[meshlink] / src / sockaddr.h
1 #ifndef SOCKADDR_H
2 #define 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 #ifdef HAVE_STRUCT_SOCKADDR_STORAGE
26         struct sockaddr_storage storage;
27 #endif
28 } sockaddr_t;
29
30 #endif // SOCKADDR_H