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",
"version": "1.1.1",
"version": "1.1.3",
"lockfileVersion": 1,
"requires": true,
"dependencies": {

View File

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