]> git.ozlabs.org Git - petitboot/blobdiff - discover/network.c
discover/network: In static config mode, only configure defined interfaces
[petitboot] / discover / network.c
index d39f7a7c0ef57af83ae39b26e4bcb10acf4b26dd..bc7e186a1921e8531bb2fd37ed026f5e47e5977e 100644 (file)
@@ -69,7 +69,7 @@ static const struct interface_config *find_config_by_hwaddr(
                uint8_t *hwaddr)
 {
        const struct config *config;
-       int i;
+       unsigned int i;
 
        config = config_get();
        if (!config)
@@ -204,7 +204,7 @@ static int interface_down(struct interface *interface)
 static void udhcpc_process_exit(struct process *process)
 {
        struct interface *interface = process->data;
-       pb_log("udhcp client [pid %d] for interface %s exited, rc %d\n",
+       pb_debug("udhcp client [pid %d] for interface %s exited, rc %d\n",
                        process->pid, interface->name, process->exit_status);
        interface->udhcpc_process = NULL;
        process_release(process);
@@ -219,6 +219,7 @@ static void configure_interface_dhcp(struct interface *interface)
                pb_system_apps.udhcpc,
                "-R",
                "-n",
+               "-O", "pxeconffile",
                "-p", pidfile,
                "-i", interface->name,
                NULL,
@@ -369,6 +370,7 @@ static int network_handle_nlmsg(struct network *network, struct nlmsghdr *nlmsg)
        info = NLMSG_DATA(nlmsg);
 
        have_ifaddr = have_ifname = false;
+       mtu = 1;
 
        attrlen = nlmsg->nlmsg_len - sizeof(*info);
 
@@ -483,7 +485,8 @@ retry:
 static void network_init_dns(struct network *network)
 {
        const struct config *config;
-       int i, rc, len;
+       unsigned int i;
+       int rc, len;
        bool modified;
        char *buf;
 
@@ -544,8 +547,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);