From owner-svn-src-head@freebsd.org Fri May 6 11:41:51 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 24605B31925; Fri, 6 May 2016 11:41:51 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D007C10D7; Fri, 6 May 2016 11:41:50 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u46BfoAO034605; Fri, 6 May 2016 11:41:50 GMT (envelope-from avos@FreeBSD.org) Received: (from avos@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u46BfoTT034604; Fri, 6 May 2016 11:41:50 GMT (envelope-from avos@FreeBSD.org) Message-Id: <201605061141.u46BfoTT034604@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avos set sender to avos@FreeBSD.org using -f From: Andriy Voskoboinyk Date: Fri, 6 May 2016 11:41:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r299171 - head/sys/net80211 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 May 2016 11:41:51 -0000 Author: avos Date: Fri May 6 11:41:49 2016 New Revision: 299171 URL: https://svnweb.freebsd.org/changeset/base/299171 Log: net80211: restore 'iflladdr_event' event handler. Now 'ether' argument to ifconfig can be used as an alias to 'wlanaddr'. PR: 208933 Modified: head/sys/net80211/ieee80211_freebsd.c Modified: head/sys/net80211/ieee80211_freebsd.c ============================================================================== --- head/sys/net80211/ieee80211_freebsd.c Fri May 6 09:23:53 2016 (r299170) +++ head/sys/net80211/ieee80211_freebsd.c Fri May 6 11:41:49 2016 (r299171) @@ -851,6 +851,7 @@ ieee80211_load_module(const char *modnam } static eventhandler_tag wlan_bpfevent; +static eventhandler_tag wlan_ifllevent; static void bpf_track(void *arg, struct ifnet *ifp, int dlt, int attach) @@ -879,6 +880,21 @@ bpf_track(void *arg, struct ifnet *ifp, } /* + * Change MAC address on the vap (if was not started). + */ +static void +wlan_iflladdr(void *arg __unused, struct ifnet *ifp) +{ + /* NB: identify vap's by if_init */ + if (ifp->if_init == ieee80211_init && + (ifp->if_flags & IFF_UP) == 0) { + struct ieee80211vap *vap = ifp->if_softc; + + IEEE80211_ADDR_COPY(vap->iv_myaddr, IF_LLADDR(ifp)); + } +} + +/* * Module glue. * * NB: the module name is "wlan" for compatibility with NetBSD. @@ -892,12 +908,15 @@ wlan_modevent(module_t mod, int type, vo printf("wlan: <802.11 Link Layer>\n"); wlan_bpfevent = EVENTHANDLER_REGISTER(bpf_track, bpf_track, 0, EVENTHANDLER_PRI_ANY); + wlan_ifllevent = EVENTHANDLER_REGISTER(iflladdr_event, + wlan_iflladdr, NULL, EVENTHANDLER_PRI_ANY); wlan_cloner = if_clone_simple(wlanname, wlan_clone_create, wlan_clone_destroy, 0); return 0; case MOD_UNLOAD: if_clone_detach(wlan_cloner); EVENTHANDLER_DEREGISTER(bpf_track, wlan_bpfevent); + EVENTHANDLER_DEREGISTER(iflladdr_event, wlan_ifllevent); return 0; } return EINVAL;