The web player measured bandwidth against the web origin, which says nothing about the path the video actually travels (LAN-direct, tailnet, or the CF funnel) — on a fast LAN where the web server is the slow link it falsely recommended a lower resolution. Serve a fixed-size, incompressible payload from the agent so the web can measure the REAL stream path. - GET /speedtest?size=N (clamped 64KB–4MB, default 2MB), HEAD supported - CORS-gated like the other endpoints; no auth (carries no data) - single-flight guard (atomic): one measurement at a time → a concurrent request gets 429, bounding the bandwidth an unauthenticated caller can drain over the public funnel |
||
|---|---|---|
| .. | ||
| agent | ||
| arr | ||
| cmd | ||
| config | ||
| engine | ||
| funnel | ||
| library | ||
| mediaserver | ||
| parser | ||
| sentry | ||
| ui | ||
| upgrade | ||
| usenet | ||
| vpn | ||