@@ -2162,17 +2162,17 @@ static int nl80211_register_action_frame(struct i802_bss *bss,
static int nl80211_init_connect_handle(struct i802_bss *bss)
{
- if (bss->nl_connect) {
+ if (bss->nl_connect_or_ctrl) {
wpa_printf(MSG_DEBUG,
- "nl80211: Connect handle already created (nl_connect=%p)",
- bss->nl_connect);
+ "nl80211: Connect handle already created (nl_connect_or_ctrl=%p)",
+ bss->nl_connect_or_ctrl);
return -1;
}
- bss->nl_connect = nl_create_handle(bss->nl_cb, "connect");
- if (!bss->nl_connect)
+ bss->nl_connect_or_ctrl = nl_create_handle(bss->nl_cb, "connect");
+ if (!bss->nl_connect_or_ctrl)
return -1;
- nl80211_register_eloop_read(&bss->nl_connect,
+ nl80211_register_eloop_read(&bss->nl_connect_or_ctrl,
wpa_driver_nl80211_event_receive,
bss->nl_cb, 1);
return 0;
@@ -2830,8 +2830,8 @@ static void wpa_driver_nl80211_deinit(struct i802_bss *bss)
nl80211_del_p2pdev(bss);
}
- if (bss->nl_connect)
- nl80211_destroy_eloop_handle(&bss->nl_connect, 1);
+ if (bss->nl_connect_or_ctrl)
+ nl80211_destroy_eloop_handle(&bss->nl_connect_or_ctrl, 1);
nl80211_destroy_bss(drv->first_bss);
@@ -3376,7 +3376,7 @@ static int nl80211_set_conn_keys(struct wpa_driver_associate_params *params,
int wpa_driver_nl80211_mlme(struct wpa_driver_nl80211_data *drv,
const u8 *addr, int cmd, u16 reason_code,
int local_state_change,
- struct nl_sock *nl_connect)
+ struct nl_sock *nl_connect_or_ctrl)
{
int ret;
struct nl_msg *msg;
@@ -3390,8 +3390,8 @@ int wpa_driver_nl80211_mlme(struct wpa_driver_nl80211_data *drv,
return -1;
}
- if (nl_connect)
- ret = send_and_recv(drv->global, nl_connect, msg, NULL, NULL);
+ if (nl_connect_or_ctrl)
+ ret = send_and_recv(drv->global, nl_connect_or_ctrl, msg, NULL, NULL);
else
ret = send_and_recv_msgs(drv, msg, NULL, NULL);
if (ret) {
@@ -3405,7 +3405,7 @@ int wpa_driver_nl80211_mlme(struct wpa_driver_nl80211_data *drv,
static int wpa_driver_nl80211_disconnect(struct wpa_driver_nl80211_data *drv,
u16 reason_code,
- struct nl_sock *nl_connect)
+ struct nl_sock *nl_connect_or_ctrl)
{
int ret;
int drv_associated = drv->associated;
@@ -3414,7 +3414,7 @@ static int wpa_driver_nl80211_disconnect(struct wpa_driver_nl80211_data *drv,
nl80211_mark_disconnected(drv);
/* Disconnect command doesn't need BSSID - it uses cached value */
ret = wpa_driver_nl80211_mlme(drv, NULL, NL80211_CMD_DISCONNECT,
- reason_code, 0, nl_connect);
+ reason_code, 0, nl_connect_or_ctrl);
/*
* For locally generated disconnect, supplicant already generates a
* DEAUTH event, so ignore the event from NL80211.
@@ -3437,12 +3437,12 @@ static int wpa_driver_nl80211_deauthenticate(struct i802_bss *bss,
return nl80211_leave_ibss(drv, 1);
}
if (!(drv->capa.flags & WPA_DRIVER_FLAGS_SME)) {
- struct nl_sock *nl_connect = NULL;
+ struct nl_sock *nl_connect_or_ctrl = NULL;
if (bss->use_nl_connect)
- nl_connect = bss->nl_connect;
+ nl_connect_or_ctrl = bss->nl_connect_or_ctrl;
return wpa_driver_nl80211_disconnect(drv, reason_code,
- nl_connect);
+ nl_connect_or_ctrl);
}
wpa_printf(MSG_DEBUG, "%s(addr=" MACSTR " reason_code=%d)",
__func__, MAC2STR(addr), reason_code);
@@ -5920,7 +5920,7 @@ static int nl80211_connect_common(struct wpa_driver_nl80211_data *drv,
static int wpa_driver_nl80211_try_connect(
struct wpa_driver_nl80211_data *drv,
struct wpa_driver_associate_params *params,
- struct nl_sock *nl_connect)
+ struct nl_sock *nl_connect_or_ctrl)
{
struct nl_msg *msg;
enum nl80211_auth_type type;
@@ -5985,8 +5985,8 @@ skip_auth_type:
if (ret)
goto fail;
- if (nl_connect)
- ret = send_and_recv(drv->global, nl_connect, msg,
+ if (nl_connect_or_ctrl)
+ ret = send_and_recv(drv->global, nl_connect_or_ctrl, msg,
NULL, (void *) -1);
else
ret = send_and_recv_msgs(drv, msg, NULL, (void *) -1);
@@ -6011,7 +6011,7 @@ fail:
static int wpa_driver_nl80211_connect(
struct wpa_driver_nl80211_data *drv,
struct wpa_driver_associate_params *params,
- struct nl_sock *nl_connect)
+ struct nl_sock *nl_connect_or_ctrl)
{
int ret;
@@ -6021,7 +6021,7 @@ static int wpa_driver_nl80211_connect(
else
os_memset(drv->auth_attempt_bssid, 0, ETH_ALEN);
- ret = wpa_driver_nl80211_try_connect(drv, params, nl_connect);
+ ret = wpa_driver_nl80211_try_connect(drv, params, nl_connect_or_ctrl);
if (ret == -EALREADY) {
/*
* cfg80211 does not currently accept new connections if
@@ -6032,9 +6032,9 @@ static int wpa_driver_nl80211_connect(
"disconnecting before reassociation "
"attempt");
if (wpa_driver_nl80211_disconnect(
- drv, WLAN_REASON_PREV_AUTH_NOT_VALID, nl_connect))
+ drv, WLAN_REASON_PREV_AUTH_NOT_VALID, nl_connect_or_ctrl))
return -1;
- ret = wpa_driver_nl80211_try_connect(drv, params, nl_connect);
+ ret = wpa_driver_nl80211_try_connect(drv, params, nl_connect_or_ctrl);
}
return ret;
}
@@ -6059,19 +6059,19 @@ static int wpa_driver_nl80211_associate(
if (!(drv->capa.flags & WPA_DRIVER_FLAGS_SME)) {
enum nl80211_iftype nlmode = params->p2p ?
NL80211_IFTYPE_P2P_CLIENT : NL80211_IFTYPE_STATION;
- struct nl_sock *nl_connect = NULL;
+ struct nl_sock *nl_connect_or_ctrl = NULL;
if (wpa_driver_nl80211_set_mode(priv, nlmode) < 0)
return -1;
if (params->key_mgmt_suite == WPA_KEY_MGMT_SAE ||
params->key_mgmt_suite == WPA_KEY_MGMT_FT_SAE) {
- nl_connect = bss->nl_connect;
+ nl_connect_or_ctrl = bss->nl_connect_or_ctrl;
bss->use_nl_connect = 1;
} else {
bss->use_nl_connect = 0;
}
- return wpa_driver_nl80211_connect(drv, params, nl_connect);
+ return wpa_driver_nl80211_connect(drv, params, nl_connect_or_ctrl);
}
nl80211_mark_disconnected(drv);
@@ -73,7 +73,7 @@ struct i802_bss {
int if_dynamic;
void *ctx;
- struct nl_sock *nl_preq, *nl_mgmt, *nl_connect;
+ struct nl_sock *nl_preq, *nl_mgmt, *nl_connect_or_ctrl;
struct nl_cb *nl_cb;
struct nl80211_wiphy_data *wiphy_data;
This patch is another preparation for rx over nl80211 control port. Besides the already used SOCKET_OWNER marking on interfaces, ctrl-port rx also sets a SOCKET_OWNER flag on the actual connect/associate or start AP. Afterwards, some operations can only be performed over the socket which set the owner flag initially. Signed-off-by: Markus Theil <markus.theil@tu-ilmenau.de> --- src/drivers/driver_nl80211.c | 52 ++++++++++++++++++------------------ src/drivers/driver_nl80211.h | 2 +- 2 files changed, 27 insertions(+), 27 deletions(-)