Repository navigation
Conversation
Register a disconnect packet handler in ClientSteamState so an early server rejection displays its reason and ends the connection.
Should fix an issue where a player connecting through Steam and being rejected by the server did not receive any disconnection packet and was stuck in Connecting
romangr
reviewed
Oct 28, 2026
| base.OnClose(goodbye); | ||
| // TODO It's not documented in the API, but from manual tests it appears that CloseP2PSession does not flush | ||
| // any queued messages, so the Send above effectively does nothing. It's left as it is though, as that's | ||
| // the correct behavior and should eventually be fixed (possibly by switching to Steam Networking Sockets, |
There was a problem hiding this comment.
Switch to Steam Networking Sockets already exists https://github.com/RimWorld-mods-patches/Multiplayer/pull/4/changes
I just wanted to merge a simpler fix first but it was never merged
#958
seatemplar10-dev
added a commit
to seatemplar10-dev/Multiplayer
that referenced
this pull request
Nov 2, 2026
…n that is active again Since the rwmt#998 port the Steam client closes its P2P session on every leave. A fail callback for that old session can arrive after the restarted client joined again (row 266 drops the old player). The server lookup goes by Steam id only, so it dropped the new player. The server now skips the fail when GetP2PSessionState says the session to that Steam id is active. Fork-only, not part of rwmt#998. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
Fixes an issue where a connection is leaked and prevents a user from re-joining a game. This does not fix all issues with reconnecting. Consider the following scenario:
/kick)Later on, I'd like to switch from SteamP2P to SteamNetworkingSockets which provide a richer API and should allow to fully solve this issue (e.g. close connection with a reason and wait until the reason is sent)