Commit Graph
72 Commits
Author SHA1 Message Date
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 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 e5408c7638 docs(http2): separate SSL callback debt sections 2026-11-02 18:16:21 -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
JJenkxandClaude Opus 5.5 394efb4c75 docs(debt): shorten the libSceHttp2 TLS settings entry
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-02 06:34:34 -05:00
JJenkxandClaude Opus 5.5 4dc29810e2 docs(debt): keep the libSceHttp2 TLS settings entry within the length limit
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-02 06:34:20 -05: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
Dean 792caaf6dd Merge pull request #11575 from JJenkx/feat/http2-redirect-callbacks
feat(http2): deliver redirect callbacks and follow HTTPS redirects
2026-11-02 23:29:05 +13: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
xXPBSXxandClaude Opus 5.5 5281b2c01c docs(debt): name the HTTP/2 init arguments that titles pass
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-01 01:35:55 +01:00
hugodearaujo 6e29a45057 Merge main f776fddcff into fix/http2-tls-handshake-codes 2026-10-31 19:15:54 -03:00
SnekPolylepisandClaude Opus 5.5 754aad4e9c fix(libSceHttp2): accept SSL options on a context
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-31 22:01:22 +01: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
AdriàandClaude Sonnet 5.5 ea63edc9ce docs(http2): restore main's debt entries and record gzip inflation
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-30 13:31:16 +01: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 5f18e5abe7 fix(http2): retain callback chain with current main import inventory 2026-10-30 08:22:57 -04:00
Dean e49f8c380c Merge pull request #11769 from oneandonlydean/salvage/web-misc-9485
feat(prx): declare 46 PS5 3.20 exports in four libraries
2026-10-31 01:16:48 +13: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 4e921aa0e3 docs(libSceHttp2): say how resolve retries count and that the console's semantics are unverified
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 00:33:44 +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 af99299f6f Merge main into fix/http2-tls-handshake-codes
# Conflicts:
#	docs/dev/debt/libSceHttp2.md
2026-10-29 19:34:48 -03:00
hugodearaujo c3cc464ce1 docs(libSceHttp2): shorten the error paths debt entry 2026-10-29 10:30:47 -03:00
hugodearaujo 35f95a1d4b Merge main into fix/http2-tls-handshake-codes
# Conflicts:
#	docs/dev/debt/libSceHttp2.md
2026-10-29 09:38:23 -03:00
Lindamea1andClaude Opus 5.5 677da22471 feat(libSceHttp2): implement sceHttp2SetMinSslVersion for versions 2 to 5
sceHttp2SetMinSslVersion returns 0 for versions 2 (SSL 3.0) to 5 (TLS 1.2)
on a template or an unsent request: the range libSceSsl's
sceSslSetMinSslVersion takes on a 13.40 console (docs/dev/debt/libSceSsl.md).
The floor is not kept, as libSceSsl negotiates TLS 1.2 only, which meets
every accepted floor. Versions 0, 1 and above 5 still throw, as do context
and cookie-box ids and sent requests; unknown and deleted ids still return
0x817B1100.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 23:16:31 +00:00
Adrià 3b362ba2e0 Merge pull request #11730 from ionut27001/fix/http2-init-zero-concurrency
fix(libSceHttp2): return invalid value from sceHttp2Init for a maximum of 0 requests as measured in a PS5 payload
2026-10-28 17:45:01 +01:00
Adrià 4aec576ede Merge pull request #11616 from milescoviello/fix/http2-memory-pool-stats
fix(libSceHttp2): report a live context's pool size from sceHttp2GetMemoryPoolStats
2026-10-28 15:17:09 +01:00
Adrià 7215512e1b docs(libSceHttp2): state which measured handshake codes the host reaches 2026-10-28 10:52:37 +01: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
Dean fe84a7bd37 Merge pull request #11919 from kyon-eth/feat/http2-1360-inventory
feat(libSceHttp2): declare eight additional exports
2026-10-28 22:30:44 +13:00
ionut27001 7db98b9058 fix(libSceHttp2): return invalid value from sceHttp2Init for a maximum of 0 requests as measured in a PS5 payload 2026-10-28 10:02:57 +01:00
p3nicillinandClaude Opus 5.5 f685ee8720 fix(http2): trust the system CA list for HTTPS requests
Every libSceSsl context started without trust anchors, so a libSceHttp2
request without a verify callback failed the known-CA check. RetroArch's
updater, PS5LM and Porpoise all use version-3 templates over https://
without one. libSceSsl now parses /<sandbox word>/common/cert/CA_LIST.cer,
served by libkernel from the host trust store, once per process into its
own pool, and SslTrustSystemRoots_nid_no_patch links those roots after
the context's own authorities for one connection. The HTTP/2 transport
calls it after creating each connection.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 23:02:48 +00: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
milescoviello a45f140d85 Merge remote-tracking branch 'upstream/main' into fix/http2-memory-pool-stats
# Conflicts:
#	docs/dev/debt/libSceHttp2.md
2026-10-27 13:06:25 +00:00