.oO SearXNG Developer Documentation Oo.
|
Classes | |
class | AsyncHTTPTransportNoHttp |
class | AsyncProxyTransportFixed |
Functions | |
shuffle_ciphers (SSLContext ssl_context) | |
SSLContext | get_sslcontexts (str|None proxy_url=None, CertTypes|None cert=None, bool verify=True, bool trust_env=True) |
get_transport_for_socks_proxy (bool verify, bool http2, str local_address, str proxy_url, httpx.Limits limit, int retries) | |
get_transport (bool verify, bool http2, str local_address, str|None proxy_url, httpx.Limits limit, int retries) | |
httpx.AsyncClient | new_client (bool enable_http, bool verify, bool enable_http2, int max_connections, int max_keepalive_connections, float keepalive_expiry, dict[str, str] proxies, str local_address, int retries, int max_redirects, t.Callable[..., t.Any]|None hook_log_response) |
asyncio.AbstractEventLoop | get_loop () |
init () |
Variables | |
CertTypes = str | tuple[str, str] | tuple[str, str, str] | |
SslContextKeyType = tuple[str | None, CertTypes | None, bool, bool] | |
logger = logger.getChild('searx.network.client') | |
asyncio | LOOP = None |
dict | SSLCONTEXTS = {} |
asyncio.AbstractEventLoop searx.network.client.get_loop | ( | ) |
Definition at line 213 of file client.py.
Referenced by get_transport_for_socks_proxy().
SSLContext searx.network.client.get_sslcontexts | ( | str | None | proxy_url = None, |
CertTypes | None | cert = None, | ||
bool | verify = True, | ||
bool | trust_env = True ) |
Definition at line 55 of file client.py.
References shuffle_ciphers().
Referenced by get_transport(), and get_transport_for_socks_proxy().
searx.network.client.get_transport | ( | bool | verify, |
bool | http2, | ||
str | local_address, | ||
str | None | proxy_url, | ||
httpx.Limits | limit, | ||
int | retries ) |
Definition at line 149 of file client.py.
References get_sslcontexts().
Referenced by new_client().
searx.network.client.get_transport_for_socks_proxy | ( | bool | verify, |
bool | http2, | ||
str | local_address, | ||
str | proxy_url, | ||
httpx.Limits | limit, | ||
int | retries ) |
Definition at line 118 of file client.py.
References get_loop(), and get_sslcontexts().
Referenced by new_client().
searx.network.client.init | ( | ) |
Definition at line 217 of file client.py.
References init().
Referenced by init().
httpx.AsyncClient searx.network.client.new_client | ( | bool | enable_http, |
bool | verify, | ||
bool | enable_http2, | ||
int | max_connections, | ||
int | max_keepalive_connections, | ||
float | keepalive_expiry, | ||
dict[str, str] | proxies, | ||
str | local_address, | ||
int | retries, | ||
int | max_redirects, | ||
t.Callable[..., t.Any] | None | hook_log_response ) |
Definition at line 164 of file client.py.
References get_transport(), and get_transport_for_socks_proxy().
searx.network.client.shuffle_ciphers | ( | SSLContext | ssl_context | ) |
Shuffle httpx's default ciphers of a SSL context randomly. From `What Is TLS Fingerprint and How to Bypass It`_ > When implementing TLS fingerprinting, servers can't operate based on a > locked-in whitelist database of fingerprints. New fingerprints appear > when web clients or TLS libraries release new versions. So, they have to > live off a blocklist database instead. > ... > It's safe to leave the first three as is but shuffle the remaining ciphers > and you can bypass the TLS fingerprint check. .. _What Is TLS Fingerprint and How to Bypass It: https://www.zenrows.com/blog/what-is-tls-fingerprint#how-to-bypass-tls-fingerprinting
Definition at line 32 of file client.py.
Referenced by get_sslcontexts().
searx.network.client.CertTypes = str | tuple[str, str] | tuple[str, str, str] |
searx.network.client.logger = logger.getChild('searx.network.client') |
searx.network.client.SslContextKeyType = tuple[str | None, CertTypes | None, bool, bool] |