From: Guus Sliepen <guus@tinc-vpn.org>
Date: Wed, 29 Jan 2014 16:32:18 +0000 (+0100)
Subject: Document Weight and also allow it to be set from tinc.conf.
X-Git-Tag: release-1.1pre10~8
X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=995444c4f96bafecf7fb5d59510b3034459cf85c;p=oweals%2Ftinc.git

Document Weight and also allow it to be set from tinc.conf.
---

diff --git a/doc/tinc.conf.5.in b/doc/tinc.conf.5.in
index 632c849..25b398d 100644
--- a/doc/tinc.conf.5.in
+++ b/doc/tinc.conf.5.in
@@ -586,6 +586,12 @@ Setting this options also implicitly sets IndirectData.
 .Pp
 Since version 1.0.10, tinc will automatically detect whether communication via
 UDP is possible or not.
+.It Va Weight Li = Ar weight
+If this variable is set, it overrides the weight given to connections made with
+another host. A higher
+.Ar weight
+means a lower priority is given to this connection when broadcasting or
+forwarding packets.
 .El
 .Sh SCRIPTS
 Apart from reading the server and host configuration files,
diff --git a/doc/tinc.texi b/doc/tinc.texi
index 6c09a01..e5a5eb5 100644
--- a/doc/tinc.texi
+++ b/doc/tinc.texi
@@ -1352,6 +1352,12 @@ TCP connection instead of a UDP connection.  This is especially useful
 for those who want to run a tinc daemon from behind a masquerading
 firewall, or if UDP packet routing is disabled somehow.
 Setting this options also implicitly sets IndirectData.
+
+@cindex Weight
+@item Weight = <weight>
+If this variable is set, it overrides the weight given to connections made with
+another host. A higher weight means a lower priority is given to this
+connection when broadcasting or forwarding packets.
 @end table
 
 
diff --git a/src/protocol_auth.c b/src/protocol_auth.c
index 147c3b4..04674e8 100644
--- a/src/protocol_auth.c
+++ b/src/protocol_auth.c
@@ -672,7 +672,8 @@ bool send_ack(connection_t *c) {
 	if(choice)
 		c->options |= OPTION_CLAMP_MSS;
 
-	get_config_int(lookup_config(c->config_tree, "Weight"), &c->estimated_weight);
+	if(!get_config_int(lookup_config(c->config_tree, "Weight"), &c->estimated_weight))
+		get_config_int(lookup_config(config_tree, "Weight"), &c->estimated_weight);
 
 	return send_request(c, "%d %s %d %x", ACK, myport, c->estimated_weight, (c->options & 0xffffff) | (experimental ? (PROT_MINOR << 24) : 0));
 }