diff options
Diffstat (limited to 'sub/subController.go')
| -rw-r--r-- | sub/subController.go | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/sub/subController.go b/sub/subController.go index 2385b76b..838a2291 100644 --- a/sub/subController.go +++ b/sub/subController.go @@ -54,7 +54,18 @@ func (a *SUBController) initRouter(g *gin.RouterGroup) { func (a *SUBController) subs(c *gin.Context) { subId := c.Param("subid") - host, _, _ := net.SplitHostPort(c.Request.Host) + host := c.GetHeader("X-Forwarded-Host") + if host == "" { + host = c.GetHeader("X-Real-IP") + } + if host == "" { + var err error + host, _, err = net.SplitHostPort(c.Request.Host) + if err != nil { + host = c.Request.Host + } + } + host = host subs, header, err := a.subService.GetSubs(subId, host) if err != nil || len(subs) == 0 { c.String(400, "Error!") @@ -79,7 +90,18 @@ func (a *SUBController) subs(c *gin.Context) { func (a *SUBController) subJsons(c *gin.Context) { subId := c.Param("subid") - host, _, _ := net.SplitHostPort(c.Request.Host) + host := c.GetHeader("X-Forwarded-Host") + if host == "" { + host = c.GetHeader("X-Real-IP") + } + if host == "" { + var err error + host, _, err = net.SplitHostPort(c.Request.Host) + if err != nil { + host = c.Request.Host + } + } + host = host jsonSub, header, err := a.subJsonService.GetJson(subId, host) if err != nil || len(jsonSub) == 0 { c.String(400, "Error!") |
