Hello! Working with Librenet6 configuration I found a scenario where the
documentation go to an error that at the beginning is hard to understand
why.
In Unix systems "hostname" could be an alphanumeric and accept the
hyphen ('-')[1], but Tinc "Name" accept alphanumeric and the underscore
('_')[2], not the hyphen. So, there is a scenario not much uncommon
where we could have a hostname with hyphens like "virtual-server-1" or
"LiMe-0C9B".
So, those parts in documentation could became in a bug:
In Debian based:
Name = host_$(hostname)
In OpenWrt based:
HOSTNAME=$(uci get system.(a)system[0].hostname)
[0]
I have permissions for change the documentation and fix that issue, but
I want to talk with you about it because my fix proposal change the way
of naming hosts (beginning with an "host_" or "topo_") and it could
affect some of others of your scripts:
As is written in Tinc manual I think that they have knowledge about this
possible collision between to ways of naming hosts. So the manual says:
"If Name starts with a $, then the contents of the environment variable
that follows will be used. In that case, invalid characters will be
converted to underscores. If Name is $HOST, but no such environment
variable exist, the hostname will be read using the gethostname() system
call."[2]
About tinc environment variables[3].
So my proposal is changing from
Name = host_$(hostname) # bash variable
or
Name = topo_$HOSTNAME # bash variable
to
Name = $HOST # tinc environment variable
(And in the file names)
result:
"host_myniceserver" to "myniceserver".
"host_virtual-server-1" (that will fail) to "virtual_server_1"
"topo_LiMe-0C9B" (that will fail) to "LiMe_0C9B"
But in this case we lost info about if the host came from Debian/Ubuntu
manual (host_) or came from OpenWrt manual (topo_).
What do you think?
Also we made an script for my machines that we can share, off course is
in case of an script that this standardization process has sense.
Regards.
[0] http://docs.altermundi.net/LibreNet6/Setup
[1] As wrote in RFC 952 and RFC 1123
[2]
http://www.tinc-vpn.org/documentation-1.1/Main-configuration-variables.html
Name = <name> [required]
This is a symbolic name for this connection. The name must consist
only of alfanumeric and underscore characters (a-z, A-Z, 0-9 and _), and
is case sensitive.
[3]
http://www.tinc-vpn.org/documentation/Scripts.html#index-environment-variab…
($HOST environment variable (and maybe others) are not documented)