On 2022-04-26 19:40, Paul Koning wrote:
On Apr 26, 2022, at 1:22 PM, Johnny Billquist
<bqt(a)softjar.se> wrote:
The problem is that dynamic dns don't necessarily solve any problems. The address is
bound at start, and if the resolution in DNS changes at some later point, that won't
get reflected unless pydecnet would redo the name lookup, close and reopen the listening
socket bound to the new address.
PyDECnet rechecks the name resolution every hour. It doesn't close existing
connections, but if a node moves and its DNS entry is updated to reflect that, PyDECnet
will find it again and reconnect within an hour.
Well. The thing is, this was/is a listening socket. So there is no
reconnecting. It's just about binding.
Changing the
last byte of an address to 0 have no special significance. It's not like it would be a
wildcard or something. And no, a socket binding do not include any netmask.
No, but we're not talking about socket address binding -- the address used in that
syntax is the other side address. You're correct that it doesn't do subnet
(prefix length) syntax.
Actually, the syntax is a bit confusing to me here. With a listening
socket, the line:
circuit mul-123 Multinet 207.123.123.123:15001:listen --cost 8 --t3 120
the 207.123.123.123 is (obviously) the remote IP address. However, 15001
is the local port (if I remember right). I think it was/is also possible
to specify the remote port. As you also observe in your documentation,
this form of argument line is bad, since it is confusing and difficult
to remember what is what, and what goes where.
But the question is, what do you actually use the address for, on a
listening socket? I can't find (trying to look right now) how to bind
the remote address and port of a listening tcp socket under Unix.
Maybe that is what you meant with that last paragraph above. In short -
that information is not used for anything in this case.
Iain might
have been able to get it running by just skipping the host part. Basically:
circuit mul-123 Multinet :15001:listen --cost 8 --t3 120
The answer is in the documentation. When you install a new version, remember to check
CHANGES.txt which lists significant changes -- in particular, those that affect what you
put into config files. Quoting from there:
1.0-575: Correct documentation omission: in rev 570, the circuit
configuration spec was changed so "0.0.0.0" is no longer recognized as
"any address allowed". Instead, use an empty address or the special
value "*".
So I guessed right. :-)
And the detailed documentation for config files is in
doc/config.txt which has this to say:
--remote-address: Remote IP address. If omitted or specified as "*",
for inbound TCP modes, any destination address is accepted. For UDP
and GRE, this is not yet allowed, a specific address must be
specified.
Thanks for pointing out what we should have done/checked. :-D
Johnny
--
Johnny Billquist || "I'm on a bus
|| on a psychedelic trip
email: bqt(a)softjar.se || Reading murder books
pdp is alive! || tryin' to stay hip" - B. Idol