Merge branch 'fix/esp_prov_ipv6_resolve_v5_2' into 'release/v5.2'

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

See merge request espressif/esp-idf!34677
This commit is contained in:
Shu Chen
2024-11-07 11:07:09 +08:00

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 # SPDX-License-Identifier: Apache-2.0
# #
import socket import socket
from http.client import HTTPConnection, HTTPSConnection from http.client import HTTPConnection
from http.client import HTTPSConnection
from utils import str_to_bytes from utils import str_to_bytes
@ -12,7 +13,7 @@ from .transport import Transport
class Transport_HTTP(Transport): class Transport_HTTP(Transport):
def __init__(self, hostname, ssl_context=None): def __init__(self, hostname, ssl_context=None):
try: try:
socket.gethostbyname(hostname.split(':')[0]) socket.getaddrinfo(hostname.split(':')[0], None)
except socket.gaierror: except socket.gaierror:
raise RuntimeError(f'Unable to resolve hostname: {hostname}') 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 # 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. # 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 # 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(): for hdr_key, hdr_val in response.getheaders():
if hdr_key == 'Set-Cookie': if hdr_key == 'Set-Cookie':
self.headers['Cookie'] = hdr_val self.headers['Cookie'] = hdr_val