RTRlib
ip.h
1/*
2 * This file is part of RTRlib.
3 *
4 * This file is subject to the terms and conditions of the MIT license.
5 * See the file LICENSE in the top level directory for more details.
6 *
7 * Website: http://rtrlib.realmv6.org/
8 */
9
10#ifndef LRTR_IP_PUBLIC_H
11#define LRTR_IP_PUBLIC_H
12
13#include <stdbool.h>
14
15#include "rtrlib/lib/ipv4.h"
16#include "rtrlib/lib/ipv6.h"
28
31};
32
39 enum lrtr_ip_version ver;
40 union {
41 struct lrtr_ipv4_addr addr4;
42 struct lrtr_ipv6_addr addr6;
43 } u;
44};
45
55int lrtr_ip_addr_to_str(const struct lrtr_ip_addr *ip, char *str, const unsigned int len);
56
64int lrtr_ip_str_to_addr(const char *str, struct lrtr_ip_addr *ip);
65
74bool lrtr_ip_addr_equal(const struct lrtr_ip_addr a, const struct lrtr_ip_addr b);
75
83bool lrtr_ip_str_cmp(const struct lrtr_ip_addr *addr1, const char *addr2);
84
85#endif
86/* @} */
int lrtr_ip_addr_to_str(const struct lrtr_ip_addr *ip, char *str, const unsigned int len)
bool lrtr_ip_addr_equal(const struct lrtr_ip_addr a, const struct lrtr_ip_addr b)
Checks if two lrtr_ip_addr structs are equal.
bool lrtr_ip_str_cmp(const struct lrtr_ip_addr *addr1, const char *addr2)
lrtr_ip_version
Version of the IP protocol.
Definition: ip.h:25
int lrtr_ip_str_to_addr(const char *str, struct lrtr_ip_addr *ip)
@ LRTR_IPV6
Definition: ip.h:30
@ LRTR_IPV4
Definition: ip.h:27
The lrtr_ip_addr struct stores a IPv4 or IPv6 address in host byte order.
Definition: ip.h:38
Struct storing an IPv4 address in host byte order.
Definition: ipv4.h:19
Struct holding an IPv6 address in host byte order.
Definition: ipv6.h:18