PDA

View Full Version : [Regression] Join LAN Game no longer resolves DNS hostnames (DDNS)



morfil
July 14th, 2026, 19:33
Hello,

Since the redesigned launcher introduced around v5.1.10, I can no longer connect as a client to a Direct/LAN-hosted game by entering a DNS hostname (FQDN).

I have a dynamic public IP address, so I use Dynamic DNS. The DDNS hostname resolves correctly to the host's current public IPv4 address.

Steps to reproduce:
1. The GM hosts a LAN/Direct game on port 1802 with the required routing/port forwarding configured.
2. Verify that the DDNS hostname's A record resolves to the GM's current public IPv4 address.
3. On the client, open Join A Game > Join LAN Game and enter the DNS hostname and port 1802.
4. The connection fails; the launcher does not appear to accept or resolve the hostname.
5. Replace the hostname with the resolved numeric IPv4 address. The same client connects successfully.

Expected:
The launcher should accept a hostname/FQDN, resolve it through the operating system's DNS resolver, and connect to the resulting IPv4 address.

Actual:
Only the numeric IP address works. The DNS hostname no longer works, even though it resolves to that same address.

This worked before the launcher redesign and is important for hosts with dynamic public IP addresses who rely on Dynamic DNS.

Could you please confirm whether removing hostname/FQDN support was intentional? If not, could hostname resolution be restored for Join LAN Game?

Environment:
- Current Release channel
- LAN/Direct connection
- Default port 1802
- Dynamic public IPv4 with DDNS A record
- Numeric IPv4 connection works

Thank you.

pindercarl
July 14th, 2026, 20:47
Hello,

Since the redesigned launcher introduced around v5.1.10, I can no longer connect as a client to a Direct/LAN-hosted game by entering a DNS hostname (FQDN).

I have a dynamic public IP address, so I use Dynamic DNS. The DDNS hostname resolves correctly to the host's current public IPv4 address.

Steps to reproduce:
1. The GM hosts a LAN/Direct game on port 1802 with the required routing/port forwarding configured.
2. Verify that the DDNS hostname's A record resolves to the GM's current public IPv4 address.
3. On the client, open Join A Game > Join LAN Game and enter the DNS hostname and port 1802.
4. The connection fails; the launcher does not appear to accept or resolve the hostname.
5. Replace the hostname with the resolved numeric IPv4 address. The same client connects successfully.

Expected:
The launcher should accept a hostname/FQDN, resolve it through the operating system's DNS resolver, and connect to the resulting IPv4 address.

Actual:
Only the numeric IP address works. The DNS hostname no longer works, even though it resolves to that same address.

This worked before the launcher redesign and is important for hosts with dynamic public IP addresses who rely on Dynamic DNS.

Could you please confirm whether removing hostname/FQDN support was intentional? If not, could hostname resolution be restored for Join LAN Game?

Environment:
- Current Release channel
- LAN/Direct connection
- Default port 1802
- Dynamic public IPv4 with DDNS A record
- Numeric IPv4 connection works

Thank you.

This was not intentional change. The updated Launcher validates that the IP address entered is a valid address (i.e., the entry conforms to syntax for an IP address). I'll remove the validation and verify that this doesn't introduce any other errors.

morfil
July 17th, 2026, 17:19
I agree that removing all validation may be unnecessary. The field can legitimately contain a hostname (either an FQDN or a single-label LAN hostname), an IPv4 address, or an IPv6 address.
As a possible validation pattern covering those common forms:

^(?:(?=.{1,253}\.?$)(?!\d+(?:\.\d+){3}\.?$)(?:[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?\.)*[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?\.?|(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)|(?:(?:[0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4}|(?:[0-9A-Fa-f]{1,4}:){1,7}:|(?:[0-9A-Fa-f]{1,4}:){1,6}:[0-9A-Fa-f]{1,4}|(?:[0-9A-Fa-f]{1,4}:){1,5}(?::[0-9A-Fa-f]{1,4}){1,2}|(?:[0-9A-Fa-f]{1,4}:){1,4}(?::[0-9A-Fa-f]{1,4}){1,3}|(?:[0-9A-Fa-f]{1,4}:){1,3}(?::[0-9A-Fa-f]{1,4}){1,4}|(?:[0-9A-Fa-f]{1,4}:){1,2}(?::[0-9A-Fa-f]{1,4}){1,5}|[0-9A-Fa-f]{1,4}:(?:(?::[0-9A-Fa-f]{1,4}){1,6})|:(?:(?::[0-9A-Fa-f]{1,4}){1,7}|:)))$
If validation fails, it would be helpful to show a clear message explaining the accepted formats, for example: “Enter a valid hostname, IPv4 address, or IPv6 address.”
Since hostnames are valid values, the current “IP Address” label is also slightly misleading. Perhaps it could be changed to “Host or IP Address”, with placeholder examples such as server.lan, 192.0.2.1, or 2001:db8::1.
Syntax validation should not require the hostname to resolve immediately; DNS resolution can still happen when the connection is attempted.