}
func TestClientAddressInUse(t *testing.T) {
- s, _ := NewUtpSocket("udp", ":50007", nil, log.Default)
+ s, _ := NewUtpSocket("udp", "localhost:50007", nil, log.Default)
if s != nil {
defer s.Close()
}
- cfg := TestingConfig(t).SetListenAddr(":50007")
+ cfg := TestingConfig(t).SetListenAddr("localhost:50007")
cfg.DisableUTP = false
cl, err := NewClient(cfg)
+ if err == nil {
+ assert.Nil(t, cl.Close())
+ }
require.Error(t, err)
require.Nil(t, cl)
}
func (t *Torrent) AddPeers(pp []PeerInfo) (n int) {
t.cl.lock()
+ defer t.cl.unlock()
n = t.addPeers(pp)
- t.cl.unlock()
return
}
for msgLen := 1; ; msgLen *= 2 {
n, err := c.Write(make([]byte, msgLen))
if err != nil {
- require.Contains(t, err.Error(), "message too long")
- return
+ if isErrMessageTooLong(err) {
+ return
+ }
+ t.Fatalf("expected message too long error: %v", err)
}
if n < msgLen {
t.FailNow()
--- /dev/null
+//go:build !windows
+
+package udp
+
+import (
+ "strings"
+)
+
+func isErrMessageTooLong(err error) bool {
+ if err == nil {
+ return false
+ }
+ return strings.Contains(err.Error(), "message too long")
+}
--- /dev/null
+package udp
+
+import (
+ "errors"
+
+ "golang.org/x/sys/windows"
+)
+
+func isErrMessageTooLong(err error) bool {
+ return errors.Is(err, windows.WSAEMSGSIZE)
+}