From 332b55d4720fadea76c0a5d9b9d484af6a724006 Mon Sep 17 00:00:00 2001 From: Guus Sliepen Date: Tue, 6 May 2014 14:11:55 +0200 Subject: [PATCH] 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. --- doc/tinc.conf.5.in | 18 +++++++++--------- doc/tinc.texi | 11 ++++------- src/net.c | 6 +++--- src/net.h | 2 +- src/net_setup.c | 14 ++++++++++---- 5 files changed, 27 insertions(+), 24 deletions(-) diff --git a/doc/tinc.conf.5.in b/doc/tinc.conf.5.in index 28296fb4..072bf07b 100644 --- a/doc/tinc.conf.5.in +++ b/doc/tinc.conf.5.in @@ -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. diff --git a/doc/tinc.texi b/doc/tinc.texi index 555b816b..3082397c 100644 --- a/doc/tinc.texi +++ b/doc/tinc.texi @@ -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 = (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 = (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. diff --git a/src/net.c b/src/net.c index baf576d5..92f6be86 100644 --- a/src/net.c +++ b/src/net.c @@ -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. */ diff --git a/src/net.h b/src/net.h index 845fd758..6c7064bf 100644 --- a/src/net.h +++ b/src/net.h @@ -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; diff --git a/src/net_setup.c b/src/net_setup.c index fdd48348..839d7a90 100644 --- a/src/net_setup.c +++ b/src/net_setup.c @@ -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); -- 2.20.1