Proof of concept mechanical port of ircnet/ircd to Rust as part of a bit about C being insecure for network services
1.3 kB
27 lines
1[package]
2name = "leveva-iauth"
3version = "0.0.0"
4edition = "2021"
5publish = false
6description = "Native async authentication for leveva (ident/dnsbl/socks/webproxy/pipe), run in-process per connection."
7
8# leveva subsumes the old standalone `iauth` daemon: the separate process + pipe
9# protocol existed only to keep slow auth probes off the C ircd's single-threaded
10# select loop. Under leveva's tokio runtime each probe is just an `.await` in the
11# per-connection task, so the auth modules live here as ordinary async code. (The
12# faithful `iauth-rs` C-iauth port was the differential oracle until parity, then
13# deleted in P12.) The dnsbl module resolves blocklist zones with hickory-dns (the
14# locked async-resolver choice); ident needs no resolver.
15[lib]
16path = "src/lib.rs"
17
18[dependencies]
19async-trait = "0.1"
20# hickory-dns: the async DNS resolver behind the dnsbl module's blocklist lookups.
21# `system-config` reads /etc/resolv.conf; no TLS/DNSSEC transport needed for A queries.
22hickory-resolver = { version = "0.26", default-features = false, features = ["system-config", "tokio"] }
23tokio = { version = "1", features = ["net", "io-util", "time", "rt", "macros", "sync", "process"] }
24
25[dev-dependencies]
26tokio = { version = "1", features = ["net", "io-util", "time", "rt", "macros", "rt-multi-thread", "process"] }
27proptest = "1"