Commit Graph
78 Commits
Author SHA1 Message Date
Yossi Yadgar 008a78aa2c feat(libSceHttp): check the arguments of sceHttpSetProxy 2026-10-22 08:26:07 +03:00
boykopovar 5b01f05550 fix(http): apply sdk character rules to uri decoding 2026-10-21 21:51:45 +03:00
boykopovar 7eac0fbbac fix(http): restore uri builder limits and output rules 2026-10-21 21:51:43 +03:00
boykopovar 3985ae95cb fix(http): match native header parsing and uri decoding 2026-10-21 21:51:42 +03:00
boykopovar bd7a73eb58 fix(http): restore cookie and socket callback signatures 2026-10-21 21:51:39 +03:00
boykopovar f0e10376bb fix(http): restore epoll and diagnostic query signatures 2026-10-21 21:50:49 +03:00
boykopovar adb500a3c1 fix(http): recover the cookie statistics layout 2026-10-21 21:47:19 +03:00
boykopovar 2239c0b717 fix(http): recover request metadata and memory stats signatures 2026-10-21 21:45:01 +03:00
boykopovar 35943b3e7b fix(http): recover cookie buffer and limit signatures 2026-10-21 21:45:01 +03:00
boykopovar 5266e7f770 fix(http): recover cache and request option stub signatures
verify argument widths against the local system module, including the four-register auth cache export and four-byte option outputs. keep every throwing stub body unchanged.
2026-10-21 21:44:51 +03:00
Adrià d099bc6cd8 Merge pull request #8245 from YossiYad/feat/http-object-options
feat(libSceHttp): keep options per template, connection and request and implement their getters
2026-10-21 14:04:15 +02:00
Dean 1bcaa14234 Merge pull request #8307 from hypermoist/fix/libs-console-results-part2
fix(libs): return what the firmware returns from 31 more calls it does not implement
2026-10-21 20:57:00 +13:00
Yossi Yadgar ede0124063 fix(libSceHttp): refuse the option calls before init and sceHttpSetEpoll for a handle that is not an epoll
The last sceHttpTerm now ends every template, connection and request's options, so a stale id is refused after the next sceHttpInit.
2026-10-21 09:36:43 +03:00
Dean 9f4ddf7cf9 Merge pull request #8838 from orezraey/fix/http-uri-unescape-sweep-measured-ps5
fix(libSceHttp): unescape and sweep URIs as measured on a PS5
2026-10-21 16:10:19 +13:00
orezraeyandClaude Opus 5.5 d991252d25 fix(libSceHttp): keep the unmeasured single-dot sweep boundary
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-20 22:50:59 -03:00
orezraeyandClaude Opus 5.5 e2c37be594 fix(libSceHttp): unescape and sweep URIs as measured on a PS5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-20 20:25:59 -03:00
orezraeyandClaude Opus 5.5 a8c5db1be9 fix(libSceHttp): bound and return sceHttpParseResponseHeader's value as measured on a PS5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-20 20:19:58 -03:00
hypermistandClaude Opus 5.5 db25758397 fix(libs): return what the firmware returns from 29 more calls it does not implement
The NetCtl ApRp calls, the SaveData debug calls, HttpDbgEnableProfile,
HttpDbgSetPrintf, PadEnableExtensionPort and VideoRecording Init, Term
and SendCommand return 0; ImeForTestFunction returns 0x80BC00FF; the Hmd
distortion work memory align and size are 0x400 and 0x20000 and
DistortionGetCompoundEyeCorrectionCommand returns 0x81110009;
AjmInstanceCodecType returns the instance id shifted right by 14.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01RbLgECLQ2bpDM7oe2urGZK
2026-10-20 22:38:57 +13:00
Yossi Yadgar c0f8251a4b feat(libSceHttp): accept the redirect cache, private SSL and forced abort calls
Without a network these change nothing, so they check their arguments and return 0, and the debt file lists them as silent stubs.
2026-10-20 09:37:17 +03:00
Yossi Yadgar 2525578179 feat(libSceHttp): implement sceHttpGetEpoll
sceHttpSetEpoll and sceHttpUnsetEpoll now keep and clear the object's epoll and argument, which sceHttpGetEpoll returns.
2026-10-20 09:36:03 +03:00
Yossi Yadgar 32f0a809be feat(libSceHttp): implement the Accept-Encoding gzip switches
sceHttpSetDefaultAcceptEncodingGZIPEnabled sets the value templates of that context start with; sceHttpSetAcceptEncodingGZIPEnabled and sceHttpGetAcceptEncodingGZIPEnabled set and read it per object.
2026-10-20 09:35:20 +03:00
Yossi Yadgar 585e42bcab feat(libSceHttp): implement sceHttpGetNonblock and the Try variants of the nonblocking switch 2026-10-20 09:34:26 +03:00
Yossi Yadgar ac6ceb0b55 feat(libSceHttp): keep redirect options per object and implement sceHttpGetAutoRedirect
Templates, connections and requests now each keep their options, copied from the parent when they are created, so sceHttpSetAutoRedirect is no longer dropped and sceHttpGetAutoRedirect returns it.
2026-10-20 09:33:53 +03:00
Dean 23c0381313 Merge pull request #8020 from ymatrix1/feat/http-missing-exports
feat(libSceHttp): export missing firmware HTTP interfaces
2026-10-20 17:55:27 +13:00
Yuri Olive 7d9d41c3db feat(libSceHttp): export missing firmware interfaces 2026-10-19 14:55:42 -03:00
Atharv Jairath 81cd06b8bb fix(http): make URI parsing independent of host locale 2026-10-19 23:17:34 +05:30
Dean 95d08209cd Merge pull request #7779 from Antifrag/codex/http-cache-flush
fix(libSceHttp): add authentication and cookie cache flush exports
2026-10-19 23:52:45 +13:00
Adrià 079afa9b84 Merge pull request #6649 from ymatrix1/feat/http-uri-copy
feat(libSceHttp): implement sceHttpUriCopy
2026-10-19 10:01:28 +02:00
Anton Ermolaev 4450bafec8 fix(libSceHttp): add authentication and cookie cache flush exports 2026-10-19 12:07:02 +05:00
unknown 7c71fc603a fix(libSceHttp): make URI escaping independent of host locale 2026-10-17 18:46:12 +02:00
Yuri Olive 630ab4c20b feat(libSceHttp): implement sceHttpUriCopy 2026-10-15 22:46:40 -03:00
Adrià 1be2ca2028 Merge pull request #3706 from MarcZX100/codex/http-abort-wait-3156
feat(libSceHttp): implement abortable epoll waits
2026-10-11 23:53:59 +02:00
Adrià f6203c150b Merge pull request #3497 from LightStorm72/https-ca-list-stubs
fix(libSceHttp): return an empty CA list from sceHttpsGetCaList/sceHttpsFreeCaList
2026-10-11 23:44:40 +02:00
LightStorm72 1d5f699439 fix(libSceHttp): return an empty CA list from sceHttpsGetCaList/sceHttpsFreeCaList 2026-10-11 23:15:05 +02:00
MarcZX100 776cff0efb fix(libSceHttp): use native Windows condition waits
Use an SRW lock and native Windows condition variable for epoll waits, preserving the shared handle lifecycle. This avoids the scheduler-tick overshoot measured with std::condition_variable on Windows.

