[hlcoders] RE: [hlds_apps] Server query protocol

2005-03-12 Thread Alfred Reynolds
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

2005-02-24 Thread Alfred Reynolds
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

2005-02-24 Thread Draco
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

2005-02-24 Thread Alfred Reynolds
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

2005-02-24 Thread Draco
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

2005-02-23 Thread Alfred Reynolds
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

2005-02-22 Thread Alfred Reynolds
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

2005-02-21 Thread Alfred Reynolds
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