You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Refresh public-header doxygen blocks to match the v2.0 surface, and
add a make-check gate (check-doxygen.sh) that fails on any substantive
doxygen warning. The gate is wired into check-local via Makefile.am
following the precedent established by TASK-040/041/042.
Substantive doxygen-source warnings fixed (17 → 0):
* `webserver.hpp` register_path/register_prefix/register_ws_resource:
the shared_ptr overloads used `@copydoc <template-overload>` followed
by an `@param res` override, which doxygen flags as "too many @param".
Replace the @copydoc with a fresh self-contained block on each
overload (same prose, no duplicate @param).
* `http_request.hpp` check_digest_auth / check_digest_auth_digest:
add explicit @param blocks for realm/password/nonce_timeout/max_nc/algo
on check_digest_auth, and replace the @copydoc-based block on
check_digest_auth_digest with a self-contained one (copydoc was
inheriting `password` which is not in the digest variant's signature).
* `http_request.hpp` get_or_create_file_info: add missing `@param key`.
* `http_resource.hpp` render: name the previously-anonymous `req`
parameter so the `@param req` in the doc block resolves.
* `http_utils.hpp` get_ip_str: drop the stale `@param maxlen` block left
over from the v1 two-arg signature.
* `http_utils.hpp` header_comparator::operator() and arg_comparator::
operator(): rename `@param first/second` to match the actual `x, y`
signature, and document the case-sensitivity contract on the arg
variant.
Acceptance-criterion content (per the task action items):
* AC bullet 3 — threading: add a `### Threading contract (DR-008 / §5.1)`
block on the `webserver` class summarising the 5-point contract
(re-entrant registration; stop/destructor must not run on a handler
thread; per-request http_request; exclusive http_response; concurrent
user callbacks).
* AC bullet 4 — error propagation: add a load-bearing block on
`create_webserver::internal_error_handler` that spells out the DR-009
§5.2 6-point contract verbatim, cross-linking to @ref webserver,
not_found_handler, method_not_allowed_handler, feature_unavailable.
Also document `internal_error_handler_t` (the typedef) explaining
the std::string_view ownership rules.
* AC bullet 5 — feature_unavailable throw sites: enumerate the throw
sites on the feature_unavailable class itself (webserver ctor for
TLS/BAUTH/DAUTH, register_ws_resource / unregister_ws_resource for
HAVE_WEBSOCKET, and every send_* / close on websocket_session).
* AC bullet 2 — cross-links: `@see` pairs added between block_ip ↔
unblock_ip, register_path ↔ register_prefix, the unregister_*
family, register_ws_resource ↔ unregister_ws_resource, and the
three error-handler setters.
* Class-level docs added on `create_webserver` (fluent-builder
contract, eager validation, explicit webserver ctor), and on
`websocket_session` / `websocket_handler` (per-method param/return/
throws blocks including the HAVE_WEBSOCKET-off feature_unavailable
behaviour).
Verification:
* `make check` green (48 testsuite entries pass; check-headers,
check-examples, check-readme, check-release-notes, check-doxygen,
check-install-layout, check-hygiene all PASS).
* `make doxygen-run` now produces zero substantive warnings; the
remaining stderr lines (obsolete config tags, dot/graphviz env
artifacts when graphviz is missing) are explicitly filtered by
scripts/check-doxygen.sh.
* Spot-check on 11 v2.0-renamed/reshaped public methods
(register_path, register_prefix, internal_error_handler, block_ip,
unblock_ip, route, on_get, use_ssl, basic_auth, register_ws_resource,
feature_unavailable) — each has a current `///` or `/**` block with
@param/@return/@see reflecting the v2.0 signature.
The gate skips with exit 0 when doxygen is not installed (mirrors the
tolerance pattern used by the other check-* scripts); in CI the gate
runs whenever the doxygen package is present.
PRD §2 documentation NFR; §13 documentation deliverable.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
0 commit comments