X-Git-Url: http://git.ozlabs.org/?p=petitboot;a=blobdiff_plain;f=discover%2Fnetwork.c;h=c3cf30ac973b54f875d56356fc58910190240e0d;hp=1851fedc616fdb5da9119d23947a74e31a93b6ea;hb=3d7ccc23cb49d5f8e371dcf6580b78bb78b77046;hpb=82b4c9d7ecbfada62295620a6082caf1b9860ff6 diff --git a/discover/network.c b/discover/network.c index 1851fed..c3cf30a 100644 --- a/discover/network.c +++ b/discover/network.c @@ -8,6 +8,7 @@ #include #include #include +#include #include #include @@ -241,7 +242,10 @@ void network_register_device(struct network *network, { struct interface *iface; - iface = find_interface_by_uuid(network, dev->uuid); + if (dev->uuid) + iface = find_interface_by_uuid(network, dev->uuid); + else + iface = find_interface_by_name(network, dev->label); if (!iface) return; @@ -313,7 +317,8 @@ static void udhcpc_process_exit(struct process *process) process_release(process); } -static void configure_interface_dhcp(struct interface *interface) +static void configure_interface_dhcp(struct network *network, + struct interface *interface) { const struct platform *platform; char pidfile[256], id[10]; @@ -331,6 +336,9 @@ static void configure_interface_dhcp(struct interface *interface) NULL, }; + device_handler_status_dev_info(network->handler, interface->dev, + _("Configuring with DHCP")); + snprintf(pidfile, sizeof(pidfile), "%s/udhcpc-%s.pid", PIDFILE_BASE, interface->name); @@ -363,6 +371,10 @@ static void configure_interface_static(struct network *network, { int rc; + device_handler_status_dev_info(network->handler, interface->dev, + _("Configuring with static address (ip: %s)"), + config->static_config.address); + rc = process_run_simple(interface, pb_system_apps.ip, "address", "add", config->static_config.address, "dev", interface->name, NULL); @@ -375,6 +387,10 @@ static void configure_interface_static(struct network *network, return; } + system_info_set_interface_address(sizeof(interface->hwaddr), + interface->hwaddr, + config->static_config.address); + /* we need the interface up before we can route through it */ rc = interface_up(interface); if (rc) @@ -470,7 +486,7 @@ static void configure_interface(struct network *network, pb_log("network: configuring interface %s\n", interface->name); if (!config || config->method == CONFIG_METHOD_DHCP) { - configure_interface_dhcp(interface); + configure_interface_dhcp(network, interface); } else if (config->method == CONFIG_METHOD_STATIC) { configure_interface_static(network, interface, config);