From cbf1bd1b26fcc55652d2d452505da0a669b82dee Mon Sep 17 00:00:00 2001 From: "jar3b@outlook.com" Date: Mon, 11 Oct 2021 18:44:22 +0300 Subject: [PATCH] fix: extend error handling; bump: nats.go v1.13.0 --- go.mod | 4 ++-- go.sum | 7 ++++--- request.go | 6 ++++-- transport.go | 4 ++-- 4 files changed, 12 insertions(+), 9 deletions(-) diff --git a/go.mod b/go.mod index 08c156b..2983673 100644 --- a/go.mod +++ b/go.mod @@ -4,12 +4,12 @@ go 1.17 require ( github.com/golang/protobuf v1.5.2 - github.com/nats-io/nats.go v1.12.3 + github.com/nats-io/nats.go v1.13.0 google.golang.org/protobuf v1.27.1 ) require ( - github.com/nats-io/nats-server/v2 v2.6.0 // indirect + github.com/nats-io/nats-server/v2 v2.6.1 // indirect github.com/nats-io/nkeys v0.3.0 // indirect github.com/nats-io/nuid v1.0.1 // indirect golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e // indirect diff --git a/go.sum b/go.sum index 6ce886c..075453f 100644 --- a/go.sum +++ b/go.sum @@ -21,10 +21,11 @@ github.com/nats-io/jwt v1.2.2 h1:w3GMTO969dFg+UOKTmmyuu7IGdusK+7Ytlt//OYH/uU= github.com/nats-io/jwt v1.2.2/go.mod h1:/xX356yQA6LuXI9xWW7mZNpxgF2mBmGecH+Fj34sP5Q= github.com/nats-io/jwt/v2 v2.0.3 h1:i/O6cmIsjpcQyWDYNcq2JyZ3/VTF8SJ4JWluI5OhpvI= github.com/nats-io/jwt/v2 v2.0.3/go.mod h1:VRP+deawSXyhNjXmxPCHskrR6Mq50BqpEI5SEcNiGlY= -github.com/nats-io/nats-server/v2 v2.6.0 h1:OAt+ef+9QaaNdn4uTyQC372bv1ZZqC0vZ1I9YxWqjwI= -github.com/nats-io/nats-server/v2 v2.6.0/go.mod h1:Az91TbZiV7K4a6k/4v6YYdOKEoxCXj+iqhHVf/MlrKo= -github.com/nats-io/nats.go v1.12.3 h1:te0GLbRsjtejEkZKKiuk46tbfIn6FfCSv3WWSo1+51E= +github.com/nats-io/nats-server/v2 v2.6.1 h1:cJy+ia7/4EaJL+ZYDmIy2rD1mDWTfckhtPBU0GYo8xM= +github.com/nats-io/nats-server/v2 v2.6.1/go.mod h1:Az91TbZiV7K4a6k/4v6YYdOKEoxCXj+iqhHVf/MlrKo= github.com/nats-io/nats.go v1.12.3/go.mod h1:BPko4oXsySz4aSWeFgOHLZs3G4Jq4ZAyE6/zMCxRT6w= +github.com/nats-io/nats.go v1.13.0 h1:LvYqRB5epIzZWQp6lmeltOOZNLqCvm4b+qfvzZO03HE= +github.com/nats-io/nats.go v1.13.0/go.mod h1:BPko4oXsySz4aSWeFgOHLZs3G4Jq4ZAyE6/zMCxRT6w= github.com/nats-io/nkeys v0.2.0/go.mod h1:XdZpAbhgyyODYqjTawOnIOI7VlbKSarI9Gfy1tqEu/s= github.com/nats-io/nkeys v0.3.0 h1:cgM5tL53EvYRU+2YLXIK0G2mJtK12Ft9oeooSZMA2G8= github.com/nats-io/nkeys v0.3.0/go.mod h1:gvUNGjVcM2IPr5rCsRsC6Wb3Hr2CQAm08dsxtV6A5y4= diff --git a/request.go b/request.go index 7144824..3e59c7d 100644 --- a/request.go +++ b/request.go @@ -11,13 +11,15 @@ func (r *Request) FromHTTP(req *http.Request) error { if req == nil { return errors.New("nats_transport: request cannot be nil") } + if req.Body == nil { + return errors.New("nats_transport: request body cannot be nil") + } defer req.Body.Close() buf, err := ioutil.ReadAll(req.Body) if err != nil { - return fmt.Errorf("nats_transport: cannot read request body") + return fmt.Errorf("nats_transport: cannot read request body: %v", err) } - // bufReader := ioutil.NopCloser(bytes.NewBuffer(buf)) r.Proto = req.Proto r.Scheme = req.URL.Scheme diff --git a/transport.go b/transport.go index 272a133..9ba5925 100644 --- a/transport.go +++ b/transport.go @@ -46,7 +46,7 @@ func (nt NatsTransport) RoundTrip(r *http.Request) (*http.Response, error) { // Serialize the request. requestBytes, err := proto.Marshal(request) if err != nil { - return nil, fmt.Errorf("nats_transport: cannot serialize request") + return nil, fmt.Errorf("nats_transport: cannot serialize request: %v", err) } // get the outgoing NATS subject @@ -65,7 +65,7 @@ func (nt NatsTransport) RoundTrip(r *http.Request) (*http.Response, error) { nt.Timeout, ) if err != nil { - return nil, fmt.Errorf("nats_transport: cannot send NATS request") + return nil, fmt.Errorf("nats_transport: cannot send NATS request: %v", err) } // Get Response object from NATS message