@cryptotaxi247 / kubo / commits / e2a9c5de0

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)