minor content-type fixes

Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
This commit is contained in:
Василий Толстов 2021-04-16 17:07:04 +03:00
parent 78c32dc3e8
commit 2bef21a001

12
grpc.go
View File

@ -86,7 +86,7 @@ func (g *grpcClient) call(ctx context.Context, addr string, req client.Request,
md := gmetadata.New(header) md := gmetadata.New(header)
ctx = gmetadata.NewOutgoingContext(ctx, md) ctx = gmetadata.NewOutgoingContext(ctx, md)
cf, err := g.newGRPCCodec(req.ContentType()) cf, err := g.newCodec(req.ContentType())
if err != nil { if err != nil {
return errors.InternalServerError("go.micro.client", err.Error()) return errors.InternalServerError("go.micro.client", err.Error())
} }
@ -171,7 +171,7 @@ func (g *grpcClient) stream(ctx context.Context, addr string, req client.Request
md := gmetadata.New(header) md := gmetadata.New(header)
ctx = gmetadata.NewOutgoingContext(ctx, md) ctx = gmetadata.NewOutgoingContext(ctx, md)
cf, err := g.newGRPCCodec(req.ContentType()) cf, err := g.newCodec(req.ContentType())
if err != nil { if err != nil {
return errors.InternalServerError("go.micro.client", err.Error()) return errors.InternalServerError("go.micro.client", err.Error())
} }
@ -305,10 +305,14 @@ func (g *grpcClient) maxSendMsgSizeValue() int {
return v.(int) return v.(int)
} }
func (g *grpcClient) newGRPCCodec(ct string) (codec.Codec, error) { func (g *grpcClient) newCodec(ct string) (codec.Codec, error) {
g.RLock() g.RLock()
defer g.RUnlock() defer g.RUnlock()
if idx := strings.IndexRune(ct, ';'); idx >= 0 {
ct = ct[:idx]
}
if c, ok := g.opts.Codecs[ct]; ok { if c, ok := g.opts.Codecs[ct]; ok {
return c, nil return c, nil
} }
@ -648,7 +652,7 @@ func (g *grpcClient) Publish(ctx context.Context, p client.Message, opts ...clie
body = d.Data body = d.Data
} else { } else {
// use codec for payload // use codec for payload
cf, err := g.newGRPCCodec(p.ContentType()) cf, err := g.newCodec(p.ContentType())
if err != nil { if err != nil {
return errors.InternalServerError("go.micro.client", err.Error()) return errors.InternalServerError("go.micro.client", err.Error())
} }