[PATCH] Allow wpa_supplicant to use libnl-2.0

Dan Williams dcbw at redhat.com
Thu Jul 2 11:30:18 EDT 2009


On Thu, 2009-07-02 at 10:02 -0500, Jon Loeliger wrote:
> Introduce CONFIG_LIBNL20 .config parameter and propogate
> that as a CFLAG in the Makefile.

Or use pkgconfig to autodetect what version you have installed.

Dan

> Add forward-compatibility code to allow the existing code
> to also use libnl-2.0.
> 
> Signed-off-by: Jon Loeliger <jdl at bigfootnetworks.com>
> ---
> 
>  This patch applies to:
>     git://w1.fi/srv/git/hostap-06.git
>     fa4e296f542af01da135d997358d6d45a32dd59e
> 
> and was originally posted on the linux-wireless list.
>  
> Also, I suspect that this define:
> 
>     +#define nl_handle nl_sock
> 
> may need to be added to the hostapd side as well, but
> I'm not using that and haven't investigated or tested that.
> 
> jdl
> 
>  src/drivers/driver_nl80211.c |   17 +++++++++++++++++
>  wpa_supplicant/Makefile      |    4 ++++
>  2 files changed, 21 insertions(+), 0 deletions(-)
> 
> diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c
> index a7b351a..66288f6 100644
> --- a/src/drivers/driver_nl80211.c
> +++ b/src/drivers/driver_nl80211.c
> @@ -47,6 +47,15 @@
>  #endif
>  
> 
> +#ifdef CONFIG_LIBNL20
> +/* libnl 2.0 compatibility code */
> +
> +#define nl_handle nl_sock
> +#define nl_handle_alloc_cb nl_socket_alloc_cb
> +#define nl_handle_destroy nl_socket_free
> +#endif /* CONFIG_LIBNL20 */
> +
> +
>  struct wpa_driver_nl80211_data {
>  	void *ctx;
>  	int wext_event_sock;
> @@ -1441,12 +1450,20 @@ static void * wpa_driver_nl80211_init(void *ctx, const char *ifname)
>  		goto err3;
>  	}
>  
> +#ifdef CONFIG_LIBNL20
> +	if (genl_ctrl_alloc_cache(drv->nl_handle, &drv->nl_cache) < 0) {
> +	    wpa_printf(MSG_ERROR, "nl80211: Failed to allocate generic "
> +			   "netlink cache");
> +		goto err3;
> +	}
> +#else
>  	drv->nl_cache = genl_ctrl_alloc_cache(drv->nl_handle);
>  	if (drv->nl_cache == NULL) {
>  		wpa_printf(MSG_ERROR, "nl80211: Failed to allocate generic "
>  			   "netlink cache");
>  		goto err3;
>  	}
> +#endif
>  
>  	drv->nl80211 = genl_ctrl_search_by_name(drv->nl_cache, "nl80211");
>  	if (drv->nl80211 == NULL) {
> diff --git a/wpa_supplicant/Makefile b/wpa_supplicant/Makefile
> index 45d6ada..fa43a0c 100644
> --- a/wpa_supplicant/Makefile
> +++ b/wpa_supplicant/Makefile
> @@ -135,6 +135,10 @@ ifdef CONFIG_DRIVER_NL80211
>  CFLAGS += -DCONFIG_DRIVER_NL80211
>  OBJS_d += ../src/drivers/driver_nl80211.o
>  LIBS += -lnl
> +ifdef CONFIG_LIBNL20
> +LIBS += -lnl-genl
> +CFLAGS += -DCONFIG_LIBNL20
> +endif
>  ifdef CONFIG_CLIENT_MLME
>  OBJS_d += ../src/drivers/radiotap.o
>  endif



More information about the HostAP mailing list