From 00e75e687256efaa1214f3d24f29757962c2fa42 Mon Sep 17 00:00:00 2001 From: zirain Date: Tue, 29 Oct 2024 06:05:56 +0800 Subject: [PATCH] make proto configurable Signed-off-by: zirain --- src/server/server_impl.go | 9 +++++---- src/settings/settings.go | 1 + 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/server/server_impl.go b/src/server/server_impl.go index f23419176..c1b53e31e 100644 --- a/src/server/server_impl.go +++ b/src/server/server_impl.go @@ -57,6 +57,7 @@ const ( ) type server struct { + proto string httpAddress string grpcAddress string grpcListenType grpcListenType @@ -171,7 +172,7 @@ func (server *server) Start() { logger.Warnf("Listening for debug on '%s'", server.debugAddress) var err error server.listenerMu.Lock() - server.debugListener.listener, err = reuseport.Listen("tcp", server.debugAddress) + server.debugListener.listener, err = reuseport.Listen(server.proto, server.debugAddress) server.listenerMu.Unlock() if err != nil { @@ -187,7 +188,7 @@ func (server *server) Start() { server.handleGracefulShutdown() logger.Warnf("Listening for HTTP on '%s'", server.httpAddress) - list, err := reuseport.Listen("tcp", server.httpAddress) + list, err := reuseport.Listen(server.proto, server.httpAddress) if err != nil { logger.Fatalf("Failed to open HTTP listener: '%+v'", err) } @@ -209,7 +210,7 @@ func (server *server) startGrpc() { switch server.grpcListenType { case tcp: - lis, err = reuseport.Listen("tcp", server.grpcAddress) + lis, err = reuseport.Listen(server.proto, server.grpcAddress) case unixDomainSocket: lis, err = net.Listen("unix", server.grpcAddress) default: @@ -240,7 +241,7 @@ func newServer(s settings.Settings, name string, statsManager stats.Manager, loc } ret := new(server) - + ret.proto = s.Proto // setup stats ret.store = statsManager.GetStatsStore() ret.scope = ret.store.ScopeWithTags(name, s.ExtraTags) diff --git a/src/settings/settings.go b/src/settings/settings.go index 9febf7d9b..99ec86e88 100644 --- a/src/settings/settings.go +++ b/src/settings/settings.go @@ -11,6 +11,7 @@ import ( ) type Settings struct { + Proto string `envconfig:"PROTO" default:"tcp"` // runtime options // This value shall be imported into unary server interceptor in order to enable chaining GrpcUnaryInterceptor grpc.UnaryServerInterceptor