From bb23e3940eb9f84134dba3b1741be72c0a8b14bd Mon Sep 17 00:00:00 2001 From: Audrius Butkevicius Date: Fri, 11 Nov 2016 22:51:48 +0000 Subject: [PATCH] cmd/strelaysrv: Use listen address for outgoing HTTP requests (fixes #3682) --- cmd/strelaysrv/main.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/cmd/strelaysrv/main.go b/cmd/strelaysrv/main.go index d1aea722..4dfb351e 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()