feat(sub): add HEAD method support for subscription endpoints (#4684)
Some checks are pending
CI / go-test (push) Waiting to run
CI / govulncheck (push) Waiting to run
CI / frontend (push) Waiting to run
CodeQL Advanced / Analyze (go) (push) Waiting to run
CodeQL Advanced / Analyze (actions) (push) Waiting to run
CodeQL Advanced / Analyze (javascript-typescript) (push) Waiting to run
Release 3X-UI / build (386) (push) Waiting to run
Release 3X-UI / build (amd64) (push) Waiting to run
Release 3X-UI / build (arm64) (push) Waiting to run
Release 3X-UI / build (armv5) (push) Waiting to run
Release 3X-UI / build (armv6) (push) Waiting to run
Release 3X-UI / build (armv7) (push) Waiting to run
Release 3X-UI / build (s390x) (push) Waiting to run
Release 3X-UI / Build for Windows (push) Waiting to run

Allow clients to retrieve Subscription-Userinfo header via lightweight
HEAD requests without downloading the full response body.
This enables traffic monitoring tools and proxy clients to check quota
usage more efficiently.
This commit is contained in:
spokyle 2026-05-30 20:40:18 +08:00 committed by GitHub
parent eee26e4788
commit 84a689cf10
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -101,13 +101,16 @@ func NewSUBController(
func (a *SUBController) initRouter(g *gin.RouterGroup) { func (a *SUBController) initRouter(g *gin.RouterGroup) {
gLink := g.Group(a.subPath) gLink := g.Group(a.subPath)
gLink.GET(":subid", a.subs) gLink.GET(":subid", a.subs)
gLink.HEAD(":subid", a.subs)
if a.jsonEnabled { if a.jsonEnabled {
gJson := g.Group(a.subJsonPath) gJson := g.Group(a.subJsonPath)
gJson.GET(":subid", a.subJsons) gJson.GET(":subid", a.subJsons)
gJson.HEAD(":subid", a.subJsons)
} }
if a.clashEnabled { if a.clashEnabled {
gClash := g.Group(a.subClashPath) gClash := g.Group(a.subClashPath)
gClash.GET(":subid", a.subClashs) gClash.GET(":subid", a.subClashs)
gClash.HEAD(":subid", a.subClashs)
} }
} }