correcting grpc.go
Some checks failed
lint / lint (pull_request) Failing after 1m22s
test / test (pull_request) Successful in 2m23s

This commit is contained in:
2025-02-27 18:44:11 +03:00
parent c0d186327e
commit 8578b74e33
2 changed files with 10 additions and 37 deletions

2
go.mod
View File

@@ -1,4 +1,4 @@
module go.unistack.org/micro-server-grpc/v3
module go.unistack.org/micro-server-grpc/v4
go 1.22.0

45
grpc.go
View File

@@ -44,13 +44,6 @@ const (
DefaultContentType = "application/grpc"
)
/*
type ServerReflection struct {
srv *grpc.Server
s *serverReflectionServer
}
*/
type streamWrapper struct {
ctx context.Context
grpc.ServerStream
@@ -99,22 +92,6 @@ func newServer(opts ...server.Option) *Server {
return g
}
/*
type grpcRouter struct {
h func(context.Context, server.Request, interface{}) error
m func(context.Context, server.Message) error
}
func (r grpcRouter) ProcessMessage(ctx context.Context, msg server.Message) error {
return r.m(ctx, msg)
}
func (r grpcRouter) ServeRequest(ctx context.Context, req server.Request, rsp server.Response) error {
return r.h(ctx, req, rsp)
}
*/
func (g *Server) configure(opts ...server.Option) error {
g.Lock()
defer g.Unlock()
@@ -210,8 +187,9 @@ func (g *Server) handler(srv interface{}, stream grpc.ServerStream) error {
return status.Errorf(codes.Internal, "method does not exist in context")
}
var gmd map[string][]string
// get grpc metadata
gmd, ok := gmetadata.FromIncomingContext(ctx)
gmd, ok = gmetadata.FromIncomingContext(ctx)
if !ok {
gmd = gmetadata.MD{}
}
@@ -244,12 +222,10 @@ func (g *Server) handler(srv interface{}, stream grpc.ServerStream) error {
}()
}
md := metadata.New(len(gmd))
for k, v := range gmd {
md[k] = v
}
md.Set("Path", fullMethod)
md.Set("Micro-Server", "grpc")
md := metadata.Copy(gmd)
md.Set("path", fullMethod)
md.Set("micro-server", "grpc")
md.Set(metadata.HeaderEndpoint, methodName)
md.Set(metadata.HeaderService, serviceName)
@@ -259,8 +235,8 @@ func (g *Server) handler(srv interface{}, stream grpc.ServerStream) error {
md.Del("timeout")
td = v[0]
}
if v, ok := md.Get("Grpc-Timeout"); ok && len(v) > 0 {
md.Del("Grpc-Timeout")
if v, ok := md.Get("grpc-timeout"); ok && len(v) > 0 {
md.Del("grpc-timeout")
td = v[0][:len(v)-1]
switch v[0][len(v)-1:] {
case "S":
@@ -283,9 +259,6 @@ func (g *Server) handler(srv interface{}, stream grpc.ServerStream) error {
if ctype, ok := md.Get("content-type"); ok && len(ctype) > 0 {
ct = ctype[0]
} else if ctype, ok := md.Get("x-content-type"); ok && len(ctype) > 0 {
ct = ctype[0]
md.Del("x-content-type")
}
// create new context
@@ -318,7 +291,7 @@ func (g *Server) handler(srv interface{}, stream grpc.ServerStream) error {
// get peer from context
if p, ok := peer.FromContext(ctx); ok {
md.Set("Remote", p.Addr.String())
md.Set("remote", p.Addr.String())
ctx = peer.NewContext(ctx, p)
}