diff options
author | Jouni Malinen <jouni@qca.qualcomm.com> | 2014-02-13 14:14:04 (GMT) |
---|---|---|
committer | Jouni Malinen <j@w1.fi> | 2014-02-13 14:37:43 (GMT) |
commit | 7ae7a84eefd43ed9385e2f8f520a918468f87178 (patch) | |
tree | 6e60527c77bc393f9aab809bce1c7568cc1639bb /hostapd/wps-ap-nfc.py | |
parent | 6ceb95c950f195322858f7c5dee69b6ab26f31a3 (diff) | |
download | hostap-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-x | hostapd/wps-ap-nfc.py | 17 |
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: |