[Log] Attribute each packet dump to its session instead of "SOCKET: 0" - #473
Merged
Merged
Conversation
WorldGateway::TracePacket passed a hardcoded 0 for the socket field, so every packet of every client was logged under the same id. With two clients connected the dump is one interleaved stream that cannot be taken apart, which defeats the purpose: the question a packet dump is usually asked is what ONE observer was handed, and when. Thread the connection's SessionId through IWorldGateway::TracePacket and print it as SESSION. The field is 0 only for the pre-auth handshake, which has no session yet. ClientConnection keeps an atomic copy of the id for tracing. SendPacket traces while holding m_sendOrderLock, and reading m_session there would take m_sessionLock under it, inverting the order HandleAuthSession uses. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Up to standards ✅🟢 Issues
|
| Metric | Results |
|---|---|
| Duplication | 0 |
NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.
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.
WorldGateway::TracePacket passed a hardcoded 0 for the socket field, so every packet of every client was logged under the same id. With two clients connected the dump is one interleaved stream that cannot be taken apart, which defeats the purpose: the question a packet dump is usually asked is what ONE observer was handed, and when.
Thread the connection's SessionId through IWorldGateway::TracePacket and print it as SESSION. The field is 0 only for the pre-auth handshake, which has no session yet.
ClientConnection keeps an atomic copy of the id for tracing. SendPacket traces while holding m_sendOrderLock, and reading m_session there would take m_sessionLock under it, inverting the order HandleAuthSession uses.
This change is