From 6587d950c7cd76197beaf7b6b8d227d81340a8d7 Mon Sep 17 00:00:00 2001 From: Dalanke <510934379@qq.com> Date: Sun, 3 Nov 2019 00:34:51 -0400 Subject: [PATCH] fix the unmatch incoming response problem when using domain to connect server, add ping function --- coapthon/client/helperclient.py | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/coapthon/client/helperclient.py b/coapthon/client/helperclient.py index e109b1c..015ecfd 100644 --- a/coapthon/client/helperclient.py +++ b/coapthon/client/helperclient.py @@ -5,6 +5,7 @@ from coapthon.client.coap import CoAP from coapthon.messages.request import Request from coapthon.utils import generate_random_token +import socket __author__ = 'Giacomo Tanganelli' @@ -30,7 +31,13 @@ def __init__(self, server, sock=None, cb_ignore_read_exception=None, cb_ignore_w :param cb_ignore_read_exception: Callback function to handle exception raised during the socket read operation :param cb_ignore_write_exception: Callback function to handle exception raised during the socket write operation """ - self.server = server + # bug fix:check if host is a domain, if true, convert server domain into ip + server_ip = socket.getaddrinfo(server[0], None)[0][4][0] + if server_ip == server[0]: + self.server = server + else: + self.server = (server_ip, server[1]) + self.protocol = CoAP(self.server, random.randint(1, 65535), self._wait_response, sock=sock, cb_ignore_read_exception=cb_ignore_read_exception, cb_ignore_write_exception=cb_ignore_write_exception) @@ -297,4 +304,12 @@ def mk_request(self, method, path): request.uri_path = path return request - + # feature update : ping + def ping(self): + """ + send a CON empty message to server to trigger RST response (CoAP ping) + """ + empty = Request() + empty.destination = self.server + empty.type = 0 + self.send_empty(empty)