Change AutoConnect from int to bool.

The proper value is 3, not 2 or 4, and 5 is right out. So just hardcode this value,
and only have the option to turn AutoConnect on or off.
This commit is contained in:
Guus Sliepen 2014-05-06 14:11:55 +02:00
parent 27acb5d047
commit 332b55d472
5 changed files with 27 additions and 24 deletions

View file

@ -114,15 +114,13 @@ If
.Qq any
is selected, then depending on the operating system both IPv4 and IPv6 or just
IPv6 listening sockets will be created.
.It Va AutoConnect Li = Ar count Po 0 Pc Bq experimental
If set to a non-zero value,
.It Va AutoConnect Li = yes | no Po no Pc Bq experimental
If set to yes,
.Nm
will try to only have
.Ar count
meta connections to other nodes,
by automatically making or breaking connections to known nodes.
Higher values increase redundancy but also increase meta data overhead.
When using this option, a good value is 3.
will automatically set up meta connections to other nodes,
without requiring
.Va ConnectTo
variables.
.It Va BindToAddress Li = Ar address Op Ar port
This is the same as
.Va ListenAddress ,
@ -169,7 +167,9 @@ The names should be known to this tinc daemon
line).
.Pp
If you don't specify a host with
.Va ConnectTo ,
.Va ConnectTo
and don't enable
.Va AutoConnect ,
.Nm tinc
won't try to connect to other daemons at all,
and will instead just listen for incoming connections.

View file

@ -843,12 +843,9 @@ If any is selected, then depending on the operating system
both IPv4 and IPv6 or just IPv6 listening sockets will be created.
@cindex AutoConnect
@item AutoConnect = <count> (0) [experimental]
If set to a non-zero value,
tinc will try to only have count meta connections to other nodes,
by automatically making or breaking connections to known nodes.
Higher values increase redundancy but also increase meta data overhead.
When using this option, a good value is 3.
@item AutoConnect = <yes|no> (no) [experimental]
If set to yes, tinc will automatically set up meta connections to other nodes,
without requiring @var{ConnectTo} variables.
@cindex BindToAddress
@item BindToAddress = <@var{address}> [<@var{port}>]
@ -895,7 +892,7 @@ in which case outgoing connections to each specified tinc daemon are made.
The names should be known to this tinc daemon
(i.e., there should be a host configuration file for the name on the ConnectTo line).
If you don't specify a host with ConnectTo,
If you don't specify a host with ConnectTo and don't enable AutoConnect,
tinc won't try to connect to other daemons at all,
and will instead just listen for incoming connections.

View file

@ -204,7 +204,7 @@ static void periodic_handler(void *data) {
nc++;
}
if(nc < autoconnect) {
if(nc < 3) {
/* Not enough active connections, try to add one.
Choose a random node, if we don't have a connection to it,
and we are not already trying to make one, create an
@ -238,7 +238,7 @@ static void periodic_handler(void *data) {
}
break;
}
} else if(nc > autoconnect) {
} else if(nc > 3) {
/* Too many active connections, try to remove one.
Choose a random outgoing connection to a node
that has at least one other connection.
@ -264,7 +264,7 @@ static void periodic_handler(void *data) {
}
}
if(nc >= autoconnect) {
if(nc >= 3) {
/* If we have enough active connections,
remove any pending outgoing connections.
*/

View file

@ -137,7 +137,7 @@ extern int udp_sndbuf;
extern int max_connection_burst;
extern bool do_prune;
extern char *myport;
extern int autoconnect;
extern bool autoconnect;
extern bool disablebuggypeers;
extern int contradicting_add_edge;
extern int contradicting_del_edge;

View file

@ -52,7 +52,7 @@ char *proxyport;
char *proxyuser;
char *proxypass;
proxytype_t proxytype;
int autoconnect;
bool autoconnect;
bool disablebuggypeers;
char *scriptinterpreter;
@ -630,9 +630,15 @@ bool setup_myself_reloadable(void) {
if(!get_config_int(lookup_config(config_tree, "KeyExpire"), &keylifetime))
keylifetime = 3600;
get_config_int(lookup_config(config_tree, "AutoConnect"), &autoconnect);
if(autoconnect < 0)
autoconnect = 0;
config_t *cfg = lookup_config(config_tree, "AutoConnect");
if(cfg) {
if(!get_config_bool(cfg, &autoconnect)) {
// Some backwards compatibility with when this option was an int
int val = 0;
get_config_int(cfg, &val);
autoconnect = val;
}
}
get_config_bool(lookup_config(config_tree, "DisableBuggyPeers"), &disablebuggypeers);