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

View file

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

View file

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

View file

@ -52,7 +52,7 @@ char *proxyport;
char *proxyuser; char *proxyuser;
char *proxypass; char *proxypass;
proxytype_t proxytype; proxytype_t proxytype;
int autoconnect; bool autoconnect;
bool disablebuggypeers; bool disablebuggypeers;
char *scriptinterpreter; char *scriptinterpreter;
@ -630,9 +630,15 @@ bool setup_myself_reloadable(void) {
if(!get_config_int(lookup_config(config_tree, "KeyExpire"), &keylifetime)) if(!get_config_int(lookup_config(config_tree, "KeyExpire"), &keylifetime))
keylifetime = 3600; keylifetime = 3600;
get_config_int(lookup_config(config_tree, "AutoConnect"), &autoconnect); config_t *cfg = lookup_config(config_tree, "AutoConnect");
if(autoconnect < 0) if(cfg) {
autoconnect = 0; 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); get_config_bool(lookup_config(config_tree, "DisableBuggyPeers"), &disablebuggypeers);