Test: fix direct listen fail
This commit is contained in:
37
test/util.go
Normal file
37
test/util.go
Normal file
@ -0,0 +1,37 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"net"
|
||||
"time"
|
||||
)
|
||||
|
||||
func Listen(network, address string) (net.Listener, error) {
|
||||
lc := net.ListenConfig{}
|
||||
|
||||
var lastErr error
|
||||
for i := 0; i < 5; i++ {
|
||||
l, err := lc.Listen(context.Background(), network, address)
|
||||
if err == nil {
|
||||
return l, nil
|
||||
}
|
||||
|
||||
lastErr = err
|
||||
time.Sleep(time.Millisecond * 200)
|
||||
}
|
||||
return nil, lastErr
|
||||
}
|
||||
|
||||
func ListenPacket(network, address string) (net.PacketConn, error) {
|
||||
var lastErr error
|
||||
for i := 0; i < 5; i++ {
|
||||
l, err := net.ListenPacket(network, address)
|
||||
if err == nil {
|
||||
return l, nil
|
||||
}
|
||||
|
||||
lastErr = err
|
||||
time.Sleep(time.Millisecond * 200)
|
||||
}
|
||||
return nil, lastErr
|
||||
}
|
Reference in New Issue
Block a user