Deleted Added
full compact
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 ---