aboutsummaryrefslogtreecommitdiffstats
path: root/hostapd/wps-ap-nfc.py
diff options
context:
space:
mode:
authorJouni Malinen <jouni@qca.qualcomm.com>2014-02-13 14:14:04 (GMT)
committerJouni Malinen <j@w1.fi>2014-02-13 14:37:43 (GMT)
commit7ae7a84eefd43ed9385e2f8f520a918468f87178 (patch)
tree6e60527c77bc393f9aab809bce1c7568cc1639bb /hostapd/wps-ap-nfc.py
parent6ceb95c950f195322858f7c5dee69b6ab26f31a3 (diff)
downloadhostap-7ae7a84eefd43ed9385e2f8f520a918468f87178.zip
hostap-7ae7a84eefd43ed9385e2f8f520a918468f87178.tar.gz
hostap-7ae7a84eefd43ed9385e2f8f520a918468f87178.tar.bz2
NFC: Workaround nfcpy message debug exception
The current nfcpy version does not support new WSC connection handover message format and the handover server fails to process the request due to a debug print. As a temporary workaround, override HandoverServer::_process_request() with a version that avoids pretty() print of the handover messages. This can be removed once nfcpy has been updated to support the new format. Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
Diffstat (limited to 'hostapd/wps-ap-nfc.py')
-rwxr-xr-xhostapd/wps-ap-nfc.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/hostapd/wps-ap-nfc.py b/hostapd/wps-ap-nfc.py
index aa75d5b..2fc3012 100755
--- a/hostapd/wps-ap-nfc.py
+++ b/hostapd/wps-ap-nfc.py
@@ -113,6 +113,23 @@ class HandoverServer(nfc.handover.HandoverServer):
self.ho_server_processing = False
self.success = False
+ # override to avoid parser error in request/response.pretty() in nfcpy
+ # due to new WSC handover format
+ def _process_request(self, request):
+ summary("received handover request {}".format(request.type))
+ response = nfc.ndef.Message("\xd1\x02\x01Hs\x12")
+ if not request.type == 'urn:nfc:wkt:Hr':
+ summary("not a handover request")
+ else:
+ try:
+ request = nfc.ndef.HandoverRequestMessage(request)
+ except nfc.ndef.DecodeError as e:
+ summary("error decoding 'Hr' message: {}".format(e))
+ else:
+ response = self.process_request(request)
+ summary("send handover response {}".format(response.type))
+ return response
+
def process_request(self, request):
summary("HandoverServer - request received")
try: