Repository navigation
Conversation
icing
commented
Sep 8, 2026
- always treat errors from nghttp2_session_mem_recv() as fatal
- always return 0 from invalid_frame callback, so that nghttp2's internal RST/GOAWAY handling can work
- adjust test_01_14 return code expectation
- always treat errors from nghttp2_session_mem_recv() as fatal - always return 0 from invalid_frame callback, so that nghttp2's internal RST/GOAWAY handling can work - adjust test_01_14 return code expectation
|
@vszakats the Windows errors are caused by some cmake related change, maybe? |
There was a problem hiding this comment.
🔵 Needs a closer look
It changes core HTTP/2 error/callback semantics with nghttp2, which can have subtle protocol/connection behavior impacts that should be validated by a maintainer with full test coverage.
Pull request overview
This PR adjusts libcurl’s HTTP/2 (nghttp2) error-handling behavior to treat nghttp2_session_mem_recv() errors as fatal, to always return success from the invalid_frame callback so nghttp2 can perform its own RST/GOAWAY handling, and aligns an HTTP/2 test expectation with the resulting exit code.
Changes:
- Change the
nghttp2_session_mem_recv()error path inh2_process_pending_input()to returnCURLE_RECV_ERROR. - Make
cf_h2_on_invalid_frame_recv()always return0(success) instead ofNGHTTP2_ERR_CALLBACK_FAILURE. - Update
test_01_14_gigalarge_resp_headersto expect exit code56(CURLE_RECV_ERROR) for HTTP/2.
File summaries
| File | Description |
|---|---|
lib/http2.c |
Updates HTTP/2 receive/error callback handling to change fatality and allow nghttp2 internal recovery signaling. |
tests/http/test_01_basic.py |
Updates HTTP/2 test expectation to match the new error code surfaced by the changed receive path. |
Review details
- Files reviewed: 2/2 changed files
- Comments generated: 1
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
The Cygwin fail seen today looks like upstream temporary breakage. Let's see if it resolves itself. |
It did. Thanks for checking. |