From 25d0ce8fdd5c4e1bc8a2a38a19e87441734af3d3 Mon Sep 17 00:00:00 2001 From: Juan Batiz-Benet Date: Thu, 18 Sep 2014 19:42:31 -0700 Subject: [PATCH] NoResponse service --- net/service/service.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/net/service/service.go b/net/service/service.go index caa2e2354..a8eb8dc52 100644 --- a/net/service/service.go +++ b/net/service/service.go @@ -10,6 +10,10 @@ import ( context "github.com/jbenet/go-ipfs/Godeps/_workspace/src/code.google.com/p/go.net/context" ) +// ErrNoResponse is returned by Service when a Request did not get a response, +// and no other error happened +var ErrNoResponse = errors.New("no response to request") + // Handler is an interface that objects must implement in order to handle // a service's requests. type Handler interface { @@ -134,6 +138,10 @@ func (s *Service) SendRequest(ctx context.Context, m msg.NetMessage) (msg.NetMes err = ctx.Err() } + if m == nil { + return nil, ErrNoResponse + } + return m, err } @@ -205,6 +213,7 @@ func (s *Service) handleIncomingMessage(ctx context.Context, m msg.NetMessage) { } } +// SetHandler assigns the request Handler for this service. func (s *Service) SetHandler(h Handler) { s.Handler = h }