Scaffold btest-server-pro: multi-user, quotas, LDAP
New binary `btest-server-pro` (build with --features pro): cargo build --release --features pro --bin btest-server-pro Modules: - server_pro/user_db.rs: SQLite user database with usage tracking - Users table (username, password_hash, quotas, enabled) - Usage table (daily bytes per user) - Sessions table (per-connection tracking) - server_pro/quota.rs: bandwidth quota enforcement - Per-user daily/weekly limits - Per-IP connection limits - Max test duration - server_pro/ldap_auth.rs: LDAP/AD authentication via ldap3 - Simple bind authentication - Service account search for user DN CLI flags: --users-db, --ldap-url, --ldap-base-dn, --ldap-bind-dn, --ldap-bind-pass, --daily-quota, --weekly-quota, --max-conn-per-ip, --max-duration Binary sizes: btest=1.8MB, btest-server-pro=3.4MB (SQLite bundled) Standard btest binary unchanged, 58 tests pass. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
11
Cargo.toml
11
Cargo.toml
@@ -16,6 +16,15 @@ path = "src/lib.rs"
|
||||
name = "btest"
|
||||
path = "src/main.rs"
|
||||
|
||||
[[bin]]
|
||||
name = "btest-server-pro"
|
||||
path = "src/server_pro/main.rs"
|
||||
required-features = ["pro"]
|
||||
|
||||
[features]
|
||||
default = []
|
||||
pro = ["dep:rusqlite", "dep:ldap3"]
|
||||
|
||||
[dependencies]
|
||||
tokio = { version = "1", features = ["full"] }
|
||||
clap = { version = "4", features = ["derive"] }
|
||||
@@ -32,6 +41,8 @@ num-traits = "0.2.19"
|
||||
num-integer = "0.1.46"
|
||||
sha2 = "0.11.0"
|
||||
hostname = "0.4.2"
|
||||
rusqlite = { version = "0.39.0", features = ["bundled"], optional = true }
|
||||
ldap3 = { version = "0.12.1", optional = true }
|
||||
|
||||
[profile.release]
|
||||
opt-level = 3
|
||||
|
||||
Reference in New Issue
Block a user