diff --git a/router/handshake.go b/router/handshake.go index 3e42633a..8e6d9467 100644 --- a/router/handshake.go +++ b/router/handshake.go @@ -78,7 +78,7 @@ func (conn *LocalConnection) handshake(enc *gob.Encoder, dec *gob.Decoder, accep if existingConn, found := conn.Router.Ourself.ConnectionTo(name); found && existingConn.Established() { return fmt.Errorf("Already have connection to %s at %s", existingConn.Remote(), existingConn.RemoteTCPAddr()) } - uid, err := strconv.ParseUint(uidStr, 10, 64) + uid, err := ParsePeerUID(uidStr) if err != nil { return err } diff --git a/router/json.go b/router/json.go index 9461c014..966ef2fe 100644 --- a/router/json.go +++ b/router/json.go @@ -38,7 +38,7 @@ func (peers *Peers) MarshalJSON() ([]byte, error) { type p struct { Name string NickName string - UID uint64 + UID PeerUID Version uint64 Connections []Connection } diff --git a/router/peer.go b/router/peer.go index 3305e01a..afab53b6 100644 --- a/router/peer.go +++ b/router/peer.go @@ -3,13 +3,21 @@ package router import ( "fmt" "sort" + "strconv" ) +type PeerUID uint64 + +func ParsePeerUID(s string) (PeerUID, error) { + uid, err := strconv.ParseUint(s, 10, 64) + return PeerUID(uid), err +} + type Peer struct { Name PeerName NameByte []byte NickName string - UID uint64 + UID PeerUID version uint64 localRefCount uint64 // maintained by Peers connections map[PeerName]Connection @@ -17,9 +25,9 @@ type Peer struct { type ConnectionSet map[Connection]struct{} -func NewPeer(name PeerName, nickName string, uid uint64, version uint64) *Peer { +func NewPeer(name PeerName, nickName string, uid PeerUID, version uint64) *Peer { if uid == 0 { - uid = randUint64() + uid = PeerUID(randUint64()) } return &Peer{ Name: name, diff --git a/router/peers.go b/router/peers.go index ab921c17..a8d73880 100644 --- a/router/peers.go +++ b/router/peers.go @@ -28,7 +28,7 @@ type PeerNameSet map[PeerName]struct{} type PeerSummary struct { NameByte []byte NickName string - UID uint64 + UID PeerUID Version uint64 }