diff options
Diffstat (limited to 'netutils.h')
-rw-r--r-- | netutils.h | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/netutils.h b/netutils.h new file mode 100644 index 0000000..1645701 --- /dev/null +++ b/netutils.h @@ -0,0 +1,38 @@ +#ifndef DNS2TCP_NETUTILS_H +#define DNS2TCP_NETUTILS_H + +#define _GNU_SOURCE +#include <stdint.h> +#include <netinet/in.h> +#undef _GNU_SOURCE + +/* ipaddr string len */ +#define IP4STRLEN INET_ADDRSTRLEN +#define IP6STRLEN INET6_ADDRSTRLEN + +/* portno string len */ +#define PORTSTRLEN 6 + +/* port number typedef */ +typedef uint16_t portno_t; + +/* sockaddr type alias */ +typedef struct sockaddr_in skaddr4_t; +typedef struct sockaddr_in6 skaddr6_t; + +/* build ipv4 socket address from ipstr and portno */ +void build_ipv4_addr(skaddr4_t *addr, const char *ipstr, portno_t portno); + +/* build ipv6 socket address from ipstr and portno */ +void build_ipv6_addr(skaddr6_t *addr, const char *ipstr, portno_t portno); + +/* parse ipstr and portno from ipv4 socket address */ +void parse_ipv4_addr(const skaddr4_t *addr, char *ipstr, portno_t *portno); + +/* parse ipstr and portno from ipv6 socket address */ +void parse_ipv6_addr(const skaddr6_t *addr, char *ipstr, portno_t *portno); + +/* AF_INET or AF_INET6 or -1(invalid ip string) */ +int get_ipstr_family(const char *ipstr); + +#endif |