chiark / gitweb /
error / panic handling
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 22 Aug 2021 16:39:20 +0000 (17:39 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 22 Aug 2021 16:39:20 +0000 (17:39 +0100)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
server/server.rs
server/suser.rs

index dcadd54118f83b4b5124579e5da20650fb25d07c..a10961e2ac81ff3ec6d38f22e098d9904f1f1d83 100644 (file)
@@ -103,7 +103,7 @@ async fn main() {
     String,
   )> = vec![];
 
-  let global = config::startup(
+  config::startup(
     "hippotatd", LinkEnd::Server,
     &opts.config, &opts.log, |ics|
   {
@@ -192,13 +192,16 @@ async fn main() {
     });
     tasks.push((ipif, format!("ipif")));
 
-    Ok(global)
+    Ok(())
   });
 
-  let died = future::select_all(
+  let (output, died_i, _) = future::select_all(
     tasks.iter_mut().map(|e| &mut e.0)
   ).await;
-  error!("xxx {:?}", &died);
 
-  dbg!(global);
+  let task = &tasks[died_i].1;
+  match output {
+    Err(je) => error!("task panicked! {}: {}", task, &je),
+    Ok(e)    => error!("task failed! {}: {}",  task, &e),
+  }
 }
index c2f11ff09cbc73a5d4d7eb9b421972d375f3a9a4..69bbf877bf49829ce7c8520f0cb27b2ffae2c142 100644 (file)
@@ -35,7 +35,11 @@ pub async fn run(global: Arc<Global>,
     response: WebResponse
   | {
     reply_to.send(response)
-      .unwrap_or_else(|_: WebResponse| () /* oh dear */ /* xxx trace? */);
+      .unwrap_or_else(|_: WebResponse| {
+        /* oh dear */
+        error!("unable to send response back to webserver! user={}",
+               &ic.link.client);
+      });
   };
 
   loop {
@@ -202,5 +206,4 @@ pub async fn run(global: Arc<Global>,
       }
     }
   }
-  //Err(anyhow!("xxx"))
 }