ieee80211_proto.c (165887) | ieee80211_proto.c (165894) |
---|---|
1/*- 2 * Copyright (c) 2001 Atsushi Onoe 3 * Copyright (c) 2002-2005 Sam Leffler, Errno Consulting 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions 8 * are met: --- 17 unchanged lines hidden (view full) --- 26 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 27 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 28 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 29 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 30 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 */ 32 33#include <sys/cdefs.h> | 1/*- 2 * Copyright (c) 2001 Atsushi Onoe 3 * Copyright (c) 2002-2005 Sam Leffler, Errno Consulting 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions 8 * are met: --- 17 unchanged lines hidden (view full) --- 26 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 27 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 28 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 29 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 30 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 */ 32 33#include <sys/cdefs.h> |
34__FBSDID("$FreeBSD: head/sys/net80211/ieee80211_proto.c 165887 2007-01-08 17:24:51Z sam $"); | 34__FBSDID("$FreeBSD: head/sys/net80211/ieee80211_proto.c 165894 2007-01-08 18:23:43Z sam $"); |
35 36/* 37 * IEEE 802.11 protocol support. 38 */ 39 40#include "opt_inet.h" 41 42#include <sys/param.h> --- 81 unchanged lines hidden (view full) --- 124 /* 125 * This should not be needed as we detach when reseting 126 * the state but be conservative here since the 127 * authenticator may do things like spawn kernel threads. 128 */ 129 if (ic->ic_auth->ia_detach) 130 ic->ic_auth->ia_detach(ic); 131 | 35 36/* 37 * IEEE 802.11 protocol support. 38 */ 39 40#include "opt_inet.h" 41 42#include <sys/param.h> --- 81 unchanged lines hidden (view full) --- 124 /* 125 * This should not be needed as we detach when reseting 126 * the state but be conservative here since the 127 * authenticator may do things like spawn kernel threads. 128 */ 129 if (ic->ic_auth->ia_detach) 130 ic->ic_auth->ia_detach(ic); 131 |
132 IF_DRAIN(&ic->ic_mgtq); | 132 ieee80211_drain_ifq(&ic->ic_mgtq); |
133 mtx_destroy(&ic->ic_mgtq.ifq_mtx); 134 135 /* 136 * Detach any ACL'ator. 137 */ 138 if (ic->ic_acl != NULL) 139 ic->ic_acl->iac_detach(ic); 140} --- 786 unchanged lines hidden (view full) --- 927 break; 928 case IEEE80211_M_HOSTAP: 929 ieee80211_iterate_nodes(&ic->ic_sta, 930 sta_disassoc, ic); 931 break; 932 default: 933 break; 934 } | 133 mtx_destroy(&ic->ic_mgtq.ifq_mtx); 134 135 /* 136 * Detach any ACL'ator. 137 */ 138 if (ic->ic_acl != NULL) 139 ic->ic_acl->iac_detach(ic); 140} --- 786 unchanged lines hidden (view full) --- 927 break; 928 case IEEE80211_M_HOSTAP: 929 ieee80211_iterate_nodes(&ic->ic_sta, 930 sta_disassoc, ic); 931 break; 932 default: 933 break; 934 } |
935 goto reset; | 935 break; |
936 case IEEE80211_S_ASSOC: 937 switch (ic->ic_opmode) { 938 case IEEE80211_M_STA: 939 IEEE80211_SEND_MGMT(ic, ni, 940 IEEE80211_FC0_SUBTYPE_DEAUTH, 941 IEEE80211_REASON_AUTH_LEAVE); 942 break; 943 case IEEE80211_M_HOSTAP: 944 ieee80211_iterate_nodes(&ic->ic_sta, 945 sta_deauth, ic); 946 break; 947 default: 948 break; 949 } | 936 case IEEE80211_S_ASSOC: 937 switch (ic->ic_opmode) { 938 case IEEE80211_M_STA: 939 IEEE80211_SEND_MGMT(ic, ni, 940 IEEE80211_FC0_SUBTYPE_DEAUTH, 941 IEEE80211_REASON_AUTH_LEAVE); 942 break; 943 case IEEE80211_M_HOSTAP: 944 ieee80211_iterate_nodes(&ic->ic_sta, 945 sta_deauth, ic); 946 break; 947 default: 948 break; 949 } |
950 goto reset; | 950 break; |
951 case IEEE80211_S_SCAN: 952 ieee80211_cancel_scan(ic); | 951 case IEEE80211_S_SCAN: 952 ieee80211_cancel_scan(ic); |
953 goto reset; | 953 break; |
954 case IEEE80211_S_AUTH: | 954 case IEEE80211_S_AUTH: |
955 reset: | 955 break; 956 } 957 if (ostate != IEEE80211_S_INIT) { 958 /* NB: optimize INIT -> INIT case */ |
956 ic->ic_mgt_timer = 0; | 959 ic->ic_mgt_timer = 0; |
957 IF_DRAIN(&ic->ic_mgtq); | 960 ieee80211_drain_ifq(&ic->ic_mgtq); |
958 ieee80211_reset_bss(ic); | 961 ieee80211_reset_bss(ic); |
959 break; | |
960 } 961 if (ic->ic_auth->ia_detach != NULL) 962 ic->ic_auth->ia_detach(ic); 963 break; 964 case IEEE80211_S_SCAN: 965 switch (ostate) { 966 case IEEE80211_S_INIT: 967 if ((ic->ic_opmode == IEEE80211_M_HOSTAP || --- 186 unchanged lines hidden --- | 962 } 963 if (ic->ic_auth->ia_detach != NULL) 964 ic->ic_auth->ia_detach(ic); 965 break; 966 case IEEE80211_S_SCAN: 967 switch (ostate) { 968 case IEEE80211_S_INIT: 969 if ((ic->ic_opmode == IEEE80211_M_HOSTAP || --- 186 unchanged lines hidden --- |