Better handling of when the specified port is already in use

This commit is contained in:
spf13
2014-05-15 15:07:46 -04:00
parent b520f8852d
commit 296d218e67
2 changed files with 29 additions and 0 deletions

View File

@@ -15,6 +15,8 @@ package helpers
import (
"bytes"
"fmt"
"net"
"strings"
)
@@ -49,3 +51,16 @@ func StripHTML(s string) string {
}
return output
}
func FindAvailablePort() (*net.TCPAddr, error) {
l, err := net.Listen("tcp", ":0")
if err == nil {
defer l.Close()
addr := l.Addr()
if a, ok := addr.(*net.TCPAddr); ok {
return a, nil
}
return nil, fmt.Errorf("Unable to obtain a valid tcp port. %v", addr)
}
return nil, err
}