diff --git a/cmd/strelaysrv/main.go b/cmd/strelaysrv/main.go index d1aea7221..4dfb351e4 100644 --- a/cmd/strelaysrv/main.go +++ b/cmd/strelaysrv/main.go @@ -8,6 +8,7 @@ import ( "fmt" "log" "net" + "net/http" "net/url" "os" "os/signal" @@ -120,6 +121,21 @@ func main() { log.Fatal(err) } + laddr, err := net.ResolveTCPAddr(proto, listen) + if err != nil { + log.Fatal(err) + } + if laddr.IP != nil && !laddr.IP.IsUnspecified() { + laddr.Port = 0 + transport, ok := http.DefaultTransport.(*http.Transport) + if ok { + transport.DialContext = (&net.Dialer{ + Timeout: 30 * time.Second, + LocalAddr: laddr, + }).DialContext + } + } + log.Println(LongVersion) maxDescriptors, err := osutil.MaximizeOpenFileLimit()