Skip to content

docs(libSceHttp): note how two titles call sceHttpParseResponseHeader - #11531

Merged
oneandonlydean merged 1 commit into
boykopovar:mainfrom
milescoviello:docs/http-parse-response-header-call-sites
Oct 28, 2026
Merged

oneandonlydean merged 1 commit into
boykopovar:mainfrom
milescoviello:docs/http-parse-response-header-call-sites

Conversation

@milescoviello

Copy link
Copy Markdown
Contributor

What

The sceHttpParseResponseHeader entry in docs/dev/debt/libSceHttp.md takes its signature from SharpProspero and its results from a PS5 payload. Two titles call it with that signature, and they read an empty value differently. The entry now adds:

PPSA01494 01.100.002 (at 0x34F6BA6) and PPSA34502 01.010.000 (0x71BB8E, 0x71D463), disassembled for this entry, pass the arguments in that order, the two outputs on the stack. PPSA01494 treats only a negative result as a failure; PPSA34502 treats 0 as one too, so for it an empty value is a missing field, and it compares the value length with its own buffer size before copying

Changed: docs/dev/debt/libSceHttp.md. No code change.

Method: the addresses are virtual addresses in each title's eboot.bin (unwrapped ELF, text at 0). Call sites were found through the import's PLT stub in the relinker output (app.elf, the same text moved up by 0x400000; the bytes at each site were checked against eboot.bin). The arguments and the branches on the result were read with objdump. A positive result is the consumed byte count and 0 an empty value, as in GuestHttpResponseHeader.cpp. This is static reading only: nothing was run on a console. The listings are game code and are not attached.

Tested

Documentation only. tools/check_conventions.py --base upstream/main passes. Not built, no title run.

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

🤖 Generated with Claude Code

@MarcZX10 MarcZX10 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The documentation adds a bounded observation about two specific caller versions: argument order/output placement and their different handling of a zero-length result. It clearly distinguishes static disassembly from console execution and limits the observation to those titles/versions. The existing function entry is preserved and the new paragraph is concise. Conventions and diff checks pass; hosted product jobs are skipped for this docs-only change.

@github-actions

github-actions Bot commented Oct 26, 2026 •

Copy link
Copy Markdown

Other open pull requests touch the same code. Merging one will break the other, or both implement the same thing. If this one builds on them, list them in Depends on.

Pull request Conflicting files (lines on main) Same exports Same new files
PR 11134 docs/dev/debt/libSceHttp.md L14-15

Some comparisons could not be completed because a pull request conflicts with the base branch. Review these shared files manually before concluding that there is no overlap.

Pull request Shared files not compared
PR 9834 docs/dev/debt/libSceHttp.md

@MarcZX10

Copy link
Copy Markdown
Contributor

Manual follow-up to the overlap bot report at the current heads: #11531 changes the sceHttpParseResponseHeader entry in docs/dev/debt/libSceHttp.md. I compared the exact patches for #9834 (e8fa02ca), #10901 (33851346), and #11134 (17b2aefb): they change the sceHttpSetCookieEnabled entry and/or add separate functional entries, but do not change sceHttpParseResponseHeader. The same-file/nearby-hunk warning is therefore not an actual overlapping edit for this change, and I find no merge-order dependency among these PRs on the changed lines. My approval remains for the reviewed head. This is a manual diff comparison; no build or title test applies to this docs-only change.

@github-actions github-actions Bot added docs needs rebase Conflicts with main, rebase needed labels Oct 27, 2026
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@milescoviello
milescoviello force-pushed the docs/http-parse-response-header-call-sites branch from fa74e2b to 8c8a695 Compare October 27, 2026 04:22
@milescoviello

Copy link
Copy Markdown
Contributor Author

Rebased onto main b986c11 (now 8c8a695e64). main changed the neighbouring sceHttpSetCookieEnabled line, which conflicted with this one. The sceHttpParseResponseHeader addition is the same text as before, applied to main's current line. tools/check_conventions.py passes.

AI-assisted: yes (Claude Code)

@github-actions github-actions Bot removed the needs rebase Conflicts with main, rebase needed label Oct 27, 2026
@oneandonlydean oneandonlydean self-assigned this Oct 27, 2026

@THEMANnt THEMANnt left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed 8c8a695e64d93635ded73c6eae45a41c30e2a918 against author merge base b986c11a344eb094eec31cbc3977fe2ae8f6eb30 — approve the documentation change.

The parameter ordering, returned value-length handling and empty-value discussion agree with the HTTP response-header parser. This is a documentation-only clarification; the caller observations are not a new parser implementation.

Validation: checked the submitted Markdown diff, pinned implementation references and relative links; git diff --check passed. This changes documentation only. Title disassembly and console observations were not independently reproduced; no runtime regression result is claimed.

@oneandonlydean
oneandonlydean merged commit 74d94ce into boykopovar:main Oct 28, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants