Browse Source

Ensure IPv6 compliant host

Co-Authored-By: vnxme <[email protected]>
mhsanaei 9 months ago
parent
commit
e7c59adc59
3 changed files with 6 additions and 6 deletions
  1. 3 3
      sub/subController.go
  2. 1 1
      web/controller/util.go
  3. 2 2
      web/middleware/domainValidator.go

+ 3 - 3
sub/subController.go

@@ -2,7 +2,7 @@ package sub
 
 import (
 	"encoding/base64"
-	"strings"
+	"net"
 
 	"github.com/gin-gonic/gin"
 )
@@ -54,7 +54,7 @@ func (a *SUBController) initRouter(g *gin.RouterGroup) {
 
 func (a *SUBController) subs(c *gin.Context) {
 	subId := c.Param("subid")
-	host := strings.Split(c.Request.Host, ":")[0]
+	host, _, _ := net.SplitHostPort(c.Request.Host)
 	subs, header, err := a.subService.GetSubs(subId, host)
 	if err != nil || len(subs) == 0 {
 		c.String(400, "Error!")
@@ -79,7 +79,7 @@ func (a *SUBController) subs(c *gin.Context) {
 
 func (a *SUBController) subJsons(c *gin.Context) {
 	subId := c.Param("subid")
-	host := strings.Split(c.Request.Host, ":")[0]
+	host, _, _ := net.SplitHostPort(c.Request.Host)
 	jsonSub, header, err := a.subJsonService.GetJson(subId, host)
 	if err != nil || len(jsonSub) == 0 {
 		c.String(400, "Error!")

+ 1 - 1
web/controller/util.go

@@ -61,7 +61,7 @@ func html(c *gin.Context, name string, title string, data gin.H) {
 		data = gin.H{}
 	}
 	data["title"] = title
-	data["host"] = strings.Split(c.Request.Host, ":")[0]
+	data["host"], _, _ = net.SplitHostPort(c.Request.Host)
 	data["request_uri"] = c.Request.RequestURI
 	data["base_path"] = c.GetString("base_path")
 	c.HTML(http.StatusOK, name, getContext(data))

+ 2 - 2
web/middleware/domainValidator.go

@@ -1,15 +1,15 @@
 package middleware
 
 import (
+	"net"
 	"net/http"
-	"strings"
 
 	"github.com/gin-gonic/gin"
 )
 
 func DomainValidatorMiddleware(domain string) gin.HandlerFunc {
 	return func(c *gin.Context) {
-		host := strings.Split(c.Request.Host, ":")[0]
+		host, _, _ := net.SplitHostPort(c.Request.Host)
 
 		if host != domain {
 			c.AbortWithStatus(http.StatusForbidden)