hrev56195 adds 1 changeset to branch 'master'
old head: 9c4a46b3183bd1ee5b510ee35cd81df11dfdc834
new head: 702ff4212d663afcdff5565327a4e2d9090d2a7f
overview:
https://git.haiku-os.org/haiku/log/?qt=range&q=702ff4212d66+%5E9c4a46b3183b
----------------------------------------------------------------------------
702ff4212d66: NetworkStatus: do not show non-present interfaces
Used explicit type declaration instead of auto and old style
map erase() function to (hopefully) make it compatible with gcc2 builds.
Change-Id: I8314665a3a3468f11bcac11367ee69d9a3ed2a05
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5380
Tested-by: Commit checker robot <no-reply+buildbot@xxxxxxxxxxxx>
Reviewed-by: Adrien Destugues <pulkomandy@xxxxxxxxxxxxx>
[ Javier Steinaker <jsteinaker@xxxxxxxxx> ]
----------------------------------------------------------------------------
Revision: hrev56195
Commit: 702ff4212d663afcdff5565327a4e2d9090d2a7f
URL: https://git.haiku-os.org/haiku/commit/?id=702ff4212d66
Author: Javier Steinaker <jsteinaker@xxxxxxxxx>
Date: Mon Jun 13 21:53:53 2022 UTC
Committer: Adrien Destugues <pulkomandy@xxxxxxxxxxxxx>
Commit-Date: Sun Jun 19 08:32:53 2022 UTC
----------------------------------------------------------------------------
1 file changed, 13 insertions(+)
src/apps/networkstatus/NetworkStatusView.cpp | 13 +++++++++++++
----------------------------------------------------------------------------
diff --git a/src/apps/networkstatus/NetworkStatusView.cpp
b/src/apps/networkstatus/NetworkStatusView.cpp
index 84aaae7be5..b39ff178f8 100644
--- a/src/apps/networkstatus/NetworkStatusView.cpp
+++ b/src/apps/networkstatus/NetworkStatusView.cpp
@@ -519,9 +519,11 @@ NetworkStatusView::_Update(bool force)
BNetworkRoster& roster = BNetworkRoster::Default();
BNetworkInterface interface;
uint32 cookie = 0;
+ std::set<BString> currentInterfaces;
while (roster.GetNextInterface(&cookie, interface) == B_OK) {
if ((interface.Flags() & IFF_LOOPBACK) == 0) {
+ currentInterfaces.insert((BString)interface.Name());
int32 oldStatus = kStatusUnknown;
if (fInterfaceStatuses.find(interface.Name())
!= fInterfaceStatuses.end()) {
@@ -550,6 +552,17 @@ NetworkStatusView::_Update(bool force)
fInterfaceStatuses[interface.Name()] = status;
}
}
+
+ // Check every element in fInterfaceStatuses against our current
interface
+ // list. If it's not there, then the interface is not present anymore
and
+ // should be removed from fInterfaceStatuses.
+ std::map<BString, int32>::iterator it = fInterfaceStatuses.begin();
+ while (it != fInterfaceStatuses.end()) {
+ std::map<BString, int32>::iterator backupIt = it;
+ if (currentInterfaces.find(it->first) ==
currentInterfaces.end())
+ fInterfaceStatuses.erase(it);
+ it = ++backupIt;
+ }
}