From ee9fbc6654a54f8eb04581dadb959d6b780f0074 Mon Sep 17 00:00:00 2001 From: Matias Pando Date: Tue, 9 Sep 2014 15:07:36 -0300 Subject: [PATCH] Adding full wallet message --- js/models/core/WalletFactory.js | 2 ++ js/models/network/Async.js | 13 +++++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/js/models/core/WalletFactory.js b/js/models/core/WalletFactory.js index 04b27821a..2df26a931 100644 --- a/js/models/core/WalletFactory.js +++ b/js/models/core/WalletFactory.js @@ -386,6 +386,8 @@ WalletFactory.prototype.joinCreateSession = function(secret, nickname, passphras w.sendWalletReady(s.pubKey); //w.seedCopayer(s.pubKey); return cb(null, w); + } else { + return cb('walletFull', w); } }); }); diff --git a/js/models/network/Async.js b/js/models/network/Async.js index ad4a5630e..6e3819a51 100644 --- a/js/models/network/Async.js +++ b/js/models/network/Async.js @@ -83,6 +83,14 @@ Network.prototype._sendHello = function(copayerId,secretNumber) { }); }; +Network.prototype._sendRejectConnection = function(copayerId) { + + this.send(copayerId, { + type: 'rejectConnection', + copayerId: this.copayerId, + }); +}; + Network.prototype._deletePeer = function(peerId) { delete this.isInboundPeerAuth[peerId]; delete this.copayerForPeer[peerId]; @@ -189,26 +197,27 @@ Network.prototype._onMessage = function(enc) { this._deletePeer(sender); return; } - log.debug('receiving ' + JSON.stringify(payload)); var self = this; switch (payload.type) { case 'hello': - if (typeof payload.secretNumber === 'undefined' || payload.secretNumber !== this.secretNumber) { + this._sendRejectConnection(sender); this._deletePeer(enc.pubkey, 'incorrect secret number'); return; } // if we locked allowed copayers, check if it belongs if (this.allowedCopayerIds && !this.allowedCopayerIds[payload.copayerId]) { + this._sendRejectConnection(sender); this._deletePeer(sender); return; } //ensure claimed public key is actually the public key of the peer //e.g., their public key should hash to be their peerId if (sender !== payload.copayerId) { + this._sendRejectConnection(sender); this._deletePeer(enc.pubkey, 'incorrect pubkey for peerId'); return; }