Suggested-by: winstrex
2026-10-11 15:40:29 +00:00
David 4c7d83a2bf feat(libSceHttp): implement sceHttpAbortWaitRequest and the unlimited sceHttpWaitRequest
Deathloop (PPSA01670) imports sceHttpAbortWaitRequest; Planet Coaster
(PPSA01736) and Palworld import sceHttpWaitRequest.

Epoll handles are kept in a registry with an abort flag, a destroyed flag
and a condition variable. A wait with a negative timeout blocks until
sceHttpAbortWaitRequest, sceHttpDestroyEpoll or the sceHttpTerm of the
last context wakes it; a bounded wait still returns 0 events. An abort
stays set and makes every later wait return SCE_HTTP_ERROR_ABORTED
(0x80431080); a wait woken by destroy or term returns 0 events.
sceHttpDestroyEpoll no longer frees a handle a waiter is blocked on.
sceHttpInit registers its context, and the epoll calls and sceHttpTerm
return BEFORE_INIT without a live context and INVALID_ID for an unknown
context or handle.

Behaviour and error codes: shadPS4 src/core/libraries/network/http.cpp
and http_error.h at a8a70da595da2a96e0410309472ba4a7eb558144.
Signature (void* eh): Orbital tools/ida/db_types.json at
b321fcdbd700cc02da1cb1ad25412781d5ec73c6 and SharpProspero
src/SharpProspero/Interop/Net/Http.cs at
60977b29103452b9681ae10c7a9011d44965bf16.

