X-Git-Url: http://git.onelab.eu/?p=util-vserver-pl.git;a=blobdiff_plain;f=src%2Fvip6-autod.c;h=75055c1eca7def18aa215891d94f5c0dfc4da2ca;hp=feade59dee1b4f6c7d91905639d75b5504388e66;hb=4ab7225b8db48eb6678c793f29735fceaf70282b;hpb=6741c84c6fc55aa004f06df477670bd333de59da diff --git a/src/vip6-autod.c b/src/vip6-autod.c index feade59..75055c1 100644 --- a/src/vip6-autod.c +++ b/src/vip6-autod.c @@ -29,6 +29,7 @@ #include #include +#include #include #include @@ -107,7 +108,7 @@ static int add_address_to_interface(int ifindex, struct in6_addr *address, if (rtnl_addr_add(handle, rta, NLM_F_REPLACE) != -1 || errno == EEXIST) err = 0; - rtnl_addr_free(rta); + rtnl_addr_put(rta); nl_addr_destroy(nl); return err; } @@ -139,7 +140,7 @@ static inline int remove_address_from_interface(struct nid_prefix_map *entry) ret = rtnl_addr_delete(handle, rta, 0); - rtnl_addr_free(rta); + rtnl_addr_put(rta); nl_addr_destroy(nl); return ret; @@ -595,11 +596,16 @@ int main(int argc, char *argv[]) openlog("vip6-autod", LOG_PERROR, LOG_DAEMON); - handle = nl_handle_alloc_nondefault(NL_CB_VERBOSE); - cbs = nl_handle_get_cb(handle); + cbs = nl_cb_alloc(NL_CB_VERBOSE); + if (!cbs) { + syslog(LOG_CRIT, "nl_cb_alloc: %s", strerror(errno)); + exit(1); + } nl_cb_set(cbs, NL_CB_VALID, NL_CB_CUSTOM, handle_valid_msg, &map); nl_cb_set(cbs, NL_CB_SEQ_CHECK, NL_CB_CUSTOM, handle_no_op, NULL); nl_cb_err(cbs, NL_CB_CUSTOM, handle_error_msg, &map); + + handle = nl_handle_alloc_cb(cbs); nl_disable_sequence_check(handle); nl_join_groups(handle, RTMGRP_IPV6_PREFIX|RTMGRP_IPV6_IFADDR);