Add square brackets to IPv6

This commit is contained in:
Qian Wang 2019-03-23 18:02:01 +11:00
parent cffee1452a
commit 2e36acd1f8
1 changed files with 13 additions and 3 deletions

View File

@ -48,7 +48,12 @@ func makeRemoteConn(sta *client.State) (net.Conn, error) {
d := net.Dialer{Control: protector} d := net.Dialer{Control: protector}
clientHello := TLS.ComposeInitHandshake(sta) clientHello := TLS.ComposeInitHandshake(sta)
remoteConn, err := d.Dial("tcp", sta.SS_REMOTE_HOST+":"+sta.SS_REMOTE_PORT) connectingIP := sta.SS_REMOTE_HOST
if net.ParseIP(connectingIP).To4() == nil {
// IPv6 needs square brackets
connectingIP = "[" + connectingIP + "]"
}
remoteConn, err := d.Dial("tcp", connectingIP+":"+sta.SS_REMOTE_PORT)
if err != nil { if err != nil {
log.Printf("Connecting to remote: %v\n", err) log.Printf("Connecting to remote: %v\n", err)
return nil, err return nil, err
@ -154,8 +159,13 @@ func main() {
if sta.TicketTimeHint == 0 { if sta.TicketTimeHint == 0 {
log.Fatal("TicketTimeHint cannot be empty or 0") log.Fatal("TicketTimeHint cannot be empty or 0")
} }
listener, err := net.Listen("tcp", sta.SS_LOCAL_HOST+":"+sta.SS_LOCAL_PORT) listeningIP := sta.SS_LOCAL_HOST
log.Println("Listening for ss on " + sta.SS_LOCAL_HOST + ":" + sta.SS_LOCAL_PORT) if net.ParseIP(listeningIP).To4() == nil {
// IPv6 needs square brackets
listeningIP = "[" + listeningIP + "]"
}
listener, err := net.Listen("tcp", listeningIP+":"+sta.SS_LOCAL_PORT)
log.Println("Listening for ss on " + listeningIP + ":" + sta.SS_LOCAL_PORT)
if err != nil { if err != nil {
log.Fatal(err) log.Fatal(err)
} }