From c7d907deab25ac62ddd412d239581aed5a68caa8 Mon Sep 17 00:00:00 2001 From: Sepherosa Ziehau Date: Fri, 4 Aug 2006 15:42:27 +0000 Subject: [PATCH] - Add ieee80211com.ic_sysctl_oid, so sub-wlan module (e.g. wlan_wep) can further expand the sysctl tree - Fix a possible memory leakage in ieee80211_sysctl_attach() --- sys/netproto/802_11/ieee80211_var.h | 3 ++- sys/netproto/802_11/wlan/ieee80211_dragonfly.c | 8 ++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/sys/netproto/802_11/ieee80211_var.h b/sys/netproto/802_11/ieee80211_var.h index 2371309dde..97779561d2 100644 --- a/sys/netproto/802_11/ieee80211_var.h +++ b/sys/netproto/802_11/ieee80211_var.h @@ -30,7 +30,7 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * $FreeBSD: src/sys/net80211/ieee80211_var.h,v 1.22.2.11 2006/03/13 03:05:48 sam Exp $ - * $DragonFly: src/sys/netproto/802_11/ieee80211_var.h,v 1.3 2006/05/18 13:51:46 sephe Exp $ + * $DragonFly: src/sys/netproto/802_11/ieee80211_var.h,v 1.4 2006/08/04 15:42:27 sephe Exp $ */ #ifndef _NET80211_IEEE80211_VAR_H_ #define _NET80211_IEEE80211_VAR_H_ @@ -100,6 +100,7 @@ struct ieee80211com { struct ifnet *ic_ifp; /* associated device */ struct ieee80211_stats ic_stats; /* statistics */ struct sysctl_ctx_list *ic_sysctl; /* dynamic sysctl context */ + struct sysctl_oid *ic_sysctl_oid; /* dynamic sysctl oid */ uint32_t ic_debug; /* debug msg flags */ int ic_vap; /* virtual AP index */ diff --git a/sys/netproto/802_11/wlan/ieee80211_dragonfly.c b/sys/netproto/802_11/wlan/ieee80211_dragonfly.c index df32af3373..2370968394 100644 --- a/sys/netproto/802_11/wlan/ieee80211_dragonfly.c +++ b/sys/netproto/802_11/wlan/ieee80211_dragonfly.c @@ -25,7 +25,7 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * $FreeBSD: src/sys/net80211/ieee80211_freebsd.c,v 1.7.2.2 2005/12/22 19:22:51 sam Exp $ - * $DragonFly: src/sys/netproto/802_11/wlan/ieee80211_dragonfly.c,v 1.1 2006/05/18 13:51:46 sephe Exp $ + * $DragonFly: src/sys/netproto/802_11/wlan/ieee80211_dragonfly.c,v 1.2 2006/08/04 15:42:27 sephe Exp $ */ /* @@ -96,8 +96,11 @@ ieee80211_sysctl_attach(struct ieee80211com *ic) snprintf(num, sizeof(num), "%u", ic->ic_vap); oid = SYSCTL_ADD_NODE(ctx, &SYSCTL_NODE_CHILDREN(_net, wlan), OID_AUTO, num, CTLFLAG_RD, NULL, ""); - if (oid == NULL) + if (oid == NULL) { + printf("add sysctl node net.wlan.%s failed\n", num); + free(ctx, M_DEVBUF); return; + } SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(oid), OID_AUTO, "%parent", CTLFLAG_RD, ic, 0, ieee80211_sysctl_parent, "A", @@ -133,6 +136,7 @@ ieee80211_sysctl_attach(struct ieee80211com *ic) "consecutive beacon misses before scanning"); ic->ic_sysctl = ctx; + ic->ic_sysctl_oid = oid; } void -- 2.41.0