network: handle DNS config
[petitboot] / lib / pb-config / pb-config.c
index 9f7d240999018c1b7f09a0bbe653c997e5ee735c..315d9905659369ea8224f4ef8318de459138786e 100644 (file)
@@ -13,8 +13,8 @@ static struct config_storage  *storage;
 static void config_set_defaults(struct config *config)
 {
        config->autoboot_enabled = true;
-       config->network_configs = NULL;
-       config->n_network_configs = 0;
+       config->network.interfaces = NULL;
+       config->network.n_interfaces = 0;
 }
 
 static void dump_config(struct config *config)
@@ -23,36 +23,38 @@ static void dump_config(struct config *config)
 
        pb_log("configuration:\n");
 
-       pb_log(" autoboot enabled: %s\n",
-                       config->autoboot_enabled ? "yes" : "no");
+       pb_log(" autoboot: %s\n",
+                       config->autoboot_enabled ? "enabled" : "disabled");
 
-       if (config->n_network_configs > 0)
+       if (config->network.n_interfaces || config->network.n_dns_servers)
                pb_log(" network configuration:\n");
 
-       for (i = 0; i < config->n_network_configs; i++) {
-               struct network_config *netconf = config->network_configs[i];
+       for (i = 0; i < config->network.n_interfaces; i++) {
+               struct interface_config *ifconf =
+                       config->network.interfaces[i];
 
                pb_log("  interface %02x:%02x:%02x:%02x:%02x:%02x\n",
-                               netconf->hwaddr[0], netconf->hwaddr[1],
-                               netconf->hwaddr[2], netconf->hwaddr[3],
-                               netconf->hwaddr[4], netconf->hwaddr[5]);
+                               ifconf->hwaddr[0], ifconf->hwaddr[1],
+                               ifconf->hwaddr[2], ifconf->hwaddr[3],
+                               ifconf->hwaddr[4], ifconf->hwaddr[5]);
 
-               if (netconf->ignore) {
+               if (ifconf->ignore) {
                        pb_log("   ignore\n");
                        continue;
                }
 
-               if (netconf->method == CONFIG_METHOD_DHCP) {
+               if (ifconf->method == CONFIG_METHOD_DHCP) {
                        pb_log("   dhcp\n");
 
-               } else if (netconf->method == CONFIG_METHOD_STATIC) {
+               } else if (ifconf->method == CONFIG_METHOD_STATIC) {
                        pb_log("   static:\n");
-                       pb_log("    ip:  %s\n", netconf->static_config.address);
-                       pb_log("    gw:  %s\n", netconf->static_config.gateway);
-                       pb_log("    dns: %s\n", netconf->static_config.dns);
+                       pb_log("    ip:  %s\n", ifconf->static_config.address);
+                       pb_log("    gw:  %s\n", ifconf->static_config.gateway);
 
                }
        }
+       for (i = 0; i < config->network.n_dns_servers; i++)
+               pb_log("  dns server %s\n", config->network.dns_servers[i]);
 }
 
 int config_init(void *ctx)
@@ -74,6 +76,14 @@ const struct config *config_get(void)
        return config;
 }
 
+void config_set_autoboot(bool autoboot_enabled)
+{
+       config->autoboot_enabled = autoboot_enabled;
+
+       pb_log("set autoboot: %s\n",
+                       config->autoboot_enabled ? "enabled" : "disabled");
+}
+
 int config_fini(void)
 {
        talloc_free(config);