Make use of ip consistent for random snode pool and swarm list

pull/316/head
Beaudan 6 years ago
parent ee260f7de0
commit eb1fa97c9c

@ -95,7 +95,7 @@ class LokiSnodeAPI {
snode => snode.public_ip !== '0.0.0.0' snode => snode.public_ip !== '0.0.0.0'
); );
this.randomSnodePool = snodes.map(snode => ({ this.randomSnodePool = snodes.map(snode => ({
address: snode.public_ip, ip: snode.public_ip,
port: snode.storage_port, port: snode.storage_port,
})); }));
} catch (e) { } catch (e) {
@ -162,22 +162,17 @@ class LokiSnodeAPI {
async getSwarmNodes(pubKey) { async getSwarmNodes(pubKey) {
// TODO: Hit multiple random nodes and merge lists? // TODO: Hit multiple random nodes and merge lists?
const { address, port } = await this.getRandomSnodeAddress(); const { ip, port } = await this.getRandomSnodeAddress();
try { try {
const result = await rpc( const result = await rpc(`https://${ip}`, port, 'get_snodes_for_pubkey', {
`https://${address}`, pubKey,
port, });
'get_snodes_for_pubkey',
{
pubKey,
}
);
const snodes = result.snodes.filter(snode => snode.ip !== '0.0.0.0'); const snodes = result.snodes.filter(snode => snode.ip !== '0.0.0.0');
return snodes; return snodes;
} catch (e) { } catch (e) {
this.randomSnodePool = _.without( this.randomSnodePool = _.without(
this.randomSnodePool, this.randomSnodePool,
_.find(this.randomSnodePool, { address }) _.find(this.randomSnodePool, { ip })
); );
return this.getSwarmNodes(pubKey); return this.getSwarmNodes(pubKey);
} }

Loading…
Cancel
Save