Fix the Let's Encrypt handler by listening on a valid address (#5525)
* Fix the Let's Encrypt handler by listening on a valid address
Also handle errors in the HTTP server go routine, return a fatal error
when something goes wrong.
Thanks to @gbl08ma for finding the actual bug
Here is an example of the error handling:
2018/12/11 14:23:07 [....io/gitea/cmd/web.go:87 func1()] [E] Failed to
start the Let's Encrypt handler on port 30: listen tcp 0.0.0.0:30: bind:
permission denied
Closes#5280
* Fix a typo
gohttp.ListenAndServe(listenAddr+":"+setting.PortToRedirect,certManager.HTTPHandler(http.HandlerFunc(runLetsEncryptFallbackHandler)))// all traffic coming into HTTP will be redirect to HTTPS automatically (LE HTTP-01 validatio happens here)
gofunc(){
log.Info("Running Let's Encrypt handler on %s",setting.HTTPAddr+":"+setting.PortToRedirect)
varerr=http.ListenAndServe(setting.HTTPAddr+":"+setting.PortToRedirect,certManager.HTTPHandler(http.HandlerFunc(runLetsEncryptFallbackHandler)))// all traffic coming into HTTP will be redirect to HTTPS automatically (LE HTTP-01 validation happens here)
iferr!=nil{
log.Fatal(4,"Failed to start the Let's Encrypt handler on port %s: %v",setting.PortToRedirect,err)