Support both libnl 1.0-pre6 and 1.1.
[util-vserver-pl.git] / src / vip6-autod.c
index 75055c1..ab03cf5 100644 (file)
 
 #include <asm/types.h>
 #include <netlink/netlink.h>
-#include <netlink/handlers.h>
+#if defined(HAVE_LIBNL_1_1)
+#  include <netlink/handlers.h>
+#elif defined(HAVE_LIBNL_1_0)
+#  define rtnl_addr_put rtnl_addr_free
+#endif
 #include <netlink/route/addr.h>
 
 #include <vserver.h>
@@ -596,16 +600,22 @@ int main(int argc, char *argv[])
 
        openlog("vip6-autod", LOG_PERROR, LOG_DAEMON);
 
+#if defined(HAVE_LIBNL_1_1)
        cbs = nl_cb_alloc(NL_CB_VERBOSE);
        if (!cbs) {
                syslog(LOG_CRIT, "nl_cb_alloc: %s", strerror(errno));
                exit(1);
        }
+#elif defined(HAVE_LIBNL_1_0)
+       handle = nl_handle_alloc_nondefault(NL_CB_VERBOSE);
+       cbs = nl_handle_get_cb(handle);
+#endif
        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);
-
+#ifdef HAVE_LIBNL_1_1
        handle = nl_handle_alloc_cb(cbs);
+#endif
        nl_disable_sequence_check(handle);
 
        nl_join_groups(handle, RTMGRP_IPV6_PREFIX|RTMGRP_IPV6_IFADDR);