Co-Authored-By: Claude Fable 5.1 <[email protected]>
(cherry picked from commit 766997df3f8329fd6e8e7aac2b5d83daf88c8292)
2026-10-11 15:40:17 +00:00
Adelmo Junior 5334bd178c fix(libSceHttp): retain authority delimiter for partial URI builds 2026-10-11 10:28:39 -03:00
tototomate123 63d29116b4 fix(http): retain request status callbacks with the guest ABI 2026-10-11 07:36:46 +02:00
Hannah Lyons e203c43221 feat(libSceHttp): accept sceHttpSetRecvBlockSize 2026-10-10 12:40:55 -04:00
Adrià 948a526c23 Merge pull request #407 from Pouare514/feat/deathloop-loading
feat(libs): Deathloop loading support (Ampr, NetCtlApDialog + stubs)
2026-10-10 11:29:40 +02:00
MarcZX100 0e838c5be3 fix: skip zero-length memcpy calls 2026-10-10 21:23:19 +13:00
Pouare514 998016e789 fix(libs): drop stubs now owned by main after rebase 2026-10-09 20:13:56 +02:00
Pouare514 b6c70b1135 fix(libs): rename loader stubs to recomputed real names, drop clashing ones 2026-10-09 20:12:31 +02:00
Pouare514 e96ec6da7d feat(libs): Deathloop loading support (Ampr, NetCtlApDialog, Party + stubs) 2026-10-09 20:11:35 +02:00
Dean 812c86cde7 Merge pull request #1481 from awake-devel/feat/http-auth-info-callback
feat(http): accept sceHttpSetAuthInfoCallback
2026-10-09 21:03:15 +13:00
MathiasDevelopesandClaude Opus 5.5 485eb1aedd fix(libSceHttp): sceHttpWaitRequest reports no ready requests
It returned the network error, which titles that poll their epoll treat
as fatal. No request is ever pending, since sending fails at once, so the
wait now times out with no events; an infinite wait throws.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
2026-10-08 20:48:20 +02:00
clem-gbandClaude Opus 5.5 c91b306157 feat(http): accept sceHttpSetAuthInfoCallback
PPSA13427 imports sceHttpSetAuthInfoCallback (jf4TB2nUO40), which no
library exported, so the relinked title failed to load. No request
reaches the network, so no server asks for authentication: the
callback is accepted and never called. The signature and callback
type follow shadPS4.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01HeC9bA3n74TzJRYv9AgBE8
2026-10-08 20:42:24 +02:00
Adrià 461fcfc7f3 Merge pull request #1436 from tototomate123/fix/hfw-offline-imports
fix(prx): add missing HFW imports with strict offline handling
2026-10-08 15:52:39 +02:00
Claude 3ed954fb90 feat(libSceHttp): accept the SSL version, SSL error and redirect and cookie callback calls
No request reaches the network, so sceHttpsSetSslVersion has no TLS
connection to configure, sceHttpSetRedirectCallback and
sceHttpSetCookieRecvCallback register callbacks that are never called,
and sceHttpsGetSslError reports error 0 with detail 0. A null errNum or
detail returns SCE_HTTP_ERROR_INVALID_VALUE like sceHttpGetLastErrno.
Signatures follow shadPS4.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-08 10:57:14 +02:00
tototomate123 0b0526c4d1 fix(prx): add missing offline HFW imports 2026-10-08 08:27:31 +02:00