https://git.reactos.org/?p=reactos.git;a=commitdiff;h=b42ddce11a7f9e60f434f2abcace59c5c938f21e
commit b42ddce11a7f9e60f434f2abcace59c5c938f21e Author: Kyle Katarn <[email protected]> AuthorDate: Sat Sep 3 23:30:57 2022 +0200 Commit: GitHub <[email protected]> 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) {
