3x-ui/web/service
MHSanaei d8198f543b
fix(warp): harden API client and frontend, bump to v0a4005
Backend:
- check HTTP status on every Cloudflare API call so error bodies don't
  get parsed as success
- replace unchecked type assertions with comma-ok form (no more panics
  when Cloudflare returns an error response)
- return real errors when license/id/token fields are missing instead
  of swallowing the failure
- guard SetWarpLicense against an empty errors array
- 15s timeout on the shared http.Client
- build all request bodies and persisted state with json.Marshal
- bump API path to v0a4005 and CF-Client-Version to a-6.30-3596 to
  match the current Cloudflare WARP client

Frontend (warp_modal.html):
- remove stray </a-form-item> closing tag
- declare config/peer with const and null-check before dereferencing
- guard addOutbound/resetOutbound against missing warpOutbound
- rename getResolved -> getReserved (the array it builds is "reserved")

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-08 09:29:42 +02:00
..
config.json
custom_geo.go
custom_geo_test.go
inbound.go fix(vless): scope testseed to xtls-rprx-vision flow 2026-05-07 14:44:33 +02:00
nord.go
outbound.go
panel.go
panel_other.go
panel_test.go
panel_unix.go
port_conflict.go
port_conflict_test.go
server.go
setting.go
tgbot.go Implement CSRF protection and security hardening across the application (#4179) 2026-05-07 23:36:11 +02:00
tgbot_test.go Implement CSRF protection and security hardening across the application (#4179) 2026-05-07 23:36:11 +02:00
user.go
warp.go fix(warp): harden API client and frontend, bump to v0a4005 2026-05-08 09:29:42 +02:00
websocket.go refactor(websocket): split controller into service + thin controller 2026-05-08 00:00:44 +02:00
xray.go
xray_setting.go
xray_setting_test.go