fix(proxy): okcdn odrzuca obcy Origin, ponowienie bez niego
_build_headers dokleja Origin zawsze, gdy znamy Referer. okcdn (OK.ru, porndupe) na ten sam adres z Refererem daje 206, a z Refererem i Originem 400, wiec kazdy zapasowy proxy porndupe konczyl sie 502 (120 bledow 502 w tydzien). Przy 400 jedno ponowienie bez Origin; zwykly <video> w przegladarce i tak go nie wysyla. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
6c5d409fcc
commit
edf9e8a39f
1 changed files with 13 additions and 0 deletions
|
|
@ -904,6 +904,19 @@ async def proxy_stream(
|
|||
stream=True,
|
||||
follow_redirects=True,
|
||||
)
|
||||
# okcdn (OK.ru, porndupe) odrzuca obcy naglowek Origin kodem 400, a _build_headers
|
||||
# dokleja go zawsze, gdy znamy Referer. Przegladarka przy zwyklym <video> Origin
|
||||
# nie wysyla. Bez tego kazdy zapasowy proxy porndupe konczyl sie 502 (2026-10-02:
|
||||
# ten sam adres z Refererem 206, z Refererem i Originem 400).
|
||||
if upstream.status_code == 400 and "Origin" in headers and method.upper() in ("GET", "HEAD"):
|
||||
await upstream.aclose()
|
||||
headers.pop("Origin", None)
|
||||
log.info("proxy: upstream 400 z Origin, ponawiam bez niego %s", target[:70])
|
||||
upstream = await client.send(
|
||||
client.build_request(method, target, headers=headers),
|
||||
stream=True,
|
||||
follow_redirects=True,
|
||||
)
|
||||
if (
|
||||
upstream.status_code in _TUBE_REFRESH_STATUSES
|
||||
and refetch_url
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue