Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/MHSanaei/3x-ui.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormhsanaei <ho3ein.sanaei@gmail.com>2024-05-22 18:51:55 +0300
committermhsanaei <ho3ein.sanaei@gmail.com>2024-05-22 21:06:49 +0300
commite7c59adc5928d9d9ef96480297f7618e3d57837c (patch)
tree92c66e8937d1733f3cc629d0420a5298755e27e9
parent68c9b55447a4508341d8947e038de35a3306bbb8 (diff)
Ensure IPv6 compliant host
Co-Authored-By: vnxme <46669194+vnxme@users.noreply.github.com>
-rw-r--r--sub/subController.go6
-rw-r--r--web/controller/util.go2
-rw-r--r--web/middleware/domainValidator.go4
3 files changed, 6 insertions, 6 deletions
diff --git a/sub/subController.go b/sub/subController.go
index 8fd39efa..2385b76b 100644
--- a/sub/subController.go
+++ b/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!")
diff --git a/web/controller/util.go b/web/controller/util.go
index a32c9270..ac08f9af 100644
--- a/web/controller/util.go
+++ b/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))
diff --git a/web/middleware/domainValidator.go b/web/middleware/domainValidator.go
index 3adb0f0f..2beecfdb 100644
--- a/web/middleware/domainValidator.go
+++ b/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)