Proof of concept mechanical port of ircnet/ircd to Rust as part of a bit about C being insecure for network services
0

Configure Feed

Select the types of activity you want to include in your feed.

ircd.rs / leveva-iauth / Cargo.toml
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"