Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 37 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,43 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

## [0.2.0](https://github.com/KarpelesLab/httpsd/compare/v0.1.1...v0.2.0) - 2026-07-12

### Fixed

- *(h3)* enforce max field-section size and harden frame-length cast
- *(quic)* anchor loss-recovery timers to connection construction

### Other

- use ? instead of match in find_subslice (newer clippy)
- drop needless borrow in reload test helper
- SIGHUP reloads static certs + works in config mode
- thread ReloadableAcceptor through the static-TLS path
- add ReloadableAcceptor for hot cert reload
- reset accepted sockets to blocking for Windows portability
- signal-driven graceful shutdown + SIGHUP cert reload
- add AcmeManager::reload() to clear cached certs
- Shutdown primitive + graceful drain across runtimes
- expose max_conns_per_ip (F6)
- thread the per-IP limiter through the TCP runtimes (F6)
- add per-IP concurrent-connection limiter (F6)
- close TOCTOU/symlink-escape with race-free confined open
- silence dead_code for still_root_after_drop on non-unix
- harden connection engine against five HTTP/2 DoS findings
- add MIN_PROGRESS slow-trickle floor to serve loop
- fix accept-backoff loop freeze and EINTR shutdown
- verify gid drop and fail when still root [MED]
- route on percent-decoded path, reject encoded separators [HIGH]
- require https:// for the ACME directory URL
- authoritative host validation at ACME entry points
- create key temp file with O_EXCL + target mode (no world-readable race)
- fix percent-decode trailing triplet, canonicalize root once, 404 on symlink escape
- fix three request-parsing security findings
- Stop tracking .claude/ (accidentally committed Claude memory)
- add a default host for SNI-less connections
- parse the leaf cert for expiry, not the whole chain

## [0.1.1](https://github.com/KarpelesLab/httpsd/compare/v0.1.0...v0.1.1) - 2026-06-30

### Fixed
Expand Down
2 changes: 1 addition & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "httpsd"
version = "0.1.1"
version = "0.2.0"
edition = "2024"
rust-version = "1.88"
description = "A pure-Rust HTTP/HTTPS server — usable as a sans-I/O library with pluggable runtimes (thread pool, tokio, mio) or as a CLI that serves a directory or a TOML config."
Expand Down
Loading