From c4d5507e9c0b16b0d34df9e871be1d76d296ecea Mon Sep 17 00:00:00 2001 From: Keuin Date: Sun, 27 Mar 2022 20:17:23 +0800 Subject: Configurable HTTP listen endpoint. Handle Ctrl-C correctly. --- src/config.rs | 1 + src/main.rs | 10 +++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/config.rs b/src/config.rs index d32c525..c5d07a7 100644 --- a/src/config.rs +++ b/src/config.rs @@ -8,6 +8,7 @@ pub struct Config { pub bot_token: String, pub log_file: String, pub db_file: String, + pub listen: String, } impl Config { diff --git a/src/main.rs b/src/main.rs index fffdb65..65e01b2 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,4 +1,5 @@ use std::convert::Infallible; +use std::net::SocketAddr; use std::sync::Arc; use log::{debug, error, info, warn}; @@ -51,5 +52,12 @@ async fn main() { tokio::spawn(bot::repl(bot, Arc::new(db))); - warp::serve(send_message).run(([127, 0, 0, 1], 3030)).await; + let endpoint: SocketAddr = config.listen.parse() + .expect("Cannot parse `listen` as endpoint."); + + println!("Listen on {}", endpoint); + + tokio::spawn(warp::serve(send_message).run(endpoint)); + + tokio::signal::ctrl_c().await.unwrap(); } -- cgit v1.2.3