any real rationale for "for_all_interfaces()"??
walter harms
wharms at bfs.de
Mon Jun 19 10:41:50 UTC 2006
how many functions will iterate over all interfaces ?
NTL: glibc has a series of if_* functions. perhaps this is something you
need ?
re,
wh
Robert P. J. Day wrote:
> i'm looking at the function for_all_interfaces() in
> networking/interface.c and, frankly, it just seems overly cumbersome,
> restrictive and, well, useless. (yes, i am going somewhere with
> this.)
>
> i can see what it's doing, but it seems that it would be *far* more
> useful, if one wanted to iterate over some set, to define a macro of
> some kind that just returned the elements one at a time, and let the
> *caller* decide what to do with each one. eg.,
>
> #define FOR_ALL_INTERFACES(i) \
> for (i = int_list ; i ; i = i->next)
>
> as it stands, that function *will* iterate over all network
> interfaces, but only if you additionally give it a function of a
> particular kind and a "cookie". if you want to do anything else,
> you're SOL. (besides, that function is being called from only one
> location so it's not like it's a focal point for activity or
> anything.)
>
> the reason i bring this up is i was going to submit a patch that
> modified ifconfig.c to use two interface display routines:
>
> display_interface(char *ifname) ;
> display_all_interfaces("bool" opt_a) ;
>
> which would be a far more meaningful and less brain-damaging
> implementation than what's there. but what should take only a few
> minutes of recoding gets hung up on the ugliness that is
> for_all_interfaces().
>
> so, as a test, i'm going to toss that, replace it with a simple
> macro and submit a patch. it should do just what it does now, but in
> a way that doesn't make people want to claw their eyes out when they
> read the code.
>
> comments?
>
> rday
> _______________________________________________
> busybox mailing list
> busybox at busybox.net
> http://busybox.net/cgi-bin/mailman/listinfo/busybox
>
>
>
More information about the busybox
mailing list