consider byte order for IPv6 original dst address
This commit is contained in:
@@ -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)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user