summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--package/swconfig/Makefile17
-rw-r--r--package/swconfig/src/swlib.c15
2 files changed, 19 insertions, 13 deletions
diff --git a/package/swconfig/Makefile b/package/swconfig/Makefile
index 5959ef4c8c..fcabf83b59 100644
--- a/package/swconfig/Makefile
+++ b/package/swconfig/Makefile
@@ -6,24 +6,25 @@
#
include $(TOPDIR)/rules.mk
-include $(INCLUDE_DIR)/kernel.mk
-PKG_NAME:=kmod-swconfig
+PKG_NAME:=swconfig
PKG_RELEASE:=1
-PKG_BUILD_DEPENDS:=libnl
include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/kernel.mk
define Package/swconfig
SECTION:=base
CATEGORY:=Base system
- DEPENDS:=@LINUX_2_6_26||LINUX_2_6_27||LINUX_2_6_28||LINUX_2_6_29 +libuci
+ DEPENDS:=@LINUX_2_6_26||LINUX_2_6_27||LINUX_2_6_28||LINUX_2_6_29 +libuci +libnl-tiny
TITLE:=Switch configuration utility
endef
-TARGET_CPPFLAGS += \
+TARGET_CPPFLAGS := \
+ -I$(STAGING_DIR)/usr/include/libnl-tiny \
-I$(LINUX_DIR)/include \
- -I$(PKG_BUILD_DIR)
+ -I$(PKG_BUILD_DIR) \
+ $(TARGET_CPPFLAGS)
define Build/Prepare
mkdir -p $(PKG_BUILD_DIR)
@@ -31,10 +32,10 @@ define Build/Prepare
endef
define Build/Compile
- CFLAGS="$(TARGET_CFLAGS) $(TARGET_CPPFLAGS)" \
+ CFLAGS="$(TARGET_CPPFLAGS) $(TARGET_CFLAGS)" \
$(MAKE) -C $(PKG_BUILD_DIR) \
$(TARGET_CONFIGURE_OPTS) \
- LIBS="-L$(STAGING_DIR)/usr/lib $(STAGING_DIR)/usr/lib/libnl.a -lm -luci"
+ LIBS="$(TARGET_LDFLAGS) -lnl-tiny -lm -luci"
endef
define Package/swconfig/install
diff --git a/package/swconfig/src/swlib.c b/package/swconfig/src/swlib.c
index fbc036555d..04b3bef49d 100644
--- a/package/swconfig/src/swlib.c
+++ b/package/swconfig/src/swlib.c
@@ -24,6 +24,9 @@
#include <sys/socket.h>
#include <linux/switch.h>
#include "swlib.h"
+#include <netlink/netlink.h>
+#include <netlink/genl/genl.h>
+#include <netlink/genl/family.h>
//#define DEBUG 1
#ifdef DEBUG
@@ -32,7 +35,7 @@
#define DPRINTF(fmt, ...) do {} while (0)
#endif
-static struct nl_handle *handle;
+static struct nl_sock *handle;
static struct nl_cache *cache;
static struct genl_family *family;
static struct nlattr *tb[SWITCH_ATTR_MAX];
@@ -507,7 +510,7 @@ swlib_priv_free(void)
if (cache)
nl_cache_free(cache);
if (handle)
- nl_handle_destroy(handle);
+ nl_socket_free(handle);
handle = NULL;
cache = NULL;
}
@@ -515,7 +518,9 @@ swlib_priv_free(void)
static int
swlib_priv_init(void)
{
- handle = nl_handle_alloc();
+ int ret;
+
+ handle = nl_socket_alloc();
if (!handle) {
DPRINTF("Failed to create handle\n");
goto err;
@@ -526,8 +531,8 @@ swlib_priv_init(void)
goto err;
}
- cache = genl_ctrl_alloc_cache(handle);
- if (!cache) {
+ ret = genl_ctrl_alloc_cache(handle, &cache);
+ if (ret < 0) {
DPRINTF("Failed to allocate netlink cache\n");
goto err;
}