This was not documented properly and was not really used nor would it be
suitable to be used in generic way as it was implemented. It is better
to just remove the parameter since there does not seem to be any
reasonable use for it.
}
#endif /* CONFIG_WPS */
}
#endif /* CONFIG_WPS */
- if (hostapd_send_mgmt_frame(hapd, resp, pos - (u8 *) resp, 0) < 0)
+ if (hostapd_send_mgmt_frame(hapd, resp, pos - (u8 *) resp) < 0)
perror("handle_probe_req: send");
os_free(resp);
perror("handle_probe_req: send");
os_free(resp);
-hostapd_send_mgmt_frame(struct hostapd_data *hapd, const void *msg, size_t len,
- int flags)
+hostapd_send_mgmt_frame(struct hostapd_data *hapd, const void *msg, size_t len)
{
if (hapd->driver == NULL || hapd->driver->send_mgmt_frame == NULL)
return 0;
{
if (hapd->driver == NULL || hapd->driver->send_mgmt_frame == NULL)
return 0;
- return hapd->driver->send_mgmt_frame(hapd->drv_priv, msg, len, flags);
+ return hapd->driver->send_mgmt_frame(hapd->drv_priv, msg, len);
os_memcpy(m->bssid, hapd->own_addr, ETH_ALEN);
os_memcpy(&m->u, data, data_len);
os_memcpy(m->bssid, hapd->own_addr, ETH_ALEN);
os_memcpy(&m->u, data, data_len);
- res = hostapd_send_mgmt_frame(hapd, (u8 *) m, mlen, 0);
+ res = hostapd_send_mgmt_frame(hapd, (u8 *) m, mlen);
os_free(m);
return res;
}
os_free(m);
return res;
}
os_memcpy(mgmt.bssid, hapd->own_addr, ETH_ALEN);
mgmt.u.deauth.reason_code = host_to_le16(reason);
if (hostapd_send_mgmt_frame(hapd, &mgmt, IEEE80211_HDRLEN +
os_memcpy(mgmt.bssid, hapd->own_addr, ETH_ALEN);
mgmt.u.deauth.reason_code = host_to_le16(reason);
if (hostapd_send_mgmt_frame(hapd, &mgmt, IEEE80211_HDRLEN +
- sizeof(mgmt.u.deauth), 0) < 0)
+ sizeof(mgmt.u.deauth)) < 0)
perror("ieee802_11_send_deauth: send");
}
perror("ieee802_11_send_deauth: send");
}
" auth_alg=%d auth_transaction=%d resp=%d (IE len=%lu)",
MAC2STR(dst), auth_alg, auth_transaction,
resp, (unsigned long) ies_len);
" auth_alg=%d auth_transaction=%d resp=%d (IE len=%lu)",
MAC2STR(dst), auth_alg, auth_transaction,
resp, (unsigned long) ies_len);
- if (hostapd_send_mgmt_frame(hapd, reply, rlen, 0) < 0)
+ if (hostapd_send_mgmt_frame(hapd, reply, rlen) < 0)
perror("send_auth_reply: send");
os_free(buf);
perror("send_auth_reply: send");
os_free(buf);
send_len += p - reply->u.assoc_resp.variable;
}
send_len += p - reply->u.assoc_resp.variable;
}
- if (hostapd_send_mgmt_frame(hapd, reply, send_len, 0) < 0)
+ if (hostapd_send_mgmt_frame(hapd, reply, send_len) < 0)
perror("handle_assoc: send");
}
perror("handle_assoc: send");
}
os_memcpy(mgmt.u.action.u.sa_query_req.trans_id, trans_id,
WLAN_SA_QUERY_TR_ID_LEN);
end = mgmt.u.action.u.sa_query_req.trans_id + WLAN_SA_QUERY_TR_ID_LEN;
os_memcpy(mgmt.u.action.u.sa_query_req.trans_id, trans_id,
WLAN_SA_QUERY_TR_ID_LEN);
end = mgmt.u.action.u.sa_query_req.trans_id + WLAN_SA_QUERY_TR_ID_LEN;
- if (hostapd_send_mgmt_frame(hapd, &mgmt, end - (u8 *) &mgmt, 0) < 0)
+ if (hostapd_send_mgmt_frame(hapd, &mgmt, end - (u8 *) &mgmt) < 0)
perror("ieee802_11_send_sa_query_req: send");
}
perror("ieee802_11_send_sa_query_req: send");
}
os_memcpy(mgmt->bssid, hapd->own_addr, ETH_ALEN);
mgmt->u.action.category |= 0x80;
os_memcpy(mgmt->bssid, hapd->own_addr, ETH_ALEN);
mgmt->u.action.category |= 0x80;
- hostapd_send_mgmt_frame(hapd, mgmt, len, 0);
+ hostapd_send_mgmt_frame(hapd, mgmt, len);
ETH_ALEN);
os_memcpy(hdr.IEEE80211_SA_FROMDS, hapd->own_addr, ETH_ALEN);
ETH_ALEN);
os_memcpy(hdr.IEEE80211_SA_FROMDS, hapd->own_addr, ETH_ALEN);
- if (hostapd_send_mgmt_frame(hapd, &hdr, sizeof(hdr), 0) < 0)
+ if (hostapd_send_mgmt_frame(hapd, &hdr, sizeof(hdr)) < 0)
perror("ap_handle_timer: send");
#endif /* CONFIG_NATIVE_WINDOWS */
} else if (sta->timeout_next != STA_REMOVE) {
perror("ap_handle_timer: send");
#endif /* CONFIG_NATIVE_WINDOWS */
} else if (sta->timeout_next != STA_REMOVE) {
os_memcpy(t, tspec, sizeof(struct wmm_tspec_element));
len = ((u8 *) (t + 1)) - buf;
os_memcpy(t, tspec, sizeof(struct wmm_tspec_element));
len = ((u8 *) (t + 1)) - buf;
- if (hostapd_send_mgmt_frame(hapd, m, len, 0) < 0)
+ if (hostapd_send_mgmt_frame(hapd, m, len) < 0)
perror("wmm_send_action: send");
}
perror("wmm_send_action: send");
}
int (*hapd_set_ssid)(const char *ifname, void *priv, const u8 *buf,
int len);
int (*hapd_set_countermeasures)(void *priv, int enabled);
int (*hapd_set_ssid)(const char *ifname, void *priv, const u8 *buf,
int len);
int (*hapd_set_countermeasures)(void *priv, int enabled);
- int (*send_mgmt_frame)(void *priv, const void *msg, size_t len,
- int flags);
+ int (*send_mgmt_frame)(void *priv, const void *msg, size_t len);
int (*sta_add)(const char *ifname, void *priv,
struct hostapd_sta_add_params *params);
int (*get_inact_sec)(void *priv, const u8 *addr);
int (*sta_add)(const char *ifname, void *priv,
struct hostapd_sta_add_params *params);
int (*get_inact_sec)(void *priv, const u8 *addr);
-static int hostap_send_mgmt_frame(void *priv, const void *msg, size_t len,
- int flags)
+static int hostap_send_mgmt_frame(void *priv, const void *msg, size_t len)
{
struct hostap_driver_data *drv = priv;
struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) msg;
{
struct hostap_driver_data *drv = priv;
struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) msg;
/* Request TX callback */
hdr->frame_control |= host_to_le16(BIT(1));
/* Request TX callback */
hdr->frame_control |= host_to_le16(BIT(1));
- res = send(drv->sock, msg, len, flags);
+ res = send(drv->sock, msg, len, 0);
hdr->frame_control &= ~host_to_le16(BIT(1));
return res;
hdr->frame_control &= ~host_to_le16(BIT(1));
return res;
pos += 2;
memcpy(pos, data, data_len);
pos += 2;
memcpy(pos, data, data_len);
- res = hostap_send_mgmt_frame(drv, (u8 *) hdr, len, 0);
+ res = hostap_send_mgmt_frame(drv, (u8 *) hdr, len);
free(hdr);
if (res < 0) {
free(hdr);
if (res < 0) {
memcpy(mgmt.bssid, drv->hapd->own_addr, ETH_ALEN);
mgmt.u.deauth.reason_code = host_to_le16(reason);
return hostap_send_mgmt_frame(drv, &mgmt, IEEE80211_HDRLEN +
memcpy(mgmt.bssid, drv->hapd->own_addr, ETH_ALEN);
mgmt.u.deauth.reason_code = host_to_le16(reason);
return hostap_send_mgmt_frame(drv, &mgmt, IEEE80211_HDRLEN +
- sizeof(mgmt.u.deauth), 0);
+ sizeof(mgmt.u.deauth));
memcpy(mgmt.bssid, drv->hapd->own_addr, ETH_ALEN);
mgmt.u.disassoc.reason_code = host_to_le16(reason);
return hostap_send_mgmt_frame(drv, &mgmt, IEEE80211_HDRLEN +
memcpy(mgmt.bssid, drv->hapd->own_addr, ETH_ALEN);
mgmt.u.disassoc.reason_code = host_to_le16(reason);
return hostap_send_mgmt_frame(drv, &mgmt, IEEE80211_HDRLEN +
- sizeof(mgmt.u.disassoc), 0);
+ sizeof(mgmt.u.disassoc));
static int i802_send_frame(void *priv, const void *data, size_t len,
static int i802_send_frame(void *priv, const void *data, size_t len,
- int encrypt, int flags)
{
__u8 rtap_hdr[] = {
0x00, 0x00, /* radiotap version */
{
__u8 rtap_hdr[] = {
0x00, 0x00, /* radiotap version */
if (encrypt)
rtap_hdr[8] |= IEEE80211_RADIOTAP_F_WEP;
if (encrypt)
rtap_hdr[8] |= IEEE80211_RADIOTAP_F_WEP;
- return sendmsg(drv->monitor_sock, &msg, flags);
+ return sendmsg(drv->monitor_sock, &msg, 0);
-static int i802_send_mgmt_frame(void *priv, const void *data, size_t len,
- int flags)
+static int i802_send_mgmt_frame(void *priv, const void *data, size_t len)
{
struct ieee80211_mgmt *mgmt;
int do_not_encrypt = 0;
{
struct ieee80211_mgmt *mgmt;
int do_not_encrypt = 0;
- return i802_send_frame(priv, data, len, !do_not_encrypt, flags);
+ return i802_send_frame(priv, data, len, !do_not_encrypt);
}
/* Set kernel driver on given frequency (MHz) */
}
/* Set kernel driver on given frequency (MHz) */
pos += 2;
memcpy(pos, data, data_len);
pos += 2;
memcpy(pos, data, data_len);
- res = i802_send_frame(drv, (u8 *) hdr, len, encrypt, 0);
+ res = i802_send_frame(drv, (u8 *) hdr, len, encrypt);
free(hdr);
if (res < 0) {
free(hdr);
if (res < 0) {
memcpy(mgmt.bssid, drv->hapd->own_addr, ETH_ALEN);
mgmt.u.deauth.reason_code = host_to_le16(reason);
return i802_send_mgmt_frame(drv, &mgmt, IEEE80211_HDRLEN +
memcpy(mgmt.bssid, drv->hapd->own_addr, ETH_ALEN);
mgmt.u.deauth.reason_code = host_to_le16(reason);
return i802_send_mgmt_frame(drv, &mgmt, IEEE80211_HDRLEN +
- sizeof(mgmt.u.deauth), 0);
+ sizeof(mgmt.u.deauth));
memcpy(mgmt.sa, drv->hapd->own_addr, ETH_ALEN);
memcpy(mgmt.bssid, drv->hapd->own_addr, ETH_ALEN);
mgmt.u.disassoc.reason_code = host_to_le16(reason);
memcpy(mgmt.sa, drv->hapd->own_addr, ETH_ALEN);
memcpy(mgmt.bssid, drv->hapd->own_addr, ETH_ALEN);
mgmt.u.disassoc.reason_code = host_to_le16(reason);
- return i802_send_mgmt_frame(drv, &mgmt, IEEE80211_HDRLEN +
- sizeof(mgmt.u.disassoc), 0);
+ return i802_send_mgmt_frame(drv, &mgmt, IEEE80211_HDRLEN +
+ sizeof(mgmt.u.disassoc));
-static int test_driver_send_mgmt_frame(void *priv, const void *buf,
- size_t len, int flags)
+static int test_driver_send_mgmt_frame(void *priv, const void *buf, size_t len)
{
struct test_driver_data *drv = priv;
struct msghdr msg;
{
struct test_driver_data *drv = priv;
struct msghdr msg;