XQF / xqf

XQF game server browser
http://xqf.github.io
GNU General Public License v2.0
37 stars 12 forks source link

Id Software altered their Quake3 master servers and it prevents clients to query them #99

Closed illwieckz closed 10 years ago

illwieckz commented 10 years ago

I found some servers in the server list of the truecombat quake3 mod that are not in XQF lists.

I discover that the game query the 192.246.40.56 server (which is master3.idsoftware.com) on the port 27950 with UDP protocol.

I see with Wireshark this query:

0000   ff ff ff ff 67 65 74 73 65 72 76 65 72 73 20 36  ....getservers 6
0010   38 20 66 75 6c 6c 20 65 6d 70 74 79              8 full empty

The query is: \0xff\0xff\0xff\0xffgetservers 68 full empty The string is: getservers 68 full empty

Then I see a response with many server adresses in it.

But if I do:

qstat -q3m master3.idsoftware.com
ADDRESS           PLAYERS      MAP   RESPONSE TIME    NAME
Q3M  master3.idsoftware.com no response

I get nothing.

While using QStat, Wireshark shows me this request, without any response:

0000   ff ff ff ff 67 65 74 73 65 72 76 65 72 73 20 36  ....getservers 6
0010   38 20 65 6d 70 74 79 20 66 75 6c 6c 20 64 65 6d  8 empty full dem
0020   6f 0a                                            o.

The query is: \0xff\0xff\0xff\0xffgetservers 68 empty full demo\n The string is: getservers 68 empty full demo\n

I use the current SVN version of QStat.

Something is broken in QStat so XQF is broken too, it must be fixed.

illwieckz commented 10 years ago

see qstat#37

illwieckz commented 10 years ago

with this QStat patch:

Index: qstat2/qstat.h
===================================================================
--- qstat2/qstat.h  (revision 387)
+++ qstat2/qstat.h  (working copy)
@@ -591,7 +591,7 @@
 /* QUAKE 3 MASTER */
 char q3_master_query_template[] = "\377\377\377\377getservers %s %s";
 char q3_master_default_protocol[] = "68";
-char q3_master_default_query[] = "empty full demo\n";
+char q3_master_default_query[] = "empty full";

 /* RETURN TO CASTLE WOLFENSTEIN */
 char rtcw_master_default_protocol[] = "60";

QStat and XQF can list master3.idsoftware.com and master.quake3arena.com.

Some server are not announced in currently default master server XQF knowns, we need them.

Is it relevant today (2014-11-14) to query demo servers? Can we get rid of that?

illwieckz commented 10 years ago

Another guy (Donny) has already proposed a patch in july, see qstat:patch#12.

His patch keeps the ending \n character, but it seems not needed.

  1. I see that Quake3 do not add and ending \n character when I snif the network trafic with Wireshark.
  2. Master servers gameaholic.com, dpmaster.deathmask.net, master.ioquake3.org, maverickservers.com, master3.idsoftware.com, master.quake3arena.com do not need an ending \n character.

Donny does not receive any answer from the QStat team yet.

illwieckz commented 10 years ago

Ludwig said it is a change on Id's side because the demo string there never was a problem before.

So we have two alternatives:

illwieckz commented 10 years ago

Fixed in Qstat by Steven Hartland in https://github.com/multiplay/qstat/commit/9f0f1a8ad3f5aa343da5b8b49a947c7de27cc34a applying my patch above.

As we can see, Qstat has moved to GitHub too.