mirror of
https://github.com/wweir/sower.git
synced 2024-04-21 12:42:15 +00:00
Fix the last dot in domain match
This commit is contained in:
@@ -27,8 +27,14 @@ var dynamicMu = sync.Mutex{}
|
||||
|
||||
// ShouldProxy check if the domain shoule request though proxy
|
||||
func ShouldProxy(domain string) bool {
|
||||
// break deadlook, for wildcard
|
||||
if strings.Count(domain, ".") > 4 {
|
||||
return false
|
||||
}
|
||||
domain = strings.TrimSuffix(domain, ".")
|
||||
|
||||
if domain == Client.Address {
|
||||
return true
|
||||
return false
|
||||
}
|
||||
if Client.Router.directRules.Match(domain) {
|
||||
return false
|
||||
@@ -43,11 +49,7 @@ func ShouldProxy(domain string) bool {
|
||||
}
|
||||
|
||||
func (d *dynamic) Get(key interface{}) (err error) {
|
||||
// break deadloop, for ugly wildcard setting dns setting
|
||||
domain := strings.TrimSuffix(key.(string), ".")
|
||||
if strings.Count(domain, ".") > 10 {
|
||||
return nil
|
||||
}
|
||||
domain := key.(string)
|
||||
domainUnderscore := strings.ReplaceAll(domain, ".", "_")
|
||||
var score int
|
||||
|
||||
|
||||
@@ -64,7 +64,12 @@ func (c *conn) Write(b []byte) (n int, err error) {
|
||||
return 0, err
|
||||
}
|
||||
|
||||
n, err := c.Conn.Write(append(c.domain, b...))
|
||||
switch c.typ {
|
||||
case TGT_OTHER:
|
||||
n, err = c.Conn.Write(append(c.domain, b...))
|
||||
default:
|
||||
n, err = c.Conn.Write(b)
|
||||
}
|
||||
return n - len(c.domain), err
|
||||
}
|
||||
|
||||
|
||||
+2
-1
@@ -133,12 +133,13 @@ func StartServer(relayTarget, password, certFile, keyFile, email string) {
|
||||
}
|
||||
|
||||
go func(conn net.Conn) {
|
||||
defer conn.Close()
|
||||
|
||||
conn, domain, port, err := _http.ParseAddr(conn, passwordData)
|
||||
if err != nil {
|
||||
log.Errorw("parse relay target", "err", err)
|
||||
return
|
||||
}
|
||||
defer conn.Close()
|
||||
|
||||
addr := relayTarget
|
||||
if domain != "" {
|
||||
|
||||
Reference in New Issue
Block a user