Skip to content

Commit

Permalink
Replace deprecated HTTPAdapter.get_connection method with `get_conn…
Browse files Browse the repository at this point in the history
…ection_with_tls_context` (#17536)
  • Loading branch information
anoadragon453 committed Aug 8, 2024
1 parent 44ac2aa commit 3ad38b6
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 7 deletions.
1 change: 1 addition & 0 deletions changelog.d/17536.misc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Replace override of deprecated method `HTTPAdapter.get_connection` with `get_connection_with_tls_context`.
25 changes: 18 additions & 7 deletions scripts-dev/federation_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@
import base64
import json
import sys
from typing import Any, Dict, Optional, Tuple
from typing import Any, Dict, Mapping, Optional, Tuple, Union
from urllib import parse as urlparse

import requests
Expand Down Expand Up @@ -75,7 +75,7 @@ def encode_canonical_json(value: object) -> bytes:
value,
# Encode code-points outside of ASCII as UTF-8 rather than \u escapes
ensure_ascii=False,
# Remove unecessary white space.
# Remove unnecessary white space.
separators=(",", ":"),
# Sort the keys of dictionaries.
sort_keys=True,
Expand Down Expand Up @@ -298,12 +298,23 @@ def send(

return super().send(request, *args, **kwargs)

def get_connection(
self, url: str, proxies: Optional[Dict[str, str]] = None
def get_connection_with_tls_context(
self,
request: PreparedRequest,
verify: Optional[Union[bool, str]],
proxies: Optional[Mapping[str, str]] = None,
cert: Optional[Union[Tuple[str, str], str]] = None,
) -> HTTPConnectionPool:
# overrides the get_connection() method in the base class
parsed = urlparse.urlsplit(url)
(host, port, ssl_server_name) = self._lookup(parsed.netloc)
# overrides the get_connection_with_tls_context() method in the base class
parsed = urlparse.urlsplit(request.url)

# Extract the server name from the request URL, and ensure it's a str.
hostname = parsed.netloc
if isinstance(hostname, bytes):
hostname = hostname.decode("utf-8")
assert isinstance(hostname, str)

(host, port, ssl_server_name) = self._lookup(hostname)
print(
f"Connecting to {host}:{port} with SNI {ssl_server_name}", file=sys.stderr
)
Expand Down

0 comments on commit 3ad38b6

Please sign in to comment.