Fix 'dos' feature for seed command, and Buffer the seed service

This commit is contained in:
Deirdre Connolly 2020-06-07 04:10:42 -04:00 committed by Deirdre Connolly
parent 8f5e7c268b
commit 43b77b080e
1 changed files with 5 additions and 4 deletions

View File

@ -131,14 +131,14 @@ impl SeedCmd {
info!("begin tower-based peer handling test stub"); info!("begin tower-based peer handling test stub");
let (addressbook_tx, addressbook_rx) = oneshot::channel(); let (addressbook_tx, addressbook_rx) = oneshot::channel();
let mut seed_service = SeedService { let seed_service = SeedService {
state: SeederState::AwaitingAddressBook(addressbook_rx), state: SeederState::AwaitingAddressBook(addressbook_rx),
}; };
let node = Buffer::new(seed_service, 1); let buffered_svc = Buffer::new(seed_service, 1);
let config = app_config().network.clone(); let config = app_config().network.clone();
let (mut peer_set, address_book) = zebra_network::init(config, node).await; let (mut peer_set, address_book) = zebra_network::init(config, buffered_svc.clone()).await;
let _ = addressbook_tx.send(address_book); let _ = addressbook_tx.send(address_book);
@ -154,11 +154,12 @@ impl SeedCmd {
// Fire GetPeers requests at ourselves, for testing. // Fire GetPeers requests at ourselves, for testing.
tokio::spawn(async move { tokio::spawn(async move {
let mut interval_stream = tokio::time::interval(Duration::from_secs(1)); let mut interval_stream = tokio::time::interval(Duration::from_secs(1));
let mut svc = buffered_svc.clone();
loop { loop {
interval_stream.next().await; interval_stream.next().await;
let _ = seed_service.call(Request::Peers); let _ = svc.call(Request::Peers);
} }
}); });