Commit Graph
42 Commits
Author SHA1 Message Date
Dean GalvinandJJenkx fd606d4379 test(libSceHttp2): do not pin the unsupported authentication challenge to throw
A 401 or 407 with a matching challenge field is a valid response whose console handling is not implemented here, so the new test should not assert that it throws. The cases that pass the status and body through stay.

Co-authored-by: JJenkx <[email protected]>
2026-11-06 11:45:48 +13:00
JJenkx 8bb5c1aa1f fix(http2): expose auth statuses without matching challenges 2026-11-05 16:50:01 -05:00
Dean Galvin fc0ef17ce0 Merge main into fix/http2-cookie-boxes
Apply review request from 2026-11-05: resolve the GuestHttp2Transport Mode enum and content-encoding conflicts.
2026-11-05 18:08:06 +13:00
JJenkx 939d961c50 fix(http2): retain gzip member checks on current transport 2026-11-04 10:15:28 -05:00
JJenkxandClaude Opus 5.5 d6a8038853 fix(http2): carry cookie boxes through HTTP1 transport
(cherry picked from commit a73753f129c9c02b6eee9781afa370975e9f3b7d)

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-04 15:34:48 +01:00
BunnyFlandClaude Opus 5.5 760eba6585 Merge upstream/main into fix/http2-cookie-box-binding
Resolve the HTTP/1.x transport merge (#11611): keep both includes in Transport.cpp, and add Cookie and CookieFlood to the test Mode enum after StallUpload, outside the Http10..Http1Plain and EarlyFinal ranges.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-04 06:43:44 +01:00
BunnyFlandClaude Opus 5.5 1897b26943 Merge upstream/main into fix/http2-cookie-box-binding
Resolve core/libs/tests/GuestHttp2Transport.cpp: keep both sides' Mode values (all before EarlyFinal) and run the cookie-box tests before main's handshake tests, which replace the old Failure(ssl, Mode::Normal, true) call.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-04 05:25:14 +01:00
Dean Galvin a614d407e2 Merge branch 'main' into feat/http2-http1-transport 2026-11-04 17:01:05 +13:00
JJenkx 9a05af1539 fix(http2): emit one overridden Host header for HTTP1 2026-11-03 16:45:26 -05:00
JJenkx 3f9c054d18 feat(http2): support synchronous HTTP/1.0 and HTTP/1.1 requests 2026-11-03 16:45:25 -05:00
hugodearaujo 6dd4bcd43a Merge remote-tracking branch 'origin/main' into http2/merge-main-2
# Conflicts:
#	core/libs/prx/libSceHttp2/Transport.cpp
#	docs/dev/debt/libSceHttp2.md
2026-11-03 18:32:20 -03:00
JJenkx 3989a014e7 fix(http2): decode and validate each gzip member 2026-11-03 07:34:40 -05:00
JJenkx 64b8e667ee chore: refresh HTTP2 callback review branch on main 2026-11-02 11:57:34 -05:00
Dean Galvin 7b95725572 Merge commit 'refs/fu/main' into HEAD
# Conflicts:
#	core/libs/tests/GuestHttp2Transport.cpp
#	docs/dev/debt/libSceHttp2.md
2026-11-03 05:44:48 +13:00
Dean Galvin cbbf248943 Merge commit '0278ca983148dbb9b8b54a267b2aeab0ce8aff37' into HEAD
# Conflicts:
#	core/libs/prx/libSceHttp2/Transport.cpp
2026-11-03 01:33:11 +13:00
Dean cbfc0f02ca Merge pull request #11627 from edubox/feat/http2-host-authority
fix(http2): translate the Host request header to :authority
2026-11-03 01:26:10 +13:00
BunnyFlandClaude Opus 5.5 8a5f9e2706 Merge upstream/main into fix/http2-cookie-box-binding
Keeps main's redirect scenarios in GuestHttp2Transport.cpp next to this
branch's cookie box modes and scenarios.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-02 11:59:15 +01:00
JJenkx 2de2bfe764 feat(http2): deliver TLS certificate verification callbacks 2026-11-01 20:17:24 -05:00
JJenkx 59bc5a8f19 feat(http2): deliver redirect callbacks and follow HTTPS redirects 2026-11-01 20:17:24 -05:00
JJenkx 6ae1f9381b fix(http2): compose gzip with callback and HTTP1 transport 2026-10-30 19:01:44 -04:00
BunnyFlandClaude Opus 5.5 77c3d1d379 Merge upstream/main into fix/http2-cookie-box-binding
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 18:43:08 +01:00
hugodearaujo 0d054bf053 Merge main into fix/http2-tls-handshake-codes
# Conflicts:
#	core/libs/prx/libSceHttp2/Transport.cpp
#	core/libs/tests/GuestHttp2Transport.cpp
#	docs/dev/debt/libSceHttp2.md
2026-10-30 12:34:47 -03:00
Eduardo Ruiz 72c2df44a4 test(http2): cover gzip checksum and concatenated members 2026-10-30 13:31:03 +01:00
Eduardo Ruiz 58f325624e fix(http2): consume flow control while buffering gzip bodies
Reads already wait for END_STREAM when inflation applies, so keep the receive window open while the encoded body is buffered. This lets a gzip response larger than 65,535 bytes inflate instead of failing, and the split test now reads before the content length so it exercises the read path.
2026-10-30 13:31:03 +01:00
Eduardo Ruiz bd68b64dd1 fix(http2): inflate gzip responses after END_STREAM 2026-10-30 13:31:03 +01:00
edubox 9624b77bc6 feat(http2): inflate gzip response bodies 2026-10-30 13:31:03 +01:00
JJenkx e069fd2308 fix(http2): integrate current main and preserve callback parent order 2026-10-30 07:37:48 -04:00
hugodearaujo 83c9231966 Merge main into fix/http2-tls-handshake-codes
# Conflicts:
#	docs/dev/debt/libSceHttp2.md
2026-10-30 06:35:47 -03:00
milescovielloandClaude Opus 5.5 200e1c0f7c test(libSceHttp2): count the lookups of a retried and an exhausted resolve
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 00:33:35 +01:00
milescovielloandClaude Opus 5.5 d986a418ad fix(libSceHttp2): retry a failed lookup the number of times sceHttp2SetResolveRetry sets
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 00:33:35 +01:00
hugodearaujo 1acaa7f8ea test(libSceHttp2): check the expired certificate handshake code 2026-10-29 10:30:47 -03:00
hugodearaujo 486a71ef91 fix(libSceHttp2): return the console codes for failed TLS handshakes
sceHttp2SendRequest threw when sceSslConnect failed. A PS5 payload measured the result against loopback TLS servers: the console returns the handshake failure unchanged for an untrusted or mismatched certificate, an expired one once 0x8 is enabled, a fatal alert, a peer that closes or resets during the handshake and a reply that is not TLS. After a failed send the status call returns 0, the content length and read calls 0x817B1065, and another send the same error.
2026-10-28 10:52:32 +01:00
p3nicillinandClaude Opus 5.5 6cb305e844 test(libSceSsl): cover the system CA list helper and its HTTP2 call
Each test serves its own CA_LIST.cer through the working-directory
override of the sandbox path. guest_ssl_system_roots checks that a
handshake to the fixture server fails without the helper and passes
with it, that a context authority still works alongside the list, and
that an empty or certificate-free list throws with its path.
guest_http2_system_roots sends a request from a context with no loaded
certificate, which passes only through the transport's helper call.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 23:02:48 +00:00
BunnyFlandClaude Opus 5.5 bbef95bb68 fix(libSceHttp2): keep cookie box lookups off the handles mutex
The transport read and stored a bound box's cookies under the request's
state mutex, and the box lookup took the handles mutex, while deleting a
request holds the handles mutex and waits for that state mutex. The cookie
module now records live boxes itself, so the lookup no longer needs the
handles mutex.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 15:59:56 +01:00
BunnyFlandClaude Opus 5.5 96603d9851 feat(libSceHttp2): bind cookie boxes to templates and requests
sceHttp2SetCookieBox and sceHttp2GetCookieBox follow an emulator run of
the firmware 13.42 module: templates and requests take a live box or 0,
other ids and unknown boxes return the invalid-id error, a new request
copies its template's box, and the getter checks a null output first.

A request with a bound box sends the box's matching cookies and stores
every Set-Cookie of the response in the box.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 15:59:15 +01:00
JJenkx eeea4a5fbb test(http2): stop pinning unsupported downgrade refusal 2026-10-27 06:47:32 -04:00
Eduardo Ruiz eb9aa573a8 fix(http2): translate the Host request header to :authority 2026-10-27 00:40:54 +01:00
JJenkx d847910c69 feat(http2): deliver redirect callbacks and follow HTTPS redirects 2026-10-26 17:01:43 -04:00
Felipebmaitan d07024f3cf fix(http2): accept early responses and initialize Windows DNS 2026-10-26 13:10:57 -03:00
Felipebmaitan 15703a4548 test(http2): handle deletion between synchronous operations 2026-10-26 13:10:57 -03:00
Felipebmaitan 3c4a8eb512 fix(http2): bound uploads and quiesce requests during teardown 2026-10-26 13:10:56 -03:00
Felipebmaitan db57916260 feat(http2): send synchronous HTTP/2 requests over TLS 2026-10-26 13:10:56 -03:00