wip
This commit is contained in:
24
webutil/listenandserve.go
Normal file
24
webutil/listenandserve.go
Normal file
@@ -0,0 +1,24 @@
|
||||
package webutil
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"net/http"
|
||||
"strings"
|
||||
|
||||
"golang.org/x/crypto/acme/autocert"
|
||||
)
|
||||
|
||||
// Serve requests using the given http.Server. If srv.Addr has the format
|
||||
// `hostname:https`, then use autocert to manage certificates for the domain.
|
||||
//
|
||||
// For http on port 80, you can use :http.
|
||||
func ListenAndServe(srv *http.Server) error {
|
||||
if strings.HasSuffix(srv.Addr, ":https") {
|
||||
hostname := strings.TrimSuffix(srv.Addr, ":https")
|
||||
if len(hostname) == 0 {
|
||||
return errors.New("https requires a hostname")
|
||||
}
|
||||
return srv.Serve(autocert.NewListener(hostname))
|
||||
}
|
||||
return srv.ListenAndServe()
|
||||
}
|
||||
Reference in New Issue
Block a user