Skip to content

fix(msdp): send room MSDP data on reconnect, not just fresh login - #277

Open
ahumbert wants to merge 1 commit into
returnoftheshadow:release-frodofrom
ahumbert:msdp-reconnect-parity-v2
Open

fix(msdp): send room MSDP data on reconnect, not just fresh login#277
ahumbert wants to merge 1 commit into
returnoftheshadow:release-frodofrom
ahumbert:msdp-reconnect-parity-v2

Conversation

@ahumbert

Copy link
Copy Markdown
Collaborator

Two of the four code paths that bring a descriptor into CON_PLYNG skip ProtocolNegotiate()/msdp_room_update() -- the "reconnect to an unswitched character" branch and a redundant quick-reconnect branch in nanny()'s CON_SLCT handler. ROOM and ROOM_EXITS are only ever populated by that one-shot call (unlike other MSDP stats, which self-heal via the periodic per-pulse diff-based refresh), so reconnecting clients were left with stale/missing room data until their next move.

Live-verified via a scripted MSDP-negotiating telnet client: switched into a mob, hard-disconnected, reconnected -- confirmed ROOM, ROOM_EXITS, and CHARACTER_NAME were missing pre-fix and present post-fix, matching a fresh login.

Two of the four code paths that bring a descriptor into CON_PLYNG skip
ProtocolNegotiate()/msdp_room_update() -- the "reconnect to an
unswitched character" branch and a redundant quick-reconnect branch in
nanny()'s CON_SLCT handler. ROOM and ROOM_EXITS are only ever populated
by that one-shot call (unlike other MSDP stats, which self-heal via the
periodic per-pulse diff-based refresh), so reconnecting clients were
left with stale/missing room data until their next move.

Live-verified via a scripted MSDP-negotiating telnet client: switched
into a mob, hard-disconnected, reconnected -- confirmed ROOM,
ROOM_EXITS, and CHARACTER_NAME were missing pre-fix and present
post-fix, matching a fresh login.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant