From 2c49ca42d14087ce8e1695759435f796a290470b Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Sun, 23 Oct 2016 19:31:47 +0200 Subject: Server: do not make friends with myself --- server/lib/friends.js | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) (limited to 'server') diff --git a/server/lib/friends.js b/server/lib/friends.js index 55cecc53e..b2ad0bbb3 100644 --- a/server/lib/friends.js +++ b/server/lib/friends.js @@ -6,6 +6,7 @@ const eachSeries = require('async/eachSeries') const fs = require('fs') const mongoose = require('mongoose') const request = require('request') +const urlUtil = require('url') const waterfall = require('async/waterfall') const constants = require('../initializers/constants') @@ -173,8 +174,11 @@ function computeWinningPods (urls, podsScore) { // Only add a pod if it exists in more than a half base pods const podsList = [] const baseScore = urls.length / 2 - Object.keys(podsScore).forEach(function (pod) { - if (podsScore[pod] > baseScore) podsList.push({ url: pod }) + Object.keys(podsScore).forEach(function (podUrl) { + // If the pod is not me and with a good score we add it + if (isMe(podUrl) === false && podsScore[podUrl] > baseScore) { + podsList.push({ url: podUrl }) + } }) return podsList @@ -262,3 +266,15 @@ function createRequest (type, data, to) { if (err) logger.error('Cannot save the request.', { error: err }) }) } + +function isMe (url) { + const parsedUrl = urlUtil.parse(url) + + const hostname = parsedUrl.hostname + const port = parseInt(parsedUrl.port) + + const myHostname = constants.CONFIG.WEBSERVER.HOST + const myPort = constants.CONFIG.WEBSERVER.PORT + + return hostname === myHostname && port === myPort +} -- cgit v1.2.3