]> Sergey Matveev's repositories - btrtrc.git/commitdiff
Add an option to disable IPv6
authorMatt Joiner <anacrolix@gmail.com>
Tue, 4 Aug 2015 16:41:50 +0000 (02:41 +1000)
committerMatt Joiner <anacrolix@gmail.com>
Tue, 4 Aug 2015 16:41:50 +0000 (02:41 +1000)
client.go
config.go

index 198c04b9d779e80fac365c669210c3430839e071..17a3d87262009b58703f7d36e25033933551e3d8 100644 (file)
--- a/client.go
+++ b/client.go
@@ -499,7 +499,13 @@ func NewClient(cfg *Config) (cl *Client, err error) {
        }
        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 @@ func NewClient(cfg *Config) (cl *Client, err error) {
                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
                }
index e7de8d882b91ecdaf4084d0ab4ff9ae8c7eba7b2..4bc12896f60299648310a991957ae91473b99de2 100644 (file)
--- a/config.go
+++ b/config.go
@@ -46,4 +46,5 @@ type Config struct {
        DisableEncryption bool `long:"disable-encryption"`
 
        IPBlocklist *iplist.IPList
+       DisableIPv6 bool
 }