]> git.meshlink.io Git - catta/blob - address.h
* add todo list
[catta] / address.h
1 #ifndef fooaddresshfoo
2 #define fooaddresshfoo
3
4 #include <glib.h>
5
6 #include <sys/socket.h>
7
8 typedef struct {
9     guint32 address;
10 } flxIPv4Address;
11
12 typedef struct {
13     guint8 address[16];
14 } flxIPv6Address;
15
16 typedef struct {
17     guchar family;
18
19     union {
20         flxIPv6Address ipv6;
21         flxIPv4Address ipv4;
22         guint8 data[0];
23     } data;
24 } flxAddress;
25
26 guint flx_address_get_size(const flxAddress *a);
27 gint flx_address_cmp(const flxAddress *a, const flxAddress *b);
28
29 gchar *flx_address_snprint(char *ret_s, guint length, const flxAddress *a);
30
31 flxAddress *flx_address_parse(const char *s, guchar family, flxAddress *ret_addr);
32
33 flxAddress *flx_address_from_sockaddr(const struct sockaddr* sa, flxAddress *ret_addr);
34
35 gchar* flx_reverse_lookup_name_ipv4(const flxIPv4Address *a);
36 gchar* flx_reverse_lookup_name_ipv6_arpa(const flxIPv6Address *a);
37 gchar* flx_reverse_lookup_name_ipv6_int(const flxIPv6Address *a);
38
39 #endif