Files
Paul Lorenz 95a4bfc777 Update to 2.0
* move util up a level
* rename common to versions
* remove pfxlog from versions
* remove neatcat and echo server
* move udp code to transport
* remove agent, identity and metrics, which have been split out
* remove config which was unused
2022-06-30 13:33:41 -04:00

46 lines
841 B
Go

package netz
import (
"net"
"time"
)
func WaitForPortActive(address string, duration time.Duration) error {
now := time.Now()
endTime := now.Add(duration)
maxWait := duration
for {
conn, err := net.DialTimeout("tcp", address, maxWait)
if err == nil {
_ = conn.Close()
return nil
}
now = time.Now()
if !now.Before(endTime) {
return err
}
maxWait = endTime.Sub(now)
time.Sleep(10 * time.Millisecond)
}
}
func WaitForPortGone(address string, duration time.Duration) error {
now := time.Now()
endTime := now.Add(duration)
maxWait := duration
for {
conn, err := net.DialTimeout("tcp", address, maxWait)
if err == nil {
_ = conn.Close()
} else {
return nil
}
now = time.Now()
if !now.Before(endTime) {
return err
}
maxWait = endTime.Sub(now)
time.Sleep(10 * time.Millisecond)
}
}