Announce all interfaces to devd on attach/detach. This adds a new devctl
  notification so all interfaces including pseudo are reported.

  r1.33   src/etc/devd.conf
  r1.9    src/etc/rc.d/devd
  r1.256  src/sys/net/if.c
This commit is contained in:
thompsa 2006-07-24 20:42:36 +00:00
parent 7c3db4b469
commit d999897b25
3 changed files with 14 additions and 10 deletions

View File

@ -28,17 +28,19 @@ options {
# override these general rules.
#
# For ethernet like devices start configuring the interface. Due to
# a historical accident, this script is called pccard_ether.
# Configure the interface on attach. Due to a historical accident, this
# script is called pccard_ether.
#
attach 0 {
media-type "ethernet";
action "/etc/pccard_ether $device-name start";
notify 0 {
match "system" "IFNET";
match "type" "ATTACH";
action "/etc/pccard_ether $subsystem start";
};
detach 0 {
media-type "ethernet";
action "/etc/pccard_ether $device-name stop";
notify 0 {
match "system" "IFNET";
match "type" "DETACH";
action "/etc/pccard_ether $subsystem stop";
};
#

View File

@ -4,8 +4,8 @@
#
# PROVIDE: devd
# REQUIRE: NETWORKING
# BEFORE: mountcritremote
# REQUIRE: netif
# BEFORE: NETWORKING mountcritremote
# KEYWORD: nojail
. /etc/rc.subr

View File

@ -506,6 +506,7 @@ if_attach(struct ifnet *ifp)
if_attachdomain1(ifp);
EVENTHANDLER_INVOKE(ifnet_arrival_event, ifp);
devctl_notify("IFNET", ifp->if_xname, "ATTACH", NULL);
/* Announce the interface. */
rt_ifannouncemsg(ifp, IFAN_ARRIVAL);
@ -689,6 +690,7 @@ if_detach(struct ifnet *ifp)
/* Announce that the interface is gone. */
rt_ifannouncemsg(ifp, IFAN_DEPARTURE);
EVENTHANDLER_INVOKE(ifnet_departure_event, ifp);
devctl_notify("IFNET", ifp->if_xname, "DETACH", NULL);
IF_AFDATA_LOCK(ifp);
for (dp = domains; dp; dp = dp->dom_next) {