dnl
ensc_have_libnl=yes
-LIBNL_ROOT=`readlink -f ../libnl*/`
-if test -d "$LIBNL_ROOT"; then
- CFLAGS="$CFLAGS -I ${LIBNL_ROOT}/include"
- LDFLAGS="$LDFLAGS -L${LIBNL_ROOT}/lib"
-fi
if test x"$ensc_have_libnl" = xyes; then
AC_CHECK_HEADERS([asm/types.h stdint.h], [ : ],
fi
if test x"$ensc_have_libnl" = xyes; then
- AC_CHECK_LIB(nl, nlmsg_get_src, [ : ],
+ AC_CHECK_LIB(nl, nl_handle_alloc_cb, [ : ],
[ ensc_have_libnl=no ])
fi
#include <asm/types.h>
#include <netlink/netlink.h>
+#include <netlink/handlers.h>
#include <netlink/route/addr.h>
#include <vserver.h>
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;
}
ret = rtnl_addr_delete(handle, rta, 0);
- rtnl_addr_free(rta);
+ rtnl_addr_put(rta);
nl_addr_destroy(nl);
return ret;
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);