tech-net archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: Patch to implement SIOCGIFINDEX
On Apr 2, 2013, at 5:32 AM, Alan Barrett <apb%cequrux.com@localhost> wrote:
> On Mon, 01 Apr 2013, Ty Sarna wrote:
>> The following short patch implements SIOCGIFINDEX as found on Linux
>> (and maybe elsewhere), which translates an interface name to its index.
>
> Why is that useful? Once one know the index, what can or should one
> do with it?
In this case, stuff it in a sockaddr_can passed to bind().
It's kind of a crumby interface due to the "indexes change" issue,
but it's the de-facto standard. I suppose they were thinking mostly of embedded
systems where interfaces won't come and go. And, I suppose the problem can only
happen if someone yanks the interface you're trying to bind to, in which case
a name-based bind will likely fail anyway. So, I'm not sure it's really much
of a problem in practice.
Still, what I've done now is to add an "ifname" field as well. By default it's
ignored and so the interface is backwards compatible, but I allow setting the
index to -1, in which case the name is used instead.
Addresses coming out of the kernel (recvfrom, getsockname) have both the index
and the name filled.
Home |
Main Index |
Thread Index |
Old Index