NoResponse service
Juan Batiz-Benet committed
Sep 18, 2014 at 19:42 UTC
25d0ce8fdd5c4e1bc8a2a38a19e87441734af3d3
1 file changed
+9
net/service/service.go
+9
@@ -10,6 +10,10 @@ import (
10
context "github.com/jbenet/go-ipfs/Godeps/_workspace/src/code.google.com/p/go.net/context"
11
)
12
13
+// ErrNoResponse is returned by Service when a Request did not get a response,
14
+// and no other error happened
15
+var ErrNoResponse = errors.New("no response to request")
16
+
17
// Handler is an interface that objects must implement in order to handle
18
// a service's requests.
19
type Handler interface {
@@ -134,6 +138,10 @@ func (s *Service) SendRequest(ctx context.Context, m msg.NetMessage) (msg.NetMes
138
err = ctx.Err()
139
}
140
141
+ if m == nil {
142
+ return nil, ErrNoResponse
143
+ }
144
+
145
return m, err
146
}
147
@@ -205,6 +213,7 @@ func (s *Service) handleIncomingMessage(ctx context.Context, m msg.NetMessage) {
213
}
214
}
215
216
+// SetHandler assigns the request Handler for this service.
217
func (s *Service) SetHandler(h Handler) {
218
s.Handler = h
219
}