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 7e90a41bc9
commit 682a66d164

View File

@ -1,8 +1,9 @@
# SPDX-FileCopyrightText: 2018-2023 Espressif Systems (Shanghai) CO LTD
# SPDX-FileCopyrightText: 2018-2024 Espressif Systems (Shanghai) CO LTD
# SPDX-License-Identifier: Apache-2.0
#
import socket
from http.client import HTTPConnection, HTTPSConnection
from http.client import HTTPConnection
from http.client import HTTPSConnection
from utils import str_to_bytes
@ -12,7 +13,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}')
@ -35,7 +36,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