Commit graph

527 commits

Author SHA1 Message Date
Learath b7610901e3 Handle empty reason. Fix formatting 2018-03-12 23:29:46 +01:00
Learath 22c21f73ae Actually display the reason 2018-03-12 19:09:53 +01:00
Learath c1a7c30f0f Add reason to name bans 2018-03-12 19:05:49 +01:00
heinrich5991 31a3e8d4c0 Add possibility to ban players by name
This uses the Unicode confusable data together with judging how close
two strings are by using the Levenshtein distance.

Adds the commands `name_ban`, `name_unban` and `name_bans`. Kicks
players who join using a banned name and doesn't allow ingame players to
change their names to the banned ones.
2018-03-09 20:30:27 +01:00
heinrich5991 61c7e9307d Don't log out on sv_rcon{,_mod,_helper}_password if not changed 2018-02-26 18:01:02 +01:00
heinrich5991 1c3dc8c316 Record rcon authentication stuff into teehistorian
This allows to check moderator actions after-the-fact.
2018-01-28 03:13:05 +01:00
heinrich5991 eb31a52b83 Add very basic test for Unix sockets 2017-12-20 16:56:44 +01:00
heinrich5991 1a236dbefc Send connection information to external server 2017-12-20 16:56:34 +01:00
heinrich5991 94acac91a0 Overhauled job system
The engine now takes `std::shared_ptr<IJob>`, this will ensure the
appropriate lifetime of the given parameters, it also allows for proper
destruction. Remove the now obsolete `IFetcher` interface and `CFetcher`
class.

