On Fri, Aug 31, 2012 at 02:10:54PM +0200, Nikola Pajkovsky wrote:
Vitezslav Samel <vitezslav(a)samel.cz> writes:
> On Thu, Aug 30, 2012 at 06:42:07PM +0200, Nikola Pajkovsky wrote:
>> code was so difficult to read, that I had to rewrite it from scratch.
>> Original code was using list structure designed only for promisc code, and
>> that means it has to have its own adding / removing / traversing code.
>> Not smart idea. Also I removed the code which stores and loads from disk
>> state of promosic mode. Code does:
>>
>> init path
>> init_promisc_list(&promisc_list);
>> save_promisc_list(promisc_list);
>> srpromisc(1, promisc_list);
>> destroy_promisc_list(&promisc_list);
>>
>> ...
>> ...
>>
>> exit/error path
>> load_promisc_list(&promisc_list);
>> srpromisc(0, promisc_list);
>> destroy_promisc_list(&promisc_list);
>>
>> now it does
>>
>> init path
>> init_promisc_list(&promisc_list);
> ^^^^^^^^^^^^^^^^^
> better: promisc_init(&promisc_list, ifname)
>
> if ifname is set, then get only promisc state of given interface
> if ifname is NULL, then get promisc state of all interfaces but push on
> list only those which have IFF_PROMISC cleared.
^^^^
and we want to make it promiscuous.
> Main reason for this is not to change interfaces we are not
listening on.
yea, that idea comes to mine mind too, when I was rewriting it. Sad is,
it was written wrong before too.
> If you will go the way you allow only one instance of iptraf-ng in time,
> you also need to rewrite instances.c.
I will create a pid file in (/run/ or /var/run/) and check it right at
the beginning of the program.
OK, this is the best solution. Please, make the PID file location
configurable (via cmdline argument preferably).
Vita