From c831bcda3e2638c55b286bd538415ea79f510cdb Mon Sep 17 00:00:00 2001 From: Vadim Kochan Date: Thu, 4 Aug 2016 19:30:18 +0300 Subject: [PATCH] trafgen: Allow to compile without libnl trafgen uses libnl only to inject mac80211 frames but it might be not needed in some embedded or switch environments. Let's make it possible to disable this feature. In case the `--rfraw' option is used, the user will get a panic message. Signed-off-by: Vadim Kochan Signed-off-by: Tobias Klauser --- mac80211.c | 1 - mac80211.h | 14 ++++++++++++++ trafgen/Makefile | 21 +++++++++++++++------ 3 files changed, 29 insertions(+), 7 deletions(-) diff --git a/mac80211.c b/mac80211.c index f22b600f..9aea5a0e 100644 --- a/mac80211.c +++ b/mac80211.c @@ -24,7 +24,6 @@ #include #include -#include "die.h" #include "str.h" #include "dev.h" #include "mac80211.h" diff --git a/mac80211.h b/mac80211.h index dea4ae0f..bae28b1a 100644 --- a/mac80211.h +++ b/mac80211.h @@ -1,7 +1,21 @@ #ifndef MAC80211_H #define MAC80211_H +#include "config.h" +#include "die.h" + +#ifdef HAVE_LIBNL extern void enter_rfmon_mac80211(const char *device, char **mondev); extern void leave_rfmon_mac80211(const char *mondev); +#else +static inline void enter_rfmon_mac80211(const char *device, char **mondev) +{ + panic("No built-in libnl support!\n"); +} + +static inline void leave_rfmon_mac80211(const char *mondev) +{ +} +#endif /* HAVE_LIBNL */ #endif /* MAC80211_H */ diff --git a/trafgen/Makefile b/trafgen/Makefile index 3f78f07f..876ed93a 100644 --- a/trafgen/Makefile +++ b/trafgen/Makefile @@ -1,6 +1,9 @@ -trafgen-libs = $(shell PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) $(PKG_CONFIG) --libs libnl-3.0) \ - $(shell PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) $(PKG_CONFIG) --libs libnl-genl-3.0) \ - -lm +trafgen-libs = -lm + +ifeq ($(CONFIG_LIBNL), 1) +trafgen-libs += $(shell PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) $(PKG_CONFIG) --libs libnl-3.0) \ + $(shell PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) $(PKG_CONFIG) --libs libnl-genl-3.0) +endif trafgen-objs = xmalloc.o \ die.o \ @@ -13,7 +16,6 @@ trafgen-objs = xmalloc.o \ str.o \ sig.o \ sock.o \ - mac80211.o \ ring_tx.o \ ring.o \ timer.o \ @@ -27,13 +29,20 @@ trafgen-objs = xmalloc.o \ trafgen_parser.tab.o \ trafgen.o +ifeq ($(CONFIG_LIBNL), 1) +trafgen-objs += mac80211.o +endif + trafgen-lex = trafgen_lexer.yy.o trafgen-yaac = trafgen_parser.tab.o +trafgen-eflags = -I.. + +ifeq ($(CONFIG_LIBNL), 1) trafgen-eflags = $(shell PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) $(PKG_CONFIG) --cflags libnl-3.0) \ - $(shell PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) $(PKG_CONFIG) --cflags libnl-genl-3.0) \ - -I.. + $(shell PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) $(PKG_CONFIG) --cflags libnl-genl-3.0) +endif trafgen-confs = trafgen_stddef.h -- 2.11.4.GIT