static void config_set_defaults(struct config *config)
{
config->autoboot_enabled = true;
- config->network_configs = NULL;
- config->n_network_configs = 0;
+ config->autoboot_timeout_sec = 10;
+ config->network.interfaces = NULL;
+ config->network.n_interfaces = 0;
+ config->network.dns_servers = NULL;
+ config->network.n_dns_servers = 0;
}
static void dump_config(struct config *config)
pb_log("configuration:\n");
- pb_log(" autoboot: %s\n",
- config->autoboot_enabled ? "enabled" : "disabled");
+ if (config->autoboot_enabled)
+ pb_log(" autoboot: enabled, %d sec\n",
+ config->autoboot_timeout_sec);
+ else
+ pb_log(" autoboot: disabled\n");
- 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)
return 0;
}
+/* A non-exported function to allow the test infrastructure to initialise
+ * (and change) the configuration variables */
+struct parser_test;
+struct config __attribute__((unused)) *test_config_init(
+ struct parser_test *test);
+struct config *test_config_init(struct parser_test *test)
+{
+ config = talloc(test, struct config);
+ config_set_defaults(config);
+ return config;
+}
+
const struct config *config_get(void)
{
return config;