SetCustomProperty refuses a valid request until its store is known, and
the tests asserted that refusal. A test that pins an unimplemented path
fails as soon as the path is implemented. On Windows the refusal's
runtime_error also does not reach the test's catch and terminates
guest_np_session_signaling (0xc0000409); on Linux it is caught. Keep
the null-property and stale-context cases.
Co-authored-by: edubox <[email protected]>
Recover the signatures from the 11.00 module wrappers and implement InitializeWithPort, the per-context custom property, the peer-address group lookup, the internal callback registration, the memory information and the connection statistics. The host stores the pool size and the property, reports zero usage and statistics for the offline runtime, and still throws for the signaling paths that need the network. A destroyed context slot clears the property and both callback pointers before it is reused, so a new context starts from a fresh state.
In GuestNpSessionSignaling.cpp, assert that sceNpSessionSignalingCreateContext with SessionSignalingContextParam1 returns NotInitialized after termination.
The group and connection lookups take the firmware signatures, reject a
null pointer with 0x80553303 and, because no session ever activates,
report the group (0x8055330A) or connection (0x8055330C) as not found,
whichever lookup the firmware performs first.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01RbLgECLQ2bpDM7oe2urGZK
Without network a signaling context is never prepared. Like
ActivateSession, ActivateUser and GetConnectionInfo,
sceNpSessionSignalingRequestPrepare returns 0x80552D06 (UNAVAILABLE)
and writes no request id. sceNpSessionSignalingGetLocalNetInfo no
longer throws: it returns 0x80552D06 and leaves the info unchanged, as
libSceNetCtl reports neither an address nor NAT info offline. A null
request id or info returns 0x80552D02, as a null context id does in
CreateContext2. GetConnectionStatus still throws.
The new guest_np_session_signaling test checks the error codes and
that failed calls leave the request id and info unchanged; it is
registered in a new libSceNpSessionSignaling CMakeLists.txt.
Co-Authored-By: Claude Opus 5.5 <[email protected]>