X-Git-Url: http://git.ozlabs.org/?p=petitboot;a=blobdiff_plain;f=discover%2Fnetwork.c;h=7ddecc03b658a59e88e00bfcf9156114ca7f13c6;hp=6a1575f132ee306a1ba67db728226aa75bbd971c;hb=5ee01bf795817cbfa9fb378b11ebd212d66e51c1;hpb=08e967ee301b502b2114e3855210a0b2600d095c diff --git a/discover/network.c b/discover/network.c index 6a1575f..7ddecc0 100644 --- a/discover/network.c +++ b/discover/network.c @@ -416,14 +416,15 @@ static int network_handle_nlmsg(struct network *network, struct nlmsghdr *nlmsg) memcpy(interface->hwaddr, ifaddr, sizeof(interface->hwaddr)); strncpy(interface->name, ifname, sizeof(interface->name) - 1); add_interface(network, interface); - - /* tell the sysinfo code about this interface */ - if (strcmp(interface->name, "lo")) - system_info_register_interface( - sizeof(interface->hwaddr), - interface->hwaddr, interface->name); } + /* notify the sysinfo code about changes to this interface */ + if (strcmp(interface->name, "lo")) + system_info_register_interface( + sizeof(interface->hwaddr), + interface->hwaddr, interface->name, + info->ifi_flags & IFF_LOWER_UP); + configure_interface(network, interface, info->ifi_flags & IFF_UP, info->ifi_flags & IFF_LOWER_UP); @@ -547,8 +548,8 @@ struct network *network_init(struct device_handler *handler, network = talloc(handler, struct network); list_init(&network->interfaces); network->handler = handler; - network->manual_config = false; network->dry_run = dry_run; + network->manual_config = config_get()->network.n_interfaces != 0; network_init_dns(network);