RTRlib
 All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages
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 
38 struct lrtr_ip_addr {
39  enum lrtr_ip_version ver;
40  union {
41  struct lrtr_ipv4_addr addr4;
42  struct lrtr_ipv6_addr addr6;
43  } u;
44 };
45 
55 int lrtr_ip_addr_to_str(const struct lrtr_ip_addr *ip, char *str, const unsigned int len);
56 
64 int lrtr_ip_str_to_addr(const char *str, struct lrtr_ip_addr *ip);
65 
74 bool lrtr_ip_addr_equal(const struct lrtr_ip_addr a, const struct lrtr_ip_addr b);
75 
83 bool lrtr_ip_str_cmp(const struct lrtr_ip_addr *addr1, const char *addr2);
84 
85 #endif
86 /* @} */
bool lrtr_ip_str_cmp(const struct lrtr_ip_addr *addr1, const char *addr2)
int lrtr_ip_str_to_addr(const char *str, struct lrtr_ip_addr *ip)
Definition: ip.h:30
Struct holding an IPv6 address in host byte order.
Definition: ipv6.h:18
Definition: ip.h:27
int lrtr_ip_addr_to_str(const struct lrtr_ip_addr *ip, char *str, const unsigned int len)
lrtr_ip_version
Version of the IP protocol.
Definition: ip.h:25
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.
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