Skip to content

feat(libSceNet): implement resolver abort and multiple records - #3728

Merged
adriadam10 merged 3 commits into
boykopovar:mainfrom
MarcZX10:codex/net-resolver-abort-3153
Oct 12, 2026
Merged

adriadam10 merged 3 commits into
boykopovar:mainfrom
MarcZX10:codex/net-resolver-abort-3153

Conversation

@MarcZX10

Copy link
Copy Markdown
Contributor

What

Implements sceNetResolverAbort and sceNetResolverStartNtoaMultipleRecords, extends guest_sce_net, and records unresolved console behavior in TechnicalDebt.

Carried the independently Linux-verified ready commit unchanged, preserving David's author metadata. The TechnicalDebt append was rebased with current-main entries retained.

Tested

Independent Linux Release verification on the rebased change: guest_sce_net and full suite (520/520) passed; conventions and git diff --check passed. The original Windows Release report records guest_sce_net 3/3 and full suite 475/475. Abort racing a lookup has no test because localhost resolves too quickly. Verification details are in issue #3153.

Checklist

  • Based on current main; no other open PR implements these functions
  • One topic per PR; follow-ups go in a new PR
  • No comments in code except technical debt
  • Unimplemented paths throw
  • No notes or investigation files added
  • Generic behavior
  • Depends on: none
  • AI-assisted: yes

@github-actions

github-actions Bot commented Oct 11, 2026 •

Copy link
Copy Markdown

Progress report (9742ec1 → 833cc35)

📈 System libraries: 86.48% (+0.05%, +2 implemented functions)

✅ 2 implemented
Library Name
libSceNet sceNetResolverAbort
libSceNet sceNetResolverStartNtoaMultipleRecords

@adriadam10

Copy link
Copy Markdown
Collaborator

Checked the resolver abort/multiple-records change: guest_sce_net passes on Linux and fails without the Export.cpp change; the rebase onto current main is clean.

Added one commit on your branch:

  • docs/dev/TechnicalDebt.md: the PR added a second PPSA23566 imports declared without parameters line fused with the PPSA28416 one (no line break), and left sceNetResolverAbort in the original line. Removed the duplicate and dropped sceNetResolverAbort from the original.

Merging once CI is green.

@github-actions github-actions Bot mentioned this pull request Oct 11, 2026
9 tasks done
@github-actions github-actions Bot added the needs rebase Conflicts with main, rebase needed label Oct 11, 2026
@oneandonlydean

Copy link
Copy Markdown
Collaborator

Same as #3718: which title stops at sceNetResolverAbort or sceNetResolverStartNtoaMultipleRecords on main? #3153 says no run has reached them.

@MarcZX10
MarcZX10 force-pushed the codex/net-resolver-abort-3153 branch from 9f27b2f to be76c2a Compare October 12, 2026 16:59
@github-actions github-actions Bot removed the needs rebase Conflicts with main, rebase needed label Oct 12, 2026
@github-actions github-actions Bot added the needs rebase Conflicts with main, rebase needed label Oct 12, 2026
@MarcZX10
MarcZX10 force-pushed the codex/net-resolver-abort-3153 branch 2 times, most recently from b736108 to 10fefb8 Compare October 12, 2026 18:48
@github-actions github-actions Bot removed the needs rebase Conflicts with main, rebase needed label Oct 12, 2026
@github-actions

github-actions Bot commented Oct 12, 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
#4673 docs/dev/debt/libSceNet.md L12

David and others added 3 commits October 12, 2026 22:03
…tNtoaMultipleRecords

UFC 6 (PPSA23566) imports sceNetResolverAbort (boykopovar#992, boykopovar#1502); Palworld
(PPSA23126) and LEGO Horizon Adventures (PPSA14632) import
sceNetResolverStartNtoaMultipleRecords.

Signatures and behaviour follow shadPS4 811bfcd7d17e
(src/core/libraries/net/net.cpp, net_resolver.cpp); the abort signature
also matches SharpProspero Interop/Net/Socket.cs.

sceNetResolverStartNtoaMultipleRecords shares the lookup of the Ex form
and, like it, throws for any flag. sceNetResolverAbort returns EBADF for
an unknown resolver and throws for flag bits other than NTOA (1) and
ATON (2) preservation. Host lookups cannot be interrupted, so an abort
during a running lookup makes it fail with EINTR when the host call
returns, without writing its output; with nothing running, the
preservation flags make the next lookup of that kind fail with EINTR.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
(cherry picked from commit bcc8be8)
The PR added a second PPSA23566 line fused with the PPSA28416 one instead of editing the original.
Co-Authored-By: Claude <noreply@anthropic.com>
@adriadam10
adriadam10 force-pushed the codex/net-resolver-abort-3153 branch from 10fefb8 to 833cc35 Compare October 12, 2026 20:06
@adriadam10

Copy link
Copy Markdown
Collaborator

Re-checked after the debt files moved to docs/dev/debt/: the rebase onto current main is clean and guest_sce_net plus the scoped libSceNet/libs ctest (27/27) pass.

Added one commit on your branch:

  • docs/dev/debt/libSceAudioOut.md: the PR still carried a second PPSA23566 imports declared without parameters line fused with the PPSA28416 one (no line break). Removed it; sceNetResolverAbort is already dropped from the original line.

Merging once CI is green.

@adriadam10
adriadam10 merged commit 9f8a108 into boykopovar:main Oct 12, 2026
8 checks passed
barnacasiantiberiu added a commit to barnacasiantiberiu/AnyPS5 that referenced this pull request Oct 12, 2026
Share IPv4 lookup/result formatting between the regular and Ex multi-record
entry points. Track resolver cancellation, preserving forward/reverse aborts
for one lookup when idle and checking running lookups before publishing output.
Add a dedicated PC functional suite without an external DNS dependency or skips.

Implementation adapted from boykopovar/AnyPS5 PR boykopovar#3728, head
10fefb8, original implementation
35961b9 by David, co-authored with
Claude Fable 5.1, with documentation cleanup by Adria Franch.
The new deterministic GuestNetResolver test is local work.

Windows Release: full build, libs, nine module CTests and ten integration
CTests passed, including guest_sce_net. The new resolver test fails on
unchanged sources at sceNetResolverAbort and passes with this implementation.
Checks cover exact record bytes, output bounds, invalid arguments/flags,
one-shot aborts, direction isolation, separate contexts and 16 lifecycles.
Active DNS abort races and console ABI details remain documented limitations.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants