From a337e981ba02bf869ca1e32b732a57835a07c48d Mon Sep 17 00:00:00 2001 From: Matthias Radestock Date: Fri, 27 Mar 2015 12:38:06 +0000 Subject: [PATCH] refactor: extract helper --- router/handshake.go | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/router/handshake.go b/router/handshake.go index d61e6377..d3fd8424 100644 --- a/router/handshake.go +++ b/router/handshake.go @@ -112,18 +112,7 @@ func (conn *LocalConnection) handshake(enc *gob.Encoder, dec *gob.Decoder, accep conn.Decryptor = NewNonDecryptor(conn) } - toPeer := NewPeer(name, nickNameStr, uid, 0) - toPeer = conn.Router.Peers.FetchWithDefault(toPeer) - switch toPeer { - case nil: - return fmt.Errorf("Connection appears to be with different version of a peer we already know of") - case conn.local: - conn.remote = toPeer // have to do assigment here to ensure Shutdown releases ref count - return fmt.Errorf("Cannot connect to ourself") - default: - conn.remote = toPeer - return nil - } + return conn.setRemote(NewPeer(name, nickNameStr, uid, 0)) } func (conn *LocalConnection) handshakeSendRecv(localConnID uint64, usingPassword bool, enc *gob.Encoder, dec *gob.Decoder) (*FieldValidator, *[32]byte, error) { @@ -159,3 +148,17 @@ func (conn *LocalConnection) handshakeSendRecv(localConnID uint64, usingPassword fv.CheckEqual("PeerNameFlavour", PeerNameFlavour) return &fv, private, nil } + +func (conn *LocalConnection) setRemote(toPeer *Peer) error { + toPeer = conn.Router.Peers.FetchWithDefault(toPeer) + switch toPeer { + case nil: + return fmt.Errorf("Connection appears to be with different version of a peer we already know of") + case conn.local: + conn.remote = toPeer // have to do assigment here to ensure Shutdown releases ref count + return fmt.Errorf("Cannot connect to ourself") + default: + conn.remote = toPeer + return nil + } +}