1 #ifndef INCLUDED_SOCK_ADDR_H
2 #define INCLUDED_SOCK_ADDR_H
6 #include "sys-socket.h"
8 #include "base_decls.h"
14 struct sockaddr_in6 ipv6
;
16 struct sockaddr_in ipv4
;
18 struct sockaddr_un un
;
20 struct sockaddr plain
;
24 static inline int sock_addr_get_family (const sock_addr
*saddr
);
25 static inline int sock_addr_get_family (const sock_addr
*saddr
) {
26 return saddr
->plain
.sa_family
;
29 unsigned short sock_addr_get_port (const sock_addr
*saddr
);
30 int sock_addr_is_addr_wildcard (const sock_addr
*saddr
);
31 int sock_addr_is_family_eq (const sock_addr
*saddr1
, const sock_addr
*saddr2
);
32 int sock_addr_is_port_eq (const sock_addr
*saddr1
, const sock_addr
*saddr2
);
33 int sock_addr_is_addr_eq (const sock_addr
*saddr1
, const sock_addr
*saddr2
);
34 /*int sock_addr_is_addr_port_eq (const sock_addr *saddr1, const sock_addr *saddr2);*/
35 int sock_addr_is_addr_eq_bits(const sock_addr
*a
, const sock_addr
*b
, int bits
);
36 int sock_addr_assign (sock_addr
*saddr
, int family
, unsigned short nport
, const void *naddr
);
38 int sock_addr_inet_pton(sock_addr
*saddr
, const char *str
, int family
, unsigned short port
);
40 const char * sock_addr_inet_ntop(const sock_addr
*saddr
, char *buf
, socklen_t sz
);
41 int sock_addr_inet_ntop_copy_buffer(buffer
*b
, const sock_addr
*saddr
);
42 int sock_addr_inet_ntop_append_buffer(buffer
*b
, const sock_addr
*saddr
);
43 int sock_addr_stringify_append_buffer(buffer
*b
, const sock_addr
*saddr
);
44 int sock_addr_nameinfo_append_buffer(server
*srv
, buffer
*b
, const sock_addr
*saddr
);
46 int sock_addr_from_buffer_hints_numeric(server
*srv
, sock_addr
*saddr
, socklen_t
*len
, const buffer
*b
, int family
, unsigned short port
);
47 int sock_addr_from_str_hints(server
*srv
, sock_addr
*saddr
, socklen_t
*len
, const char *str
, int family
, unsigned short port
);
48 int sock_addr_from_str_numeric(server
*srv
, sock_addr
*saddr
, const char *str
);