echo/Cargo.toml
Jean 34bc7d69f0
All checks were successful
CI / check (push) Successful in 3m50s
grpc: provision sets the verifier on an already-existing account
An Anope import creates accounts (channel ownership, vhosts, certs) but can't
carry the one-way password hash, so they exist without a verifier. provision
then refused them as AlreadyExists, so the website's backfill could never give
migrated members a credential — every one was locked out of password login.
Make provision update the verifier in place on an existing account (logged as
AccountPasswordSet), and treat an empty scram512 as absent consistently in
apply(). Keyed by name, so imported channel/vhost/ban data stays attached.
2026-07-16 16:53:06 +00:00

71 lines
2.2 KiB
TOML

[workspace]
# api is the SDK every module links against; the loadable modules — the service
# pseudo-clients and the ircd protocol link — live under modules/.
members = [
"api",
"modules/protocol/inspircd",
"modules/chanserv",
"modules/nickserv",
"modules/example",
"modules/botserv",
"modules/memoserv",
"modules/statserv",
"modules/hostserv",
"modules/operserv",
"modules/diceserv",
"modules/infoserv",
"modules/reportserv",
"modules/groupserv",
"modules/chanfix",
"modules/helpserv",
]
[package]
name = "echo"
version = "0.0.1"
edition = "2021"
description = "Echo the modern IRC Services"
license = "AGPL-3.0-or-later"
[dependencies]
echo-api = { path = "api" }
echo-inspircd = { path = "modules/protocol/inspircd" }
echo-chanserv = { path = "modules/chanserv" }
echo-nickserv = { path = "modules/nickserv" }
echo-example = { path = "modules/example" }
echo-botserv = { path = "modules/botserv" }
echo-memoserv = { path = "modules/memoserv" }
echo-statserv = { path = "modules/statserv" }
echo-hostserv = { path = "modules/hostserv" }
echo-operserv = { path = "modules/operserv" }
echo-diceserv = { path = "modules/diceserv" }
echo-infoserv = { path = "modules/infoserv" }
echo-reportserv = { path = "modules/reportserv" }
echo-groupserv = { path = "modules/groupserv" }
echo-chanfix = { path = "modules/chanfix" }
echo-helpserv = { path = "modules/helpserv" }
tokio = { version = "1", features = ["net", "io-util", "rt-multi-thread", "macros", "time", "sync", "process", "signal"] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
toml = "0.8"
rand_core = { version = "0.6", features = ["getrandom"] }
base64 = "0.22"
sha2 = "0.10"
hmac = "0.12"
pbkdf2 = { version = "0.12", default-features = false, features = ["hmac"] }
subtle = "2"
regex = "1"
anyhow = "1"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
tokio-rustls = "0.26.4"
rustls-pemfile = "2.2.0"
tonic = { version = "0.12", features = ["tls"] }
axum = "0.7"
axum-server = { version = "0.7", features = ["tls-rustls"] }
prost = "0.13"
tokio-stream = "0.1"
[build-dependencies]
tonic-build = "0.12"
protoc-bin-vendored = "3"