From d39a50ccad7676f5a332cc79a3f5c1c1f3141a80 Mon Sep 17 00:00:00 2001 From: VD <38190932+VDraven@users.noreply.github.com> Date: Fri, 4 Sep 2026 12:45:30 -0400 Subject: [PATCH 1/3] Fix stale connect-server load percentages --- src/ConnectServer/ServerList.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/ConnectServer/ServerList.cs b/src/ConnectServer/ServerList.cs index c548cb985a..a60245a1a1 100644 --- a/src/ConnectServer/ServerList.cs +++ b/src/ConnectServer/ServerList.cs @@ -160,6 +160,7 @@ public byte[] Serialize() var serverBlock = response[i]; serverBlock.ServerId = (byte)server.ServerId; serverBlock.LoadPercentage = server.ServerLoadPercentage; + server.LoadIndex = ServerListResponseOld.GetRequiredSize(i) + 1; i++; } } @@ -176,6 +177,7 @@ public byte[] Serialize() var serverBlock = response[i]; serverBlock.ServerId = server.ServerId; serverBlock.LoadPercentage = server.ServerLoadPercentage; + server.LoadIndex = ServerListResponse.GetRequiredSize(i) + 2; i++; } } @@ -211,4 +213,4 @@ public int Compare(ServerListItem? x, ServerListItem? y) return x?.ServerId.CompareTo(y?.ServerId) ?? int.MinValue; } } -} \ No newline at end of file +} From 6e57a09cd09ad6a4b581d0bca29fdf7f15664c3e Mon Sep 17 00:00:00 2001 From: VD <38190932+VDraven@users.noreply.github.com> Date: Sat, 5 Sep 2026 11:31:02 -0400 Subject: [PATCH 2/3] Document server load cache offsets --- src/ConnectServer/ServerList.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ConnectServer/ServerList.cs b/src/ConnectServer/ServerList.cs index a60245a1a1..bdabf4da82 100644 --- a/src/ConnectServer/ServerList.cs +++ b/src/ConnectServer/ServerList.cs @@ -160,7 +160,7 @@ public byte[] Serialize() var serverBlock = response[i]; serverBlock.ServerId = (byte)server.ServerId; serverBlock.LoadPercentage = server.ServerLoadPercentage; - server.LoadIndex = ServerListResponseOld.GetRequiredSize(i) + 1; + server.LoadIndex = ServerListResponseOld.GetRequiredSize(i) + 1; // GetRequiredSize(i) is the block offset; +1 is LoadPercentage. i++; } } @@ -177,7 +177,7 @@ public byte[] Serialize() var serverBlock = response[i]; serverBlock.ServerId = server.ServerId; serverBlock.LoadPercentage = server.ServerLoadPercentage; - server.LoadIndex = ServerListResponse.GetRequiredSize(i) + 2; + server.LoadIndex = ServerListResponse.GetRequiredSize(i) + 2; // GetRequiredSize(i) is the block offset; +2 is LoadPercentage. i++; } } From 6c85ed0a22ee8b980bf192a061553e07fbe1d095 Mon Sep 17 00:00:00 2001 From: VD <38190932+VDraven@users.noreply.github.com> Date: Sat, 5 Sep 2026 11:31:21 -0400 Subject: [PATCH 3/3] Guard cached server load update --- src/ConnectServer/ServerListItem.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ConnectServer/ServerListItem.cs b/src/ConnectServer/ServerListItem.cs index 2aff9fe7d3..09be81dac3 100644 --- a/src/ConnectServer/ServerListItem.cs +++ b/src/ConnectServer/ServerListItem.cs @@ -55,7 +55,7 @@ private set { this._serverLoadPercentage = value; var cache = this._owner.Cache; - if (cache != null && this.LoadIndex != -1) + if (cache != null && this.LoadIndex >= 0 && this.LoadIndex < cache.Length) { cache[this.LoadIndex] = value; } @@ -110,4 +110,4 @@ public override string ToString() { return $"ServerId={this.ServerId}, ServerLoadPercentage={this.ServerLoadPercentage}"; } -} \ No newline at end of file +}