[package] name = "leveva-iauth" version = "0.0.0" edition = "2021" publish = false description = "Native async authentication for leveva (ident/dnsbl/socks/webproxy/pipe), run in-process per connection." # leveva subsumes the old standalone `iauth` daemon: the separate process + pipe # protocol existed only to keep slow auth probes off the C ircd's single-threaded # select loop. Under leveva's tokio runtime each probe is just an `.await` in the # per-connection task, so the auth modules live here as ordinary async code. (The # faithful `iauth-rs` C-iauth port was the differential oracle until parity, then # deleted in P12.) The dnsbl module resolves blocklist zones with hickory-dns (the # locked async-resolver choice); ident needs no resolver. [lib] path = "src/lib.rs" [dependencies] async-trait = "0.1" # hickory-dns: the async DNS resolver behind the dnsbl module's blocklist lookups. # `system-config` reads /etc/resolv.conf; no TLS/DNSSEC transport needed for A queries. hickory-resolver = { version = "0.26", default-features = false, features = ["system-config", "tokio"] } tokio = { version = "1", features = ["net", "io-util", "time", "rt", "macros", "sync", "process"] } [dev-dependencies] tokio = { version = "1", features = ["net", "io-util", "time", "rt", "macros", "rt-multi-thread", "process"] } proptest = "1"