func TestClientDefault(t *testing.T) {
cl, err := NewClient(&Config{
NoDefaultBlocklist: true,
+ ListenAddr: ":0",
})
if err != nil {
t.Fatal(err)
t.Fatalf("messages received: %d", msgsReceived)
}
}
+
+func TestTwoClientsArbitraryPorts(t *testing.T) {
+ for i := 0; i < 2; i++ {
+ cl, err := NewClient(&Config{
+ ListenAddr: ":0",
+ })
+ if err != nil {
+ t.Fatal(err)
+ }
+ defer cl.Stop()
+ }
+}
return ca.a.(*net.UDPAddr)
}
-func newDHTAddr(addr *net.UDPAddr) dHTAddr {
+func newDHTAddr(addr net.Addr) dHTAddr {
return cachedAddr{addr, addr.String()}
}
logonce.Stderr.Printf("received dht packet exceeds buffer size")
continue
}
- s.processPacket(b[:n], newDHTAddr(addr.(*net.UDPAddr)))
+ s.processPacket(b[:n], newDHTAddr(addr))
}
}
var t *transaction
t, err = s.findNode(node.addr, s.id)
if err != nil {
- log.Printf("error sending find_node: %s", err)
- continue
+ err = fmt.Errorf("error sending find_node: %s", err)
+ return
}
outstanding.Add(1)
go func() {