mirror of
https://github.com/XTLS/Xray-core.git
synced 2025-08-22 01:26:49 +08:00
Dokodemo-door: Add simple tunnel
config (alias and default values) (#4968)
dokodemo-door -> tunnel freedom -> direct blackhole -> block https://github.com/XTLS/Xray-core/discussions/4966#discussioncomment-13948546 https://github.com/XTLS/Xray-core/pull/4967#issuecomment-3143951306
This commit is contained in:
@@ -3,6 +3,8 @@ package dokodemo
|
||||
import (
|
||||
"context"
|
||||
"runtime"
|
||||
"strconv"
|
||||
"strings"
|
||||
"sync/atomic"
|
||||
|
||||
"github.com/xtls/xray-core/common"
|
||||
@@ -73,6 +75,25 @@ func (d *DokodemoDoor) Process(ctx context.Context, network net.Network, conn st
|
||||
Port: d.port,
|
||||
}
|
||||
|
||||
if !d.config.FollowRedirect {
|
||||
host, port, err := net.SplitHostPort(conn.LocalAddr().String())
|
||||
if dest.Address == nil {
|
||||
if err != nil {
|
||||
dest.Address = net.DomainAddress("localhost")
|
||||
} else {
|
||||
if strings.Contains(host, ".") {
|
||||
dest.Address = net.LocalHostIP
|
||||
} else {
|
||||
dest.Address = net.LocalHostIPv6
|
||||
}
|
||||
}
|
||||
}
|
||||
if dest.Port == 0 {
|
||||
dest.Port = net.Port(common.Must2(strconv.Atoi(port)).(int))
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
destinationOverridden := false
|
||||
if d.config.FollowRedirect {
|
||||
outbounds := session.OutboundsFromContext(ctx)
|
||||
|
Reference in New Issue
Block a user