feat: allow DNS names in peers/seeds list and resolve them (#3125)

* feat: allow DNS names in peers/seeds list and resolve them

* tests: add mod for peer tests

* refactor: rename some variables

* chore: use Serde desrialize to resolve DNS names into PeerAddrs

* fix: compile

* fix: add back code to remove duplicate ip addresses from resolved DNS seeds
This commit is contained in:
Joseph Goulden
2020-02-14 14:58:57 +00:00
committed by GitHub
parent 053415ddf8
commit 0d2e58e90e
7 changed files with 102 additions and 40 deletions
+7 -5
View File
@@ -24,9 +24,11 @@ use ctrlc;
use crate::config::GlobalConfig;
use crate::core::global;
use crate::p2p::{PeerAddr, Seeding};
use crate::p2p::Seeding;
use crate::servers;
use crate::tui::ui;
use grin_p2p::msg::PeerAddrs;
use grin_p2p::PeerAddr;
use grin_util::logger::LogEntry;
use std::sync::mpsc;
@@ -119,12 +121,12 @@ pub fn server_command(
}
if let Some(seeds) = a.values_of("seed") {
let seed_addrs = seeds
.filter_map(|x| x.parse().ok())
.map(|x| PeerAddr(x))
let peers = seeds
.filter_map(|s| s.parse().ok())
.map(|sa| PeerAddr(sa))
.collect();
server_config.p2p_config.seeding_type = Seeding::List;
server_config.p2p_config.seeds = Some(seed_addrs);
server_config.p2p_config.seeds = Some(PeerAddrs { peers });
}
}