On (01/02/11 20:35), Arjan van de Ven wrote:
> On 1/2/2011 1:21 PM, Andreas Mohr wrote:
> >Hi,
> >
> >On Sun, Jan 02, 2011 at 11:50:50AM -0800, Arjan van de Ven wrote:
> >>Hi,
> >>
> >>I just cut the second alpha of the 2.x series of PowerTop:
> >Immediately tested, now builds fine on a Debian testing box.
> >
> >Nice stuff, except perhaps for some network weirdness:
> >
> >    Good          Wake-on-lan status for device eth0
> >
> >Well.... I don't even _have_ eth0. Even ifconfig -a lists eth1 only.
> >Unless it's that darn device renaming (it probably is).
> >In which case powertop had better adopt device renaming support, too
> >(you wouldn't want to display names of interfaces which don't actually
> >exist on the user side, right?).
> 
> ok will check how to resolve this.. does make sense to only show
> those that exist.
>

Could you please try the following patch?

Though, we already read net dir in create_all_nics and instead we can export 
`static map<string, class network *> nics'
and just iterate through the map to fill vector of tunables net device.

---

 tuning/ethernet.cpp |   23 +++++++++++++++++++----
 1 files changed, 19 insertions(+), 4 deletions(-)

diff --git a/tuning/ethernet.cpp b/tuning/ethernet.cpp
index b3ac0a5..986df9d 100644
--- a/tuning/ethernet.cpp
+++ b/tuning/ethernet.cpp
@@ -142,9 +142,24 @@ void ethernet_tunable::toggle(void)
 void add_ethernet_tunable(void)
 {
        class ethernet_tunable *eth;
-
-       eth = new class ethernet_tunable("eth0");
-       if (eth)
-               all_tunables.push_back(eth);
+       struct dirent *entry;
+       DIR *dir;
+       dir = opendir("/sys/class/net/");
+       if (!dir)
+               return;
+       while ((entry = readdir(dir))) {
+               if (!entry)
+                       break;
+               if (entry->d_name[0] == '.')
+                       continue;
+               if (strcmp(entry->d_name, "lo") == 0)
+                       continue;
+
+               eth = new(std::nothrow) class ethernet_tunable(entry->d_name);
+               if (eth)
+                       all_tunables.push_back(eth);
+       }
+       
+       closedir(dir);
 }
 
_______________________________________________
Discuss mailing list
Discuss@lesswatts.org
http://lists.lesswatts.org/listinfo/discuss

Reply via email to