hnakra/cmd/router/srvhttps/https.go

41 lines
951 B
Go

package srvhttps
import "fmt"
import "log"
import "net/http"
import "hnakra/router/config"
type Server struct {
underlying *http.Server
Config config.Config
Handler http.Handler
running bool
}
func (server *Server) Run () error {
server.underlying = &http.Server {
Addr: fmt.Sprint(":", server.Config.HTTPSPort()),
// ReadHeaderTimeout: timeoutReadHeader * time.Second,
// ReadTimeout: timeoutRead * time.Second,
// WriteTimeout: timeoutWrite * time.Second,
// IdleTimeout: timeoutIdle * time.Second,
TLSConfig: config.TLSConfigFor(server.Config),
Handler: server.Handler,
}
server.running = true
log.Println(".// https on", server.underlying.Addr)
err := server.underlying.ListenAndServeTLS("", "")
if server.running {
return err
} else {
return nil
}
}
func (server *Server) Shutdown () error {
server.running = false
return server.underlying.Close()
}