forked from drew/smtprelay
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:
9
main.go
9
main.go
@@ -274,7 +274,14 @@ func main() {
|
|||||||
|
|
||||||
if strings.Index(listeners[i], "://") == -1 {
|
if strings.Index(listeners[i], "://") == -1 {
|
||||||
log.Printf("Listen on %s ...\n", listener)
|
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://") {
|
} else if strings.HasPrefix(listeners[i], "starttls://") {
|
||||||
listener = strings.TrimPrefix(listener, "starttls://")
|
listener = strings.TrimPrefix(listener, "starttls://")
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user