Re: [PATCH] nl80211: Use genl_ctrl_resolve()
- From: Dan Williams <dcbw redhat com>
- To: Thomas Graf <tgraf redhat com>
- Cc: networkmanager-list gnome org, Johannes Berg <johannes berg intel com>
- Subject: Re: [PATCH] nl80211: Use genl_ctrl_resolve()
- Date: Mon, 14 Nov 2011 18:45:40 -0600
On Thu, 2011-11-10 at 17:34 +0100, Thomas Graf wrote:
> Based on a patch for iw by Johannes Berg <johannes berg intel com>
>
> This simplifies the code quite a bit since we don't need
> an nl_cache or nl_family anymore.
>
> genl_ctrl_resolve() is available in libnl1.1, libnl2 and libnl3.
Pushed, thanks.
Dan
> Cc: Johannes Berg <johannes berg intel com>
> Signed-off-by: Thomas Graf <tgraf redhat com>
> ---
> src/nm-netlink-compat.h | 12 ------------
> src/wifi-utils-nl80211.c | 17 ++++-------------
> 2 files changed, 4 insertions(+), 25 deletions(-)
>
> diff --git a/src/nm-netlink-compat.h b/src/nm-netlink-compat.h
> index 478bc8b..af21fb9 100644
> --- a/src/nm-netlink-compat.h
> +++ b/src/nm-netlink-compat.h
> @@ -172,18 +172,6 @@ __nl_cache_include (struct nl_cache *cache, struct nl_object *obj, change_func_t
> }
> #define nl_cache_include __nl_cache_include
>
> -#include <netlink/genl/ctrl.h>
> -
> -static inline int __genl_ctrl_alloc_cache(struct nl_sock *h, struct nl_cache **cache)
> -{
> - struct nl_cache *tmp = genl_ctrl_alloc_cache(h);
> - if (!tmp)
> - return -ENOMEM;
> - *cache = tmp;
> - return 0;
> -}
> -#define genl_ctrl_alloc_cache __genl_ctrl_alloc_cache
> -
> #define NLE_SUCCESS 0
> #define NLE_FAILURE 1
> #define NLE_INTR 2
> diff --git a/src/wifi-utils-nl80211.c b/src/wifi-utils-nl80211.c
> index 614abd3..48c7656 100644
> --- a/src/wifi-utils-nl80211.c
> +++ b/src/wifi-utils-nl80211.c
> @@ -45,8 +45,7 @@
> typedef struct {
> WifiData parent;
> struct nl_sock *nl_sock;
> - struct nl_cache *nl_cache;
> - struct genl_family *nl_family;
> + int id;
> struct nl_cb *nl_cb;
> guint32 *freqs;
> int num_freqs;
> @@ -81,8 +80,7 @@ static struct nl_msg *nl80211_alloc_msg (WifiDataNl80211 *nl80211,
> if (!msg)
> return NULL;
>
> - genlmsg_put (msg, 0, 0, genl_family_get_id (nl80211->nl_family), 0,
> - flags, cmd, 0);
> + genlmsg_put (msg, 0, 0, nl80211->id, 0, flags, cmd, 0);
>
> NLA_PUT_U32 (msg, NL80211_ATTR_IFINDEX, nl80211->parent.ifindex);
>
> @@ -137,10 +135,6 @@ wifi_nl80211_deinit (WifiData *parent)
> {
> WifiDataNl80211 *nl80211 = (WifiDataNl80211 *) parent;
>
> - if (nl80211->nl_family)
> - genl_family_put (nl80211->nl_family);
> - if (nl80211->nl_cache)
> - nl_cache_free (nl80211->nl_cache);
> if (nl80211->nl_sock)
> nl_socket_free (nl80211->nl_sock);
> if (nl80211->nl_cb)
> @@ -672,11 +666,8 @@ wifi_nl80211_init (const char *iface, int ifindex)
> if (genl_connect (nl80211->nl_sock))
> goto error;
>
> - if (genl_ctrl_alloc_cache (nl80211->nl_sock, &nl80211->nl_cache))
> - goto error;
> -
> - nl80211->nl_family = genl_ctrl_search_by_name (nl80211->nl_cache, "nl80211");
> - if (nl80211->nl_family == NULL)
> + nl80211->id = genl_ctrl_resolve (nl80211->nl_sock, "nl80211");
> + if (nl80211->id < 0)
> goto error;
>
> nl80211->nl_cb = nl_cb_alloc (NL_CB_DEFAULT);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]