chiark / gitweb /
server: reorganise setup
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 16 Aug 2021 23:35:55 +0000 (00:35 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 16 Aug 2021 23:36:53 +0000 (00:36 +0100)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/bin/server.rs
src/prelude.rs

index 8effeff9c2102b5a1bdf9b416bf349d2cce638b1..fe161cc27f198f4710b7eb5abb222bfe4dc2122a 100644 (file)
@@ -422,15 +422,21 @@ async fn main() {
     &opts.config, &opts.log, |ics|
   {
     let global_config = config::InstanceConfigGlobal::from(&ics);
-    let ipif = Ipif::start(&global_config.ipif, None)?;
 
-    let all_clients = ics.into_iter().map(|ic| {
-      let ic = Arc::new(ic);
+    let ipif = Ipif::start(&global_config.ipif, None)?;
 
-      let (web_send, web_recv) = mpsc::channel(
+    let (client_handles_send, client_handles_recv) = ics.iter()
+      .map(|_ic| mpsc::channel(
         5 // xxx should me max_requests_outstanding but that's
-          // marked client-only so needs rework
-      );
+        // marked client-only so needs rework
+      )).unzip::<_,_,Vec<_>,Vec<_>>();
+
+    let all_clients = izip!(
+      ics.into_iter(),
+      client_handles_send,
+      client_handles_recv,
+    ).map(|(ic, web_send, web_recv)| {
+      let ic = Arc::new(ic);
 
       let ic_ = ic.clone();
       tasks.push((tokio::spawn(async move {
index 10746786cae1a2ea1f0d6781acea29610a94e000..c0392abe3c265a525e534fadac67fd3bb5267290 100644 (file)
@@ -33,7 +33,7 @@ pub use hyper::body::{Bytes, Buf as _};
 pub use hyper::{Method, Uri};
 pub use hyper_tls::HttpsConnector;
 pub use ipnet::IpNet;
-pub use itertools::{iproduct, Itertools};
+pub use itertools::{iproduct, izip, Itertools};
 pub use lazy_regex::{regex_captures, regex_is_match, regex_replace_all};
 pub use lazy_static::lazy_static;
 pub use log::{trace, debug, info, warn, error};