@@ -626,6 +626,7 @@ global:
l_rtnl_address_clone;
l_rtnl_address_free;
l_rtnl_address_get_address;
+ l_rtnl_address_get_in_addr;
l_rtnl_address_get_family;
l_rtnl_address_get_prefix_length;
l_rtnl_address_get_broadcast;
@@ -180,6 +180,15 @@ LIB_EXPORT bool l_rtnl_address_get_address(const struct l_rtnl_address *addr,
out_buf);
}
+LIB_EXPORT const void *l_rtnl_address_get_in_addr(
+ const struct l_rtnl_address *addr)
+{
+ if (unlikely(!addr))
+ return NULL;
+
+ return addr->family == AF_INET ? (void *) &addr->in_addr : &addr->in6_addr;
+}
+
LIB_EXPORT uint8_t l_rtnl_address_get_family(const struct l_rtnl_address *addr)
{
if (unlikely(!addr))
@@ -44,6 +44,7 @@ void l_rtnl_address_free(struct l_rtnl_address *addr);
DEFINE_CLEANUP_FUNC(l_rtnl_address_free);
bool l_rtnl_address_get_address(const struct l_rtnl_address *addr,
char *out_buf);
+const void *l_rtnl_address_get_in_addr(const struct l_rtnl_address *addr);
uint8_t l_rtnl_address_get_family(const struct l_rtnl_address *addr);
uint8_t l_rtnl_address_get_prefix_length(const struct l_rtnl_address *addr);
bool l_rtnl_address_get_broadcast(const struct l_rtnl_address *addr,