--- net-snmp-5.7.2.orig/agent/mibgroup/mibII/tcpTable.c	2012-10-10 00:28:58.000000000 +0200
+++ net-snmp-5.7.2/agent/mibgroup/mibII/tcpTable.c	2014-01-01 17:12:30.000000000 +0100
@@ -34,6 +34,12 @@
 #include <netlink/netlink.h>
 #include <netlink/msg.h>
 #include <linux/inet_diag.h>
+
+/* libnl 2.0 compatibility code */
+#define nl_handle nl_sock
+#define nl_handle_alloc nl_socket_alloc
+#define nl_handle_alloc_cb nl_socket_alloc_cb
+#define nl_handle_destroy nl_socket_free
 #endif
 
 #include <net-snmp/net-snmp-includes.h>
@@ -579,8 +585,8 @@ tcpTable_load_netlink(void)
 	}
 
 	if (nl_connect(nl, NETLINK_INET_DIAG) < 0) {
-		DEBUGMSGTL(("mibII/tcpTable", "Failed to connect to netlink: %s\n", nl_geterror()));
-		snmp_log(LOG_ERR, "snmpd: Couldn't connect to netlink: %s\n", nl_geterror());
+		DEBUGMSGTL(("mibII/tcpTable", "Failed to connect to netlink: %s\n", nl_geterror(1)));
+		snmp_log(LOG_ERR, "snmpd: Couldn't connect to netlink: %s\n", nl_geterror(1));
 		nl_handle_destroy(nl);
 		return -1;
 	}
@@ -594,8 +600,8 @@ tcpTable_load_netlink(void)
 	nlmsg_append(nm, &req, sizeof(struct inet_diag_req), 0);
 
 	if (nl_send_auto_complete(nl, nm) < 0) {
-		DEBUGMSGTL(("mibII/tcpTable", "nl_send_autocomplete(): %s\n", nl_geterror()));
-		snmp_log(LOG_ERR, "snmpd: nl_send_autocomplete(): %s\n", nl_geterror());
+		DEBUGMSGTL(("mibII/tcpTable", "nl_send_autocomplete(): %s\n", nl_geterror(1)));
+		snmp_log(LOG_ERR, "snmpd: nl_send_autocomplete(): %s\n", nl_geterror(1));
 		nl_handle_destroy(nl);
 		return -1;
 	}
@@ -607,8 +613,8 @@ tcpTable_load_netlink(void)
 
 	while (running) {
 		if ((len = nl_recv(nl, &peer, &buf, NULL)) <= 0) {
-			DEBUGMSGTL(("mibII/tcpTable", "nl_recv(): %s\n", nl_geterror()));
-			snmp_log(LOG_ERR, "snmpd: nl_recv(): %s\n", nl_geterror());
+			DEBUGMSGTL(("mibII/tcpTable", "nl_recv(): %s\n", nl_geterror(1)));
+			snmp_log(LOG_ERR, "snmpd: nl_recv(): %s\n", nl_geterror(1));
 			nl_handle_destroy(nl);
 			return -1;
 		}
