fix
This commit is contained in:
parent
fd9ae1a1da
commit
caa6967f83
14
go.mod
14
go.mod
|
@ -1,9 +1,11 @@
|
|||
module git.pyer.club/kingecg/gohttpd
|
||||
|
||||
go 1.19
|
||||
go 1.23.0
|
||||
|
||||
toolchain go1.23.1
|
||||
|
||||
require (
|
||||
git.pyer.club/kingecg/cmux v0.0.0-20250530133232-d30f38217ff0
|
||||
git.pyer.club/kingecg/cmux v0.0.0-20250603150926-1a9da8d893b9
|
||||
git.pyer.club/kingecg/godaemon v0.0.0-20231210104221-3a72649c6511
|
||||
git.pyer.club/kingecg/gologger v1.0.1
|
||||
github.com/golang-jwt/jwt/v5 v5.2.1
|
||||
|
@ -27,11 +29,11 @@ require (
|
|||
github.com/modern-go/reflect2 v1.0.2 // indirect
|
||||
github.com/signalsciences/ac v1.2.0 // indirect
|
||||
github.com/ugorji/go/codec v1.2.6 // indirect
|
||||
golang.org/x/crypto v0.0.0-20210915214749-c084706c2272 // indirect
|
||||
golang.org/x/crypto v0.38.0 // indirect
|
||||
golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17 // indirect
|
||||
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110 // indirect
|
||||
golang.org/x/sys v0.0.0-20211019181941-9d821ace8654 // indirect
|
||||
golang.org/x/text v0.3.7 // indirect
|
||||
golang.org/x/net v0.40.0 // indirect
|
||||
golang.org/x/sys v0.33.0 // indirect
|
||||
golang.org/x/text v0.25.0 // indirect
|
||||
google.golang.org/protobuf v1.27.1 // indirect
|
||||
gopkg.in/yaml.v2 v2.4.0 // indirect
|
||||
)
|
||||
|
|
10
go.sum
10
go.sum
|
@ -1,5 +1,7 @@
|
|||
git.pyer.club/kingecg/cmux v0.0.0-20250530133232-d30f38217ff0 h1:3JnFuzGPWtZNZi0kZdtnVBCRzbu23mu4k3Enm1lxmDk=
|
||||
git.pyer.club/kingecg/cmux v0.0.0-20250530133232-d30f38217ff0/go.mod h1:z3C1aFTj8jWd0I/4w3noDrnI1aEJbAKa2CFKcntArnI=
|
||||
git.pyer.club/kingecg/cmux v0.0.0-20250603150926-1a9da8d893b9 h1:0J9uGBOIhoonvvn1F7OSMrdhRq2KCYrRxdkSvUm4oGg=
|
||||
git.pyer.club/kingecg/cmux v0.0.0-20250603150926-1a9da8d893b9/go.mod h1:z3C1aFTj8jWd0I/4w3noDrnI1aEJbAKa2CFKcntArnI=
|
||||
git.pyer.club/kingecg/godaemon v0.0.0-20231210104221-3a72649c6511 h1:qgNgm8ewkZdK7S3gaMagPKi90wgHpuGjpQdBVz21tjE=
|
||||
git.pyer.club/kingecg/godaemon v0.0.0-20231210104221-3a72649c6511/go.mod h1:6cL7tPbT1m6EaTvrbDg/YhoZG0Mms8WBD10yRGhng4o=
|
||||
git.pyer.club/kingecg/gologger v1.0.1 h1:snCb0ePlfDUglX+CHwNzq5MRK5uNTnPUks1Dnapl/p8=
|
||||
|
@ -85,12 +87,16 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPh
|
|||
golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
|
||||
golang.org/x/crypto v0.0.0-20210915214749-c084706c2272 h1:3erb+vDS8lU1sxfDHF4/hhWyaXnhIaO+7RgL4fDZORA=
|
||||
golang.org/x/crypto v0.0.0-20210915214749-c084706c2272/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
|
||||
golang.org/x/crypto v0.38.0 h1:jt+WWG8IZlBnVbomuhg2Mdq0+BBQaHbtqHEFEigjUV8=
|
||||
golang.org/x/crypto v0.38.0/go.mod h1:MvrbAqul58NNYPKnOra203SB9vpuZW0e+RRZV+Ggqjw=
|
||||
golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17 h1:3MTrJm4PyNL9NBqvYDSj3DHl46qQakyfqfWo4jgfaEM=
|
||||
golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17/go.mod h1:lgLbSvA5ygNOMpwM/9anMpWVlVJ7Z+cHWq/eFuinpGE=
|
||||
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||
golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
||||
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110 h1:qWPm9rbaAMKs8Bq/9LRpbMqxWRVUAQwMI9fVrssnTfw=
|
||||
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
||||
golang.org/x/net v0.40.0 h1:79Xs7wF06Gbdcg4kdCCIQArK11Z1hr5POQ6+fIYHNuY=
|
||||
golang.org/x/net v0.40.0/go.mod h1:y0hY0exeL2Pku80/zKK7tpntoX23cqL3Oa6njdgRtds=
|
||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
|
@ -102,6 +108,8 @@ golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBc
|
|||
golang.org/x/sys v0.0.0-20210917161153-d61c044b1678/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20211019181941-9d821ace8654 h1:id054HUawV2/6IGm2IV8KZQjqtwAOo2CYlOToYqa0d0=
|
||||
golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw=
|
||||
golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
|
||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
||||
|
@ -109,6 +117,8 @@ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
|||
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||
golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk=
|
||||
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
|
||||
golang.org/x/text v0.25.0 h1:qVyWApTSYLk/drJRO5mDlNYskwQznZmkpV2c8q9zls4=
|
||||
golang.org/x/text v0.25.0/go.mod h1:WEdwpYrmk1qmdHvhkSTNPm3app7v4rsT8F2UD6+VHIA=
|
||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=
|
||||
|
|
|
@ -2,19 +2,17 @@ package server
|
|||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
"net"
|
||||
"net/http"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"bufio"
|
||||
"io"
|
||||
|
||||
"git.pyer.club/kingecg/cmux"
|
||||
"git.pyer.club/kingecg/gohttpd/model"
|
||||
logger "git.pyer.club/kingecg/gologger"
|
||||
"git.pyer.club/kingecg/cmux"
|
||||
)
|
||||
|
||||
var ServerManager map[string]*ServerListener = make(map[string]*ServerListener)
|
||||
|
@ -38,9 +36,9 @@ type sl struct {
|
|||
}
|
||||
|
||||
func (sl *sl) Accept() (net.Conn, error) {
|
||||
if sl.closed {
|
||||
return nil, errors.New("closed")
|
||||
}
|
||||
// if sl.closed {
|
||||
// return nil, errors.New("closed")
|
||||
// }
|
||||
|
||||
return sl.Listener.Accept()
|
||||
}
|
||||
|
@ -58,9 +56,13 @@ type Server struct {
|
|||
}
|
||||
|
||||
func (s *Server) Renew() {
|
||||
s.Server = &http.Server{
|
||||
Handler: s.Handler,
|
||||
s.Closed = false
|
||||
mux := NewServeMux(s.Conf)
|
||||
sv := &http.Server{
|
||||
Handler: mux,
|
||||
}
|
||||
s.Server = sv
|
||||
|
||||
}
|
||||
|
||||
type ServerListener struct {
|
||||
|
@ -106,6 +108,8 @@ func (s *ServerListener) StartServer(name string) {
|
|||
server.l = &sl{
|
||||
Listener: s.listener.Match(makeMatcher(serverName, s)),
|
||||
}
|
||||
} else {
|
||||
server.l.Listener = s.listener.Match(makeMatcher(serverName, s))
|
||||
}
|
||||
|
||||
if server.Conf.CertFile != "" && server.Conf.KeyFile != "" {
|
||||
|
@ -123,9 +127,10 @@ func (s *ServerListener) StopServer(name string) error {
|
|||
if !ok {
|
||||
return nil
|
||||
}
|
||||
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
|
||||
defer cancel()
|
||||
return server.Shutdown(ctx)
|
||||
// ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
|
||||
// defer cancel()
|
||||
s.listener.Remove(server.l.Listener)
|
||||
return server.Shutdown(context.Background())
|
||||
}
|
||||
|
||||
// Start 方法用于并发启动 ServerListener 中所有注册的服务器。
|
||||
|
|
Loading…
Reference in New Issue