WPS: Add Config Error into WPS-FAIL events
[libeap.git] / src / wps / wps.h
index 6667b02..a4b7323 100644 (file)
@@ -352,6 +352,11 @@ struct wps_registrar_config {
         * static_wep_only - Whether the BSS supports only static WEP
         */
        int static_wep_only;
+
+       /**
+        * dualband - Whether this is a concurrent dualband AP
+        */
+       int dualband;
 };
 
 
@@ -445,6 +450,7 @@ union wps_event_data {
         */
        struct wps_event_fail {
                int msg;
+               u16 config_error;
        } fail;
 
        struct wps_event_pwd_auth_fail {
@@ -721,6 +727,7 @@ int wps_registrar_add_pin(struct wps_registrar *reg, const u8 *addr,
                          const u8 *uuid, const u8 *pin, size_t pin_len,
                          int timeout);
 int wps_registrar_invalidate_pin(struct wps_registrar *reg, const u8 *uuid);
+int wps_registrar_wps_cancel(struct wps_registrar *reg);
 int wps_registrar_unlock_pin(struct wps_registrar *reg, const u8 *uuid);
 int wps_registrar_button_pushed(struct wps_registrar *reg);
 void wps_registrar_probe_req_rx(struct wps_registrar *reg, const u8 *addr,
@@ -762,8 +769,9 @@ u16 wps_config_methods_str2bin(const char *str);
 
 #ifdef CONFIG_WPS_STRICT
 int wps_validate_beacon(const struct wpabuf *wps_ie);
-int wps_validate_beacon_probe_resp(const struct wpabuf *wps_ie, int probe);
-int wps_validate_probe_req(const struct wpabuf *wps_ie);
+int wps_validate_beacon_probe_resp(const struct wpabuf *wps_ie, int probe,
+                                  const u8 *addr);
+int wps_validate_probe_req(const struct wpabuf *wps_ie, const u8 *addr);
 int wps_validate_assoc_req(const struct wpabuf *wps_ie);
 int wps_validate_assoc_resp(const struct wpabuf *wps_ie);
 int wps_validate_m1(const struct wpabuf *tlvs);
@@ -771,15 +779,15 @@ int wps_validate_m2(const struct wpabuf *tlvs);
 int wps_validate_m2d(const struct wpabuf *tlvs);
 int wps_validate_m3(const struct wpabuf *tlvs);
 int wps_validate_m4(const struct wpabuf *tlvs);
-int wps_validate_m4_encr(const struct wpabuf *tlvs);
+int wps_validate_m4_encr(const struct wpabuf *tlvs, int wps2);
 int wps_validate_m5(const struct wpabuf *tlvs);
-int wps_validate_m5_encr(const struct wpabuf *tlvs);
+int wps_validate_m5_encr(const struct wpabuf *tlvs, int wps2);
 int wps_validate_m6(const struct wpabuf *tlvs);
-int wps_validate_m6_encr(const struct wpabuf *tlvs);
+int wps_validate_m6_encr(const struct wpabuf *tlvs, int wps2);
 int wps_validate_m7(const struct wpabuf *tlvs);
-int wps_validate_m7_encr(const struct wpabuf *tlvs, int ap);
+int wps_validate_m7_encr(const struct wpabuf *tlvs, int ap, int wps2);
 int wps_validate_m8(const struct wpabuf *tlvs);
-int wps_validate_m8_encr(const struct wpabuf *tlvs, int ap);
+int wps_validate_m8_encr(const struct wpabuf *tlvs, int ap, int wps2);
 int wps_validate_wsc_ack(const struct wpabuf *tlvs);
 int wps_validate_wsc_nack(const struct wpabuf *tlvs);
 int wps_validate_wsc_done(const struct wpabuf *tlvs);
@@ -790,12 +798,13 @@ static inline int wps_validate_beacon(const struct wpabuf *wps_ie){
 }
 
 static inline int wps_validate_beacon_probe_resp(const struct wpabuf *wps_ie,
-                                                int probe)
+                                                int probe, const u8 *addr)
 {
        return 0;
 }
 
-static inline int wps_validate_probe_req(const struct wpabuf *wps_ie)
+static inline int wps_validate_probe_req(const struct wpabuf *wps_ie,
+                                        const u8 *addr)
 {
        return 0;
 }
@@ -835,7 +844,7 @@ static inline int wps_validate_m4(const struct wpabuf *tlvs)
        return 0;
 }
 
-static inline int wps_validate_m4_encr(const struct wpabuf *tlvs)
+static inline int wps_validate_m4_encr(const struct wpabuf *tlvs, int wps2)
 {
        return 0;
 }
@@ -845,7 +854,7 @@ static inline int wps_validate_m5(const struct wpabuf *tlvs)
        return 0;
 }
 
-static inline int wps_validate_m5_encr(const struct wpabuf *tlvs)
+static inline int wps_validate_m5_encr(const struct wpabuf *tlvs, int wps2)
 {
        return 0;
 }
@@ -855,7 +864,7 @@ static inline int wps_validate_m6(const struct wpabuf *tlvs)
        return 0;
 }
 
-static inline int wps_validate_m6_encr(const struct wpabuf *tlvs)
+static inline int wps_validate_m6_encr(const struct wpabuf *tlvs, int wps2)
 {
        return 0;
 }
@@ -865,7 +874,8 @@ static inline int wps_validate_m7(const struct wpabuf *tlvs)
        return 0;
 }
 
-static inline int wps_validate_m7_encr(const struct wpabuf *tlvs, int ap)
+static inline int wps_validate_m7_encr(const struct wpabuf *tlvs, int ap,
+                                      int wps2)
 {
        return 0;
 }
@@ -875,7 +885,8 @@ static inline int wps_validate_m8(const struct wpabuf *tlvs)
        return 0;
 }
 
-static inline int wps_validate_m8_encr(const struct wpabuf *tlvs, int ap)
+static inline int wps_validate_m8_encr(const struct wpabuf *tlvs, int ap,
+                                      int wps2)
 {
        return 0;
 }