Handle socket errors, sign Digest header

It turns out, signing the header about the content is pretty important.
pull/679/head
Jamie Bliss 2024-01-14 19:06:13 +00:00
rodzic 3c6820cfe3
commit e46992448d
Nie znaleziono w bazie danych klucza dla tego podpisu
2 zmienionych plików z 20 dodań i 9 usunięć

Wyświetl plik

@ -141,18 +141,28 @@ class IpFilterWrapperTransport(httpx.BaseTransport, httpx.AsyncBaseTransport):
# misconfigured or malicious
def handle_request(self, request: httpx.Request) -> httpx.Response:
self._check_addrinfo(
request, socket.getaddrinfo(*self._request_to_addrinfo(request))
)
try:
self._check_addrinfo(
request, socket.getaddrinfo(*self._request_to_addrinfo(request))
)
except socket.gaierror:
# Some kind of look up error. Gonna assume safe and let farther
# down the stack handle it.
pass
return self.wrappee.handle_request(request)
async def handle_async_request(self, request: httpx.Request) -> httpx.Response:
self._check_addrinfo(
request,
await asyncio.get_running_loop().getaddrinfo(
*self._request_to_addrinfo(request)
),
)
try:
self._check_addrinfo(
request,
await asyncio.get_running_loop().getaddrinfo(
*self._request_to_addrinfo(request)
),
)
except socket.gaierror:
# Some kind of look up error. Gonna assume safe and let farther
# down the stack handle it.
pass
return await self.wrappee.handle_await_request(request)

Wyświetl plik

@ -76,6 +76,7 @@ class HttpSignature:
"(request-target)",
"content-type",
"content-length",
"digest",
}
@classmethod