Two problems with the first cut. An expired id disconnected. Before any of this existed the game login always verified the password, so that turned a slow player into a lockout for no gain. A player can sit on the server list as long as they like; expiry now falls back to the password verify that was always there. An id for the wrong account or the wrong address is a different matter -- that client is not ours, and there is nothing there worth checking a password against. Ids are only consumed by a game login, so anyone who reaches the server list and never picks a server abandons theirs. Nothing reclaimed those: the lifetime was only consulted on lookup. 128 abandoned logins filled the window and the eviction path then started discarding ids that live clients were still on their way to redeem. Issuing now reclaims expired entries before evicting a live one. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| Application | ||
| BuildTool | ||
| Logger | ||
| Server | ||
| Server.Tests | ||
| UOContent | ||
| UOContent.Tests | ||