Commit graph

106 commits

Author SHA1 Message Date
yangfl 81a39c229b Fix typo 2018-07-10 17:29:02 +08:00
heinrich5991 9454dfbff9 Remove superfluous parameter from CServer::NewClientNoAuthCallback
The `Reset` parameter was only ever set to true, at the only call site.
2018-05-09 23:50:25 +02:00
heinrich5991 6247aa0c7f Enable -Wextra and -Wformat=2
Also annotate `dbg_msg`, `str_format` and `str_timestamp_ex` so that the
compiler can determine whether the format strings are correct.

Fix the compiler warnings generated by these extra warnings -- some of
them were security issues.
2017-07-27 20:38:17 +02:00
heinrich5991 1d81d56850 Introduce new, vanilla-compatible server info protocol
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.
2017-03-29 12:56:13 +02:00
necropotame b8e4e5beea Fix style in several places 2017-03-22 19:45:14 +01:00
Dennis Felsing 45bf601570 Merge pull request #495 from heinrich5991/pr_ddnet_smaller_dummy_map
Reduce dummy map size from 549 bytes to 191 bytes
2016-07-03 23:26:42 +02:00
heinrich5991 0244640aca Also don't send the token magic to unsupported clients
Since only the client can initiate the secure session, there's basically
no reason to send this magic to clients which didn't advertise the
feature.
2016-06-08 09:57:17 +02:00
Dennis Felsing 3dd2f23d45 Merge pull request #499 from heinrich5991/pr_ddnet_no_tokens_for_vanilla
Don't send token to harmless vanilla clients
2016-06-07 16:22:29 +02:00
heinrich5991 a2e64f0a16 Don't send token to harmless vanilla clients 2016-06-07 15:52:57 +02:00
heinrich5991 4d6657e3f1 Fix CRC of dummy map 2016-05-26 11:06:56 +02:00
heinrich5991 b075f1ff1b Use a dummy map with background 2016-05-25 23:47:34 +02:00
heinrich5991 702ed7e023 Reduce dummy map size from 549 bytes to 191 bytes
Also include a tool to generate said map; the map is generated without
any hacks. It could likely be made smaller using a few tricks.
2016-05-24 01:47:04 +02:00
heinrich5991 e353aa80b2 Don't send uninitialized memory over the network 2016-05-23 11:48:23 +02:00
def 1645310750 Keep reading packets after invalid control packet 2016-05-17 23:44:57 +02:00
east 1cbaa0c4ef copy resendbuffer on timeout protection 2016-05-07 19:28:16 +02:00
def 61e47422f6 Clean up debug messages a bit (lower case, no useless errors) 2016-05-02 21:35:32 +02:00
def 86a0f46937 Add a connection limit (fixes #408) 2016-04-27 22:09:18 +02:00
east a5de7596fa comments added 2016-04-23 17:44:42 +02:00
east 32ba1c9239 Antispoof dm1 fallback on flood added 2016-04-23 17:23:01 +02:00
def c78ade00c1 Fix bug where timed out people can connect more than sv_max_clients_per_ip times 2016-01-03 01:42:28 +01:00
east c1cbfcacf4 correctly reset network connection 2015-08-23 18:12:13 +02:00
east cf9e1373d7 correctly reset client 2015-08-23 17:51:28 +02:00
east c47697bdef session rejoin 2015-08-23 17:01:01 +02:00
east 09166494a5 Antispoof: fix error state 2015-08-23 12:29:41 +02:00
east 79a523e8a8 websocket support fixed 2015-08-21 13:08:40 +02:00
east 6ab2a558b3 Disable vanilla antispoof on password protected servers 2015-08-17 17:06:32 +02:00
def 51dda4e72b Fix aliasing warning 2015-08-16 19:14:17 +02:00
def e21d6e8574 Remove useless variable 2015-08-16 19:08:33 +02:00
east e9a1c3ef92 vanilla handshake: add vital flags and use correct sequence (support for 0.6.4) 2015-08-15 10:38:39 +02:00
east a084f1e31e use complete map as dummy map 2015-08-14 18:37:00 +02:00
east 48fc0f93bb added enable/disable conf var for vanilla antispoof 2015-08-14 18:36:28 +02:00
east 051ec30832 vanilla handshake: ignore unknown sequence 2015-08-14 18:36:13 +02:00
east 9f1ab9a7bf added simple flooding detection (temprorary) 2015-08-14 18:34:22 +02:00
east aabd777858 fixed includes 2015-08-14 18:33:42 +02:00
east d1382349f5 vanilla token handshake implemented 2015-08-14 18:30:49 +02:00
east a2174bf179 anti spoof for token protocol added 2015-08-14 18:30:12 +02:00
heinrich5991 71548fc0d6 If no rcon password is set, generate one
After the generation (using the OS random number generator), the password is
displayed to the user on stdout.
2015-06-21 19:56:35 +02:00
def 5dd83b58ff Fix security token conversion in a platform independent way 2015-04-18 23:54:19 +02:00
def 0ffa79671b Get rid of all GCC warnings 2015-04-18 21:33:51 +02:00
eeeee 0dc332c931 fix timeout protection with tokens
timeout protection code now transfers the token properly
2015-03-05 22:33:01 -08:00
heinrich5991 fa0708b99d Make the secure random stuff platform-independent 2015-03-06 01:35:08 +01:00
eeeee 85acfd9d77 added security token to protocol
to prevent packet injection from spoofed source ips
2015-03-05 11:07:03 -08:00
def efeb2b9417 Minor fix 2014-09-11 21:38:13 +02:00
def 5b72302672 Instead of banning players for reconnecting too often, make them wait 3 seconds (fixes #27) 2014-09-09 23:27:28 +02:00
def c9d70ed81b Try to fix crash related to bad connection and reconnecting 2014-08-18 23:50:24 +02:00
def f1e4700ae8 Add a timeout protection message 2014-08-17 05:04:37 +02:00
def ce0eb1a2c2 try fix 2014-08-17 04:20:36 +02:00
def 2bdc6a1f4d Some more tries to fix timeout stuff 2014-08-16 15:43:49 +02:00
def 07aa08703d Remove (probably buggy) implicit timeout protection 2014-08-16 14:43:22 +02:00
def e90d84b89f Fix the wrong "Timeout Protection over" error 2014-08-11 22:22:01 +02:00