From 35432832c4273783847067bed9536d3c4a80243e Mon Sep 17 00:00:00 2001 From: Darien Raymond Date: Mon, 14 Jan 2019 22:57:53 +0100 Subject: [PATCH] don't use new address if not in redirect mode --- proxy/dokodemo/dokodemo.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/proxy/dokodemo/dokodemo.go b/proxy/dokodemo/dokodemo.go index 2a25dc4c1..cabb4599e 100644 --- a/proxy/dokodemo/dokodemo.go +++ b/proxy/dokodemo/dokodemo.go @@ -78,13 +78,17 @@ func (d *DokodemoDoor) Process(ctx context.Context, network net.Network, conn in Address: d.address, Port: d.port, } + + destinationOverridden := false if d.config.FollowRedirect { if outbound := session.OutboundFromContext(ctx); outbound != nil && outbound.Target.IsValid() { dest = outbound.Target + destinationOverridden = true } else if handshake, ok := conn.(hasHandshakeAddress); ok { addr := handshake.HandshakeAddress() if addr != nil { dest.Address = addr + destinationOverridden = true } } } @@ -121,7 +125,7 @@ func (d *DokodemoDoor) Process(ctx context.Context, network net.Network, conn in writer = buf.NewWriter(conn) } else { //if we are in TPROXY mode, use linux's udp forging functionality - if !d.config.FollowRedirect { + if !destinationOverridden { writer = &buf.SequentialWriter{Writer: conn} } else { sockopt := &internet.SocketConfig{