Keep http.Server as a field of tango struct #45

Merged
lunny merged 1 commits from youjianglong/master into master 2018-03-21 02:07:36 +00:00

11
tan.go
View File

@ -19,6 +19,7 @@ func Version() string {
// Tango describes tango object // Tango describes tango object
type Tango struct { type Tango struct {
http.Server
Router Router
handlers []Handler handlers []Handler
logger Logger logger Logger
@ -146,7 +147,10 @@ func (t *Tango) Run(args ...interface{}) {
addr := getAddress(args...) addr := getAddress(args...)
t.logger.Info("Listening on http://" + addr) t.logger.Info("Listening on http://" + addr)
err := http.ListenAndServe(addr, t) t.Server.Addr = addr
t.Server.Handler = t
err := t.ListenAndServe()
if err != nil { if err != nil {
t.logger.Error(err) t.logger.Error(err)
} }
@ -158,7 +162,10 @@ func (t *Tango) RunTLS(certFile, keyFile string, args ...interface{}) {
t.logger.Info("Listening on https://" + addr) t.logger.Info("Listening on https://" + addr)
err := http.ListenAndServeTLS(addr, certFile, keyFile, t) t.Server.Addr = addr
t.Server.Handler = t
err := t.ListenAndServeTLS(certFile, keyFile)
if err != nil { if err != nil {
t.logger.Error(err) t.logger.Error(err)
} }