client.go | 2 +- client_test.go | 4 +++- go.mod | 5 +---- go.sum | 3 ++- network_test.go | 4 +++- socket.go | 19 ++++++++++--------- utp_go.go | 3 ++- utp_libutp.go | 5 +++-- utp_test.go | 4 +++- diff --git a/client.go b/client.go index 72dbfe26b5484fd4496562d9e4bfea659023a324..21a4e0e0b8499ed0526819d54b1aa109a3c53f7f 100644 --- a/client.go +++ b/client.go @@ -246,7 +246,7 @@ panic("error generating peer id") } } - sockets, err := listenAll(cl.listenNetworks(), cl.config.ListenHost, cl.config.ListenPort, cl.firewallCallback) + sockets, err := listenAll(cl.listenNetworks(), cl.config.ListenHost, cl.config.ListenPort, cl.firewallCallback, cl.logger) if err != nil { return } diff --git a/client_test.go b/client_test.go index a385521a1f89258e776bdddecbbb6d47254fa535..f00c0299626c9eac611372d41793c4f258f53eb0 100644 --- a/client_test.go +++ b/client_test.go @@ -15,6 +15,8 @@ "github.com/frankban/quicktest" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" + "github.com/anacrolix/log" + "github.com/anacrolix/dht/v2" "github.com/anacrolix/missinggo/v2" "github.com/anacrolix/missinggo/v2/filecache" @@ -741,7 +743,7 @@ ) } func TestClientAddressInUse(t *testing.T) { - s, _ := NewUtpSocket("udp", ":50007", nil) + s, _ := NewUtpSocket("udp", ":50007", nil, log.Default) if s != nil { defer s.Close() } diff --git a/go.mod b/go.mod index 50dba5883cebc0e2ebb7e0cd3aaeae44a82aa38e..d3289d061565314450239aac026ec42528cfb864 100644 --- a/go.mod +++ b/go.mod @@ -10,7 +10,7 @@ github.com/anacrolix/chansync v0.3.0 github.com/anacrolix/dht/v2 v2.15.2-0.20220123034220-0538803801cb github.com/anacrolix/envpprof v1.1.1 github.com/anacrolix/fuse v0.2.0 - github.com/anacrolix/go-libutp v1.1.0 + github.com/anacrolix/go-libutp v1.2.0 github.com/anacrolix/log v0.10.1-0.20220123034749-3920702c17f8 github.com/anacrolix/missinggo v1.3.0 github.com/anacrolix/missinggo/perf v1.0.0 @@ -40,9 +40,6 @@ go.etcd.io/bbolt v1.3.6 golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac zombiezen.com/go/sqlite v0.8.0 ) - -// https://gitlab.com/cznic/sqlite/-/issues/77#note_744477407 -require modernc.org/sqlite v1.14.2-0.20211125151325-d4ed92c0a70f // indirect retract ( // Doesn't signal interest to peers if choked when piece priorities change. diff --git a/go.sum b/go.sum index 3af0f0a42286bf153e376b54fd916b2aa2772bb9..82f1c13f46f28410fe818e6eb1798e7128cb06e6 100644 --- a/go.sum +++ b/go.sum @@ -118,8 +118,9 @@ github.com/anacrolix/fuse v0.2.0/go.mod h1:Kfu02xBwnySDpH3N23BmrP3MDfwAQGRLUCj6XyeOvBQ= github.com/anacrolix/go-libutp v0.0.0-20180522111405-6baeb806518d/go.mod h1:beQSaSxwH2d9Eeu5ijrEnHei5Qhk+J6cDm1QkWFru4E= github.com/anacrolix/go-libutp v1.0.2/go.mod h1:uIH0A72V++j0D1nnmTjjZUiH/ujPkFxYWkxQ02+7S0U= github.com/anacrolix/go-libutp v1.0.4/go.mod h1:8vSGX5g0b4eebsDBNVQHUXSCwYaN18Lnkse0hUW8/5w= -github.com/anacrolix/go-libutp v1.1.0 h1:89XK+0NBTaKgSoG/v5OfDK0yoyrt2HInfg46I1BaT2E= github.com/anacrolix/go-libutp v1.1.0/go.mod h1:so9zroOUhFPGnIkddyflaCCl+xdTsRSq97/AOQ2/Hjk= +github.com/anacrolix/go-libutp v1.2.0 h1:sjxoB+/ARiKUR7IK/6wLWyADIBqGmu1fm0xo+8Yy7u0= +github.com/anacrolix/go-libutp v1.2.0/go.mod h1:RrJ3KcaDcf9Jqp33YL5V/5CBEc6xMc7aJL8wXfuWL50= github.com/anacrolix/log v0.0.0-20180412014343-2323884b361d/go.mod h1:sf/7c2aTldL6sRQj/4UKyjgVZBu2+M2z9wf7MmwPiew= github.com/anacrolix/log v0.3.0/go.mod h1:lWvLTqzAnCWPJA08T2HCstZi0L1y2Wyvm3FJgwU9jwU= github.com/anacrolix/log v0.3.1-0.20190913000754-831e4ffe0174/go.mod h1:lWvLTqzAnCWPJA08T2HCstZi0L1y2Wyvm3FJgwU9jwU= diff --git a/network_test.go b/network_test.go index b1e047736cc67457e6880099d89483b22afe3206..f6b1bc8cf6356b9df033e91cb8122e5fe9f29d1e 100644 --- a/network_test.go +++ b/network_test.go @@ -4,6 +4,8 @@ import ( "net" "testing" + "github.com/anacrolix/log" + "github.com/anacrolix/missinggo/v2" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" @@ -23,7 +25,7 @@ assert.Equal(t, validIp4, ip.To4() != nil, ip) } func listenUtpListener(net, addr string) (l net.Listener, err error) { - l, err = NewUtpSocket(net, addr, nil) + l, err = NewUtpSocket(net, addr, nil, log.Default) return } diff --git a/socket.go b/socket.go index 4de2592a094e59b52cbeb6f2685f5c97c4aab573..d5b690ff2dc15c74dce34780a591b15a7a51c1d1 100644 --- a/socket.go +++ b/socket.go @@ -5,6 +5,7 @@ "context" "net" "strconv" + "github.com/anacrolix/log" "github.com/anacrolix/missinggo/perf" "github.com/anacrolix/missinggo/v2" "github.com/pkg/errors" @@ -24,12 +25,12 @@ Dialer Close() error } -func listen(n network, addr string, f firewallCallback) (socket, error) { +func listen(n network, addr string, f firewallCallback, logger log.Logger) (socket, error) { switch { case n.Tcp: return listenTcp(n.String(), addr) case n.Udp: - return listenUtp(n.String(), addr, f) + return listenUtp(n.String(), addr, f, logger) default: panic(n) } @@ -51,7 +52,7 @@ net.Listener NetworkDialer } -func listenAll(networks []network, getHost func(string) string, port int, f firewallCallback) ([]socket, error) { +func listenAll(networks []network, getHost func(string) string, port int, f firewallCallback, logger log.Logger) ([]socket, error) { if len(networks) == 0 { return nil, nil } @@ -60,7 +61,7 @@ for _, n := range networks { nahs = append(nahs, networkAndHost{n, getHost(n.String())}) } for { - ss, retry, err := listenAllRetry(nahs, port, f) + ss, retry, err := listenAllRetry(nahs, port, f, logger) if !retry { return ss, err } @@ -72,10 +73,10 @@ Network network Host string } -func listenAllRetry(nahs []networkAndHost, port int, f firewallCallback) (ss []socket, retry bool, err error) { +func listenAllRetry(nahs []networkAndHost, port int, f firewallCallback, logger log.Logger) (ss []socket, retry bool, err error) { ss = make([]socket, 1, len(nahs)) portStr := strconv.FormatInt(int64(port), 10) - ss[0], err = listen(nahs[0].Network, net.JoinHostPort(nahs[0].Host, portStr), f) + ss[0], err = listen(nahs[0].Network, net.JoinHostPort(nahs[0].Host, portStr), f, logger) if err != nil { return nil, false, errors.Wrap(err, "first listen") } @@ -89,7 +90,7 @@ } }() portStr = strconv.FormatInt(int64(missinggo.AddrPort(ss[0].Addr())), 10) for _, nah := range nahs[1:] { - s, err := listen(nah.Network, net.JoinHostPort(nah.Host, portStr), f) + s, err := listen(nah.Network, net.JoinHostPort(nah.Host, portStr), f, logger) if err != nil { return ss, missinggo.IsAddrInUse(err) && port == 0, @@ -103,8 +104,8 @@ // This isn't aliased from go-libutp since that assumes CGO. type firewallCallback func(net.Addr) bool -func listenUtp(network, addr string, fc firewallCallback) (socket, error) { - us, err := NewUtpSocket(network, addr, fc) +func listenUtp(network, addr string, fc firewallCallback, logger log.Logger) (socket, error) { + us, err := NewUtpSocket(network, addr, fc, logger) return utpSocketSocket{us, network}, err } diff --git a/utp_go.go b/utp_go.go index a7c225de434582869bd4436a99a1d7126b6faf0d..1e60f82fe8772543c183cd2ca8d5d8f8752c2e7d 100644 --- a/utp_go.go +++ b/utp_go.go @@ -4,10 +4,11 @@ package torrent import ( + "github.com/anacrolix/log" "github.com/anacrolix/utp" ) -func NewUtpSocket(network, addr string, _ firewallCallback) (utpSocket, error) { +func NewUtpSocket(network, addr string, _ firewallCallback, _ log.Logger) (utpSocket, error) { s, err := utp.NewSocket(network, addr) if s == nil { return nil, err diff --git a/utp_libutp.go b/utp_libutp.go index 76e530de940a8b5261c5e1ca0fd92bf0bda698f1..6da9402c3fe820337b286dd89f0fe5ab3df75978 100644 --- a/utp_libutp.go +++ b/utp_libutp.go @@ -5,10 +5,11 @@ package torrent import ( utp "github.com/anacrolix/go-libutp" + "github.com/anacrolix/log" ) -func NewUtpSocket(network, addr string, fc firewallCallback) (utpSocket, error) { - s, err := utp.NewSocket(network, addr) +func NewUtpSocket(network, addr string, fc firewallCallback, logger log.Logger) (utpSocket, error) { + s, err := utp.NewSocket(network, addr, utp.WithLogger(logger)) if s == nil { return nil, err } diff --git a/utp_test.go b/utp_test.go index bacb50134547a6f66be942665d99fa9731153d1f..64dd4cc09c0d61feaf91dfaa31d83fd813a8dee0 100644 --- a/utp_test.go +++ b/utp_test.go @@ -3,11 +3,13 @@ import ( "testing" + "github.com/anacrolix/log" + "github.com/stretchr/testify/assert" ) func TestNewUtpSocketErrorNilInterface(t *testing.T) { - s, err := NewUtpSocket("fix", "your:language", nil) + s, err := NewUtpSocket("fix", "your:language", nil, log.Default) assert.Error(t, err) if s != nil { t.Fatalf("expected nil, got %#v", s)