X-Git-Url: https://tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=src%2Fconnection.c;h=36c0fdbc58fd76eed0dc010c666561b20651ad9a;hp=9a26ec9d44cc86df6f3d8f3aa830f93eabf8db88;hb=8c3105283ac53f8cc9cc4dde25957ec1cf6b53a0;hpb=5cbddc68bade0d1f8ded1b784bb27bb44c5dc5dc diff --git a/src/connection.c b/src/connection.c index 9a26ec9d..36c0fdbc 100644 --- a/src/connection.c +++ b/src/connection.c @@ -129,12 +129,27 @@ void dump_connections(void) { } bool read_connection_config(connection_t *c) { + list_node_t *node, *next; + size_t name_len = strlen(c->name); char *fname; - int x; + bool x; + + for(node = cmdline_conf->tail; node; node = next) { + config_t *cfg = (config_t *)node->data; + next = node->prev; + if (!strncmp(c->name, cfg->variable, name_len) && cfg->variable[name_len] == '.') { + config_t *new_cfg = new_config(); + new_cfg->variable = xstrdup(cfg->variable + name_len + 1); + new_cfg->value = xstrdup(cfg->value); + new_cfg->file = NULL; + new_cfg->line = cfg->line; + config_add(c->config_tree, new_cfg); + } + } xasprintf(&fname, "%s/hosts/%s", confbase, c->name); x = read_config_file(c->config_tree, fname); free(fname); - return x == 0; + return x; }