client.go | 16 ++++++++++++++-- config.go | 1 + diff --git a/client.go b/client.go index 198c04b9d779e80fac365c669210c3430839e071..17a3d87262009b58703f7d36e25033933551e3d8 100644 --- a/client.go +++ b/client.go @@ -499,7 +499,13 @@ return cfg.ListenAddr } if !cl.config.DisableTCP { var l net.Listener - l, err = net.Listen("tcp", listenAddr()) + l, err = net.Listen(func() string { + if cl.config.DisableIPv6 { + return "tcp4" + } else { + return "tcp" + } + }(), listenAddr()) if err != nil { return } @@ -507,7 +513,13 @@ cl.listeners = append(cl.listeners, l) go cl.acceptConnections(l, false) } if !cl.config.DisableUTP { - cl.utpSock, err = utp.NewSocket(listenAddr()) + cl.utpSock, err = utp.NewSocket(func() string { + if cl.config.DisableIPv6 { + return "udp4" + } else { + return "udp" + } + }(), listenAddr()) if err != nil { return } diff --git a/config.go b/config.go index e7de8d882b91ecdaf4084d0ab4ff9ae8c7eba7b2..4bc12896f60299648310a991957ae91473b99de2 100644 --- a/config.go +++ b/config.go @@ -46,4 +46,5 @@ TorrentDataOpener DisableEncryption bool `long:"disable-encryption"` IPBlocklist *iplist.IPList + DisableIPv6 bool }