fix(tools/esp_prov): Fix hostname resolving for IPv6-only host

This commit is contained in:
WanqQixiang 2024-10-25 18:46:06 +08:00
parent 192f3c11d7
commit da05404bbb

View File

@ -1,9 +1,6 @@
# SPDX-FileCopyrightText: 2018-2022 Espressif Systems (Shanghai) CO LTD
# SPDX-FileCopyrightText: 2018-2024 Espressif Systems (Shanghai) CO LTD
# SPDX-License-Identifier: Apache-2.0
#
from __future__ import print_function
import socket
try:
@ -20,7 +17,7 @@ from .transport import Transport
class Transport_HTTP(Transport):
def __init__(self, hostname, ssl_context=None):
try:
socket.gethostbyname(hostname.split(':')[0])
socket.getaddrinfo(hostname.split(':')[0], None)
except socket.gaierror:
raise RuntimeError(f'Unable to resolve hostname: {hostname}')
@ -43,7 +40,7 @@ class Transport_HTTP(Transport):
# While establishing a session, the device sends the Set-Cookie header
# with value 'session=cookie_session_id' in its first response of the session to the tool.
# To maintain the same session, successive requests from the tool should include
# an additional 'Cookie' header with the above recieved value.
# an additional 'Cookie' header with the above received value.
for hdr_key, hdr_val in response.getheaders():
if hdr_key == 'Set-Cookie':
self.headers['Cookie'] = hdr_val