ModernUO/Projects/Server
Kamron Batman 6ffb63ec82
fix: Fix IORing disconnect issues. (#2335)
### Summary

- Bump IORingGroup 1.0.0 → 1.0.1 — fixes a disconnect handling bug in the native ring layer
- Fix ghost NetStates — Dispose() set _running = false before checking it, so the "force immediate disconnect" path
was dead code. Capture wasRunning before clearing it, add [Obsolete] guard, and route internal callers through
DisposeInternal()
- Fix unauthenticated socket cleanup — graceful disconnect on unauthed connections could get stuck with pending sends;
 now force-immediate after Disconnect() if DisconnectPending is already set
- Replace ConcurrentQueue<NetState> _disposed with Queue<NetState> — server is single-threaded; moved the field into
the Network partial class where it's consumed
- Move ConnectingSocketIdleLimit into the Network partial class alongside DisconnectUnattachedSockets
- Reset activity timer on receive, not just send — receiving data directly proves liveness instead of relying on the
ping→pong→send round-trip to reset the timer
- Move CheckAllAlive from Timer into Slice — the timer fired before I/O completions were processed, so after server
stalls (world saves), buffered client pings hadn't reset timestamps yet, causing false disconnects. Now runs at the
end of Slice() after all recv completions are handled
- Lower inactivity timeout 90s → 30s, check interval 90s → 5s — clients ping every ~1s, so 30s of silence is ~30
missed pings; worst-case detection drops from ~180s to ~35s
- Simplify CheckAlive — early-return when socket is null or alive; force-kill stuck DisconnectPending sockets
immediately instead of calling Disconnect() again
- Remove unused imports from GameEncryption.cs
2026-02-13 23:05:20 -08:00
..
Buffers feat: Adds Latin1 text support (#2317) 2026-01-22 15:51:00 -08:00
Client feat: Adds housing.bin support (#2329) 2026-02-08 19:10:23 -08:00
Collections feat: Adds Feature Flag System (#2328) 2026-02-07 12:02:57 -08:00
Comparers chore: Updates copyright (#1448) 2023-08-09 09:09:26 -07:00
Compression fix: Fixes libdeflate threading issue (#1813) 2024-06-02 15:02:47 -07:00
Configuration fix: Fixes idleCPU override (#2308) 2026-01-04 17:21:08 -08:00
Console fix: Console Input is disabled on Linux when no standard input is attached. (#1809) 2024-06-06 21:20:22 -07:00
ContextMenus fix: Moves ContextMenu out of core, streamlines code, fixes bugs (#1873) 2024-07-20 21:33:23 -07:00
Events feat: Upgrades networking to use io_uring. (#2315) 2026-02-01 16:02:32 -08:00
Exceptions chore: Use var everywhere (#2294) 2025-12-27 16:47:28 -08:00
GarbageCollection chore: Use var everywhere (#2294) 2025-12-27 16:47:28 -08:00
Geometry fix: Fixes parsing Rect3D and fixes AS contains name (#2333) 2026-02-09 22:49:18 -08:00
Items fix: Fixes bug with naming item back to default (#2331) 2026-02-08 21:12:57 -08:00
Json feat: Add spawn position caching and spiral scan optimization (#2295) 2025-12-28 02:40:21 -08:00
Localization chore: Use var everywhere (#2294) 2025-12-27 16:47:28 -08:00
Maps refactor: Add BitMask256 utility for 256-bit bitmask operations (#2300) 2025-12-29 12:54:49 -08:00
Menus fix: Cleans up core code (#1187) 2022-10-10 21:47:08 -07:00
Migrations fix: Moves containers/bods/traps/etc to serialization generator (#2310) 2026-01-07 21:55:55 -08:00
Mobiles feat: Adds Feature Flag System (#2328) 2026-02-07 12:02:57 -08:00
Network fix: Fix IORing disconnect issues. (#2335) 2026-02-13 23:05:20 -08:00
PropertyList chore: Use var everywhere (#2294) 2025-12-27 16:47:28 -08:00
Random chore: Use var everywhere (#2294) 2025-12-27 16:47:28 -08:00
Regions fix: Eliminates List allocations in various places. (#2158) 2025-11-16 18:33:53 -08:00
Serialization feat: Adds new decay system and SkipSerialization (#2311) 2026-01-08 11:43:51 -08:00
Targeting chore: Use var everywhere (#2294) 2025-12-27 16:47:28 -08:00
Text feat: Adds Latin1 text support (#2317) 2026-01-22 15:51:00 -08:00
TileMatrix feat: Updates to .NET 9 (#1984) 2024-12-08 10:16:34 -08:00
Timer chore: Use var everywhere (#2294) 2025-12-27 16:47:28 -08:00
TimeZones fix: Fixes order of execution with AutoSave and TZ (#1665) 2024-01-24 17:17:45 -08:00
Utilities feat: Upgrades networking to use io_uring. (#2315) 2026-02-01 16:02:32 -08:00
World feat: Adds Feature Flag System (#2328) 2026-02-07 12:02:57 -08:00
AssemblyHandler.cs chore: Use var everywhere (#2294) 2025-12-27 16:47:28 -08:00
Attributes.cs fix: Fixes props for interfaces and adds account manipulation (#2179) 2025-05-09 15:39:47 -07:00
CityInfo.cs chore: Updates copyright (#1448) 2023-08-09 09:09:26 -07:00
Commands.cs fix: Fixes adding items with ambiguous type lookup (#2307) 2026-01-06 21:21:29 -08:00
Effects.cs chore: Use var everywhere (#2294) 2025-12-27 16:47:28 -08:00
EntityFinalizationTracker.cs feat: Adds an Item/Mobile memory leak detector. Fixes minor leak in doors. (#2159) 2025-04-15 19:14:45 -07:00
EventLoopTasks.cs chore: Use var everywhere (#2294) 2025-12-27 16:47:28 -08:00
ExpansionInfo.cs chore: Use var everywhere (#2294) 2025-12-27 16:47:28 -08:00
FeatureFlags.cs feat: Adds Feature Flag System (#2328) 2026-02-07 12:02:57 -08:00
Guild.cs chore: Use var everywhere (#2294) 2025-12-27 16:47:28 -08:00
HuePicker.cs fix: Cleans up core code (#1187) 2022-10-10 21:47:08 -07:00
IAccount.cs fix: Fixes looking up accounts that were renamed. (#2078) 2025-01-18 17:11:43 -08:00
IEntity.cs feat: Upgrades serialization v4 (Threaded Heap Serialization) (#1947) 2024-09-14 09:57:43 -07:00
Interfaces.cs feat: Add CanSpawnMobile overload with props Z-range support. (#2293) 2025-12-27 17:01:15 -08:00
IVirtualCheckGump.cs feat: Moves gumps out of the core (#1916) 2024-08-09 19:07:32 -07:00
KeywordList.cs fix: Cleans up core code (#1187) 2022-10-10 21:47:08 -07:00
Main.cs feat: Upgrades networking to use io_uring. (#2315) 2026-02-01 16:02:32 -08:00
MessageType.cs fix: Moves the rest of the Incoming packets (#1338) 2023-02-10 22:59:36 -08:00
Module.cs fix: Fixes sending packets and sidesteps a major issue with stackalloc and PGO in .NET 8 (#1607) 2023-11-21 12:18:20 -08:00
Party.cs fix: Cleans up core code (#1187) 2022-10-10 21:47:08 -07:00
Poison.cs fix: Adds ISpanParsable and fixes command conditionals (#1241) 2022-11-12 00:26:02 -08:00
Prompt.cs fix: Cleans up core code (#1187) 2022-10-10 21:47:08 -07:00
Race.cs fix: Fixes TryParse for Race (#1244) 2022-11-12 00:31:25 -08:00
SecureTrade.cs feat: Moves gumps out of the core (#1916) 2024-08-09 19:07:32 -07:00
Serial.cs feat: Updates to .NET 9 (#1984) 2024-12-08 10:16:34 -08:00
Server.csproj fix: Fix IORing disconnect issues. (#2335) 2026-02-13 23:05:20 -08:00
Skills.cs chore: Use var everywhere (#2294) 2025-12-27 16:47:28 -08:00
TileData.cs feat: Add CanSpawnMobile overload with props Z-range support. (#2293) 2025-12-27 17:01:15 -08:00
TileList.cs fix: Refactors getting static tiles to use enumerators (#1611) 2023-11-26 09:39:46 -08:00