Thing is, the hostname can be set to anything, I think it is possible to target a DoS this way if Bort's suggestion were implemented, set the hostname on your server to crossfire.metalforge.net...
Then match one server and ip with previous entries. IF they dont match, dont let it be replaced. If they do, it updates to that server name. And if you needed to change the ip, change the hostname.
This will lock out servers with frequently changing IPs. Why not just drop the need for DNS, and asume that the server sent the packet (therefore the originating IP of the packet is the server address), and the URL can say anything, so the Metalforge one can say "Metalforge CVS server" and cat2 one can say "MLAB's test server".
This is the crucial point, bensnoodle kept fetching new IP adresses, he mangled his router config or something, cos he kept dropping and reconnecting /with a new ip adress/ every single time.
Look on the metaserver list, crossfire.real-time.com/metaserver and you will see that this is the case.
i would also suggest a new list order: each time a server reconnects, it get a place at bottem of the list. this should easily filter out unstable servers.
Better plan, servers get sorted in alphabetical order by number of clients connected to the server. That way when conecting you will press 1, 2, 3, maybe 4, but hardly ever more than 5.
Since new server always get 0 clients to start with they will be placed on the bottom of the list