lint fixes (#14)
* lint fixes Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
This commit is contained in:
@@ -4,15 +4,13 @@ import (
|
||||
"encoding/json"
|
||||
"strings"
|
||||
|
||||
b "bytes"
|
||||
|
||||
"github.com/golang/protobuf/jsonpb"
|
||||
"github.com/golang/protobuf/proto"
|
||||
"github.com/unistack-org/micro/v3/codec"
|
||||
"github.com/unistack-org/micro/v3/codec/bytes"
|
||||
"google.golang.org/grpc"
|
||||
"google.golang.org/grpc/encoding"
|
||||
"google.golang.org/grpc/metadata"
|
||||
jsonpb "google.golang.org/protobuf/encoding/protojson"
|
||||
"google.golang.org/protobuf/proto"
|
||||
)
|
||||
|
||||
type jsonCodec struct{}
|
||||
@@ -20,10 +18,16 @@ type bytesCodec struct{}
|
||||
type protoCodec struct{}
|
||||
type wrapCodec struct{ encoding.Codec }
|
||||
|
||||
var jsonpbMarshaler = &jsonpb.Marshaler{
|
||||
EnumsAsInts: false,
|
||||
EmitDefaults: false,
|
||||
OrigName: true,
|
||||
var jsonpbMarshaler = jsonpb.MarshalOptions{
|
||||
UseEnumNumbers: false,
|
||||
EmitUnpopulated: false,
|
||||
UseProtoNames: true,
|
||||
AllowPartial: false,
|
||||
}
|
||||
|
||||
var jsonpbUnmarshaler = jsonpb.UnmarshalOptions{
|
||||
DiscardUnknown: false,
|
||||
AllowPartial: false,
|
||||
}
|
||||
|
||||
var (
|
||||
@@ -85,8 +89,8 @@ func (protoCodec) Name() string {
|
||||
|
||||
func (jsonCodec) Marshal(v interface{}) ([]byte, error) {
|
||||
if pb, ok := v.(proto.Message); ok {
|
||||
s, err := jsonpbMarshaler.MarshalToString(pb)
|
||||
return []byte(s), err
|
||||
s, err := jsonpbMarshaler.Marshal(pb)
|
||||
return s, err
|
||||
}
|
||||
|
||||
return json.Marshal(v)
|
||||
@@ -97,7 +101,7 @@ func (jsonCodec) Unmarshal(data []byte, v interface{}) error {
|
||||
return nil
|
||||
}
|
||||
if pb, ok := v.(proto.Message); ok {
|
||||
return jsonpb.Unmarshal(b.NewReader(data), pb)
|
||||
return jsonpbUnmarshaler.Unmarshal(data, pb)
|
||||
}
|
||||
return json.Unmarshal(data, v)
|
||||
}
|
||||
|
@@ -1029,14 +1029,11 @@ func (g *grpcServer) Stop() error {
|
||||
ch := make(chan error)
|
||||
g.exit <- ch
|
||||
|
||||
var err error
|
||||
select {
|
||||
case err = <-ch:
|
||||
g.Lock()
|
||||
g.rsvc = nil
|
||||
g.started = false
|
||||
g.Unlock()
|
||||
}
|
||||
err := <-ch
|
||||
g.Lock()
|
||||
g.rsvc = nil
|
||||
g.started = false
|
||||
g.Unlock()
|
||||
|
||||
return err
|
||||
}
|
||||
|
@@ -59,8 +59,6 @@ type response struct {
|
||||
|
||||
// router represents an RPC router.
|
||||
type router struct {
|
||||
name string
|
||||
|
||||
mu sync.Mutex // protects the serviceMap
|
||||
serviceMap map[string]*service
|
||||
|
||||
@@ -371,7 +369,12 @@ func (router *router) readRequest(r server.Request) (service *service, mtype *me
|
||||
return
|
||||
}
|
||||
|
||||
func (router *router) readHeader(cc codec.Reader) (service *service, mtype *methodType, req *request, keepReading bool, err error) {
|
||||
func (router *router) readHeader(cc codec.Reader) (*service, *methodType, *request, bool, error) {
|
||||
var err error
|
||||
var service *service
|
||||
var mtype *methodType
|
||||
var req *request
|
||||
|
||||
// Grab the request header.
|
||||
msg := new(codec.Message)
|
||||
msg.Type = codec.Request
|
||||
@@ -382,34 +385,32 @@ func (router *router) readHeader(cc codec.Reader) (service *service, mtype *meth
|
||||
if err != nil {
|
||||
req = nil
|
||||
if err == io.EOF || err == io.ErrUnexpectedEOF {
|
||||
return
|
||||
return nil, nil, nil, false, err
|
||||
}
|
||||
err = errors.New("rpc: router cannot decode request: " + err.Error())
|
||||
return
|
||||
return nil, nil, nil, false, fmt.Errorf("rpc: router cannot decode request: %v", err)
|
||||
}
|
||||
|
||||
// We read the header successfully. If we see an error now,
|
||||
// we can still recover and move on to the next request.
|
||||
keepReading = true
|
||||
keepReading := true
|
||||
|
||||
serviceMethod := strings.Split(req.msg.Endpoint, ".")
|
||||
if len(serviceMethod) != 2 {
|
||||
err = errors.New("rpc: service/endpoint request ill-formed: " + req.msg.Endpoint)
|
||||
return
|
||||
return nil, nil, nil, keepReading, fmt.Errorf("rpc: service/endpoint request ill-formed: %v", req.msg.Endpoint)
|
||||
}
|
||||
// Look up the request.
|
||||
router.mu.Lock()
|
||||
service = router.serviceMap[serviceMethod[0]]
|
||||
router.mu.Unlock()
|
||||
if service == nil {
|
||||
err = errors.New("rpc: can't find service " + serviceMethod[0])
|
||||
return
|
||||
return nil, nil, nil, keepReading, fmt.Errorf("rpc: can't find service %v", serviceMethod[0])
|
||||
}
|
||||
mtype = service.method[serviceMethod[1]]
|
||||
if mtype == nil {
|
||||
err = errors.New("rpc: can't find method " + serviceMethod[1])
|
||||
return nil, nil, nil, keepReading, fmt.Errorf("rpc: can't find method %v", serviceMethod[1])
|
||||
}
|
||||
return
|
||||
|
||||
return service, mtype, req, keepReading, nil
|
||||
}
|
||||
|
||||
func (router *router) NewHandler(h interface{}, opts ...server.HandlerOption) server.Handler {
|
||||
|
Reference in New Issue
Block a user