[hlcoders] RE: [hlds_apps] Server query protocol
We have just published a document describing the Source server query protocol located at: http://www.valve-erc.com/srcsdk/Code/Networking/serverqueries.html This page contains information on the challenge changes and documents a few extra fields in the A2S_INFO packet. In a WEEK or two we will be turning off non-challenged query responses (an email will be sent to this list when that happens). - Alfred -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Alfred Reynolds Sent: Thursday, February 24, 2005 5:26 PM To: hlds_apps@list.valvesoftware.com Cc: hlcoders@list.valvesoftware.com Subject: RE: [hlds_apps] Server query protocol This change has just been release (restart Steam to apply it). Note that you will need to set sv_enableoldqueries 0 to enable the new challenge system. - Alfred -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Alfred Reynolds Sent: Thursday, February 24, 2005 12:46 AM To: hlds_apps@list.valvesoftware.com Cc: hlcoders@list.valvesoftware.com Subject: RE: [hlds_apps] Server query protocol This change will be released tomorrow (so you can begin testing your tool updates). The A2S_INFO query has been altered from the description below. Rather than challenge response for each server ( making querying large numbers of servers much slower) the query will simply have a string appended to it (Source Engine Query). So to get server info you would send: 0xFFF 'T' Source Engine Query '\0' - Alfred -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Alfred Reynolds Sent: Tuesday, February 22, 2005 11:48 PM To: hlds_apps@list.valvesoftware.com Cc: hlcoders@list.valvesoftware.com Subject: RE: [hlds_apps] Server query protocol We will be releasing an update later this week or early next week with an updated query protocol. To enable this change to be deployed quickly we will be minimising the changes this time around. I will be writing a more detailed document describing the various valid Source server queries as a part of the SDK documentation, but in the mean time here is a brief description of the changes that will be made. A challenge value will now required for all query responses (A2S_INFO, A2S_PLAYER, A2S_RULES) except for A2S_PING. The challenge value is a 4 byte value. You can either explicitly request a challenge value via a new query A2S_SERVERQUERY_GETCHALLENGE (ascii W) or implicitly get a challenge value by sending a dummy challenge value of -1 (0x) to any query (that requires a challenge). The response to A2S_SERVERQUERY_GETCHALLENGE (and an implicit challenge) will be S2C_CHALLENGE (ascii 'A' ) followed by a 4 byte value that is the challenge value. The challenge value should be appended to the end of the existing query request packets. Queries that use strings to specify the query type (i.e. 0xplayers) will NO LONGER be supported. You MUST update to the new A2S_* style queries. The byte values for each request type is: #define A2S_INFO'T' // server info request - this must match the Goldsrc engine #define A2S_PLAYER 'U' // request player list #define A2S_RULES 'V' // request rules list from server #define A2S_SERVERQUERY_GETCHALLENGE'W' // Request challenge # from another machine These values are supported by the currently shipped Source engine if you want to start on your changes now. A challenge value is valid for 60 minutes or until the server flushes your challenge from its LRU cache (which can handle 16K elements), so you should attempt to cache a challenge value rather than continually requesting it. A challenge value is not required when querying servers within the same B class address range as the server (i.e LAN style requests), you should specify a challenge value of -1 (0x) in these cases. Note that you can still use a valid challenge value in these cases, its value will be ignored however. The initial rollout will support both old and new style queries (i.e with and without challenges). We expect to disable the old protocol within a couple WEEKS of the initial rollout. The cvar sv_enableoldqueries will control the servers ability to answer old style requests (when it is set to 1 it will reply to old style queries). To aid in development and testing you can disable ignoring challenges from local B class clients by setting the cvar sv_allowlocalquery to 0 (i.e if sv_allowlocalquery is 0 then any query will follow the rules set by the sv_enableoldqueries cvar). This change will also be applied to HL1 based game servers once the Source rollout is complete. - Alfred On Mon, 21 Feb 2005, Alfred Reynolds wrote: We will be revising the Source server query format in the near future to remove some architectural problems with it. All the existing
[hlcoders] RE: [hlds_apps] Server query protocol
This change will be released tomorrow (so you can begin testing your tool updates). The A2S_INFO query has been altered from the description below. Rather than challenge response for each server ( making querying large numbers of servers much slower) the query will simply have a string appended to it (Source Engine Query). So to get server info you would send: 0xFFF 'T' Source Engine Query '\0' - Alfred -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Alfred Reynolds Sent: Tuesday, February 22, 2005 11:48 PM To: hlds_apps@list.valvesoftware.com Cc: hlcoders@list.valvesoftware.com Subject: RE: [hlds_apps] Server query protocol We will be releasing an update later this week or early next week with an updated query protocol. To enable this change to be deployed quickly we will be minimising the changes this time around. I will be writing a more detailed document describing the various valid Source server queries as a part of the SDK documentation, but in the mean time here is a brief description of the changes that will be made. A challenge value will now required for all query responses (A2S_INFO, A2S_PLAYER, A2S_RULES) except for A2S_PING. The challenge value is a 4 byte value. You can either explicitly request a challenge value via a new query A2S_SERVERQUERY_GETCHALLENGE (ascii W) or implicitly get a challenge value by sending a dummy challenge value of -1 (0x) to any query (that requires a challenge). The response to A2S_SERVERQUERY_GETCHALLENGE (and an implicit challenge) will be S2C_CHALLENGE (ascii 'A' ) followed by a 4 byte value that is the challenge value. The challenge value should be appended to the end of the existing query request packets. Queries that use strings to specify the query type (i.e. 0xplayers) will NO LONGER be supported. You MUST update to the new A2S_* style queries. The byte values for each request type is: #define A2S_INFO'T' // server info request - this must match the Goldsrc engine #define A2S_PLAYER 'U' // request player list #define A2S_RULES 'V' // request rules list from server #define A2S_SERVERQUERY_GETCHALLENGE'W' // Request challenge # from another machine These values are supported by the currently shipped Source engine if you want to start on your changes now. A challenge value is valid for 60 minutes or until the server flushes your challenge from its LRU cache (which can handle 16K elements), so you should attempt to cache a challenge value rather than continually requesting it. A challenge value is not required when querying servers within the same B class address range as the server (i.e LAN style requests), you should specify a challenge value of -1 (0x) in these cases. Note that you can still use a valid challenge value in these cases, its value will be ignored however. The initial rollout will support both old and new style queries (i.e with and without challenges). We expect to disable the old protocol within a couple WEEKS of the initial rollout. The cvar sv_enableoldqueries will control the servers ability to answer old style requests (when it is set to 1 it will reply to old style queries). To aid in development and testing you can disable ignoring challenges from local B class clients by setting the cvar sv_allowlocalquery to 0 (i.e if sv_allowlocalquery is 0 then any query will follow the rules set by the sv_enableoldqueries cvar). This change will also be applied to HL1 based game servers once the Source rollout is complete. - Alfred On Mon, 21 Feb 2005, Alfred Reynolds wrote: We will be revising the Source server query format in the near future to remove some architectural problems with it. All the existing queries apart from PING will be altered by this change (i.e will require your tools to be updated). There will be a period where both systems coincide but we want to be aggressive in removing support for the old protocol. This change may be ported to the HL1 engine also. We have been assessing various protocols (both from other vendors and from the public), this is your chance to request features or suggest other standards to consider. The current plan is to make the minimal set of changes to remove the problems we found (making it easier for tools to update) but as we are breaking the protocol we are open to larger changes. You can make feature requests or suggestions to this list (hlds_apps) or to me directly. ___ hlds_apps mailing list hlds_apps@list.valvesoftware.com http://list.valvesoftware.com/mailman/listinfo/hlds_apps ___ To unsubscribe, edit your list preferences, or view the list archives, please visit: http://list.valvesoftware.com/mailman/listinfo/hlcoders
Re: [hlcoders] RE: [hlds_apps] Server query protocol
So where exactly do we change our code to conform with the new system? -- ** Draco Coder for Perfect Dark and Kreedz Climbing http://perfectdark.game-mod.net ___ To unsubscribe, edit your list preferences, or view the list archives, please visit: http://list.valvesoftware.com/mailman/listinfo/hlcoders
RE: [hlcoders] RE: [hlds_apps] Server query protocol
This is only for 3rd party server query tools (like GameSpy, HLSW and QTracker). If you are writing a mod or plugin you don't need to do anything. - Alfred -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Draco Sent: Thursday, February 24, 2005 9:30 PM To: hlcoders@list.valvesoftware.com Subject: Re: [hlcoders] RE: [hlds_apps] Server query protocol So where exactly do we change our code to conform with the new system? -- ** Draco Coder for Perfect Dark and Kreedz Climbing http://perfectdark.game-mod.net ___ To unsubscribe, edit your list preferences, or view the list archives, please visit: http://list.valvesoftware.com/mailman/listinfo/hlcoders ___ To unsubscribe, edit your list preferences, or view the list archives, please visit: http://list.valvesoftware.com/mailman/listinfo/hlcoders
Re: [hlcoders] RE: [hlds_apps] Server query protocol
Thanks -- ** Draco Coder for Perfect Dark and Kreedz Climbing http://perfectdark.game-mod.net ___ To unsubscribe, edit your list preferences, or view the list archives, please visit: http://list.valvesoftware.com/mailman/listinfo/hlcoders
[hlcoders] RE: [hlds_apps] Server query protocol
snip This should probably only be allowed, iff sv_lan (or related) cvars are set. Why? snip Will sv_enableoldqueries really go away then, or will the default value just switch to 0? If it's the latter, then Houston, we've got a problem. Many gameserverproviders will probably want to set it to 1 to avoid having to answer support questions as to why the old tools no longer work. So the intended effect is nullified. - Karsten It will flip to zero for a couple weeks and then disappear. The problem will be largely solved by setting the default anyway. - Alfred ___ To unsubscribe, edit your list preferences, or view the list archives, please visit: http://list.valvesoftware.com/mailman/listinfo/hlcoders
[hlcoders] RE: [hlds_apps] Server query protocol
We will be releasing an update later this week or early next week with an updated query protocol. To enable this change to be deployed quickly we will be minimising the changes this time around. I will be writing a more detailed document describing the various valid Source server queries as a part of the SDK documentation, but in the mean time here is a brief description of the changes that will be made. A challenge value will now required for all query responses (A2S_INFO, A2S_PLAYER, A2S_RULES) except for A2S_PING. The challenge value is a 4 byte value. You can either explicitly request a challenge value via a new query A2S_SERVERQUERY_GETCHALLENGE (ascii W) or implicitly get a challenge value by sending a dummy challenge value of -1 (0x) to any query (that requires a challenge). The response to A2S_SERVERQUERY_GETCHALLENGE (and an implicit challenge) will be S2C_CHALLENGE (ascii 'A' ) followed by a 4 byte value that is the challenge value. The challenge value should be appended to the end of the existing query request packets. Queries that use strings to specify the query type (i.e. 0xplayers) will NO LONGER be supported. You MUST update to the new A2S_* style queries. The byte values for each request type is: #define A2S_INFO'T' // server info request - this must match the Goldsrc engine #define A2S_PLAYER 'U' // request player list #define A2S_RULES 'V' // request rules list from server #define A2S_SERVERQUERY_GETCHALLENGE'W' // Request challenge # from another machine These values are supported by the currently shipped Source engine if you want to start on your changes now. A challenge value is valid for 60 minutes or until the server flushes your challenge from its LRU cache (which can handle 16K elements), so you should attempt to cache a challenge value rather than continually requesting it. A challenge value is not required when querying servers within the same B class address range as the server (i.e LAN style requests), you should specify a challenge value of -1 (0x) in these cases. Note that you can still use a valid challenge value in these cases, its value will be ignored however. The initial rollout will support both old and new style queries (i.e with and without challenges). We expect to disable the old protocol within a couple WEEKS of the initial rollout. The cvar sv_enableoldqueries will control the servers ability to answer old style requests (when it is set to 1 it will reply to old style queries). To aid in development and testing you can disable ignoring challenges from local B class clients by setting the cvar sv_allowlocalquery to 0 (i.e if sv_allowlocalquery is 0 then any query will follow the rules set by the sv_enableoldqueries cvar). This change will also be applied to HL1 based game servers once the Source rollout is complete. - Alfred On Mon, 21 Feb 2005, Alfred Reynolds wrote: We will be revising the Source server query format in the near future to remove some architectural problems with it. All the existing queries apart from PING will be altered by this change (i.e will require your tools to be updated). There will be a period where both systems coincide but we want to be aggressive in removing support for the old protocol. This change may be ported to the HL1 engine also. We have been assessing various protocols (both from other vendors and from the public), this is your chance to request features or suggest other standards to consider. The current plan is to make the minimal set of changes to remove the problems we found (making it easier for tools to update) but as we are breaking the protocol we are open to larger changes. You can make feature requests or suggestions to this list (hlds_apps) or to me directly. ___ To unsubscribe, edit your list preferences, or view the list archives, please visit: http://list.valvesoftware.com/mailman/listinfo/hlcoders
[hlcoders] RE: [hlds_apps] Server query protocol
That would be the plan :) - Alfred -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Steven Hartland Sent: Monday, February 21, 2005 12:19 PM To: hlds_apps@list.valvesoftware.com Cc: hlcoders@list.valvesoftware.com Subject: Re: [hlds_apps] Server query protocol Thanks fot the heads up on this can we get the new protocol details prior to release? Steve / K - Original Message - From: Alfred Reynolds [EMAIL PROTECTED] We will be revising the Source server query format in the near future to remove some architectural problems with it. All the existing queries apart from PING will be altered by this change (i.e will require your tools to be updated). There will be a period where both systems coincide but we want to be aggressive in removing support for the old protocol. This change may be ported to the HL1 engine also. We have been assessing various protocols (both from other vendors and from the public), this is your chance to request features or suggest other standards to consider. The current plan is to make the minimal set of changes to remove the problems we found (making it easier for tools to update) but as we are breaking the protocol we are open to larger changes. You can make feature requests or suggestions to this list (hlds_apps) or to me directly. - Alfred ___ hlds_apps mailing list hlds_apps@list.valvesoftware.com http://list.valvesoftware.com/mailman/listinfo/hlds_apps This e.mail is private and confidential between Multiplay (UK) Ltd. and the person or entity to whom it is addressed. In the event of misdirection, the recipient is prohibited from using, copying, printing or otherwise disseminating it or any information contained in it. In the event of misdirection, illegible or incomplete transmission please telephone (023) 8024 3137 or return the E.mail to [EMAIL PROTECTED] ___ hlds_apps mailing list hlds_apps@list.valvesoftware.com http://list.valvesoftware.com/mailman/listinfo/hlds_apps ___ To unsubscribe, edit your list preferences, or view the list archives, please visit: http://list.valvesoftware.com/mailman/listinfo/hlcoders