from __future__ import annotations import typing from .url import Url if typing.TYPE_CHECKING: from ..connection import ProxyConfig def connection_requires_http_tunnel( proxy_url: Url | None = None, proxy_config: ProxyConfig | None = None, destination_scheme: str | None = None, ) -> bool: """ Returns True if the connection requires an HTTP CONNECT through the proxy. :param URL proxy_url: URL of the proxy. :param ProxyConfig proxy_config: Proxy configuration from poolmanager.py :param str destination_scheme: The scheme of the destination. (i.e https, http, etc) """ # If we're not using a proxy, no way to use a tunnel. if proxy_url is None: return False # HTTP destinations never require tunneling, we always forward. if destination_scheme == "http": return False # Support for forwarding with HTTPS proxies and HTTPS destinations. if ( proxy_url.scheme == "https" and proxy_config and proxy_config.use_forwarding_for_https ): return False # Otherwise always use a tunnel. return True
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
__pycache__ | Folder | 0755 |
|
|
__init__.py | File | 1.03 KB | 0644 |
|
connection.py | File | 4.36 KB | 0644 |
|
proxy.py | File | 1.12 KB | 0644 |
|
request.py | File | 7.89 KB | 0644 |
|
response.py | File | 3.29 KB | 0644 |
|
retry.py | File | 17.94 KB | 0644 |
|
ssl_.py | File | 18.79 KB | 0644 |
|
ssl_match_hostname.py | File | 5.68 KB | 0644 |
|
ssltransport.py | File | 8.83 KB | 0644 |
|
timeout.py | File | 10.28 KB | 0644 |
|
url.py | File | 14.86 KB | 0644 |
|
util.py | File | 1.12 KB | 0644 |
|
wait.py | File | 4.32 KB | 0644 |
|