https://git.reactos.org/?p=reactos.git;a=commitdiff;h=b42ddce11a7f9e60f434f2abcace59c5c938f21e

commit b42ddce11a7f9e60f434f2abcace59c5c938f21e
Author:     Kyle Katarn <cont...@kcsoftwares.com>
AuthorDate: Sat Sep 3 23:30:57 2022 +0200
Commit:     GitHub <nore...@github.com>
CommitDate: Sat Sep 3 23:30:57 2022 +0200

    [NETSHELL] Fix "ghost" network activity when opening Network Status page 
(#4662)
    
    Opening Network Status page creates a systematic "ghost" network activity,
    activating RX+TX activity icon both on property page and tray, while no 
Rx/Tx.
    This is due to pContext->dw[In|Out]Octets being initialized to 0 and 
compared
    to refreshed interface data.
    
    To circumvent this, copy refreshed interface data to the context on first 
update.
---
 dll/shellext/netshell/lanstatusui.cpp | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/dll/shellext/netshell/lanstatusui.cpp 
b/dll/shellext/netshell/lanstatusui.cpp
index f6e88ea9d51..64f38ef4a0f 100644
--- a/dll/shellext/netshell/lanstatusui.cpp
+++ b/dll/shellext/netshell/lanstatusui.cpp
@@ -130,6 +130,17 @@ UpdateLanStatus(HWND hwndDlg,  LANSTATUSUI_CONTEXT * 
pContext)
         return;
     }
 
+    if (pContext->Status == (UINT)-1)
+    {
+        /*
+         * On first execution, pContext->dw[In|Out]Octets will be zero while
+         * the interface info is already refreshed with non-null data, so a
+         * gap is normal and does not correspond to an effective TX or RX 
packet.
+         */
+        pContext->dwInOctets = IfEntry.dwInOctets;
+        pContext->dwOutOctets = IfEntry.dwOutOctets;
+    }
+
     hIcon = NULL;
     if (IfEntry.dwOperStatus == MIB_IF_OPER_STATUS_CONNECTED || 
IfEntry.dwOperStatus == MIB_IF_OPER_STATUS_OPERATIONAL)
     {

Reply via email to