- Single json file containing all information for the client
- Fetched from https://info.ddnet.tw/info?name=deen
- Replaces versionsrv, news, ddnet-maps.json and ddnet-ranks.json
- Servers are sorted by most popular ones for respective player
- Always stays < 100 ms response time, compared to occasional 50 s for
old ddnet-ranks.json
This means that we have a reliable and fast way to query for extended info,
while also not wasting network bandwidth.
The protocol is designed to be extensible, there's four bytes space for
encoding more request types (currently zeroed), and there's one string in each
response packet and one string for each player available (currently the empty
string).
The protocol itself has no problems with more than 64 players, although the
current client implementation will drop the player info after the 64th player,
because it uses a static array for storage.
Also fixes#130, the player list is just sorted each time new player info
arrives.
This way, servers can no longer hijack the timeout codes of clients.
Timeout codes are generated from md5(seed + dummy + server address).
If `cl_timeout_seed` is set to the empty string, the old config options
are used instead.
Make fetcher client only and move Task class from interface.
Fix queue logic, add destructor.
LEAN_AND_MEAN moved up to prevent curl including the whole winapi
Remove JobNo, Fix callback, Cleanup debug messages.
Fix include guard
Copy the Url and Destination. Delete pTask.
Fix typo
Add Completion callback
Let the user pass context
Add virtual to inherited funcs
Use 0 instead of NULL
Give fetcher the ability to create folders. Fix couple of small bugs.
Added .lib files for MSVC.
Leave user the allocation of CFetchTask. Get rid of unnecessary cb
arguments.
Get the HTTP return code from libcurl.
Incorperate the storage system.
Fail on HTTP error >= 400.
Add more info to the task.
Add blocking way of getting HTTP resp code.
Remove resp code from normal tasks as we fail >= 400 anyways.
Sleep instead of killing the thread
Forgot one instance of respcode.
Provide HTTP download for maps.
Dont check 404 first.