LINUX.ORG.RU
ФорумTalks

Ищутся C++ программисты с умением программить под KDE/QT и свободным временем


0

0

В общем есть два неприятных бага в мониторе трафика KNemo под KDE:
http://bugs.kde.org/show_bug.cgi?id=113509
http://bugs.kde.org/show_bug.cgi?id=117495

Г-н Percy Leonhardt, который написал эту приятную во всех отношениях программу забил на неё:

On Wednesday 28 December 2005 13:16, you wrote:
> > Hi Percy!
> >
> > Please, look here: "Bug 117495 - kded consumes too much CPU time
> > http://bugs.kde.org/show_bug.cgi?id=117495
> >
> > Have you abandoned KNemo project? Will you implement /proc interface
> > instead of running ifconfig, iwconfig and route every second?

Hi Artem,

no, I haven't abandoned it but its development has slowed down rapidly since I
don't have as much time for it as I previously had. At the moment I am still
working on statistics which will, when completed, result in version 0.4.
After some bugfixing I wanted to start work on the feature you request.

One question: What about using /sys instead of /proc. What is more
'future-save'? I had the impression that /sys offers more information and
seems to be the way to go for the future.

Thanks for your feedback,

Percy :-)

*********************

Короче, он "хочет" реализовать систему plug-in'ов для поиска сетевых интерфейсов и подсчёта трафика по ним. Кто на ЛОРе имеет желание и в состоянии это сделать?

★★★★★

>kded consumes too much CPU time

А я думал что это у меня кеды кривые :( . Будет очень хорошо если исправят, классный апплет. Очень хотел бы помочь, да нечем :(

anonymous
()

Лехко

use Linux::net::dev;
my $devs = Linux::net::dev::info();
print "Devices (bytes read):\n";
foreach (keys %$devs) {print " $_ ($devs->{$_}->{rbytes})\n";}

ЗЫ qt не нужен.

Sun-ch
()

Насчет первого бага(ifconfig), если производить чтение из proc то обращений к диску наверное не будет(прок в памяти).

опрос вроде как реализован в функции void InterfaceUpdater::checkConfig()

YesSSS ★★★
()
Ответ на: комментарий от YesSSS

> Насчет первого бага(ifconfig), если производить чтение из proc то обращений к диску наверное не будет(прок в памяти).

Это всё понятно. Кто напишет?

birdie ★★★★★
() автор топика
Ответ на: комментарий от birdie

Могу и я попробовать.

Вроде как такая инфа лежит в /proc/net/dev. Буду писать чтение того формата.

Если знаете где эта-же инфа есть в более норм(похожем на ifconfig) виде скажите pls.

YesSSS ★★★
()
Ответ на: комментарий от YesSSS

>Если знаете где эта-же инфа есть в более норм(похожем на ifconfig) виде скажите >pls.

а может, ну так ради смеха, взять и посмотреть исходники ifconfig,
и узнать как же он это делает?

anonymous
()
Ответ на: комментарий от YesSSS

> Вроде как такая инфа лежит в /proc/net/dev. Буду писать чтение того формата.

Больше нигде искать и не надо.

Хотя ifconfig -a читает много файлов

/proc/net/appletalk

/proc/net/ax25

/proc/net/dev

/proc/net/if_inet6

/proc/net/ipx

/proc/net/nr

/proc/net/rose

/proc/net/unix

/proc/net/x25

/proc/sys/net/ash

/proc/sys/net/econet

birdie ★★★★★
() автор топика
Ответ на: комментарий от YesSSS

> Не подскажете, где их взять(к какому пакету могут относиться)?

Их нигде брать не нужно.

/proc - это *виртуальная* файловая система, если этих фалов нет, тогда можно забыть про них.

birdie ★★★★★
() автор топика
Ответ на: комментарий от YesSSS

>я про исходник ifconfig

а тебя нету линукса что ли?

любой пакетный менеджер тебе поможет это узнать

$ equery b /sbin/ifconfig
[ Searching for file(s) /sbin/ifconfig in *... ]
sys-apps/net-tools-1.60-r11 (/sbin/ifconfig)
$ esearch net-tools
[ Results for search key : net-tools ]
[ Applications found : 1 ]

* sys-apps/net-tools
Latest version available: 1.60-r11
Latest version installed: 1.60-r11
Size of downloaded files: 220 kB
Homepage: http://sites.inka.de/lina/linux/NetTools/
Description: Standard Linux networking tools
License: GPL-2

anonymous
()
Ответ на: комментарий от anonymous

gentoo не рулит. RPM выдаёт правильный URL, gentoo - нет.

birdie ★★★★★
() автор топика
Ответ на: комментарий от YesSSS

Ты можешь это оформит в виде патча, чтобы заменить вызов ifconfig/route/iwconfig или, как просил разработчик, переделать KNemo, чтобы backend'ы были в виде plugin'ов (хотя мне это и не сильно нужно).

birdie ★★★★★
() автор топика
Ответ на: комментарий от birdie

Вроде как теперь вкомпиливаюся ifconfig, iwconfig, route.

Вроде как работает. =)

Жаль wireless не на чем проверить.

webfile.ru/744534

YesSSS ★★★
()
Ответ на: комментарий от YesSSS

> Жаль wireless не на чем проверить.

Пофигу, на него.

> webfile.ru/744534

Надо было патчем выкладывать :)

Сейчас посмортю.

birdie ★★★★★
() автор топика
Ответ на: комментарий от YesSSS

> Пока-что грабли.

Я заметил:

kded: WARNING: [KDEDModule* Kded::loadModule(const KService*, bool)] Could not load library. [ /opt/kde3/lib/kde3/kded_knemod.so: undefined symbol: route_main ]

kded: WARNING: [KDEDModule* Kded::loadModule(const KService*, bool)] Could not load library. [ Library files for "libkded_knemod.la" not found in paths. ]

1) Непонятно как вкомпиливать net-tools и wireless tools

2) Почему размер буфера 4K? А вдруг у меня интерфейсов штук 100 - buffer overflow?

3) Всё-таки есть мысль выдрать из `ifconfig -a`, `route -n` и `iwconfig` ровно столько кода чтобы выдавать его KNemo, а всё остальное нафиг.

birdie ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.