Add anyhow and configurable TcpListener

- add anyhow to Cargo.toml
- make the connection parameter (for the TcpListener) configurable
This commit is contained in:
Malte Meiboom
2025-11-12 12:10:03 +01:00
parent a8244ea9bf
commit a729a5b626
6 changed files with 9 additions and 3 deletions
Generated
+1
View File
@@ -164,6 +164,7 @@ checksum = "135b12329e5e3ce057a9f972339ea52bc954fe1e9358ef27f95e89716fbc5424"
name = "husk"
version = "0.1.0"
dependencies = [
"anyhow",
"bytes",
"indymilter",
"log",
+1
View File
@@ -11,6 +11,7 @@ categories = ["cryptography", "email"]
rust-version = "1.79"
[dependencies]
anyhow = "1.0.100"
bytes = "1.10.1"
indymilter = "0.3.0"
log = "0.4.27"
+1
View File
@@ -1,5 +1,6 @@
#
# Husk config file
#
connection = "localhost:3000"
logfile_config = "./config/log4rs.yml"
+1
View File
@@ -7,6 +7,7 @@ use serde_derive::Deserialize;
#[derive(Deserialize, Debug)]
pub struct HuskConfig {
pub connection: String,
logfile_config: Option<String>,
}
+4 -2
View File
@@ -4,6 +4,7 @@
// the actual daemon
//
use anyhow;
use bytes::Bytes;
use std::ffi::CString;
use tokio::signal;
@@ -24,14 +25,15 @@ use indymilter::{
};
use crate::types::husk_context::HuskContext;
use crate::config::HuskConfig;
pub struct Daemon { }
impl Daemon {
pub async fn run() -> Result<(), ()> {
pub async fn run(config: &HuskConfig) -> anyhow::Result<()> {
let listener = TcpListener::bind("localhost:3000")
let listener = TcpListener::bind(&config.connection)
.await
.expect(" opening milter socket");
+1 -1
View File
@@ -30,7 +30,7 @@ async fn main() {
log::info!("starting...");
match Daemon::run().await {
match Daemon::run(&husk_config).await {
Ok(_) => {
println!("exiting...");
},