Also adds some locks to `CUpdater`, previously it didn't have any locks
at all.
2017-11-23 15:47:38 +01:00
heinrich5991 8e778cd9ab Address pull request comments 2017-10-13 02:29:18 +02:00
heinrich5991 2fc018aac3 Add asynchronous file output, port dbg_msg()s to that system
Also add tests.
2017-10-10 04:11:14 +02:00
Learath2 d15dcd3c58 Merge pull request #871 from heinrich5991/ddnet_teehistorian
Teehistorian
2017-10-09 18:42:27 +02:00
Dennis Felsing 4fe6dc51f7 Fix non-random announcements (thanks noby) 2017-09-26 14:20:37 +02:00
heinrich5991 9761e9606a Make most user input teehistoric
Exclude private stuff like chat messages and votes.
2017-09-20 02:23:28 +02:00
heinrich5991 6ef9c8dbcd First working version of teehistorian
teehistorian records all inputs from the players as well as the player
positions in each tick. It stores this info in a highly compressible
output format (I've achived 5x compression using xz or bz2).
2017-09-20 02:16:11 +02:00
Redix 43f246f174 Made int packing functions safe 2017-09-17 02:36:50 +02:00
def 89ed22e8d8 Introduce ddnet-info.json
- 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
2017-09-03 17:42:04 +02:00
def 27b7549bba Make --silent stop stdout logging 2017-09-03 10:37:24 +02:00
heinrich5991 33315452c3 Merge branch 'master' into leak_fix 2017-07-31 20:42:32 +02:00
heinrich5991 1ebb4f89a6 Reopen: Add a flag for rcon login via username (#800)
This uses an extended protocol message to signal that rcon
authentication might require a username, allowing the client to enable
the username prompt.

Add a forgotten logout on key update
2017-07-24 21:43:55 +02:00
HMH bfc5700314 Yes the Kernel and Interfaces need to be deleted too... 2017-07-21 19:46:31 +02:00
def f3e3d57a90 Always close files, cleaner demo recording, fix some other stuff 2017-07-08 13:39:20 +02:00
eeeee 0497cdd49d stop casting auth state to bool 2017-06-08 13:03:44 -07:00
eeeee 9c5ade24da remove ConDnsblStatus copypasta 2017-06-07 11:04:04 +02:00
eeeee 2797227063 also remove references to CGameContext from CServer 2017-06-05 22:31:56 -07:00
eeeee 9b6699d3b8 remove casts to CServer
improving encapsulation by going through the interface instead of including engine/server/server.h
2017-06-05 20:51:12 -07:00
heinrich5991 5ae37e6c72 Add protocol extension with UUIDs
This system can easily be extended by independent authors without
collisions, something the old system with plain increasing integers did
not allow.

Do this by utilizing the previously unused message code `NETMSG_NULL`
which has a value of 0.

This works for engine and game messages, snapshot items and events.
2017-05-25 00:52:43 +02:00
def f4112e3bcb Revert "Tees must be teamed up before loading"
This reverts commit d29f2306ef.
2017-05-14 22:36:44 +02:00
Dennis Felsing 58207926ac Merge pull request #726 from Learath2/dd_pr_load
Tees must be teamed up before loading
2017-05-14 11:54:39 +02:00
Ryozuki 3a4738560b Don't show ips to non-administrators, Fixes #694 (#739)
People with non-administrator rights won't be able to see ips (mod, helper).
2017-04-17 12:13:58 +02:00
Learath d29f2306ef Tees must be teamed up before loading 2017-04-11 21:18:26 +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
Ryozuki 84726547aa Fix warning also for server.cpp, and fixed client.cpp 2017-03-12 14:49:18 +01:00
Ryozuki 1614e59e8f Fix some warnings 2017-03-12 12:12:39 +01:00
heinrich5991 6302e4d7e0 Fix some style issues and a > to >= 2017-03-06 20:11:23 +01:00
heinrich5991 c1e826e853 Fix key slot indices after removing a key 2017-03-06 18:02:19 +01:00
Learath2 8c79f28802 Fix a crash on malformed input 2017-03-06 15:18:52 +01:00
Learath2 71fb030443 Fix a comparison. Hate backwards compatibility... 2017-03-06 13:46:02 +01:00
Learath2 9800360340 Check the return from str_hex_decode. Remove comment 2017-03-06 12:59:47 +01:00
Learath2 c5a12e3eba Fix the status command for logged out people 2017-03-06 12:35:37 +01:00
Learath2 6f1f348715 Fix c&p fail 2017-03-06 12:35:09 +01:00
Learath2 95bb9894a7 Get rid of pw generation in CServer, Err out in CAuthManager instead 2017-03-04 23:16:02 +03:00
Learath2 3a22a4b62d Fix some issues 2017-03-04 23:06:22 +03:00
Learath2 cf9f3e3d38 Forgot one block 2017-03-04 10:58:02 +03:00
Learath2 d475eddb88 Add key ident to status command 2017-03-02 19:02:57 +03:00
Learath2 b7cbaedea0 New auth system for rcon 2017-03-02 18:16:29 +03:00
east 0acad1a28b dnsbl fix: HostLookup check result properly 2017-02-01 12:13:50 +01:00
heinrich5991 b510db9ee9 Add the VITAL flag to fastdownload packets
This lets 0.6.4 clients connect to DDNet servers again. Instead of doing
our own resend logic, just always send `sv_map_window` packets ahead and
let the Teeworlds network deal with possible resends.
2016-11-18 15:12:48 +01:00
heinrich5991 cd3b0ae855 Implement the confusable algorithm from Unicode more closely
See UTS#39 "Unicode Security Mechanisms":
http://www.unicode.org/reports/tr39/

This means that characters with accents or other things around them are
now considered the confusable with the base character.

Fixes #557. Fixes #575.
2016-10-30 13:45:55 +01:00
heinrich5991 e950351346 Put the password generation into base 2016-10-01 23:04:16 +02:00
east c6efc85a80 dnsbl_status added 2016-09-05 14:05:07 +02:00
east 678a69bf5b basic DNSBL implementation 2016-09-05 11:38:11 +02:00
def 0688229f0d Forbid names starting with /, as they can be abused to make people write chat commands 2016-07-08 16:38:05 +02:00
HMH c4843868c4 do not log the sql-passwords 2016-05-16 15:41:52 +02:00
H-M-H cd41220a44 wait for score-threads on shutdown 2016-05-04 15:32:24 +02:00
H-M-H c9e65c7931 Merge branch 'master' into sqlmasters 2016-05-03 23:07:24 +02:00
def 21ac41bfae Clean up fifo console 2016-05-02 23:36:21 +02:00
def c473689be7 Remove VITAL flag in fastdownload map packets (as suggested by heinrich5991) 2016-04-27 19:54:43 +02:00
Dennis Felsing 8e69f9ac90 Merge pull request #338 from east/mapvital
Added vital flag for mapdata (includes fast download)
2016-04-27 15:57:14 +02:00
def 91df0a2af0 Remove hacky security against rcon spoofing because we have a better one now 2016-02-22 19:54:45 +01:00
H-M-H 2bd6d0c381 do not always try to connect to unreachable sqlservers
but instead remember the last reachable server
- some cleanup
- added timeout of 10 seconds to sql-connections
2016-02-20 15:33:35 +01:00
H-M-H f6be7e20fb updated sql-command usage 2016-02-20 15:33:35 +01:00
H-M-H e35de5a371 whether to setup a db can be configured for each server now 2016-02-20 15:33:35 +01:00
H-M-H 1e302aeb70 'r' and 'w' instead of 0 and 1 for sql read/write servers 2016-02-20 15:33:35 +01:00
H-M-H 1314085928 restructured sqlconnection
reading from and writing to several different servers is now possible
TODO:
-handle Exceptions properly (try another sqlserver)
-if everything fails while writing write the insert to a file
2016-02-20 15:33:35 +01:00
H-M-H 7199ae3f22 ConAddSqlMaster will not block the main thread anymore 2016-02-20 15:33:35 +01:00
H-M-H 15f2e07c48 moved sqlserver stuff into CServer-class
as sqlconnections should not last only
until next mapreload
2016-02-20 15:33:35 +01:00
heinrich5991 a1923b154b Only ignore messages on invalid UTF-8, don't kick players 2016-01-27 01:48:19 +01:00
heinrich5991 d4eefefa26 Kick people using overlong UTF-8 sequences
This works around the bug in older clients (including vanilla) that
interpret those sequences incorrectly.
2016-01-27 01:24:02 +01:00
def b77e95090e Reset m_ServerInfoFirstRequest on map change 2016-01-22 17:53:46 +01:00
heinrich5991 96f0eddbb8 Add sv_max_server_info_per_second
This controls how many complete server info responses are sent per
second.
2016-01-22 16:42:54 +01:00
heinrich5991 b29a733c4f Add DoS protection to server info requests
Only allow 10 requests per second before falling back to smaller server
info responses.
2016-01-22 16:42:46 +01:00
def 8636e6004a Print client ID as decimal number, not hexadecimal 2016-01-20 16:33:02 +01:00
H-M-H 8e24ef8020 commanddescription can now be placed directly in
the commandparamsstring: "s[file]"
2015-12-28 16:19:52 +01:00
H-M-H 927c9d1999 forgot to adjust one usage 2015-12-23 14:51:55 +01:00
H-M-H 11a426c18b added (console-)command usage 2015-12-23 14:29:31 +01:00
H-M-H 80531130e5 made it beautiful ^^ 2015-12-18 13:17:45 +01:00
H-M-H 830726f392 prevent serverlogspam 2015-12-17 16:27:35 +01:00
H-M-H bd0c496837 FIRST trim the name and THEN compare it to others ! 2015-12-16 20:15:43 +01:00
timgame 2874e18ce0 dont restore empty config values at start 2015-11-16 20:31:56 +01:00
Tim Schumacher d99660f20e Merge pull request #356 from H-M-H/helper_pw
Implemented Helper accesslevel
2015-10-27 02:18:00 +01:00
H-M-H 4ffbd60347 fixed two lines I forgot 2015-10-27 02:00:15 +01:00
H-M-H cd6c297cb0 removed some code duplication and updated autoexec_server.cfg 2015-10-27 00:46:28 +01:00
H-M-H 0e532adb67 Implemented Helper accesslevel
basically just copied everything from moderator-accesslevel implementation

note however that mod_command changed to access_level
2015-10-23 04:21:07 +02:00
timgame 74d3855bf1 change brace styling 2015-10-22 17:51:02 +02:00
timgame 7fafd2db2f added sv_reload_when_empty 2015-10-22 17:27:30 +02:00
east 6affc4e1ef added vital flag for mapdata (includes fast download) 2015-09-17 09:55:09 +02:00
oy e91d26b8ac force vital check on essential cl/srv messages and added additional sequence checking 2015-09-01 13:50:45 +02:00
def f20a6a4934 Print name on name change 2015-08-28 21:44:36 +02:00
heinrich5991 a3246ed099 Save the config into the map when the server loads the map 2015-08-27 12:51:24 +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 d82b75f760 log/info for security token protocol 2015-08-14 18:39:13 +02:00
east d1382349f5 vanilla token handshake implemented 2015-08-14 18:30:49 +02:00
def a58ad6aef7 Always check that player names are not equal 2015-08-14 00:11:25 +02:00
def 8f532aad9f Use autoexec_client/server.cfg by default, fall back to autoexec.cfg for both 2015-08-12 13:49:16 +02:00
heinrich5991 ec85951736 Finish the renaming of sv_allow_rescue to sv_rescue 2015-08-10 13:34:56 +02:00
def 6e8ada1ac8 Fix whitespaces a bit 2015-07-09 02:12:35 +02:00
def ce465b584c Add sv_rescue_delay and rename sv_allow_rescue to sv_rescue 2015-06-30 18:46:36 +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 a77cd039a6 Get rid of all Clang warnings 2015-04-18 22:29:28 +02:00
def cea6fef24f Hack to disallow admins to enable /r after server was started 2015-04-17 11:24:28 +02:00
def 62a1a36fa2 Cleanup 2015-02-12 15:04:45 +01:00
def 0df35a990c Remove spoof protection, interacts badly with HTTP download 2015-01-27 23:13:47 +01:00
def 63a25fc1d4 Make server sleep for the proper time when no player is connected (fixes master server registration on Windows) 2014-12-26 12:12:28 +01:00
def 47842eeac6 Revert "Try only to make performant server on non-Windows"
This reverts commit d9e207816e.
2014-12-26 02:25:19 +01:00
def d9e207816e Try only to make performant server on non-Windows 2014-12-26 00:53:03 +01:00
def 023f926e89 Fix Compilation 2014-12-20 16:35:47 +01:00
def 6ecd02d410 No threaded debug output with fuzzing 2014-12-06 19:45:52 +01:00
def 9ea846033b Optimization for faster server side demo recording 2014-12-02 15:44:54 +01:00
Dennis Felsing b525de33b5 Merge pull request #112 from trml/prediction_weapons
Prediction weapons
2014-12-02 11:24:52 +01:00
nuborn 13f56be3a1 fix recording of projectiles in server too 2014-12-02 02:32:07 +01:00
def 2acdf5ea17 Code cleanup 2014-11-25 20:29:31 +01:00
def 18315e8c79 Improve ping on empty server (serverbrowser) 2014-11-24 22:31:13 +01:00
def a08ed87cc4 Initial work on confusable utf8 name detection 2014-11-24 16:22:00 +01:00
def 4d4d8ad5e8 Fix compile warnings 2014-11-23 21:24:20 +01:00
def 197ed5dca3 Use 0.6.3 server crash fix since the other seems not to work with GCC 4.9.2 with optimizations on 2014-11-22 13:17:55 +01:00
def c79a7eba7a And the same another time (Thanks coffee) 2014-11-16 21:51:44 +01:00
def 56fbd92be9 number check 2014-11-16 21:51:36 +01:00
def eba1fb5b8b Fix wait time on windows (Thanks to Tobii) 2014-11-15 18:14:24 +01:00
def 808f889c00 Improve server wakeup timing 2014-11-11 13:00:02 +01:00
def aede6df2ca Cache get_time calls 2014-11-10 00:08:50 +01:00
def bc9d632103 Clean up whitespace detection a bit and add BRAILLE PATTERN BLANK (U+2800) 2014-11-08 20:14:12 +01:00
def bc916da43c Print client version in status 2014-09-30 13:21:44 +02:00
def b4f77c4b71 Add sv_player_demo_record (mostly from Teerace) 2014-09-26 02:05:31 +02:00
Tobias Urlaub 45823466ec Fix: Rcon spoofing protection bans clients after password change 2014-09-16 21:14:31 +02:00
def a36358190b Mac OS X compilation 2014-09-11 21:38:23 +02:00
def 49682f4a8d Threaded logger output 2014-09-09 23:02:05 +02:00
def 54497647b4 Minor console output cleanup 2014-09-06 23:22:35 +02:00
def 9f4ac93d90 fifoconsole cleanup 2014-08-29 19:42:34 +02:00
timgame 7929d9a0c8 added client fifo 2014-08-29 16:52:08 +02:00
def 2cff296c25 Protect from IP spoofing of rcon commands 2014-08-22 13:54:13 +02:00
def 7654438033 Add sv_shutdown_when_empty 2014-08-15 14:32:21 +02:00
def b797978f5f Fix: Exclude dummies from spoof protection 2014-08-15 13:21:39 +02:00
def bf5fdadcd6 Add Spoof protection (by someone) 2014-08-13 02:00:45 +02:00
def 85b7475ae4 remove debug output 2014-08-09 18:13:21 +02:00
def 4af575654b Kind of working 2014-08-09 14:50:51 +02:00
def 127dc1c196 Try timeout 2014-07-28 20:44:17 +02:00
def b77f98e3c1 On server updates we can't find out who is using ddnet client, so send extended server info to everyone 2014-02-03 15:21:13 +01:00
def 8d877973ee ShowOthers for regular DDRace client 2014-01-30 17:28:30 +01:00
def b21dc83b1a Compatibility for old servers 2014-01-30 17:15:54 +01:00
def caa1f15d12 Fix possible crashes 2014-01-30 16:54:58 +01:00
def d8533eea67 Proper Client Version numbers and more visible whispers 2014-01-30 16:49:15 +01:00
def 948197b598 Only wake up server once every second if noone is connected anyway 2014-01-15 16:52:22 +01:00
def 95431199ba Less CPU for versionsrv 2014-01-15 00:02:19 +01:00
def 333efc37b0 Update 64 player server infos 2014-01-14 20:40:29 +01:00
def 7b81946dd6 oops 2014-01-09 21:08:50 +01:00
def 9112f1e526 Fix stupid bug 2014-01-09 21:08:03 +01:00
def 52e83313c8 64 players in server browse 2014-01-08 06:15:56 +01:00