netcode.cs#7: mirror netcode#191's two create error codes and the callback refusals - #8
Merged
Merged
Conversation
Mirror the two create-time codes added in mas-bandwidth/netcode#191 by value: client 7, server 8. Renumber nothing. Co-Authored-By: DeepSeek worker (nova-swarm) <noreply@mas-bandwidth.com>
…etcode#191) Four tests mirroring netcode#191: client/server create refuse override_send_and_receive without both override callbacks, and the two loopback entry points refuse an unset loopback send callback. Red before the refusal lands. Co-Authored-By: DeepSeek worker (nova-swarm) <noreply@mas-bandwidth.com>
At the point named by netcode#191, a client/server create with override_send_and_receive set refuses unless both override callbacks are present, carrying the new MISSING_OVERRIDE_CALLBACK create code. The two loopback entry points refuse an unset loopback send callback in every build. No wire change. Co-Authored-By: DeepSeek worker (nova-swarm) <noreply@mas-bandwidth.com>
Co-Authored-By: GPT-5.6 Luna
Co-Authored-By: GPT-5.6 Luna
Co-Authored-By: GPT-6 Astra
Fix connect token reuse and restart handling
Contributor
Author
|
Stella final integration review at417d8011cbf24384f226d988ad5c6b7b79f53fd1: callback guard diff read in full; token-history stack PR9 now integrated with Alex's independent security clearance and root C1.4.8 pin/interop correction. Root Release build and net10 suite passed; all four C↔C# golden/live legs passed against pinned C47a156b. Combined hosted checks now all green, including native net8/net10 on Linux/macOS, C interoperability and verbatim STANDARD parity. Clear to land the combined repair of #6 and #7. Original standalone PR9 CAA-only check was not treated as full CI. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Mirrors the two pieces of surface from mas-bandwidth/netcode#191 (merge fbefafb2) into this port. No wire format change.
Two create-time error codes, mirrored by value
ClientCreateError.MissingOverrideCallback = 7ServerCreateError.MissingOverrideCallback = 8Appended after the existing last member of each enum. Nothing renumbered.
The values match
NETCODE_CLIENT_CREATE_ERROR_MISSING_OVERRIDE_CALLBACK 7and
NETCODE_SERVER_CREATE_ERROR_MISSING_OVERRIDE_CALLBACK 8in netcode.h.The unchecked callback class
The same create-time refusal as #191, at the same points:
src/Client.cscreate:OverrideSendAndReceiveset without bothSendPacketOverrideandReceivePacketOverridethrowsNetcodeExceptioncarryingClientCreateError.MissingOverrideCallback,instead of dereferencing the null callback on the first update.
src/Server.cscreate: the same, carryingServerCreateError.MissingOverrideCallback.Client.ConnectLoopbackrefuses to enter loopback (no state change) whenSendLoopbackPacketis unset, in every build.Server.ConnectLoopbackClientrefuses the slot whenSendLoopbackPacketis unset, in every build.
Red first
Four tests were added in
tests/ClientServer.csand run before the fix:the two creates
check failed: ( false )(they wrongly succeeded), and thetwo loopback entry points
NullReferenceExceptionat theSendLoopbackPacket!deref. After the fix all four pass.Gates
dotnet build tests/Tests.csproj -c Release— passdotnet build compat/Compat.csproj -c Release— passdotnet run -c Release --project tests/Tests.csproj -f net8.0 --no-build—BLOCKED on this machine: no .NET 8 runtime (
Microsoft.NETCore.App 8.0.x);the net10.0 leg and
soak 2000pass, and the net8.0 binary passes with thedocumented
DOTNET_ROLL_FORWARD=LatestMajor.