From Javier Steinaker <jsteinaker@xxxxxxxxx>:
Javier Steinaker has uploaded this change for review. (
https://review.haiku-os.org/c/haiku/+/5380 ;)
Change subject: NetworkStatus: do not show non-present interfaces
......................................................................
NetworkStatus: do not show non-present interfaces
Change-Id: I8314665a3a3468f11bcac11367ee69d9a3ed2a05
---
M src/apps/networkstatus/NetworkStatusView.cpp
1 file changed, 15 insertions(+), 0 deletions(-)
git pull ssh://git.haiku-os.org:22/haiku refs/changes/80/5380/1
diff --git a/src/apps/networkstatus/NetworkStatusView.cpp
b/src/apps/networkstatus/NetworkStatusView.cpp
index 84aaae7..4ec8218 100644
--- a/src/apps/networkstatus/NetworkStatusView.cpp
+++ b/src/apps/networkstatus/NetworkStatusView.cpp
@@ -519,9 +519,12 @@
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) {
+ // Make a list of the current interfaces, needed later
+ currentInterfaces.insert((BString)interface.Name());
int32 oldStatus = kStatusUnknown;
if (fInterfaceStatuses.find(interface.Name())
!= fInterfaceStatuses.end()) {
@@ -550,6 +553,18 @@
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.*/
+ auto it = fInterfaceStatuses.begin();
+ while (it != fInterfaceStatuses.end()) {
+ if (currentInterfaces.find(it->first) ==
currentInterfaces.end()) {
+ it = fInterfaceStatuses.erase(it);
+ } else {
+ ++it;
+ }
+ }
}
--
To view, visit https://review.haiku-os.org/c/haiku/+/5380
To unsubscribe, or for help writing mail filters, visit
https://review.haiku-os.org/settings
Gerrit-Project: haiku
Gerrit-Branch: master
Gerrit-Change-Id: I8314665a3a3468f11bcac11367ee69d9a3ed2a05
Gerrit-Change-Number: 5380
Gerrit-PatchSet: 1
Gerrit-Owner: Javier Steinaker <jsteinaker@xxxxxxxxx>
Gerrit-MessageType: newchange