From 7e29af45426da7d7d8fab6dff2c77299eece07b4 Mon Sep 17 00:00:00 2001 From: Braydon Fuller Date: Thu, 12 Mar 2015 00:18:09 -0400 Subject: [PATCH] added missing precondition and moved buffer.skip to new file --- lib/buffers.js | 23 +++++++++++++++++++++++ lib/peer.js | 24 +++++++----------------- 2 files changed, 30 insertions(+), 17 deletions(-) create mode 100644 lib/buffers.js diff --git a/lib/buffers.js b/lib/buffers.js new file mode 100644 index 0000000..01456ac --- /dev/null +++ b/lib/buffers.js @@ -0,0 +1,23 @@ +'use strict'; + +var Buffers = require('buffers'); + +Buffers.prototype.skip = function(i) { + if (i === 0) { + return; + } + + if (i === this.length) { + this.buffers = []; + this.length = 0; + return; + } + + var pos = this.pos(i); + this.buffers = this.buffers.slice(pos.buf); + this.buffers[0] = new Buffer(this.buffers[0].slice(pos.offset)); + this.length -= i; +}; + +module.exports = Buffers; + diff --git a/lib/peer.js b/lib/peer.js index dd29442..b55c6f5 100644 --- a/lib/peer.js +++ b/lib/peer.js @@ -1,12 +1,13 @@ 'use strict'; -var Buffers = require('buffers'); +var Buffers = require('./buffers'); var EventEmitter = require('events').EventEmitter; var Net = require('net'); var Socks5Client = require('socks5-client'); var bitcore = require('bitcore'); var Networks = bitcore.Networks; var Messages = require('./messages'); +var $ = bitcore.util.preconditions; var util = require('util'); /** @@ -30,6 +31,9 @@ var util = require('util'); * @constructor */ function Peer(options) { + /* jshint maxstatements: 20 */ + /* jshint maxcomplexity: 8 */ + if (!(this instanceof Peer)) { return new Peer(options); } @@ -93,6 +97,8 @@ Peer.STATUS = { * @returns {Peer} The same Peer instance. */ Peer.prototype.setProxy = function(host, port) { + $.checkState(this.status === Peer.STATUS.DISCONNECTED); + this.proxy = { host: host, port: port @@ -203,20 +209,4 @@ Peer.prototype._getSocket = function() { return new Net.Socket(); }; -// TODO: Remove this PATCH (yemel) -Buffers.prototype.skip = function(i) { - if (i === 0) return; - - if (i === this.length) { - this.buffers = []; - this.length = 0; - return; - } - - var pos = this.pos(i); - this.buffers = this.buffers.slice(pos.buf); - this.buffers[0] = new Buffer(this.buffers[0].slice(pos.offset)); - this.length -= i; -}; - module.exports = Peer;