feat(net:service, routing) remove error return value
Brian Tiger Chow committed
Sep 22, 2014 at 14:04 UTC
e2a9c5de003c3adbf64474b5ab49b825c3a81639
5 files changed
+28
-30
exchange/bitswap/network/net_message_adapter.go
+8
-8
@@ -29,32 +29,32 @@ type impl struct {
29
// HandleMessage marshals and unmarshals net messages, forwarding them to the
30
// BitSwapMessage receiver
31
func (adapter *impl) HandleMessage(
32
- ctx context.Context, incoming netmsg.NetMessage) (netmsg.NetMessage, error) {
32
+ ctx context.Context, incoming netmsg.NetMessage) netmsg.NetMessage {
33
34
if adapter.receiver == nil {
35
- return nil, nil
35
+ return nil
36
}
37
38
received, err := bsmsg.FromNet(incoming)
39
if err != nil {
40
- adapter.receiver.ReceiveError(err)
41
- return nil, nil
40
+ go adapter.receiver.ReceiveError(err)
41
+ return nil
42
}
43
44
p, bsmsg := adapter.receiver.ReceiveMessage(ctx, incoming.Peer(), received)
45
46
// TODO(brian): put this in a helper function
47
if bsmsg == nil || p == nil {
48
- return nil, nil
48
+ return nil
49
}
50
51
outgoing, err := bsmsg.ToNet(p)
52
if err != nil {
53
- adapter.receiver.ReceiveError(err)
54
- return nil, nil
53
+ go adapter.receiver.ReceiveError(err)
54
+ return nil
55
}
56
57
- return outgoing, nil
57
+ return outgoing
58
}
59
60
func (adapter *impl) SendMessage(
net/service/service.go
+2
-6
@@ -20,7 +20,7 @@ type Handler interface {
20
21
// HandleMessage receives an incoming message, and potentially returns
22
// a response message to send back.
23
- HandleMessage(context.Context, msg.NetMessage) (msg.NetMessage, error)
23
+ HandleMessage(context.Context, msg.NetMessage) msg.NetMessage
24
}
25
26
// Service is a networking component that protocols can use to multiplex
@@ -181,11 +181,7 @@ func (s *Service) handleIncomingMessage(ctx context.Context, m msg.NetMessage) {
181
}
182
183
// should this be "go HandleMessage ... ?"
184
- r1, err := s.Handler.HandleMessage(ctx, m2)
185
- if err != nil {
186
- u.PErr("handled message yielded error %v\n", err)
187
- return
188
- }
184
+ r1 := s.Handler.HandleMessage(ctx, m2)
185
186
// if handler gave us a response, send it back out!
187
if r1 != nil {
net/service/service_test.go
+2
-3
@@ -15,15 +15,14 @@ import (
15
// ReverseHandler reverses all Data it receives and sends it back.
16
type ReverseHandler struct{}
17
18
-func (t *ReverseHandler) HandleMessage(ctx context.Context, m msg.NetMessage) (
19
- msg.NetMessage, error) {
18
+func (t *ReverseHandler) HandleMessage(ctx context.Context, m msg.NetMessage) msg.NetMessage {
19
20
d := m.Data()
21
for i, j := 0, len(d)-1; i < j; i, j = i+1, j-1 {
22
d[i], d[j] = d[j], d[i]
23
}
24
26
- return msg.New(m.Peer(), d), nil
25
+ return msg.New(m.Peer(), d)
26
}
27
28
func newPeer(t *testing.T, id string) *peer.Peer {
routing/dht/dht.go
+15
-9
@@ -103,23 +103,26 @@ func (dht *IpfsDHT) Connect(ctx context.Context, npeer *peer.Peer) (*peer.Peer,
103
}
104
105
// HandleMessage implements the inet.Handler interface.
106
-func (dht *IpfsDHT) HandleMessage(ctx context.Context, mes msg.NetMessage) (msg.NetMessage, error) {
106
+func (dht *IpfsDHT) HandleMessage(ctx context.Context, mes msg.NetMessage) msg.NetMessage {
107
108
mData := mes.Data()
109
if mData == nil {
110
- return nil, errors.New("message did not include Data")
110
+ // TODO handle/log err
111
+ return nil
112
}
113
114
mPeer := mes.Peer()
115
if mPeer == nil {
115
- return nil, errors.New("message did not include a Peer")
116
+ // TODO handle/log err
117
+ return nil
118
}
119
120
// deserialize msg
121
pmes := new(Message)
122
err := proto.Unmarshal(mData, pmes)
123
if err != nil {
122
- return nil, fmt.Errorf("Failed to decode protobuf message: %v\n", err)
124
+ // TODO handle/log err
125
+ return nil
126
}
127
128
// update the peer (on valid msgs only)
@@ -133,27 +136,30 @@ func (dht *IpfsDHT) HandleMessage(ctx context.Context, mes msg.NetMessage) (msg.
136
// get handler for this msg type.
137
handler := dht.handlerForMsgType(pmes.GetType())
138
if handler == nil {
136
- return nil, errors.New("Recieved invalid message type")
139
+ // TODO handle/log err
140
+ return nil
141
}
142
143
// dispatch handler.
144
rpmes, err := handler(mPeer, pmes)
145
if err != nil {
142
- return nil, err
146
+ // TODO handle/log err
147
+ return nil
148
}
149
150
// if nil response, return it before serializing
151
if rpmes == nil {
147
- return nil, nil
152
+ return nil
153
}
154
155
// serialize response msg
156
rmes, err := msg.FromObject(mPeer, rpmes)
157
if err != nil {
153
- return nil, fmt.Errorf("Failed to encode protobuf message: %v\n", err)
158
+ // TODO handle/log err
159
+ return nil
160
}
161
156
- return rmes, nil
162
+ return rmes
163
}
164
165
// sendRequest sends out a request using dht.sender, but also makes sure to
routing/dht/ext_test.go
+1
-4
@@ -161,10 +161,7 @@ func TestGetFailures(t *testing.T) {
161
t.Error(err)
162
}
163
164
- mes, err = d.HandleMessage(ctx, mes)
165
- if err != nil {
166
- t.Error(err)
167
- }
164
+ mes = d.HandleMessage(ctx, mes)
165
166
pmes := new(Message)
167
err = proto.Unmarshal(mes.Data(), pmes)