diff --git a/server/src/main.cpp b/server/src/main.cpp
index e1b4600..57e59ed 100644
--- a/server/src/main.cpp
+++ b/server/src/main.cpp
@@ -265,7 +265,7 @@ void CMain::JSONUpdateThread(void *pUser)
str_format(aUptime, sizeof(aUptime), "%02d:%02d:%02d", (int)(pClients[i].m_Stats.m_Uptime/60.0/60.0), (int)((pClients[i].m_Stats.m_Uptime/60)%60), (int)((pClients[i].m_Stats.m_Uptime)%60));
// track month network traffic, diff: 2021-10-01 00:10
- // if ServerStatus is active then last_network_in/out is month traffic diff, else last_network_in/out is last record flag.
+ // last_network_in/out is last record flag.
time_t currentStamp = (long long)time(/*ago*/0);
if(0 == pClients[i].m_LastNetworkIN || (localtime(¤tStamp)->tm_mday == pClients[i].m_aMonthStart && localtime(¤tStamp)->tm_hour == 0 && localtime(¤tStamp)->tm_min < 10))
{
@@ -281,8 +281,8 @@ void CMain::JSONUpdateThread(void *pUser)
pClients[i].m_Stats.m_time_10010, pClients[i].m_Stats.m_time_189, pClients[i].m_Stats.m_time_10086,pClients[i].m_Stats.m_tcpCount,pClients[i].m_Stats.m_udpCount,pClients[i].m_Stats.m_processCount,pClients[i].m_Stats.m_threadCount,
pClients[i].m_Stats.m_NetworkRx, pClients[i].m_Stats.m_NetworkTx, pClients[i].m_Stats.m_NetworkIN, pClients[i].m_Stats.m_NetworkOUT, (int)pClients[i].m_Stats.m_CPU, pClients[i].m_Stats.m_MemTotal, pClients[i].m_Stats.m_MemUsed,
pClients[i].m_Stats.m_SwapTotal, pClients[i].m_Stats.m_SwapUsed, pClients[i].m_Stats.m_HDDTotal, pClients[i].m_Stats.m_HDDUsed,
- pClients[i].m_Stats.m_NetworkIN == 0 ? pClients[i].m_LastNetworkIN : pClients[i].m_Stats.m_NetworkIN - pClients[i].m_LastNetworkIN,
- pClients[i].m_Stats.m_NetworkOUT == 0 ? pClients[i].m_LastNetworkOUT : pClients[i].m_Stats.m_NetworkOUT - pClients[i].m_LastNetworkOUT,
+ pClients[i].m_Stats.m_NetworkIN == 0 || pClients[i].m_LastNetworkIN == 0 ? pClients[i].m_Stats.m_NetworkIN : pClients[i].m_LastNetworkIN,
+ pClients[i].m_Stats.m_NetworkOUT == 0 || pClients[i].m_LastNetworkOUT == 0 ? pClients[i].m_Stats.m_NetworkOUT : pClients[i].m_LastNetworkOUT,
pClients[i].m_Stats.m_aCustom);
pBuf += strlen(pBuf);
}
diff --git a/web/js/serverstatus.js b/web/js/serverstatus.js
index ebe90bf..ba9266b 100644
--- a/web/js/serverstatus.js
+++ b/web/js/serverstatus.js
@@ -152,15 +152,17 @@ function uptime() {
// month traffic
var monthtraffic = "";
- if(result.servers[i].last_network_in < 1024*1024*1024*1024)
- monthtraffic += (result.servers[i].last_network_in/1024/1024/1024).toFixed(2) + "G";
+ var trafficdiff_in = result.servers[i].network_in - result.servers[i].last_network_in;
+ var trafficdiff_out = result.servers[i].network_out - result.servers[i].last_network_out;
+ if(trafficdiff_in < 1024*1024*1024*1024)
+ monthtraffic += (trafficdiff_in/1024/1024/1024).toFixed(2) + "G";
else
- monthtraffic += (result.servers[i].last_network_in/1024/1024/1024/1024).toFixed(2) + "T";
+ monthtraffic += (trafficdiff_in/1024/1024/1024/1024).toFixed(2) + "T";
monthtraffic += " | "
- if(result.servers[i].last_network_out < 1024*1024*1024*1024)
- monthtraffic += (result.servers[i].last_network_out/1024/1024/1024).toFixed(2) + "G";
+ if(trafficdiff_out < 1024*1024*1024*1024)
+ monthtraffic += (trafficdiff_out/1024/1024/1024).toFixed(2) + "G";
else
- monthtraffic += (result.servers[i].last_network_out/1024/1024/1024/1024).toFixed(2) + "T";
+ monthtraffic += (trafficdiff_out/1024/1024/1024/1024).toFixed(2) + "T";
TableRow.children["month_traffic"].children[0].children[0].className = "progress-bar";
TableRow.children["month_traffic"].children[0].children[0].innerHTML = "<small>"+monthtraffic+"</small>";