projects
/
tinc
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Throttle the rate of MTU_INFO messages.
[tinc]
/
src
/
tincctl.c
diff --git
a/src/tincctl.c
b/src/tincctl.c
index
0eb3a25
..
91f63ef
100644
(file)
--- a/
src/tincctl.c
+++ b/
src/tincctl.c
@@
-31,6
+31,7
@@
#include "control_common.h"
#include "crypto.h"
#include "ecdsagen.h"
#include "control_common.h"
#include "crypto.h"
#include "ecdsagen.h"
+#include "fsck.h"
#include "info.h"
#include "invitation.h"
#include "names.h"
#include "info.h"
#include "invitation.h"
#include "names.h"
@@
-66,7
+67,7
@@
char line[4096];
static int code;
static int req;
static int result;
static int code;
static int req;
static int result;
-
static
bool force = false;
+bool force = false;
bool tty = true;
bool confbasegiven = false;
bool netnamegiven = false;
bool tty = true;
bool confbasegiven = false;
bool netnamegiven = false;
@@
-105,6
+106,7
@@
static void usage(bool status) {
" -c, --config=DIR Read configuration options from DIR.\n"
" -n, --net=NETNAME Connect to net NETNAME.\n"
" --pidfile=FILENAME Read control cookie from FILENAME.\n"
" -c, --config=DIR Read configuration options from DIR.\n"
" -n, --net=NETNAME Connect to net NETNAME.\n"
" --pidfile=FILENAME Read control cookie from FILENAME.\n"
+ " --force Force some commands to work despite warnings.\n"
" --help Display this help and exit.\n"
" --version Output version information and exit.\n"
"\n"
" --help Display this help and exit.\n"
" --version Output version information and exit.\n"
"\n"
@@
-144,12
+146,13
@@
static void usage(bool status) {
" log [level] Dump log output [up to the specified level]\n"
" export Export host configuration of local node to standard output\n"
" export-all Export all host configuration files to standard output\n"
" log [level] Dump log output [up to the specified level]\n"
" export Export host configuration of local node to standard output\n"
" export-all Export all host configuration files to standard output\n"
- " import
[--force]
Import host configuration file(s) from standard input\n"
- " exchange
[--force]
Same as export followed by import\n"
- " exchange-all
[--force]
Same as export-all followed by import\n"
+ " import
Import host configuration file(s) from standard input\n"
+ " exchange
Same as export followed by import\n"
+ " exchange-all
Same as export-all followed by import\n"
" invite NODE [...] Generate an invitation for NODE\n"
" join INVITATION Join a VPN using an INVITIATION\n"
" network [NETNAME] List all known networks, or switch to the one named NETNAME.\n"
" invite NODE [...] Generate an invitation for NODE\n"
" join INVITATION Join a VPN using an INVITIATION\n"
" network [NETNAME] List all known networks, or switch to the one named NETNAME.\n"
+ " fsck Check the configuration files for problems.\n"
"\n");
printf("Report bugs to tinc@tinc-vpn.org.\n");
}
"\n");
printf("Report bugs to tinc@tinc-vpn.org.\n");
}
@@
-1364,6
+1367,12
@@
const var_t variables[] = {
{"ScriptsInterpreter", VAR_SERVER},
{"StrictSubnets", VAR_SERVER},
{"TunnelServer", VAR_SERVER},
{"ScriptsInterpreter", VAR_SERVER},
{"StrictSubnets", VAR_SERVER},
{"TunnelServer", VAR_SERVER},
+ {"UDPDiscovery", VAR_SERVER},
+ {"UDPDiscoveryKeepaliveInterval", VAR_SERVER},
+ {"UDPDiscoveryInterval", VAR_SERVER},
+ {"UDPDiscoveryTimeout", VAR_SERVER},
+ {"MTUInfoInterval", VAR_SERVER},
+ {"UDPInfoInterval", VAR_SERVER},
{"UDPRcvBuf", VAR_SERVER},
{"UDPSndBuf", VAR_SERVER},
{"VDEGroup", VAR_SERVER},
{"UDPRcvBuf", VAR_SERVER},
{"UDPSndBuf", VAR_SERVER},
{"VDEGroup", VAR_SERVER},
@@
-1604,6
+1613,11
@@
static int cmd_config(int argc, char *argv[]) {
}
set = true;
continue;
}
set = true;
continue;
+ // Add
+ } else if(action > 0) {
+ // Check if we've already seen this variable with the same value
+ if(!strcasecmp(bvalue, value))
+ found = true;
}
}
}
}
@@
-1636,7
+1650,7
@@
static int cmd_config(int argc, char *argv[]) {
}
// Add new variable if necessary.
}
// Add new variable if necessary.
- if(
action > 0
|| (action == 0 && !set)) {
+ if(
(action > 0 && !found)
|| (action == 0 && !set)) {
if(fprintf(tf, "%s = %s\n", variable, value) < 0) {
fprintf(stderr, "Error writing to temporary file %s: %s\n", tmpfile, strerror(errno));
return 1;
if(fprintf(tf, "%s = %s\n", variable, value) < 0) {
fprintf(stderr, "Error writing to temporary file %s: %s\n", tmpfile, strerror(errno));
return 1;
@@
-1848,7
+1862,7
@@
static int cmd_generate_keys(int argc, char *argv[]) {
name = get_my_name(false);
#ifndef DISABLE_LEGACY
name = get_my_name(false);
#ifndef DISABLE_LEGACY
- if(!rsa_keygen(argc > 1 ? atoi(argv[1]) : 2048, true)
+ if(!rsa_keygen(argc > 1 ? atoi(argv[1]) : 2048, true)
)
return 1;
#endif
return 1;
#endif
@@
-2150,7
+2164,6
@@
static int switch_network(char *name) {
free(netname);
netname = strcmp(name, ".") ? xstrdup(name) : NULL;
free(netname);
netname = strcmp(name, ".") ? xstrdup(name) : NULL;
- make_names();
xasprintf(&tinc_conf, "%s" SLASH "tinc.conf", confbase);
xasprintf(&hosts_dir, "%s" SLASH "hosts", confbase);
xasprintf(&prompt, "%s> ", identname);
xasprintf(&tinc_conf, "%s" SLASH "tinc.conf", confbase);
xasprintf(&hosts_dir, "%s" SLASH "hosts", confbase);
xasprintf(&prompt, "%s> ", identname);
@@
-2195,6
+2208,15
@@
static int cmd_network(int argc, char *argv[]) {
return 0;
}
return 0;
}
+static int cmd_fsck(int argc, char *argv[]) {
+ if(argc > 1) {
+ fprintf(stderr, "Too many arguments!\n");
+ return 1;
+ }
+
+ return fsck(orig_argv[0]);
+}
+
static const struct {
const char *command;
int (*function)(int argc, char *argv[]);
static const struct {
const char *command;
int (*function)(int argc, char *argv[]);
@@
-2237,6
+2259,7
@@
static const struct {
{"invite", cmd_invite},
{"join", cmd_join},
{"network", cmd_network},
{"invite", cmd_invite},
{"join", cmd_join},
{"network", cmd_network},
+ {"fsck", cmd_fsck},
{NULL, NULL},
};
{NULL, NULL},
};