sam 2005-07-29 05:57:28 UTC
FreeBSD src repository
Correct problems with handling interfaces that go away (e.g. when
a card is ejected). wpa_supplicant requires that internal events
for interfaces coming+going include a name but after an interface
is removed you cannot use if_indextoname to map the interface index
in the RTM_IFINFO (or RTM_IFANNOUNCE) msg to an interface name.
Instead record the interface index in the driver-private data area
and use that to filter msgs from the routing socket. This insures
that when we have a message to process we know the interface name.
The end result is that we can now dispatch an "interface removed"
event that is understood when notified than an interface went away
(where previously the event dispatched was ignored because the
interface name was unrecognized).
This change also insures we only process events for our interface.
The only downside is that we can no longer wait for an interface
to arrive as we need to map the interface name to an index at
startup. This is not important as wpa_supplicant should be launched
by devd and not include a separate mechanism for doing interface
MFC after: 3 days
Revision Changes Path
1.6 +26 -10 src/usr.sbin/wpa/wpa_supplicant/driver_freebsd.c