Don't run ListenAndServe in a goroutine

Any errors returned in ListenAndServe() (e.g. port already in use) will be
swallowed and not evident to the user.
This commit is contained in:
Jonathon Reinhart
2021-02-14 23:24:25 -05:00
parent b202a2209e
commit fd3f513b18

View File

@@ -274,7 +274,14 @@ func main() {
if strings.Index(listeners[i], "://") == -1 {
log.Printf("Listen on %s ...\n", listener)
go server.ListenAndServe(listener)
lsnr, err := net.Listen("tcp", listener)
if err != nil {
log.Fatal(err)
}
defer lsnr.Close()
go server.Serve(lsnr)
} else if strings.HasPrefix(listeners[i], "starttls://") {
listener = strings.TrimPrefix(listener, "starttls://")