diff options
| author | Kristof Provost <kp@FreeBSD.org> | 2023-03-15 12:31:45 +0000 |
|---|---|---|
| committer | Kristof Provost <kp@FreeBSD.org> | 2023-03-20 13:37:09 +0000 |
| commit | 137818006de5bb0be0b6562a0d601977f85c6867 (patch) | |
| tree | 2ae84bcb3d05cc2abe8948317fec3f798a4b2499 /lib/libifconfig | |
| parent | 3afba490c1266200e9fd899f2494aa47f71c6095 (diff) | |
Diffstat (limited to 'lib/libifconfig')
| -rw-r--r-- | lib/libifconfig/libifconfig.h | 2 | ||||
| -rw-r--r-- | lib/libifconfig/libifconfig_carp.c | 7 |
2 files changed, 9 insertions, 0 deletions
diff --git a/lib/libifconfig/libifconfig.h b/lib/libifconfig/libifconfig.h index 64a61af0708c..861d2bc93f80 100644 --- a/lib/libifconfig/libifconfig.h +++ b/lib/libifconfig/libifconfig.h @@ -287,6 +287,8 @@ struct ifconfig_carp { int32_t carpr_advbase; int32_t carpr_advskew; uint8_t carpr_key[CARP_KEY_LEN]; + struct in_addr carpr_addr; + struct in6_addr carpr_addr6; }; int ifconfig_carp_get_vhid(ifconfig_handle_t *h, const char *name, diff --git a/lib/libifconfig/libifconfig_carp.c b/lib/libifconfig/libifconfig_carp.c index ffc497590aaa..5729362ffef9 100644 --- a/lib/libifconfig/libifconfig_carp.c +++ b/lib/libifconfig/libifconfig_carp.c @@ -39,6 +39,7 @@ #include <netlink/netlink_generic.h> #include <netlink/netlink_snl.h> #include <netlink/netlink_snl_generic.h> +#include <netlink/netlink_snl_route.h> #include <string.h> #include <strings.h> @@ -55,6 +56,8 @@ static struct snl_attr_parser ap_carp_get[] = { { .type = CARP_NL_ADVBASE, .off = _OUT(carpr_advbase), .cb = snl_attr_get_int32 }, { .type = CARP_NL_ADVSKEW, .off = _OUT(carpr_advskew), .cb = snl_attr_get_int32 }, { .type = CARP_NL_KEY, .off = _OUT(carpr_key), .cb = snl_attr_get_string }, + { .type = CARP_NL_ADDR, .off = _OUT(carpr_addr), .cb = snl_attr_get_in_addr }, + { .type = CARP_NL_ADDR6, .off = _OUT(carpr_addr6), .cb = snl_attr_get_in6_addr }, }; #undef _OUT @@ -181,6 +184,10 @@ ifconfig_carp_set_info(ifconfig_handle_t *h, const char *name, snl_add_msg_attr_s32(&nw, CARP_NL_ADVBASE, carpr->carpr_advbase); snl_add_msg_attr_s32(&nw, CARP_NL_ADVSKEW, carpr->carpr_advskew); snl_add_msg_attr_u32(&nw, CARP_NL_IFINDEX, ifindex); + snl_add_msg_attr(&nw, CARP_NL_ADDR, sizeof(carpr->carpr_addr), + &carpr->carpr_addr); + snl_add_msg_attr(&nw, CARP_NL_ADDR6, sizeof(carpr->carpr_addr6), + &carpr->carpr_addr6); hdr = snl_finalize_msg(&nw); if (hdr == NULL) { |
