Commit Graph

191 Commits

Author SHA1 Message Date
Michał Janiszewski e930a09f0b Free compressed map when failed to connect client 2016-08-03 07:39:55 +02:00
zsilencer 5d04e5e03e Multiplayer desync stuff 2016-08-01 20:47:21 +02:00
Michał Janiszewski 84137738e3 Disconnect client in case map sending fails 2016-07-30 10:13:08 +02:00
Michał Janiszewski 64c0c594dc Check if memory was allocated successfully for server map
Somehow, there are cases where server thinks a map is around 2GiB in
size. Such allocation will most likely fail on 32-bit system and crash
the server. This provides *some* safety check and at least prevents
server from crashing in such cases.
2016-07-30 10:13:08 +02:00
Michał Janiszewski 04fb336d1f Fix typo in comment 2016-07-27 15:09:30 +02:00
Michał Janiszewski 1fe5fc56c0 Checksum sprites occasionally in multiplayer
This creates a checksum (SHA1) every so often on server and sends this
value together with PRNG seed for client to check it has still not
desynced.

It's useful to detect a desync early on, as PRNG seeds may remain
unchanged for some more time, while damage may have already been caused.
2016-07-27 15:54:02 +02:00
Michał Janiszewski 82d52b63e6 Verify NetworkActions access 2016-07-26 15:07:33 +01:00
Ted John e5722e1d9a Fix #4139: Windows first time firewall launch
std::string can not handle nullptr as argument. Create and use helper method instead.
2016-07-19 21:53:18 +01:00
Michał Janiszewski 836450cab4 Fix declarations of network-less builds 2016-07-14 14:11:50 +02:00
Michał Janiszewski a6d0e6916e Fix function definitions to match their declarations
This makes sure every function is properly declared, which includes
proper `extern` wrappers.
2016-07-14 14:11:49 +02:00
Marijn van der Werf 5204fb0ce9 Clean up string and sprite ID's (#3977) 2016-07-14 14:07:49 +02:00
Michał Janiszewski f3786b3130 Fix #3899: Game crashes after hosting my server
Catch exceptions when loading groups.json.
2016-07-04 17:50:09 +01:00
Michał Janiszewski 9041551b97 Guard server against null signature 2016-06-23 20:09:56 +01:00
Michał Janiszewski 644a36a310 Fixes to -Wall compilation
By default, not all warnings are enabled. This change makes sure that
the project compiles correctly with following options turned on:

    -Wall -Wno-unused-but-set-variable -Wno-missing-braces \
    -Wno-unknown-pragmas -Wno-unused-function
2016-06-20 13:46:27 +01:00
Ted John 1761907f57 handle bad map data and close connection 2016-06-09 18:37:12 +01:00
dVoCex 27b3c71588 Send the correct map size to the master server (#3821)
Signed-off-by: dVoCex <dVoCex@users.noreply.github.com>
2016-06-09 12:32:25 +01:00
Alexander Overvoorde ca1590c086 Add parameter to utf8_remove_formatting to allow colour codes (fixes #3638) (#3831) 2016-06-09 12:30:32 +01:00
Michał Janiszewski 4955279b7b Synchronise reset_0x69EBE4 over network
Clients calling reset_0x69EBE4 not in sync is a major cause of desyncs,
this change tries to force sync across clients
2016-06-03 00:33:15 +02:00
Ted John a153d07637 handle exceptions when setting up the TCP listener 2016-06-02 18:51:29 +01:00
Ted John 8dfbabbd07 refactor network, create ITcpSocket
Abstracts all socket code into a new class TcpSocket which is only exposed by a light interface, ITcpSocket. This now means that platform specific headers like winsock2.h and sys/socket.h do not have to be included in OpenRCT2 header files reducing include load and other issues.
2016-06-01 23:01:20 +01:00
Ted John 27d846c2f4 fix #3786: Wrong server provider information 2016-05-31 19:24:07 +01:00
Ted John c66a755ef7 request server gameinfo for window 2016-05-31 17:16:08 +01:00
Ted John 2264027afa change directory name to 'chatlogs' 2016-05-30 18:03:31 +01:00
Ted John feb65ea93c add option to log chat history 2016-05-30 18:01:17 +01:00
Ted John 618d13a9a3 save chat logs 2016-05-30 16:25:06 +01:00
Ted John 8cf4a1f03f add default case to fix clang error 2016-05-30 11:28:41 +01:00
Ted John d69ca7f479 conform to name convention 2016-05-30 11:28:09 +01:00
Ted John 623318a35d refactor NetworkPlayer 2016-05-30 11:18:07 +01:00
Ted John 3591026078 refactor NetworkAction 2016-05-30 11:18:07 +01:00
Ted John 31ac6e7fdf refactor NetworkConnection and NetworkPacket 2016-05-30 11:18:07 +01:00
Ted John 46ecd53a99 refactor NetworkAddress 2016-05-30 11:18:07 +01:00
CraigCraig c946d2fb06 Various Spelling Fixes - 5/29/16 (#3770) 2016-05-29 10:00:38 +01:00
Michał Janiszewski d29af84886 Make sure to hold string alive when using c_str() (#3760) 2016-05-27 22:32:11 +01:00
Michał Janiszewski 8e26f2c0d1 Only check for PASSWORDLESS permission if successfully verified 2016-05-27 23:00:31 +02:00
Michał Janiszewski 4699635086 Don't allow null keys 2016-05-27 22:56:23 +02:00
Ted John ebb8eb749c Merge pull request #3758 from janisozaur/fixes
Fixes
2016-05-27 20:57:14 +01:00
Michał Janiszewski 4ba1c17b0d Don't let null password cause a crash on initial launch 2016-05-27 21:43:52 +02:00
Ted John 1b3331f584 remove user from users.json when kicked (#11) 2016-05-27 20:28:35 +02:00
Ted John 3a1a474c7c refactor key map to User and UserManager classes 2016-05-27 20:28:35 +02:00
Michał Janiszewski 80a90624b9 Add option to only allow known keys to login 2016-05-27 20:28:34 +02:00
Michał Janiszewski b8661fb389 When removing group, reset all users assigned to it 2016-05-27 20:28:34 +02:00
Ted John fe057c4470 handle null group ids 2016-05-27 20:28:34 +02:00
Ted John ac17cdf955 improve unique name handling 2016-05-27 20:28:34 +02:00
Ted John daaa1b3ed2 add helper method for getting the keymap path 2016-05-27 20:28:34 +02:00
Ted John f7ee22048f save keys in a sub directory 2016-05-27 20:28:34 +02:00
Ted John d62c94f14a use Console::WriteLine instead of log_info 2016-05-27 20:28:34 +02:00
Michał Janiszewski 2d3d889a08 Formatting, style fixes 2016-05-27 20:28:34 +02:00
Michał Janiszewski 165ec06690 Passwordless login permission 2016-05-27 20:28:34 +02:00
Michał Janiszewski 9b4d385ab5 Allow out-of-process edits to keymappings.json
Reloads keymappings.json on each client join. This allows for manual edits,
so host can add keys without having to restart server for them to go live.
2016-05-27 20:28:34 +02:00
Michał Janiszewski 65a1d0c70d Use UpdateKeyMappings to modify JSON in-place
This allows for non-destructive saving of group assigments, so user can
store their own entries.
2016-05-27 20:28:34 +02:00