处理一些异常

This commit is contained in:
白茶清欢 2025-05-28 20:45:23 +08:00
parent 5fdd619dfe
commit c3d9bfd3bc

View File

@ -88,7 +88,7 @@ type endlessServer struct {
}
/*
NewServer returns an intialized endlessServer Object. Calling Serve on it will
NewServer returns an initialized endlessServer Object. Calling Serve on it will
actually "start" the server.
*/
func NewServer(addr string, handler http.Handler) (srv *endlessServer) {
@ -191,7 +191,7 @@ handler to reply to them. Handler is typically nil, in which case the
DefaultServeMux is used.
In addition to the stl Serve behaviour each connection is added to a
sync.Waitgroup so that all outstanding connections can be served before shutting
sync.WaitGroup so that all outstanding connections can be served before shutting
down the server.
*/
func (srv *endlessServer) Serve() (err error) {
@ -226,7 +226,9 @@ func (srv *endlessServer) ListenAndServe() (err error) {
srv.EndlessListener = newEndlessListener(l, srv)
if srv.isChild {
syscall.Kill(syscall.Getppid(), syscall.SIGTERM)
if err = syscall.Kill(syscall.Getppid(), syscall.SIGTERM); nil != err {
return err
}
}
srv.BeforeBegin(srv.Addr)
@ -277,7 +279,9 @@ func (srv *endlessServer) ListenAndServeTLS(certFile, keyFile string) (err error
srv.EndlessListener = tls.NewListener(srv.tlsInnerListener, config)
if srv.isChild {
syscall.Kill(syscall.Getppid(), syscall.SIGTERM)
if err = syscall.Kill(syscall.Getppid(), syscall.SIGTERM); nil != err {
return err
}
}
log.Println(syscall.Getpid(), srv.Addr)
@ -497,8 +501,12 @@ func (el *endlessListener) Accept() (c net.Conn, err error) {
return
}
tc.SetKeepAlive(true) // see http.tcpKeepAliveListener
tc.SetKeepAlivePeriod(3 * time.Minute) // see http.tcpKeepAliveListener
if err = tc.SetKeepAlive(true); nil != err {
return nil, err
} // see http.tcpKeepAliveListener
if err = tc.SetKeepAlivePeriod(3 * time.Minute); nil != err {
return nil, err
} // see http.tcpKeepAliveListener
c = endlessConn{
Conn: tc,