Skip to content

sc_private_session_v1.request_join

Complete 48-byte request; consent=1 only after fresh explicit local UI Join, reserved pad zero. Numeric IPv4 address 1..15 bytes, passphrase 12..256 bytes, player name 1..64 bytes and nonzero port; no embedded NUL. Strings declared UTF-8. Unknown request tail ignored. Host enforces private-address allowlist and admission.

sco_result (*)(sco_plugin *, const sc_private_session_join_request_v1 *)

Service index

Property Value
Symbol sc_private_session_v1.request_join
Record ID sc-private-session-v1-request-join
Service game.private_session
Table sc_private_session_v1
Version macro SC_PRIVATE_SESSION_VERSION
Packed table version 65536
Since / availability size >= 24; 1.0
Complete member extent (x64 bytes) 24
Table size (x64 bytes) 40

Header source

sco_result (*request_join)(sco_plugin* self, const sc_private_session_join_request_v1* request);
Complete 48-byte request; consent=1 only after fresh explicit local UI Join, reserved pad zero. Numeric IPv4 address 1..15 bytes, passphrase 12..256 bytes, player name 1..64 bytes and nonzero port; no embedded NUL. Strings declared UTF-8. Unknown request tail ignored. Host enforces private-address allowlist and admission.

OK host operation accepted, not authenticated connection; BAD_ARG malformed/bounds/released self; FAILED absent consent or broker failure; WRONG_THREAD; UNAVAILABLE disabled/stopping/reentrant, failed admission or occupied session; TOO_MANY four-attempts-per-second host-wide limit.

Disabled broker, absent admission/owner cleanup or failed registration leaves game.private_session false/unavailable. Enabled default is loopback-only and opens no socket before explicit Host/Join.

Host owns one session and its requesting owner; request strings are borrowed for the call and copied into host storage. Plugins receive no socket/bind/allowlist authority. Caller owns copied state.

Game thread only; WRONG_THREAD before state access.

No plugin callback; offline/EAC inspection and transport are host-owned.

Nested calls during broker operations are refused with UNAVAILABLE.

Requesting-owner unload, explicit leave, admission loss or host stop leaves session. Stop withdraws service. Credentials are volatile backend state, not plugin-controlled persistent storage.

Status labels are copied verbatim from the catalogue: direct is native access; typed-wrapper is wrapper-backed; restricted is a subset/adaptation; unsupported means no supported route is established. No status implies universal safety.

Language Catalogue status Source evidence / wrapper tokens
c direct include/sc_private_session.h
(*request_join)
cpp direct include/sc_private_session.h
(*request_join)
csharp unsupported docs/contracts.md
C# and Lua game.private_session routes are unsupported.
lua unsupported docs/contracts.md
C# and Lua game.private_session routes are unsupported.

None identified in the catalogue; this is not proof none can exist.

ABI pins prove layout, not semantic behavior or a live game session.