Just always send a A2S_PLAYER query directly and if you need a challenge
you will get a S2C_CHALLENGE back instead of the data packet (and then
you need to re-query). You can use "-1" as a placeholder challenge
number so the server knows you haven't got a valid one yet.

- Alfred 

-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Wojciech H
Sent: Wednesday, March 02, 2005 1:04 PM
To: hlds_apps@list.valvesoftware.com
Subject: Re: [hlds_apps] Server query protocol

I was asking if there is anything in the A2S_INFO packet that tells me
wether I need a challenge value or not for

A2S_PLAYER and A2S_RULES packets.


Alfred Reynolds wrote:

>No servers require a challenge for A2S_INFO, some may require the extra

>string in the query packet however (that isn't on by default, but 
>perhaps some server admins have chosen to enable it). You cannot use a 
>challenge number with a A2S_INFO request.
>
>- Alfred
>
>-----Original Message-----
>From: [EMAIL PROTECTED]
>[mailto:[EMAIL PROTECTED] On Behalf Of Wojciech H
>Sent: Wednesday, March 02, 2005 10:15 AM
>To: hlds_apps@list.valvesoftware.com
>Subject: Re: [hlds_apps] Server query protocol
>
>Will there be anything in the A2S_INFO that will tell us wether a 
>challenge value is required? I thought the version at the end of the 
>packet would tell me, but then I have found servers that are unable to 
>respond to a challenge request with the version "1.0.0.15". Also, it 
>would slow down queries greatly if we had to test to see if they do 
>need a challenge value or not.
>
>Any help would be greatly appreciated.
>
>
>
>Alfred Reynolds wrote:
>
>  
>
>>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:
>>0xFFFFFFFFFFFFFFF '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" 
>>(0xFFFFFFFF)
>>    
>>
>
>  
>
>>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.
>>0xFFFFFFFF"players") 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" (0xFFFFFFFF) 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
>>
>>_______________________________________________
>>hlds_apps mailing list
>>hlds_apps@list.valvesoftware.com
>>http://list.valvesoftware.com/mailman/listinfo/hlds_apps
>>
>>
>>
>> 
>>
>>    
>>
>
>
>_______________________________________________
>hlds_apps mailing list
>hlds_apps@list.valvesoftware.com
>http://list.valvesoftware.com/mailman/listinfo/hlds_apps
>
>_______________________________________________
>hlds_apps mailing list
>hlds_apps@list.valvesoftware.com
>http://list.valvesoftware.com/mailman/listinfo/hlds_apps
>
>
>
>  
>


_______________________________________________
hlds_apps mailing list
hlds_apps@list.valvesoftware.com
http://list.valvesoftware.com/mailman/listinfo/hlds_apps

_______________________________________________
hlds_apps mailing list
hlds_apps@list.valvesoftware.com
http://list.valvesoftware.com/mailman/listinfo/hlds_apps

Reply via email to