From 3327c5fd259be9c45aa95add199687d1e96f67f0 Mon Sep 17 00:00:00 2001
From: cppla <i@cpp.la>
Date: Thu, 5 May 2022 10:15:06 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=A2=9E=E5=88=A0=E8=8A=82?=
 =?UTF-8?q?=E7=82=B9=E6=9C=88=E6=B5=81=E9=87=8F=E5=8C=B9=E9=85=8D=E7=9A=84?=
 =?UTF-8?q?=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 server/src/main.cpp | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)

diff --git a/server/src/main.cpp b/server/src/main.cpp
index cbd2052..22ebf1d 100644
--- a/server/src/main.cpp
+++ b/server/src/main.cpp
@@ -434,7 +434,7 @@ int CMain::ReadConfig()
         json_value *pNJsonData = json_parse_ex(&nJsonSettings, pNFileData, strlen(pNFileData), aError);
         if(pNJsonData)
         {
-            const json_value &rStart = (*pNJsonData)["servers"];
+            const json_value &cStart = (*pNJsonData)["servers"];
             if(rStart.type == json_array)
             {
                 int ID = 0;
@@ -442,14 +442,18 @@ int CMain::ReadConfig()
                 {
                     if(ID < 0 || ID >= NET_MAX_CLIENTS)
                         continue;
-
-                    // check name and host for match , when ServerStatus reload month traffic.
-                    if(strcmp(Client(ID)->m_aName, rStart[i]["name"].u.string.ptr)==0 && strcmp(Client(ID)->m_aHost, rStart[i]["host"].u.string.ptr)==0)
+                    for(unsigned j = 0; j < cStart.u.array.length; j++)
                     {
-                        Client(ID)->m_LastNetworkIN = rStart[i]["last_network_in"].u.integer;
-                        Client(ID)->m_LastNetworkOUT = rStart[i]["last_network_out"].u.integer;
+                        if(strcmp(Client(ID)->m_aName, cStart[j]["name"].u.string.ptr)==0 &&
+                            strcmp(Client(ID)->m_aType, cStart[j]["type"].u.string.ptr)==0 &&
+                            strcmp(Client(ID)->m_aHost, cStart[j]["host"].u.string.ptr)==0 &&
+                            strcmp(Client(ID)->m_aLocation, cStart[j]["location"].u.string.ptr)==0)
+                        {
+                            Client(ID)->m_LastNetworkIN = cStart[j]["last_network_in"].u.integer;
+                            Client(ID)->m_LastNetworkOUT = cStart[j]["last_network_out"].u.integer;
+                            break;
+                        }
                     }
-
                     ID++;
                 }
             }