Commit f252f55
unworked validation sweep: close task-055 + task-056 minor findings
TASK-055 (DR-009 Revision 1 — default 500 body sanitization):
- Document expose_exception_messages on the create-webserver and
webserver component specs (§4.9, §4.1) mirroring the shape used for
expose_credentials_in_logs.
- Clarify constants.hpp: GENERIC_ERROR is v1-API-parity only;
INTERNAL_SERVER_ERROR is the live dispatch constant.
- Update the internal_error_page declaration comment (Doxygen) to
describe the post-revision dual-branch body (fixed string by default;
e.what() only when expose_exception_messages is set).
- Extract the 500 status into a local in webserver_error_pages.cpp so
both return paths share one binding for the must-not-diverge dimension.
- Replace the README examples that echoed `what` verbatim to the HTTP
client (CWE-209 anti-pattern); show the safe pattern with an internal
log call placeholder.
- Refresh stale test-name references in basic.cpp comment blocks
(post-TASK-055 rename: dr009_default_body_is_fixed_string).
- Remove redundant unknown-exception substring check from
dr009_default_body_is_fixed_string_for_non_std_exception (the
preceding LT_CHECK_EQ on the full body already covers it).
TASK-056 (hash-DoS hardening + prefix collision):
- Correct the has_terminus_at comment in radix_tree.hpp: it DOES descend
the wildcard child when the pattern segment is wildcard-shaped (same
shape rule as remove()).
- Correct the tokenize() comment: tokenize_url takes a const
std::string&, not by-value.
- Add a /EXA/ path-normalisation comment in basic.cpp's family_endpoints
test so the trailing-slash hit is not misread as prefix fall-through.
- Trim the verbose zero-floor guard comment in threadsafety_stress.cpp
to a single sentence; the full rationale is in the test-level block.
- Drop the std::string(...) wrappers in the collision error-message
concatenation in webserver_routes.cpp; operator+ accepts const char*
directly.
- Update the route-table.md sentence to drop the stale
"to be enforced once TASK-053 lands" qualifier — bench_route_lookup
exists now.
- Rewrite TASK-056 action item 2 in v2-deferred-backlog-plan.md to
reference reject_terminus_collision() at the actual call sites.
Compacted the unworked-review files for both tasks: closed items
collapsed into a single-line table with disposition; substantive
deferred items kept in full as a follow-up backlog.
Tested
- libhttpserver.la rebuilds clean.
- routing_regression: 26 tests / 99 checks pass.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>1 parent d4ad72d commit f252f55
14 files changed
Lines changed: 157 additions & 323 deletions
File tree
- specs
- architecture/04-components
- tasks
- unworked_review_issues
- src
- detail
- httpserver
- detail
- test/integ
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
664 | 664 | | |
665 | 665 | | |
666 | 666 | | |
667 | | - | |
668 | | - | |
| 667 | + | |
| 668 | + | |
| 669 | + | |
| 670 | + | |
| 671 | + | |
669 | 672 | | |
670 | 673 | | |
671 | 674 | | |
| |||
1715 | 1718 | | |
1716 | 1719 | | |
1717 | 1720 | | |
1718 | | - | |
1719 | | - | |
| 1721 | + | |
| 1722 | + | |
| 1723 | + | |
| 1724 | + | |
| 1725 | + | |
1720 | 1726 | | |
1721 | 1727 | | |
1722 | 1728 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
25 | 33 | | |
26 | 34 | | |
27 | 35 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
24 | | - | |
| 24 | + | |
25 | 25 | | |
26 | 26 | | |
27 | 27 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
| 24 | + | |
24 | 25 | | |
25 | 26 | | |
26 | 27 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
251 | 251 | | |
252 | 252 | | |
253 | 253 | | |
254 | | - | |
255 | | - | |
256 | | - | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
257 | 258 | | |
258 | 259 | | |
259 | 260 | | |
| |||
0 commit comments