alpha
Login
or
Join now
xeiaso.net
/
ircd.rs
Star
1
Fork
0
Atom
Configure Feed
Issues
Pull Requests
Commits
Tags
Feed URL
Select the types of activity you want to include in your feed.
Proof of concept mechanical port of ircnet/ircd to Rust as part of a bit about C being insecure for network services
Star
1
Fork
0
Atom
Configure Feed
Issues
Pull Requests
Commits
Tags
Feed URL
Select the types of activity you want to include in your feed.
Overview
Issues
Pulls
Pipelines
ircd.rs
/
leveva
/
src
/
websocket
/
at
master
2 files
Xe Iaso
chore: version bump
7w ago
c10ee5d8
mod.rs
feat(leveva): wss-as-secure — P11 slice 213 A TLS-protected WebSocket is now flagged secure, so its IRCv3 sts CAP LS token is the persistence form (sts=duration=...) rather than the plaintext upgrade hint (sts=port=...). Until now serve_ws never called Session::set_secure, so every WebSocket — including wss:// — defaulted to secure=false (the divergence named in slices 211/212). A WebSocket is secure when (1) this listener TLS-terminated it (a wss:// port, new PerConn.tls_terminated), or (2) a trusted reverse proxy forwarded it with X-Forwarded-Proto: https/wss. The proxy path reuses the resolve_host trust gate (proxy-ranges), so a plaintext client cannot spoof secure by sending the header itself. The trust+proto verdict is the pure, fuzzable parent-module helper websocket::forwarded_proto_secure; server.rs keeps only the thin HeaderMap extraction. Closes the last STS-track deferral — the sts track is now complete. Tests (failing first): resolve_secure unit cases (incl. untrusted-peer header ignored = spoof-resistance); forwarded_proto_secure_is_spoof_resistant proptest; golden_websocket_sts e2e (proxied https => duration=, http => port=). Gate: cargo test -p leveva green; clippy clean; build --workspace 0 warnings.
1 month ago
server.rs
chore: version bump Signed-off-by: Xe Iaso <me@xeiaso.net>
1 month ago