From: pat-lkml <pat-lkml@erley.org>
To: Johannes Berg <johannes@sipsolutions.net>
Cc: linux-wireless <linux-wireless@vger.kernel.org>
Subject: Re: Userspace tools: Roadmap?
Date: Thu, 11 Dec 2008 23:58:17 -0500 [thread overview]
Message-ID: <4941EF69.5040108@erley.org> (raw)
In-Reply-To: <1228780960.22164.162.camel@johannes.berg>
Attached is a newer 'better' version based off of how hostapd is
handling this. This patch adds an option, CONFIG_LIBNL20, which enables
LIBNL20 compatibility. I haven't ever been able to get iw to build with
libnl-1.0 or libnl-1.1 on my system, so I haven't been able to test
that, but it should work.
Signed-off-by: Pat Erley <pat-lkml@erley.org>
---
diff --git a/Makefile b/Makefile
index df59b51..a10f72f 100644
--- a/Makefile
+++ b/Makefile
@@ -10,14 +10,25 @@ MKDIR ?= mkdir -p
INSTALL ?= install
CC ?= "gcc"
-CFLAGS += -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs
-fno-strict-aliasing -fno-common -Werror-implicit-function-declaration
`pkg-config --cflags libnl-1`
+CFLAGS += -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs
-fno-strict-aliasing -fno-common -Werror-implicit-function-declaration
CFLAGS += -O2 -g
-LDFLAGS += `pkg-config --libs libnl-1`
-NLVERSION = 1.0
+NLVERSION = 2.0
OBJS = iw.o info.o phy.o interface.o station.o util.o mpath.o reg.o
mesh.o genl.o
ALL = iw
+ifeq ($(NLVERSION), 2.0)
+CFLAGS += `pkg-config --cflags libnl-2.0` -DCONFIG_LIBNL20
+LDFLAGS += `pkg-config --libs libnl-2.0`
+LIBS += -lnl -lnl-genl -lnl-nf -lnl-route
+NLTESTVERSION = 2.0
+else
+CFLAGS += `pkg-config --cflags libnl-1`
+LDFLAGS += `pkg-config --libs libnl-1.0`
+LIBS += -lnl
+NLTESTVERSION = 1
+endif
+
ifeq ($(V),1)
Q=
NQ=true
@@ -29,7 +40,7 @@ endif
all: version_check $(ALL)
version_check:
- @if ! pkg-config --atleast-version=$(NLVERSION) libnl-1; then echo
"You need at least libnl version $(NLVERSION)"; exit 1; fi
+ @if ! pkg-config --atleast-version=$(NLVERSION)
libnl-$(NLTESTVERSION); then echo "You need at least libnl version
$(NLVERSION)"; exit 1; fi
version.h: version.sh
@@ -42,7 +53,7 @@ version.h: version.sh
iw: $(OBJS)
@$(NQ) ' CC ' iw
- $(Q)$(CC) $(LDFLAGS) $(OBJS) -o iw
+ $(Q)$(CC) $(LDFLAGS) $(OBJS) $(LIBS) -o iw
check:
$(Q)$(MAKE) all CC="REAL_CC=$(CC) CHECK=\"sparse -Wall\" cgcc"
diff --git a/iw.c b/iw.c
index afae643..7038973 100644
--- a/iw.c
+++ b/iw.c
@@ -23,6 +23,13 @@
#include "iw.h"
#include "version.h"
+#ifdef CONFIG_LIBNL20
+/* libnl 2.0 compatibility code */
+#define nl_handle_alloc_cb nl_socket_alloc_cb
+#define nl_handle_alloc nl_socket_alloc
+#define nl_handle_destroy nl_socket_free
+#endif /* CONFIG_LIBNL20 */
+
static int debug = 0;
static int nl80211_init(struct nl80211_state *state)
@@ -40,9 +47,12 @@ static int nl80211_init(struct nl80211_state *state)
err = -ENOLINK;
goto out_handle_destroy;
}
-
+#ifdef CONFIG_LIBNL20
+ if (genl_ctrl_alloc_cache(state->nl_handle, &(state->nl_cache))) {
+#else
state->nl_cache = genl_ctrl_alloc_cache(state->nl_handle);
if (!state->nl_cache) {
+#endif
fprintf(stderr, "Failed to allocate generic netlink cache.\n");
err = -ENOMEM;
goto out_handle_destroy;
next prev parent reply other threads:[~2008-12-12 5:05 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-12-07 23:29 Userspace tools: Roadmap? Dan E
2008-12-08 7:02 ` Rami Rosen
2008-12-08 8:13 ` Johannes Berg
2008-12-08 23:18 ` Dan E
2008-12-08 23:26 ` Johannes Berg
2008-12-08 23:52 ` pat-lkml
2008-12-09 0:02 ` Johannes Berg
2008-12-09 0:08 ` pat-lkml
2008-12-12 4:58 ` pat-lkml [this message]
2008-12-12 16:24 ` Pavel Roskin
2008-12-12 21:58 ` Johannes Berg
2008-12-12 22:37 ` pat-lkml
2008-12-12 22:38 ` Johannes Berg
2008-12-12 23:36 ` pat-lkml
2008-12-12 23:42 ` pat-lkml
2008-12-12 23:50 ` Johannes Berg
2008-12-12 23:48 ` pat-lkml
2008-12-13 0:05 ` Johannes Berg
2008-12-13 0:10 ` pat-lkml
2008-12-13 0:10 ` Johannes Berg
2008-12-09 0:43 ` Dan E
2008-12-09 0:51 ` Johannes Berg
2008-12-09 1:01 ` Dan E
2008-12-09 1:05 ` Johannes Berg
2009-01-15 7:52 ` David Shwatrz
2009-01-15 9:35 ` Johannes Berg
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4941EF69.5040108@erley.org \
--to=pat-lkml@erley.org \
--cc=johannes@sipsolutions.net \
--cc=linux-wireless@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).