toSocksAddr supports IPv6
This commit is contained in:
parent
847ee05fd4
commit
b7beb1729e
9
socks.go
9
socks.go
@ -10,6 +10,7 @@ import (
|
|||||||
"net"
|
"net"
|
||||||
"net/url"
|
"net/url"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
"strings"
|
||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
@ -1630,17 +1631,21 @@ func (h *socks5Handler) muxBindOn(conn net.Conn, addr string) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: support ipv6 and domain
|
// TODO: support domain
|
||||||
func toSocksAddr(addr net.Addr) *gosocks5.Addr {
|
func toSocksAddr(addr net.Addr) *gosocks5.Addr {
|
||||||
host := "0.0.0.0"
|
host := "0.0.0.0"
|
||||||
port := 0
|
port := 0
|
||||||
|
addrType := gosocks5.AddrIPv4
|
||||||
if addr != nil {
|
if addr != nil {
|
||||||
h, p, _ := net.SplitHostPort(addr.String())
|
h, p, _ := net.SplitHostPort(addr.String())
|
||||||
host = h
|
host = h
|
||||||
port, _ = strconv.Atoi(p)
|
port, _ = strconv.Atoi(p)
|
||||||
|
if strings.Count(host, ":") > 0 {
|
||||||
|
addrType = gosocks5.AddrIPv6
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return &gosocks5.Addr{
|
return &gosocks5.Addr{
|
||||||
Type: gosocks5.AddrIPv4,
|
Type: addrType,
|
||||||
Host: host,
|
Host: host,
|
||||||
Port: uint16(port),
|
Port: uint16(port),
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user