consider byte order for IPv6 original dst address

This commit is contained in:
zhangchunyun
2024-12-11 18:34:15 +08:00
committed by ginuerzh
parent 8d962398ab
commit ff6807815f
+5 -1
View File
@@ -1,6 +1,7 @@
package redirect package redirect
import ( import (
"encoding/binary"
"errors" "errors"
"net" "net"
"syscall" "syscall"
@@ -45,9 +46,12 @@ func (h *redirectHandler) getOriginalDstAddr(conn net.Conn) (addr net.Addr, err
cerr = err cerr = err
return return
} }
var buf = make([]byte, 2)
binary.BigEndian.PutUint16(buf, info.Addr.Port)
addr = &net.TCPAddr{ addr = &net.TCPAddr{
IP: net.IP(info.Addr.Addr[:]), IP: net.IP(info.Addr.Addr[:]),
Port: int(info.Addr.Port), Port: int(binary.NativeEndian.Uint16(buf)),
} }
} }
}) })