ValveSoftware / steam-for-linux

Issue tracking for the Steam for Linux beta client
4.21k stars 174 forks source link

[Request] DNS Server Favorites #2810

Open Thordin opened 11 years ago

Thordin commented 11 years ago

What and Why

Favorites are currently stored on the Steam browser as a list of IPs even if you add a domain name.

This feature helps avoid the hassle of finding servers after an IP change. Many server owners are stuck with old and uncompetitive hosts because an IP change would incur a large player loss.

I propose DNS support so servers can be stored as domain names. Listed below is an implementation that is easy to implement and backwards compatible.

Implementation

The domain name is stored on the server as a convar "sv_domain" available through a2s_rules or a dedicated OOB query.

When a player refreshes their favorites, if the server is an IP the browser will attempt to download the sv_domain for each IP. The domain name can be a simple TXT record with the IP and the port.

sv_domain "subdomain.mydomain.com"

subdomain.mydomain.com TXT 1.2.3.4:27015

This result is cached for a few minutes or however long the TTL is. When players get disconnected, the game client can recheck the TXT record.

yaakov-h commented 11 years ago

Why TXT over SRV?

Tele42 commented 11 years ago

@yaakov-h, I believe the intent for the example is to use a simple ascii text file, so that a generic, unsanitized parser could read the entries. It doesn't really matter how it's implemented as long as it works and does not cause Valve more hassle than it's worth down the road.

yaakov-h commented 11 years ago

to use a simple ascii text file

The request specifically refers to TXT DNS records (http://tools.ietf.org/html/rfc1035 3.3.14). SRV records, however (http://www.ietf.org/rfc/rfc2782.txt) were specifically designed for this purpose.

Thordin commented 11 years ago

Why TXT over SRV?

Because I have been told the reason it hasn't been implemented yet is because of lack of time. Making it SRV will be more complex than needed.

A scrds server doesn't need to differentiate between TCP or UDP. Priority and weight are nice, but not really necessary.