From 24971091e3588eab8ba0b5917c9a71082140f86c Mon Sep 17 00:00:00 2001 From: ginuerzh Date: Sat, 15 Jan 2022 23:42:36 +0800 Subject: [PATCH] pht: self-defined path --- pkg/listener/pht/listener.go | 6 +++--- pkg/listener/pht/metadata.go | 32 +++++++++++++++++++++++++++----- 2 files changed, 30 insertions(+), 8 deletions(-) diff --git a/pkg/listener/pht/listener.go b/pkg/listener/pht/listener.go index e889f51..163ad0e 100644 --- a/pkg/listener/pht/listener.go +++ b/pkg/listener/pht/listener.go @@ -76,9 +76,9 @@ func (l *phtListener) Init(md md.Metadata) (err error) { l.addr = ln.Addr() mux := http.NewServeMux() - mux.HandleFunc("/authorize", l.handleAuthorize) - mux.HandleFunc("/push", l.handlePush) - mux.HandleFunc("/pull", l.handlePull) + mux.HandleFunc(l.md.authorizePath, l.handleAuthorize) + mux.HandleFunc(l.md.pushPath, l.handlePush) + mux.HandleFunc(l.md.pullPath, l.handlePull) l.server = &http.Server{ Addr: l.options.Addr, diff --git a/pkg/listener/pht/metadata.go b/pkg/listener/pht/metadata.go index 264e340..239077d 100644 --- a/pkg/listener/pht/metadata.go +++ b/pkg/listener/pht/metadata.go @@ -1,29 +1,51 @@ package pht import ( + "strings" + mdata "github.com/go-gost/gost/pkg/metadata" ) const ( - defaultBacklog = 128 + defaultAuthorizePath = "/authorize" + defaultPushPath = "/push" + defaultPullPath = "/pull" + defaultBacklog = 128 ) type metadata struct { - path string - backlog int + authorizePath string + pushPath string + pullPath string + backlog int } func (l *phtListener) parseMetadata(md mdata.Metadata) (err error) { const ( - path = "path" + authorizePath = "authorizePath" + pushPath = "pushPath" + pullPath = "pullPath" + backlog = "backlog" ) + l.md.authorizePath = mdata.GetString(md, authorizePath) + if !strings.HasPrefix(l.md.authorizePath, "/") { + l.md.authorizePath = defaultAuthorizePath + } + l.md.pushPath = mdata.GetString(md, pushPath) + if !strings.HasPrefix(l.md.pushPath, "/") { + l.md.pushPath = defaultPushPath + } + l.md.pullPath = mdata.GetString(md, pullPath) + if !strings.HasPrefix(l.md.pullPath, "/") { + l.md.pullPath = defaultPullPath + } + l.md.backlog = mdata.GetInt(md, backlog) if l.md.backlog <= 0 { l.md.backlog = defaultBacklog } - l.md.path = mdata.GetString(md, path) return }