Fix the "network" command in tinc shell.
This commit is contained in:
parent
b6b302cee9
commit
51a0dc5145
2 changed files with 22 additions and 11 deletions
|
@ -137,4 +137,12 @@ void free_names(void) {
|
||||||
free(logfilename);
|
free(logfilename);
|
||||||
free(confbase);
|
free(confbase);
|
||||||
free(confdir);
|
free(confdir);
|
||||||
|
|
||||||
|
identname = NULL;
|
||||||
|
netname = NULL;
|
||||||
|
unixsocketname = NULL;
|
||||||
|
pidfilename = NULL;
|
||||||
|
logfilename = NULL;
|
||||||
|
confbase = NULL;
|
||||||
|
confdir = NULL;
|
||||||
}
|
}
|
||||||
|
|
|
@ -2284,26 +2284,29 @@ static int cmd_exchange_all(int argc, char *argv[]) {
|
||||||
}
|
}
|
||||||
|
|
||||||
static int switch_network(char *name) {
|
static int switch_network(char *name) {
|
||||||
|
if(strcmp(name, ".")) {
|
||||||
|
if(!check_netname(name, false)) {
|
||||||
|
fprintf(stderr, "Invalid character in netname!\n");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!check_netname(name, true))
|
||||||
|
fprintf(stderr, "Warning: unsafe character in netname!\n");
|
||||||
|
}
|
||||||
|
|
||||||
if(fd >= 0) {
|
if(fd >= 0) {
|
||||||
close(fd);
|
close(fd);
|
||||||
fd = -1;
|
fd = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
free(confbase);
|
free_names();
|
||||||
confbase = NULL;
|
netname = strcmp(name, ".") ? xstrdup(name) : NULL;
|
||||||
free(pidfilename);
|
make_names(false);
|
||||||
pidfilename = NULL;
|
|
||||||
free(logfilename);
|
|
||||||
logfilename = NULL;
|
|
||||||
free(unixsocketname);
|
|
||||||
unixsocketname = NULL;
|
|
||||||
free(tinc_conf);
|
free(tinc_conf);
|
||||||
free(hosts_dir);
|
free(hosts_dir);
|
||||||
free(prompt);
|
free(prompt);
|
||||||
|
|
||||||
free(netname);
|
|
||||||
netname = strcmp(name, ".") ? xstrdup(name) : NULL;
|
|
||||||
|
|
||||||
xasprintf(&tinc_conf, "%s" SLASH "tinc.conf", confbase);
|
xasprintf(&tinc_conf, "%s" SLASH "tinc.conf", confbase);
|
||||||
xasprintf(&hosts_dir, "%s" SLASH "hosts", confbase);
|
xasprintf(&hosts_dir, "%s" SLASH "hosts", confbase);
|
||||||
xasprintf(&prompt, "%s> ", identname);
|
xasprintf(&prompt, "%s> ", identname);
|
||||||
|
|
Loading…
Add table
Reference in a new issue