WPS: Change listen time to match nfcpy default (250 ms)
[mech_eap.git] / wpa_supplicant / examples / wps-nfc.py
index a2e8df4..c328a90 100755 (executable)
@@ -115,10 +115,25 @@ def wps_handover_init(peer):
         nfc.llcp.shutdown()
         client.close()
         return
+    if message.type != "urn:nfc:wkt:Hs":
+        print "Response was not Hs - received: " + message.type
+        nfc.llcp.shutdown()
+        client.close()
+        return
 
+    print "Received message"
+    print message.pretty()
+    message = nfc.ndef.HandoverSelectMessage(message)
     print "Handover select received"
     print message.pretty()
-    wpas_put_handover_sel(message)
+
+    for carrier in message.carriers:
+        print "Remote carrier type: " + carrier.type
+        if carrier.type == "application/vnd.wfa.wsc":
+            print "WPS carrier type match - send to wpa_supplicant"
+            wpas_put_handover_sel(carrier.record)
+            wifi = nfc.ndef.WifiConfigRecord(carrier.record)
+            print wifi.pretty()
 
     print "Remove peer"
     nfc.llcp.shutdown()
@@ -150,7 +165,7 @@ def find_peer(clf):
         if nfc.llcp.connected():
             print "LLCP connected"
         general_bytes = nfc.llcp.startup({})
-        peer = clf.listen(ord(os.urandom(1)) + 200, general_bytes)
+        peer = clf.listen(ord(os.urandom(1)) + 250, general_bytes)
         if isinstance(peer, nfc.DEP):
             print "listen -> DEP";
             if peer.general_bytes.startswith("Ffm"):