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:
parent
27acb5d047
commit
332b55d472
5 changed files with 27 additions and 24 deletions
|
@ -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.
|
||||||
|
|
|
@ -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.
|
||||||
|
|
||||||
|
|
|
@ -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.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue