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.
.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 ,
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.
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}>]
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.
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
}
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.
}
}
- if(nc >= autoconnect) {
+ if(nc >= 3) {
/* If we have enough active connections,
remove any pending outgoing connections.
*/
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;
char *proxyuser;
char *proxypass;
proxytype_t proxytype;
-int autoconnect;
+bool autoconnect;
bool disablebuggypeers;
char *scriptinterpreter;
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);