Skip to content

feat(libSceHttp): implement sceHttpSetHttp09Enabled and sceHttpSetDelayBuildRequestEnabled - #2

Open
Jawschamp wants to merge 1 commit into
preview-base/http-option-settersfrom
feat/http-option-setters
Open

Jawschamp wants to merge 1 commit into
preview-base/http-option-settersfrom
feat/http-option-setters

Conversation

@Jawschamp

Copy link
Copy Markdown
Owner

What

Implements sceHttpSetHttp09Enabled and sceHttpSetDelayBuildRequestEnabled (libSceHttp NIDs pk0AuomQM1o and 22buO-UufJY), which threw NotImplemented_nid_no_patch. They follow sceHttpCacheRedirectedConnectionEnabled in src/Options.cpp: ERROR_BEFORE_INIT (0x80431001) while no sceHttpInit context is alive, ERROR_INVALID_ID (0x80431100) for an id that is not a live template, connection or request, otherwise 0. The value is accepted as given and not kept: no request reaches the network, so HTTP/0.9 response parsing and delayed request building change nothing, and no getter reads them back. The declarations stay as they were in Http.hpp, with the parameter renamed to enable.

The behaviour is not measured on a PS5. The signature (int id, int enable) follows shadPS4, which only logs and returns 0; the order of the checks follows the neighbouring option calls, and whether the console refuses values above 1 as sceHttpSetCookieEnabled does is unverified. docs/dev/debt/libSceHttp.md gets a silent-stub entry that states this. The libSceHttp debt file keeps no export count, so there is no count to change.

guest_http_options is extended: both setters accept a template, a connection and a request with 0, 1, -1 and 7, refuse an unknown id and id 0 with ERROR_INVALID_ID, and return ERROR_BEFORE_INIT after the last sceHttpTerm.

Tested

Linux x86_64, GCC 14.2 (g++ extracted from Debian trixie packages), -DBUILD_TESTING=ON, full configure with all submodules. Hardware and titles: not tested.

Checklist

  • Based on current main; no other open PR implements the same functions
  • One topic per PR; follow-ups go in a new PR
  • No comments in code except technical debt
  • Unimplemented paths throw (NotImplemented_nid_no_patch); silent stubs are listed under Silent stubs in their library's technical debt file
  • No notes, investigation .md files or images added to the repository (attach them to this PR)
  • New third-party code is a submodule built from source
  • Generic behaviour, not specific to one title
  • Depends on: none
  • Fixes: none
  • Unblocks: none
  • GPUs tested: n/a
  • AI-assisted: yes

…ayBuildRequestEnabled

Replace the NotImplemented placeholders with the offline option setters of
sceHttpCacheRedirectedConnectionEnabled: BEFORE_INIT without a live context,
INVALID_ID for an unknown object, 0 for a live template, connection or
request. The unverified behaviour is recorded in the libSceHttp debt file.
@github-actions

github-actions Bot commented Nov 2, 2026

Copy link
Copy Markdown

Progress report (66e1f7f → d120593)

📈 System libraries: 26.3% (+0.01%, +2 implemented functions)

✅ 2 implemented
Library Name
libSceHttp sceHttpSetDelayBuildRequestEnabled
libSceHttp sceHttpSetHttp09Enabled

Changed libraries (implemented exports)

Library Before After Change
libSceHttp 86/115 (74.78%) 88/115 (76.52%) +1.74%

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant