kopia lustrzana https://github.com/jointakahe/takahe
Handle socket errors, sign Digest header
It turns out, signing the header about the content is pretty important.pull/679/head
rodzic
3c6820cfe3
commit
e46992448d
|
@ -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)
|
||||
|
||||
|
||||
|
|
|
@ -76,6 +76,7 @@ class HttpSignature:
|
|||
"(request-target)",
|
||||
"content-type",
|
||||
"content-length",
|
||||
"digest",
|
||||
}
|
||||
|
||||
@classmethod
|
||||
|
|
Ładowanie…
Reference in New Issue