Repository navigation
feat(libSceNet): implement sceNetResolverStartNtoaMultipleRecords - #1287
KSWORK2001 wants to merge 2 commits into
Conversation
The records layout (10 records, the address union, af, records and recordsv4), the signature and the cleared output follow shadPS4's PS4 library. The lookup delegates to host DNS as sceNetResolverStartNtoa does, IPv4 only, deduplicated, at most 10 records; timeout, retry and flags are ignored as there and a failure returns RESOLVER_ENODNS.
|
PPSA14632 imports |
|
Title evidence for this family.
These titles import the int sceNetResolverStartNtoaMultipleRecordsEx(int rid, const char *hostname, void *info, int timeout, int retry, int flags);and reads the result as "SceNetResolverInfoEx, as SharpProspero lays it out": ten 32-byte records (16-byte address union, Would you like to add AI-assisted: yes (Claude Code). |
|
I have |
|
The latest runtime evidence in #1578 is for |
|
Opened as #1838. |
What
sceNetResolverStartNtoaMultipleRecordsthrew as unimplemented. The(rid, hostname, records, timeout, retry, flags)signature, the 384-byte records layout (10 records of a 16-byte address union,afand padding, thenrecords,recordsv4and padding) and the cleared-then-filled output follow the shadPS4 reimplementation of the PS4 library, which has a body and a test for it; not confirmed on a PS5 title.The lookup delegates to host DNS as
sceNetResolverStartNtoadoes: IPv4-only, one entry per address with duplicates dropped, at most 10 records,af2 per record andrecordsv4 == records. Argument checks follow the sibling (EINVALfor a null hostname or records,EBADFfor an unknown resolver, the hostname must be 1..255 bytes as the SDK'sSCE_NET_RESOLVER_HOSTNAME_LEN_MAX), and a failed lookup returnsRESOLVER_ENODNSand records it forsceNetResolverGetError. As for the sibling, timeout, retry and flags are ignored (shadPS4 runs the ASYNC flag on a worker thread and skips numeric hostnames for the 0x10000 flag, and separates four resolver error codes); all recorded in TechnicalDebt.tools/pr_overlap.pyreports #1119 (structures added at the same spot inGuestSceNet.cpp; no shared exports) and #1158, #1206 (neighbouringTechnicalDebt.mdline). No dependency on any of them; happy to rebase once one lands.Tested
Windows 11, MinGW-w64 GCC 15.2.0 (WinLibs
x86_64-ucrt-posix-sehr7), Ninja, based on 6c48ace (rebased to df16c4c before pushing).ctest -R guest_sce_net: passed with the new checks -localhostresolves to 1..10 records withaf2 and a 127.x address, null hostname / null records / empty hostname returnEINVAL,.invalidreturnsRESOLVER_ENODNSand sets the resolver error, a destroyed resolver returnsEBADF.Checklist
main; no other open PR implements the same functionsNotImplemented_nid_no_patch); silent stubs are listed in TechnicalDebt.mdfiles or images added to the repository (attach them to this PR)