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