diff --git a/go.mod b/go.mod index 706ee3ef0a02205ea95d65c8de93efd4799b8496..25e8915cf3263f1b29375e37bb23fafd4f52e9e5 100644 --- a/go.mod +++ b/go.mod @@ -7,6 +7,7 @@ require ( github.com/caddyserver/caddy/v2 v2.7.4 github.com/digitalocean/godo v1.102.1 github.com/google/uuid v1.3.0 + github.com/libp2p/go-reuseport v0.4.0 github.com/zalando/postgres-operator v1.8.2 go.uber.org/zap v1.25.0 google.golang.org/api v0.126.0 diff --git a/go.sum b/go.sum index 91e67319bb9289efbb9802a3f740a5306fbb6e00..77f5f2b58a2aa1f586dc378454fb2b3eb30b4699 100644 --- a/go.sum +++ b/go.sum @@ -238,6 +238,8 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/libdns/libdns v0.2.1 h1:Wu59T7wSHRgtA0cfxC+n1c/e+O3upJGWytknkmFEDis= github.com/libdns/libdns v0.2.1/go.mod h1:yQCXzk1lEZmmCPa857bnk4TsOiqYasqpyOEeSObbb40= +github.com/libp2p/go-reuseport v0.4.0 h1:nR5KU7hD0WxXCJbmw7r2rhRYruNRl2koHw8fQscQm2s= +github.com/libp2p/go-reuseport v0.4.0/go.mod h1:ZtI03j/wO5hZVDFo2jKywN6bYKWLOy8Se6DrI2E1cLU= github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU= diff --git a/lib/gat/gatcaddyfile/gattype.go b/lib/gat/gatcaddyfile/gattype.go index db839f49f00a91d507e95e354b5af433787c95da..90198a368d7004c9b79e96dbe1d6b6d2dae5c85b 100644 --- a/lib/gat/gatcaddyfile/gattype.go +++ b/lib/gat/gatcaddyfile/gattype.go @@ -186,6 +186,8 @@ func (ServerType) Setup(blocks []caddyfile.ServerBlock, m map[string]any) (*cadd "database", &warnings, ) + case matcher == "*": + route.Match = nil // wildcard default: d.Prev() } diff --git a/lib/gat/listen.go b/lib/gat/listen.go index df2f09cc508b1566526e86bd02a24e9ff6a768f5..fb2e718ea2c2a1f25752699c7af68ad93501d1f5 100644 --- a/lib/gat/listen.go +++ b/lib/gat/listen.go @@ -6,6 +6,7 @@ import ( "net" "github.com/caddyserver/caddy/v2" + "github.com/libp2p/go-reuseport" "go.uber.org/zap" "gfx.cafe/gfx/pggat/lib/fed" @@ -53,7 +54,7 @@ func (T *Listener) Provision(ctx caddy.Context) error { func (T *Listener) Start() error { var err error - T.listener, err = net.Listen(T.Network, T.Address) + T.listener, err = reuseport.Listen(T.Network, T.Address) if err != nil { return err }