)
func TestPexConnState(t *testing.T) {
- cl := Client{
- config: TestingConfig(),
- }
+ var cl Client
+ cl.init(TestingConfig(t))
cl.initLogger()
torrent := cl.newTorrent(metainfo.Hash{}, nil)
addr := &net.TCPAddr{IP: net.IPv6loopback, Port: 4747}
- c := cl.newConnection(nil, false, addr, "")
+ c := cl.newConnection(nil, newConnectionOpts{
+ remoteAddr: addr,
+ network: addr.Network(),
+ })
c.PeerExtensionIDs = make(map[pp.ExtensionName]pp.ExtensionNumber)
c.PeerExtensionIDs[pp.ExtensionNamePex] = pexExtendedId
- c.writerCond.L.Lock()
+ c.messageWriter.mu.Lock()
c.setTorrent(torrent)
- torrent.addConnection(c)
+ if err := torrent.addPeerConn(c); err != nil {
+ t.Log(err)
+ }
+ connWriteCond := c.messageWriter.writeCond.Signaled()
c.pex.Init(c)
require.True(t, c.pex.IsEnabled(), "should get enabled")
defer c.pex.Close()
out = m
return true
}
- c.writerCond.Wait()
+ <-connWriteCond
c.pex.Share(testWriter)
require.True(t, writerCalled)
require.EqualValues(t, pp.Extended, out.Type)
x, err := pp.LoadPexMsg(out.ExtendedPayload)
require.NoError(t, err)
- targx := &pp.PexMsg{
+ targx := pp.PexMsg{
Added: krpc.CompactIPv4NodeAddrs(nil),
AddedFlags: []pp.PexPeerFlags{},
Added6: krpc.CompactIPv6NodeAddrs{
- nodeAddr(addr),
+ mustNodeAddr(addr),
},
Added6Flags: []pp.PexPeerFlags{0},
}