@cryptotaxi247 / kubo / commits / eaffabec4

handshake: error out while sending + dbg

Juan Batiz-Benet committed Sep 23, 2014 at 05:17 UTC eaffabec4f8058b995964e214cf6cb35edd4ded9
1 file changed +21 -5
crypto/spipe/handshake.go
+21 -5
@@ -67,8 +67,12 @@ func (s *SecurePipe) handshake() error {
67 return err
68 }
69
70 - // u.POut("sending encoded handshake\n")
71 - s.insecure.Out <- encoded
70 + // Send our Propose packet
71 + select {
72 + case s.insecure.Out <- encoded:
73 + case <-s.ctx.Done():
74 + return ErrClosed
75 + }
76
77 // Parse their Propose packet and generate an Exchange packet.
78 // Exchange = (EphemeralPubKey, Signature)
@@ -137,7 +141,12 @@ func (s *SecurePipe) handshake() error {
141
142 exEncoded, err := proto.Marshal(exPacket)
143
140 - s.insecure.Out <- exEncoded
144 + // send out Exchange packet
145 + select {
146 + case s.insecure.Out <- exEncoded:
147 + case <-s.ctx.Done():
148 + return ErrClosed
149 + }
150
151 // Parse their Exchange packet and generate a Finish packet.
152 // Finish = E('Finish')
@@ -182,7 +191,14 @@ func (s *SecurePipe) handshake() error {
191
192 finished := []byte("Finished")
193
185 - s.Out <- finished
194 + // send finished msg
195 + select {
196 + case <-s.ctx.Done():
197 + return ErrClosed
198 + case s.Out <- finished:
199 + }
200 +
201 + // recv finished msg
202 var resp2 []byte
203 select {
204 case <-s.ctx.Done():
@@ -194,7 +210,7 @@ func (s *SecurePipe) handshake() error {
210 return errors.New("Negotiation failed.")
211 }
212
197 - u.DOut("[%s] identify: Got node id: %s\n", s.local.ID.Pretty(), s.remote.ID.Pretty())
213 + u.DOut("[%s] handshake: Got node id: %s\n", s.local.ID.Pretty(), s.remote.ID.Pretty())
214 return nil
215 }
216