Here is the README about the HTTP downloading function.
Half-Life Fast HTTP Asset Downloading Instructions
V1.02 January 22, 2004
SUMMARY
-------
Half-Life now supports the download of custom content (maps, skins, sounds,
and so on) from a HTTP server (ie: webserver) when connecting, instead of
downloading directly from the game server itself.
HTTP downloading has three major benefits:
1) There is no impact on the game server when downloading custom content, as
a completely separate HTTP content server does the transfer
2) Players will download custom content at their maximum transfer rate,
resulting in *much* faster downloads
3) Players who are downloading custom content do not take up a player slot
on the server while they wait
WHAT PLAYERS CONNECTING TO A SERVER WITH CUSTOM CONTENT WILL SEE
----------------------------------------------------------------
When a player connects to a server utilizing custom content, one of two
things will occur:
1) If the server is not configured for HTTP download, the game server
will use the normal "trickle" download mechanism
2) If the server is configured for HTTP downloading, the player will
see an enhanced download dialog, and much faster downloads.
While
this content is downloading, they are not connected to the game
server. Once the download finishes, they are automatically
reconnected to the game server, and ready to play.
CONFIGURING YOUR SERVER TO USE FAST HTTP ASSET DOWNLOADING
----------------------------------------------------------
1) Make a list of all the custom files (bsp, wav, mdl, etc) used on your server
2) Put these files on a HTTP server (ie: webserver), keeping the folder
layout intact
3) OPTIONAL: To display a "banner image" to players that download content,
place a 340x56 pixel image in the file <custom content
directory>/gfx/banner.gif
4) Set the sv_downloadurl cvar to
"
http://yourserver/custom_content_directory/"
Example:
Your server uses the non-standard map "de_generic", which requires the following files:
C:\Program
Files\Steam\SteamCache\
your@email.address\Counter-Strike\cstrike\maps\de
_generic.map
C:\Program
Files\Steam\SteamCache\
your@email.address\Counter-Strike\cstrike\de_gene
ric.wad
C:\Program
Files\Steam\SteamCache\
your@email.address\Counter-Strike\cstrike\sound\a
mbience\de_generic_a.wav
C:\Program
Files\Steam\SteamCache\
your@email.address\Counter-Strike\cstrike\sound\a
mbience\de_generic_b.wav
C:\Program
Files\Steam\SteamCache\
your@email.address\Counter-Strike\cstrike\sound\a
mbience\de_generic_c.wav
You have web space (perhaps through your ISP) with the URL
"
http://www.turtlerockstudios.com/~matt" that you will use to host your
custom content.
To do this, you copy the files needed for "de_generic" to your webspace,
placing them in a folder called "my_cstrike" in your webspace top-level directory,
keeping their directory layout intact.
You now have the following files in your webspace:
http://www.turtlerockstudios.com/~matt/ ... eneric.map
http://www.turtlerockstudios.com/~matt/ ... eneric.wad
http://www.turtlerockstudios.com/~matt/ ... ce/de_gene
ric_a.wav
http://www.turtlerockstudios.com/~matt/ ... ce/de_gene
ric_b.wav
http://www.turtlerockstudios.com/~matt/ ... ce/de_gene
ric_c.wav
You now set the "sv_downloadurl" cvar on your game server to
"
http://www.turtlerockstudios.com/~matt/my_cstrike/". Now, players who connect
to your server will automatically download the map "de_generic"
and its required
files from your webspace when they connect (unless they already have it, of course).
TECHNICAL DETAILS
-----------------
* The maximum length of the sv_downloadurl is 127 characters
* A username and password can be specified for the HTTP server by embedding
them in the sv_downloadurl like so:
assword@www.somewhere.com/' target='_blank'>
http://usernameassword@www.somewhere.com/
( Note - recent IE patches make disable this functionality )
* If a connecting player has an existing file of the same name, it will not
be overwritten. The download file will be skipped.
* Certain game-crtical and/or dangerous files cannot be downloaded (ie: *.exe, *.vbs, etc)