[haiku-commits] haiku: hrev56195 - src/apps/networkstatus

  • From: Adrien Destugues <pulkomandy@xxxxxxxxxxxxx>
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Sun, 19 Jun 2022 08:32:57 +0000 (UTC)

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;
+       }
 }
 
 


Other related posts:

  • » [haiku-commits] haiku: hrev56195 - src/apps/networkstatus - Adrien Destugues