fix(p2p): break backward p2p compability < 1.1.0

This commit is contained in:
Alexey Kasyanchuk 2019-02-19 00:21:37 +01:00
parent e3bb3575cf
commit 32ceb6de6e
2 changed files with 16 additions and 1 deletions

2
package-lock.json generated
View File

@ -1,6 +1,6 @@
{ {
"name": "rats-search", "name": "rats-search",
"version": "1.1.1", "version": "1.1.3",
"lockfileVersion": 1, "lockfileVersion": 1,
"requires": true, "requires": true,
"dependencies": { "dependencies": {

View File

@ -13,10 +13,14 @@ const directoryFilesRecursive = require('./directoryFilesRecursive')
const {promisify} = require('util'); const {promisify} = require('util');
const mkdirp = promisify(require('mkdirp')) const mkdirp = promisify(require('mkdirp'))
const deleteFolderRecursive = require('./deleteFolderRecursive') const deleteFolderRecursive = require('./deleteFolderRecursive')
const compareVersions = require('compare-versions');
class p2p { class p2p {
constructor(send = () => {}) constructor(send = () => {})
{ {
this.minClientVersion = '1.1.0'
this.minServerVersion = '1.1.0'
this.events = new EventEmitter this.events = new EventEmitter
this.peers = [] this.peers = []
this.clients = [] this.clients = []
@ -92,6 +96,11 @@ class p2p {
if(!data || data.protocol != 'rats') if(!data || data.protocol != 'rats')
return return
if(compareVersions(data.version, this.minServerVersion) < 0) {
logTE('p2p', `ignore peer because of version ${data.version} < ${this.minServerVersion}`);
return;
}
// protocol ok // protocol ok
clearTimeout(socketObject.protocolTimeout) clearTimeout(socketObject.protocolTimeout)
const { _socket: socket } = socketObject const { _socket: socket } = socketObject
@ -369,6 +378,12 @@ class p2p {
if(this.ignoreAddresses.includes(address.address)) if(this.ignoreAddresses.includes(address.address))
return; return;
if(compareVersions(data.version, this.minClientVersion) < 0) {
logTE('p2p', `ignore client peer because of version ${data.version} < ${this.minClientVersion}`)
rawSocket.destroy()
return;
}
// success // success
clearTimeout(protocolTimeout) clearTimeout(protocolTimeout)