diff --git a/wpa_supplicant/ap.c b/wpa_supplicant/ap.c index 5f693897d..0f8024949 100644 --- a/wpa_supplicant/ap.c +++ b/wpa_supplicant/ap.c @@ -946,6 +946,19 @@ struct wpabuf * wpas_ap_wps_nfc_handover_sel(struct wpa_supplicant *wpa_s, return hostapd_wps_nfc_hs_cr(hapd, ndef); } + +int wpas_ap_wps_nfc_report_handover(struct wpa_supplicant *wpa_s, + const struct wpabuf *req, + const struct wpabuf *sel) +{ + struct hostapd_data *hapd; + + if (wpa_s->ap_iface == NULL) + return -1; + hapd = wpa_s->ap_iface->bss[0]; + return hostapd_wps_nfc_report_handover(hapd, req, sel); +} + #endif /* CONFIG_WPS_NFC */ #endif /* CONFIG_WPS */ diff --git a/wpa_supplicant/ap.h b/wpa_supplicant/ap.h index c3828980d..9138717fd 100644 --- a/wpa_supplicant/ap.h +++ b/wpa_supplicant/ap.h @@ -69,4 +69,8 @@ wpas_ap_wps_nfc_handover_sel(struct wpa_supplicant *wpa_s, } #endif /* CONFIG_AP */ +int wpas_ap_wps_nfc_report_handover(struct wpa_supplicant *wpa_s, + const struct wpabuf *req, + const struct wpabuf *sel); + #endif /* AP_H */ diff --git a/wpa_supplicant/ctrl_iface.c b/wpa_supplicant/ctrl_iface.c index ee3d14d80..2ec89a9b5 100644 --- a/wpa_supplicant/ctrl_iface.c +++ b/wpa_supplicant/ctrl_iface.c @@ -1125,6 +1125,9 @@ static int wpas_ctrl_nfc_report_handover(struct wpa_supplicant *wpa_s, if (os_strcmp(role, "INIT") == 0 && os_strcmp(type, "WPS") == 0) { ret = wpas_wps_nfc_report_handover(wpa_s, req, sel); + } else if (os_strcmp(role, "RESP") == 0 && os_strcmp(type, "WPS") == 0) + { + ret = wpas_ap_wps_nfc_report_handover(wpa_s, req, sel); } else { wpa_printf(MSG_DEBUG, "NFC: Unsupported connection handover " "reported: role=%s type=%s", role, type);