Commit Graph

273 Commits

Author SHA1 Message Date
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 4b152bac88 Make sure data sent out over wire is advanced properly (#3844) 2016-06-09 12:29:44 +01:00
X123M3-256 706b3db99e Chain lift cheat (#3818)
* Fix conflict with disable plant aging cheat

* Allow chain lift on any piece

* Keep chain toggled while building

* Ignore current chain lift state when cheat enabled

* Update string ids to one not already used

* Implement command for toggling cheat

* Allow chain on steep tracks when cheat is enabled

* Add checkbox for chain cheat

* Fix spacing

* Send cheat over network

* Change label for checkbox

* Replaced tabs with spaces
2016-06-07 22:08:38 +01:00
Michał Janiszewski e5cd157edc Fix memory leak in TcpSocket (#3815) 2016-06-03 23:29:25 +01:00
Michał Janiszewski 628e263094 Fix #3804: use-after-free in TcpSocket (#3810) 2016-06-03 14:30:00 +01:00
Ted John 82dd7601eb Merge pull request #3782 from janisozaur/desyncs
synchronise reset_0x69EBE4 over network
2016-06-03 10:47:01 +01:00
Michał Janiszewski 60630b9ad7 Drop `PACKED` attribute 2016-06-03 10:55:21 +02:00
Michał Janiszewski 3907fcd9d2 Explicitly pack structs 2016-06-03 10:55:21 +02: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
Michał Janiszewski e3d04ff96d Fix TcpSocket for Linux compilers (#13) 2016-06-02 09:13:25 +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 00d4904ba9 make DISABLE_NETWORK compatible 2016-05-30 11:28:14 +01:00
Michał Janiszewski 3a697609a5 Fixes to network refactoring (#11) 2016-05-30 11:28:13 +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
Ted John 91b7db31d1 fix #3771: Crash when kicking player
The game did not check if the user hash existed in the map before trying to remove it.
2016-05-29 10:56:36 +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 7a96856d01 Remove an unimplemented method that got in by mistake 2016-05-27 20:28:34 +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
Michał Janiszewski a34b9c6785 Include common.h to resolve MSVC build issue 2016-05-27 20:28:34 +02:00
Michał Janiszewski 18d656e012 Ensure player names are unique
Do this by cheating a little: create a map with count of clients using
given username and increment it each time such a username is
encountered. This yields very similar results to actually counting users
holding given name, but saves all the error-prone string parsing.
2016-05-27 20:28:34 +02:00
LRFLEW 5d5c10f99f Fixed OS X Build 2016-05-27 20:28:33 +02:00
Michał Janiszewski 4ffceafdbb Make sure the challenge token is random and handled properly
This change also fixes passworded servers not working properly, as
strlen() was getting called on something that was not guaranteed to be
null-terminated string when signing the token.
2016-05-27 20:28:33 +02:00
Michał Janiszewski 66abc31fee Handle malformed private keys gracefully 2016-05-27 20:28:33 +02:00
Michał Janiszewski 553e1bdf0f Minor fixes to authorisation system 2016-05-27 20:28:33 +02:00
Michał Janiszewski caa74acb1b Fixes for x86-64 2016-05-27 20:28:33 +02:00
Michał Janiszewski a83154832c Formatting 2016-05-27 20:28:33 +02:00
Michał Janiszewski 839fc3938f Add NetworkKey files to VS project 2016-05-27 20:28:33 +02:00
Michał Janiszewski 715ba561b1 Initial version of key-based auth 2016-05-27 20:28:33 +02:00
Michał Janiszewski 1c459c8186 Add NetworkKey class 2016-05-27 20:28:33 +02:00
Michał Janiszewski 40253a7add Prevent SIGPIPE-ing on Linux when clients drop (#3755)
`send()` can only write to connected sockets [1]. In case where client
drops out, a socket may become closed by OS but we can still enqueue
packets for its connection and eventually call `send()`, which will
generate a SIGPIPE and shut the server down, because there was no
`MSG_NOSIGNAL` set.

This commit makes sure `MSG_NOSIGNAL` is used on Linux.

[1] http://linux.die.net/man/2/send
2016-05-27 17:44:23 +01:00
CraigCraig 3f9afb9744 Various Spellchecks (#3741) 2016-05-26 09:49:19 +02:00
Michał Janiszewski 5e8867175b Fix crash on malformed permission name 2016-05-21 17:33:57 +02:00
Michał Janiszewski 8066ed6ecc Format to break long lines in network.cpp
[ci skip]
2016-05-21 17:33:50 +02:00
Michał Janiszewski bf24f5eef8 Use human-readable names for storing permissions 2016-05-21 16:23:20 +02:00
Michał Janiszewski 9d90a88461 Store groups as json 2016-05-21 14:54:00 +02:00
janisozaur ca430e1b23 Drop unused variables (#3586) 2016-05-13 18:21:58 +01:00
janisozaur 658e877955 Name all the typdef-ed structs (#3581) 2016-05-12 22:57:40 +01:00
janisozaur 68bad6505c Add and correct licence headers to all sources (#3108) 2016-05-04 18:24:41 +01:00
Michał Janiszewski 1cd1144dd5 Janitorial fixes
Mostly style fixes, includes minor change to make sure spinner's down
button gets shown, update to string IDs, network version and making sure
correct string gets selected based on car count.
2016-05-02 22:35:08 +02:00
Gymnasiast f2a3c21beb Check if peep is guest or staff, refactor 2016-04-28 21:26:58 +02:00
Nubbie 339f0aba10 Make renaming staff use staff permissions, fixes #3243 2016-04-28 19:33:50 +02:00
Ted John 0f6e64ac76 add global macros for map size and tile loop 2016-04-24 14:00:26 +01:00
Ted John a1150d31cf add global macros for more scenario variables 2016-04-23 18:07:07 +01:00
Ted John ee509caf35 integrate game paused variable and refactor 2016-04-23 13:34:55 +01:00
Ted John 28aa9fe707 fix tautology bug in Twitch logic 2016-04-23 13:05:09 +01:00
Ted John 4cdb2df9dc integrate screen variables 2016-04-23 11:16:46 +01:00
Ted John 1950fad315 add global macros for date 2016-04-23 11:03:34 +01:00
Ted John 467513616d add global macro: gCurrentTicks 2016-04-23 02:49:24 +01:00
Ted John 11a2ba0133 add global macro: gCashEncrypted 2016-04-23 01:58:54 +01:00
Ted John b4b3dc7dbe add global macro: gParkValue 2016-04-23 01:50:12 +01:00
Ted John b59f5c17ca add global macros for park...
- gParkSize
- gParkEntranceFee
- gNumGuestsInPark
2016-04-23 01:00:00 +01:00
Ted John 307cb9e08b add global macro: gParkFlags 2016-04-23 00:51:22 +01:00
IntelOrca f10d79c63c refactor and clean up twitch.cpp 2016-04-20 18:11:07 +01:00
zsilencer 3ba7d54247 Fix reconnect issue caused by inboundpacket not being cleared 2016-04-20 01:49:16 -06:00
zsilencer 0ceff7fd90 More efficient map transfers 2016-04-20 01:49:15 -06:00
zsilencer e582a8f47f Stop constantly resizing vector 2016-04-20 01:49:15 -06:00
zsilencer b257e431d9 Get rid of using user_strings for interface 2016-04-20 01:49:15 -06:00
Michał Janiszewski b2a3b82d08 Show network version to client if mismatched
This will let players know which version should they be using to connect
to server. Also prevents users from even trying to join servers running
versions we already know are incompatible.
2016-04-19 21:15:23 +02:00
Derek Lee c4226235e3 Add cheat to disable littering
Add cheat and increment NETWORK_STREAM_VERSION
2016-04-18 23:34:10 -07:00
janisozaur 24eaa0a56d Show units used when streaming the map over network. Fix #3328 (#3331) 2016-04-17 21:27:23 +01:00
Ted John 1b3f46f960 integrate game command error string variables
- gGameCommandErrorTitle
- gGameCommandErrorText
2016-04-15 17:54:46 +01:00
wolfreak99 1947b1dd30 require special permission for cluster building, closes #3045 2016-04-10 11:52:34 +01:00
IntelOrca f955d03206 fix twitch !news feature 2016-04-10 11:08:09 +01:00
IntelOrca 74d96d86c0 fix #3158: close network status window doesn't abort 2016-03-22 23:27:49 +00:00
IntelOrca 29df98ea9e search executable directory as well for SSL CA bundle, closes #3063 2016-03-01 20:42:29 +00:00
zsilencer 66e406ab75 Fix #3048: Remove format codes in player names and chat 2016-02-29 21:33:46 -07:00
IntelOrca e57f27e1a1 improve group renaming 2016-02-29 22:34:37 +00:00
IntelOrca db3c69c237 fix #3025: Wrong localisation of server messages 2016-02-27 13:12:04 +00:00
Michał Janiszewski aa8437cb9d Minor fixes 2016-02-26 20:49:01 +01:00
Ted John 9a9442ad01 Merge pull request #3016 from janisozaur/fixes
Fixes
2016-02-26 13:27:22 +00:00
Michał Janiszewski c0caf2d222 Minor fixes 2016-02-26 11:40:07 +01:00