don't resolve server addr for tun handler
This commit is contained in:
parent
54ab717f6b
commit
bcfff22669
@ -24,7 +24,7 @@ var (
|
||||
magicHeader = []byte("GOST")
|
||||
)
|
||||
|
||||
func (h *tunHandler) handleClient(ctx context.Context, conn net.Conn, addr net.Addr, config *tun_util.Config, log logger.Logger) error {
|
||||
func (h *tunHandler) handleClient(ctx context.Context, conn net.Conn, raddr string, config *tun_util.Config, log logger.Logger) error {
|
||||
ip, _, err := net.ParseCIDR(config.Net)
|
||||
if err != nil {
|
||||
return err
|
||||
@ -32,7 +32,7 @@ func (h *tunHandler) handleClient(ctx context.Context, conn net.Conn, addr net.A
|
||||
|
||||
for {
|
||||
err := func() error {
|
||||
cc, err := h.router.Dial(ctx, addr.Network(), addr.String())
|
||||
cc, err := h.router.Dial(ctx, "udp", raddr)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -87,26 +87,17 @@ func (h *tunHandler) Handle(ctx context.Context, conn net.Conn, opts ...handler.
|
||||
}).Infof("%s >< %s", conn.RemoteAddr(), conn.LocalAddr())
|
||||
}()
|
||||
|
||||
network := "udp"
|
||||
var raddr net.Addr
|
||||
var err error
|
||||
|
||||
var target *chain.Node
|
||||
if h.hop != nil {
|
||||
target = h.hop.Select(ctx)
|
||||
}
|
||||
if target != nil {
|
||||
raddr, err = net.ResolveUDPAddr(network, target.Addr)
|
||||
if err != nil {
|
||||
log.Error(err)
|
||||
return err
|
||||
}
|
||||
log = log.WithFields(map[string]any{
|
||||
"dst": fmt.Sprintf("%s/%s", raddr.String(), raddr.Network()),
|
||||
"dst": fmt.Sprintf("%s/%s", target.Addr, "udp"),
|
||||
})
|
||||
log.Debugf("%s >> %s", conn.RemoteAddr(), target.Addr)
|
||||
|
||||
if err := h.handleClient(ctx, conn, raddr, config, log); err != nil {
|
||||
if err := h.handleClient(ctx, conn, target.Addr, config, log); err != nil {
|
||||
log.Error(err)
|
||||
}
|
||||
return nil
|
||||
|
Loading…
Reference in New Issue
Block a user