Services no longer print out errors when they shut down
This commit is contained in:
parent
92b645f34c
commit
c9f2c56d65
@ -11,6 +11,8 @@ type Server struct {
|
|||||||
underlying net.Listener
|
underlying net.Listener
|
||||||
Config config.Config
|
Config config.Config
|
||||||
Router *router.Router
|
Router *router.Router
|
||||||
|
|
||||||
|
running bool
|
||||||
}
|
}
|
||||||
|
|
||||||
func (server *Server) Run () (err error) {
|
func (server *Server) Run () (err error) {
|
||||||
@ -18,17 +20,25 @@ func (server *Server) Run () (err error) {
|
|||||||
"tcp", fmt.Sprint(":", server.Config.RouterPort()),
|
"tcp", fmt.Sprint(":", server.Config.RouterPort()),
|
||||||
config.TLSConfigFor(server.Config))
|
config.TLSConfigFor(server.Config))
|
||||||
if err != nil { return err }
|
if err != nil { return err }
|
||||||
|
|
||||||
|
server.running = true
|
||||||
log.Println(".// router on", server.underlying.Addr())
|
log.Println(".// router on", server.underlying.Addr())
|
||||||
|
|
||||||
for {
|
for {
|
||||||
conn, err := server.underlying.Accept()
|
conn, err := server.underlying.Accept()
|
||||||
if err != nil { return err }
|
if err != nil {
|
||||||
|
if server.running {
|
||||||
|
return err
|
||||||
|
} else {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
log.Println("-=E incoming connection from", conn.RemoteAddr())
|
log.Println("-=E incoming connection from", conn.RemoteAddr())
|
||||||
server.Router.Accept(conn)
|
server.Router.Accept(conn)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (server *Server) Shutdown () error {
|
func (server *Server) Shutdown () error {
|
||||||
|
server.running = false
|
||||||
return server.underlying.Close()
|
return server.underlying.Close()
|
||||||
}
|
}
|
||||||
|
@ -9,6 +9,8 @@ type Server struct {
|
|||||||
underlying *http.Server
|
underlying *http.Server
|
||||||
Config config.Config
|
Config config.Config
|
||||||
Handler http.Handler
|
Handler http.Handler
|
||||||
|
|
||||||
|
running bool
|
||||||
}
|
}
|
||||||
|
|
||||||
func (server *Server) Run () error {
|
func (server *Server) Run () error {
|
||||||
@ -22,10 +24,17 @@ func (server *Server) Run () error {
|
|||||||
Handler: server.Handler,
|
Handler: server.Handler,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
server.running = true
|
||||||
log.Println(".// https on", server.underlying.Addr)
|
log.Println(".// https on", server.underlying.Addr)
|
||||||
return server.underlying.ListenAndServeTLS("", "")
|
err := server.underlying.ListenAndServeTLS("", "")
|
||||||
|
if server.running {
|
||||||
|
return err
|
||||||
|
} else {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (server *Server) Shutdown () error {
|
func (server *Server) Shutdown () error {
|
||||||
|
server.running = false
|
||||||
return server.underlying.Close()
|
return server.underlying.Close()
|
||||||
}
|
}
|
||||||
|
@ -19,11 +19,13 @@ type HTTP struct {
|
|||||||
Handler http.Handler
|
Handler http.Handler
|
||||||
|
|
||||||
conn *Conn
|
conn *Conn
|
||||||
|
running bool
|
||||||
requests requestManager
|
requests requestManager
|
||||||
}
|
}
|
||||||
|
|
||||||
// Close closes the mount abruptly, interrupting any active connections.
|
// Close closes the mount abruptly, interrupting any active connections.
|
||||||
func (htmount *HTTP) Close () error {
|
func (htmount *HTTP) Close () error {
|
||||||
|
htmount.running = false
|
||||||
return htmount.conn.Close()
|
return htmount.conn.Close()
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -44,12 +46,19 @@ func (htmount *HTTP) Run (service ServiceInfo) (err error) {
|
|||||||
}
|
}
|
||||||
htmount.conn, err = Dial(htmount.MountInfo, service)
|
htmount.conn, err = Dial(htmount.MountInfo, service)
|
||||||
if err != nil { return }
|
if err != nil { return }
|
||||||
|
|
||||||
|
htmount.running = true
|
||||||
htmount.requests.init()
|
htmount.requests.init()
|
||||||
|
|
||||||
for {
|
for {
|
||||||
message, err := htmount.conn.Receive()
|
message, err := htmount.conn.Receive()
|
||||||
if err != nil { return err }
|
if err != nil {
|
||||||
|
if htmount.running {
|
||||||
|
return err
|
||||||
|
} else {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
switch message.(type) {
|
switch message.(type) {
|
||||||
case protocol.MessageHTTPRequest:
|
case protocol.MessageHTTPRequest:
|
||||||
|
Loading…
Reference in New Issue
Block a user