To properly compile with netlink we added a patch that ports the
netlink use to libnl-3 API.

Signed-off-by: Otavio Salvador <[email protected]>
---
 .../net-snmp/files/libnl-3-support.patch           |   69 ++++++++++++++++++++
 meta-oe/recipes-extended/net-snmp/net-snmp.inc     |    4 +-
 .../recipes-extended/net-snmp/net-snmp_5.7.1.bb    |    3 +-
 3 files changed, 73 insertions(+), 3 deletions(-)
 create mode 100644 
meta-oe/recipes-extended/net-snmp/files/libnl-3-support.patch

diff --git a/meta-oe/recipes-extended/net-snmp/files/libnl-3-support.patch 
b/meta-oe/recipes-extended/net-snmp/files/libnl-3-support.patch
new file mode 100644
index 0000000..72699b8
--- /dev/null
+++ b/meta-oe/recipes-extended/net-snmp/files/libnl-3-support.patch
@@ -0,0 +1,69 @@
+Add support to libnl-3
+
+Upstream-Status: Pending
+
+--- net-snmp-5.6.1/agent/mibgroup/mibII/tcpTable.c.org 2011-03-27 
22:39:13.428728506 +0200
++++ net-snmp-5.6.1/agent/mibgroup/mibII/tcpTable.c     2011-03-27 
22:39:47.606956561 +0200
+@@ -555,8 +555,9 @@
+ static int
+ tcpTable_load_netlink(void)
+ {
++      int err;
+       /*  TODO: perhaps use permanent nl handle? */
+-      struct nl_handle *nl = nl_handle_alloc();
++      struct nl_sock *nl = nl_socket_alloc();
+ 
+       if (nl == NULL) {
+               DEBUGMSGTL(("mibII/tcpTable", "Failed to allocate netlink 
handle\n"));
+@@ -564,10 +565,10 @@
+               return -1;
+       }
+ 
+-      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());
+-              nl_handle_destroy(nl);
++      if ((err = nl_connect(nl, NETLINK_INET_DIAG)) < 0) {
++              DEBUGMSGTL(("mibII/tcpTable", "Failed to connect to netlink: 
%s\n", nl_geterror(err)));
++              snmp_log(LOG_ERR, "snmpd: Couldn't connect to netlink: %s\n", 
nl_geterror(err));
++              nl_socket_free(nl);
+               return -1;
+       }
+ 
+@@ -579,10 +580,10 @@
+       struct nl_msg *nm = nlmsg_alloc_simple(TCPDIAG_GETSOCK, 
NLM_F_ROOT|NLM_F_MATCH|NLM_F_REQUEST);
+       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());
+-              nl_handle_destroy(nl);
++      if ((err = nl_send_auto_complete(nl, nm)) < 0) {
++              DEBUGMSGTL(("mibII/tcpTable", "nl_send_autocomplete(): %s\n", 
nl_geterror(err)));
++              snmp_log(LOG_ERR, "snmpd: nl_send_autocomplete(): %s\n", 
nl_geterror(err));
++              nl_socket_free(nl);
+               return -1;
+       }
+       nlmsg_free(nm);
+@@ -593,9 +594,9 @@
+ 
+       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());
+-                      nl_handle_destroy(nl);
++                      DEBUGMSGTL(("mibII/tcpTable", "nl_recv(): %s\n", 
nl_geterror(len)));
++                      snmp_log(LOG_ERR, "snmpd: nl_recv(): %s\n", 
nl_geterror(len));
++                      nl_socket_free(nl);
+                       return -1;
+               }
+ 
+@@ -644,7 +645,7 @@
+               free(buf);
+       }
+ 
+-      nl_handle_destroy(nl);
++      nl_socket_free(nl);
+ 
+       if (tcp_head) {
+               DEBUGMSGTL(("mibII/tcpTable", "Loaded TCP Table using 
netlink\n"));
diff --git a/meta-oe/recipes-extended/net-snmp/net-snmp.inc 
b/meta-oe/recipes-extended/net-snmp/net-snmp.inc
index 159c374..c202751 100644
--- a/meta-oe/recipes-extended/net-snmp/net-snmp.inc
+++ b/meta-oe/recipes-extended/net-snmp/net-snmp.inc
@@ -2,12 +2,12 @@ DESCRIPTION = "Various tools relating to the Simple Network 
Management Protocol"
 HOMEPAGE = "http://www.net-snmp.org/";
 LICENSE = "BSD"
 
-DEPENDS = "openssl"
+DEPENDS = "openssl libnl"
 RDEPENDS_${PN}-server += "net-snmp-mibs"
 RDEPENDS_${PN}-client += "net-snmp-mibs"
 RDEPENDS_${PN}-dev = "net-snmp-client (= ${EXTENDPV}) net-snmp-server (= 
${EXTENDPV})"
 RRECOMMENDS_${PN}-dbg = "net-snmp-client (= ${EXTENDPV}) net-snmp-server (= 
${EXTENDPV})"
-INC_PR = "r0"
+INC_PR = "r1"
 
 inherit autotools update-rc.d siteinfo
 
diff --git a/meta-oe/recipes-extended/net-snmp/net-snmp_5.7.1.bb 
b/meta-oe/recipes-extended/net-snmp/net-snmp_5.7.1.bb
index 55dd9a6..9cbc5a8 100644
--- a/meta-oe/recipes-extended/net-snmp/net-snmp_5.7.1.bb
+++ b/meta-oe/recipes-extended/net-snmp/net-snmp_5.7.1.bb
@@ -1,9 +1,10 @@
 require net-snmp.inc
-PR = "${INC_PR}.1"
+PR = "${INC_PR}.2"
 LIC_FILES_CHKSUM = 
"file://README;beginline=3;endline=8;md5=7f7f00ba639ac8e8deb5a622ea24634e"
 
 SRC_URI = "${SOURCEFORGE_MIRROR}/net-snmp/net-snmp-${PV}.tar.gz \
         file://sync-with-5.7-branch.patch \
+        file://libnl-3-support.patch \
         file://init \
         file://snmpd.conf \
         file://snmptrapd.conf"
-- 
1.7.2.5


_______________________________________________
Openembedded-devel mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel

Reply via email to