aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/cfg.c
diff options
context:
space:
mode:
authorJavier Cardona <javier@cozybit.com>2011-05-03 19:57:11 -0400
committerJohn W. Linville <linville@tuxdriver.com>2011-05-11 14:44:46 -0400
commit9c3990aaec0ad9f686ef6480f6861f2df89b2a7a (patch)
tree5e073ffce0ce0aed45e9dfeb9f41efc140c770f7 /net/mac80211/cfg.c
parent0a35d36d6f019bde6c98812456798275b02e5aee (diff)
nl80211: Let userspace drive the peer link management states.
Signed-off-by: Javier Cardona <javier@cozybit.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/cfg.c')
-rw-r--r--net/mac80211/cfg.c30
1 files changed, 21 insertions, 9 deletions
diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c
index 18c2555e04e6..51f775772d9e 100644
--- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c
@@ -734,15 +734,27 @@ static void sta_apply_parameters(struct ieee80211_local *local,
734 params->ht_capa, 734 params->ht_capa,
735 &sta->sta.ht_cap); 735 &sta->sta.ht_cap);
736 736
737 if (ieee80211_vif_is_mesh(&sdata->vif) && params->plink_action) { 737 if (ieee80211_vif_is_mesh(&sdata->vif)) {
738 switch (params->plink_action) { 738 if (sdata->u.mesh.security & IEEE80211_MESH_SEC_SECURED)
739 case PLINK_ACTION_OPEN: 739 switch (params->plink_state) {
740 mesh_plink_open(sta); 740 case PLINK_LISTEN:
741 break; 741 case PLINK_ESTAB:
742 case PLINK_ACTION_BLOCK: 742 case PLINK_BLOCKED:
743 mesh_plink_block(sta); 743 sta->plink_state = params->plink_state;
744 break; 744 break;
745 } 745 default:
746 /* nothing */
747 break;
748 }
749 else
750 switch (params->plink_action) {
751 case PLINK_ACTION_OPEN:
752 mesh_plink_open(sta);
753 break;
754 case PLINK_ACTION_BLOCK:
755 mesh_plink_block(sta);
756 break;
757 }
746 } 758 }
747} 759}
748 760