X-Git-Url: https://git.ozlabs.org/?p=petitboot;a=blobdiff_plain;f=lib%2Fpb-config%2Fpb-config.c;h=aad3b9e5a44cf3f7838fe252e36a2b614a1d007f;hp=6398a690e4966fef69740728170f25fa7f2b2a61;hb=f611bde3f182e9a4befb48a0160d1831708aca67;hpb=37d865eb008f746a0b013557312c6b44c7236eb7 diff --git a/lib/pb-config/pb-config.c b/lib/pb-config/pb-config.c index 6398a69..aad3b9e 100644 --- a/lib/pb-config/pb-config.c +++ b/lib/pb-config/pb-config.c @@ -13,8 +13,11 @@ 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->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) @@ -23,36 +26,41 @@ 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) @@ -69,6 +77,18 @@ 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;