From: Matt Joiner <anacrolix@gmail.com>
Date: Mon, 17 Nov 2014 05:24:25 +0000 (-0600)
Subject: loghttp: Try successive port numbers until available
X-Git-Tag: v1.0.0~1532
X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=32d31188fbf8a06db46002d5d01acd93bf974de7;p=btrtrc.git

loghttp: Try successive port numbers until available
---

diff --git a/util/loghttp.go b/util/loghttp.go
index b63ad4e4..770353fe 100644
--- a/util/loghttp.go
+++ b/util/loghttp.go
@@ -11,9 +11,16 @@ func LoggedHTTPServe(addr string) {
 	if err != nil {
 		log.Fatalf("error resolving http addr: %s", err)
 	}
-	conn, err := net.ListenTCP("tcp", netAddr)
+	var conn net.Listener
+	for try := 0; try < 100; try++ {
+		conn, err = net.ListenTCP("tcp", netAddr)
+		if err == nil {
+			break
+		}
+		netAddr.Port++
+	}
 	if err != nil {
-		log.Fatalf("error creating http conn: %s", err)
+		log.Fatalf("error creating http conn: %#v", err)
 	}
 	log.Printf("starting http server on http://%s", conn.Addr())
 	go func() {