Patric Stout
c288eba813
Fix: prevent clients making emergency saves twice if server disconnects ( #8477 )
...
This was clearly overlooked during the initial implementation.
2021-01-02 20:34:55 +01:00
Michael Lutz
65f65ad2ad
Codechange: Convert some more FIO functions to take std::string.
2020-12-27 13:19:25 +01:00
Charles Pigott
860c270c73
Codechange: Replace assert_compile macro with static_assert
2020-12-27 10:55:42 +00:00
Pavel Stupnikov
d989fb516b
Change: send network error to the server before making an emergency save ( #8387 )
2020-12-16 21:23:12 +01:00
Bjarni Thor
5880f1479f
Feature #7756 : Allow server to supply a reason to kicked/banned clients
...
This commit adds the missing feature of allowing the server owner to
provide a reason for kicking/banning a client, which the client sees in
a pop-up window after being kicked. The implementation extends the
network protocol by adding a new network action called
NETWORK_ACTION_KICKED that is capable of having an error string, unlike
the other network error packages. Additionally, the kick function
broadcasts a message to all clients about the kicked client and the
reason for the kick.
2020-02-04 22:17:39 +00:00
glx
41232f18c1
Codechange: Replace network related FOR_ALL with range-based for loops
2019-12-21 20:13:03 +01:00
S. D. Cloudt
13cc8a0cee
Cleanup: Removed SVN headers
2019-11-10 17:59:20 +00:00
Charles Pigott
5b34c8019f
Codechange: Remove Company/OwnerByte types
2019-04-29 17:40:22 +01:00
Henry Wilson
7c8e7c6b6e
Codechange: Use null pointer literal instead of the NULL macro
2019-04-10 23:22:20 +02:00
Michael Lutz
8b1880187a
Remove: AutoFreeSmallVector.
...
The last use was for storing a list of memory blocks. As the way these lists are accessed is very
specific, it is easier to just write an explicit destructor instead of trying to exactly match the behaviour.
2019-04-09 22:45:15 +02:00
Michael Lutz
ae748166d0
Codechange: Use platform independent C++11 function for sleeping on a thread.
2019-04-06 11:27:39 +02:00
Henry Wilson
cc62f4163f
Cleanup: Remove unused size template parameters from SmallMap and Auto[Free|Delete]SmallVector
2019-03-26 20:15:57 +00:00
Henry Wilson
ab711e6942
Codechange: Replaced SmallVector::[Begin|End]() with std alternatives
2019-03-26 20:15:57 +00:00
Henry Wilson
a0f36a50e6
Codechange: Replaced SmallVector::Append() with std::vector::[push|emplace]_back()
2019-03-26 20:15:57 +00:00
Henry Wilson
af7d9020a1
Codechange: Use override specifer for overriding member declarations
...
This is a C++11 feature that allows the compiler to check that a virtual
member declaration overrides a base-class member with the same signature.
Also src/blitter/32bpp_anim_sse4.hpp +38 is no longer erroneously marked
as virtual despite being a template.
2019-03-24 16:10:04 +01:00
Patric Stout
e3c639a09f
Remove: ENABLE_NETWORK switch
...
This switch has been a pain for years. Often disabling broke
compilation, as no developer compiles OpenTTD without, neither do
any of our official binaries.
Additionaly, it has grown so hugely in our codebase, that it
clearly shows that the current solution was a poor one. 350+
instances of "#ifdef ENABLE_NETWORK" were in the code, of which
only ~30 in the networking code itself. The rest were all around
the code to do the right thing, from GUI to NewGRF.
A more proper solution would be to stub all the functions, and
make sure the rest of the code can simply assume network is
available. This was also partially done, and most variables were
correct if networking was disabled. Despite that, often the #ifdefs
were still used.
With the recent removal of DOS, there is also no platform anymore
which we support where networking isn't working out-of-the-box.
All in all, it is time to remove the ENABLE_NETWORK switch. No
replacement is planned, but if you feel we really need this option,
we welcome any Pull Request which implements this in a way that
doesn't crawl through the code like this diff shows we used to.
2019-03-20 19:24:55 +01:00
SamuXarick
cdb6dbad85
Cleanup: Remove repeated network error message on connection timeout. ( #7327 )
2019-03-07 18:16:52 +00:00
Niels Martin Hansen
c61acc7fc1
Fix #7280 : Save in the right location on desync and server timeout
2019-03-03 12:12:32 +01:00
glx
8e7fe3973f
Add: CompanyCtrlAction enum for CMD_COMPANY_CTRL actions
2019-02-04 21:08:36 +01:00
Niels Martin Hansen
5f8354f358
Change: Make a shortened network revision string for use in server queries
2019-02-03 18:00:16 +01:00
Niels Martin Hansen
4fb76db42f
Feature #986 : Automatic save when losing connection to a network game
2018-06-23 15:22:31 +02:00
frosch
b4b98e5165
(svn r27893) -Codechange: Use fallthrough attribute. (LordAro)
2017-08-13 18:38:42 +00:00
alberth
0adfb1ac6f
(svn r27653) -Fix(r27647): Rename FileOperation enum and values to SaveLoadOperation to avoid nameclash with windows compiler toolkit.
2016-09-04 16:06:50 +00:00
alberth
597380e099
(svn r27650) -Codechange: Replace SaveOrLoadMode by FileOperation and DetailedFileType.
2016-09-04 12:57:43 +00:00
rubidium
d534c80e94
(svn r27020) -Cleanup: some coding style consistency improvements (mostly spaces)
2014-10-15 18:31:37 +00:00
rubidium
160ad31028
(svn r26488) -Codechange: perform the appropriate length checks when getting a client name
2014-04-23 21:19:54 +00:00
rubidium
5b82822c12
(svn r26486) -Codechange: replace a number of snprintfs with seprintf
2014-04-23 21:12:09 +00:00
rubidium
0463dbdc9e
(svn r26482) -Codechange: add an include that allows us to undefine/redefine "unsafe" functions to prevent them from being used, and thus having to care about certain aspects of their return values
2014-04-23 20:13:33 +00:00
planetmaker
c24374f99c
(svn r24900) -Fix [FS#5389]: Comments with typos (most fixes supplied by Eagle_rainbow)
2013-01-08 22:46:42 +00:00
rubidium
4f62472fd9
(svn r23817) -Fix [FS#4962]: desync due to different NewGRF version. So reduce the chance that it happens significantly with betas/RCs/nightlies by doing the same as is done for stable releases: check the NewGRF version of server vs client.
...
Previously this check was not done for nightlies/betas/RCs due to missing versioning information in the source tarballs, but they have that for a while now. So just force the NewGRF version check for all versions, and remove the broken --revision configure option
2012-01-17 17:27:38 +00:00
yexo
5535261e13
(svn r23802) -Fix [FS#4968] (r23601): game lobby gui not updated when new company information becomes available
2012-01-15 12:56:13 +00:00
truebrain
6c7c02eb14
(svn r23780) -Fix [FS#4963] (r23764): also name the two new errors server-side. As extra, split up one of the errors in 3 errors, to be more specific what goes wrong. As cherry on top, make sure on all sides we can never again forget to add such entries on both sides, by introducing an assert_compile()
2012-01-09 21:22:48 +00:00
rubidium
bddfcaef95
(svn r23764) -Fix [FS#4955]: make default timeouts for certain states lower and configurable
2012-01-06 21:49:06 +00:00
rubidium
6d6be50ae0
(svn r23740) -Codechange: remove some 300 unneeded includes from the .cpp files
2012-01-03 21:32:51 +00:00
truebrain
561b25d031
(svn r23601) -Fix: fix the conflict in window number
2011-12-19 20:50:21 +00:00
rubidium
2bf0fc3c5c
(svn r23476) -Codechange: use the error queue to replace switch mode error strings, again making it possible to return multiple errors
2011-12-10 15:16:58 +00:00
rubidium
420d358fef
(svn r23475) -Codechange: queue critical error messages, so when multiple happen you won't miss any
2011-12-10 15:14:11 +00:00
rubidium
58423b26d1
(svn r23474) -Codechange: move the declaration error related functions to error.h
2011-12-10 13:54:10 +00:00
rubidium
f6b0561cd8
(svn r22805) -Codechange: move use of magic number for version checking to more logical location
2011-08-21 18:57:45 +00:00
rubidium
944a5cb7aa
(svn r22423) -Document: some network stuff
2011-05-04 20:24:23 +00:00
rubidium
2e572b98de
(svn r22400) -Codechange: replace some defines in the tcp/game code so doxygen can create better documentation
2011-05-01 11:30:03 +00:00
rubidium
c2ac411e69
(svn r22387) -Fix-ish [FS#4601]: Windows' recv seems to return "graceful closed" before having passed the remaining buffer which causes OpenTTD to think all connections are "incorrectly" terminated, i.e. without the "I'm leaving" packet from the client. So let the client wait a tiny bit after sending the "I'm leaving" packet and before gracefully closing the connection
2011-04-30 17:41:14 +00:00
rubidium
1c419d99bc
(svn r22364) -Codechange: don't show the (unknown) client address in the client list at clients
2011-04-22 15:57:05 +00:00
rubidium
bc9a803ea9
(svn r22362) -Codechange: NetworkFindClientInfoFromClientID -> NetworkClientInfo::GetByClientID
2011-04-22 15:54:16 +00:00
rubidium
d1a50a01b4
(svn r22308) -Fix [FS#4574]: waiting on a server could kick the client, or rather the client would kick itself due to an unexpected packet
2011-04-09 21:52:38 +00:00
terkhen
6e641777b1
(svn r22154) -Fix [FS#4529]: _current_company was modified when moving a client to spectators, causing issues in bankruptcy (Rubidium)
2011-02-27 11:38:28 +00:00
rubidium
1dc5ba2210
(svn r22063) -Change: make the "has network" check also check whether the client is actually fully connected
2011-02-11 22:10:10 +00:00
rubidium
537bd8a429
(svn r22031) -Fix: bad servers could crash a client
2011-02-08 21:45:38 +00:00
rubidium
7eba2bf4d3
(svn r21890) -Cleanup: remove some unneeded includes
2011-01-22 14:52:20 +00:00
smatz
656caf16db
(svn r21875) -Codechange: indentation of some comments was wrong
2011-01-21 01:38:30 +00:00
rubidium
795a528328
(svn r21854) -Codechange: refactor the password setting methods to make it possible to change the password of other companies (on the server)
2011-01-19 16:47:40 +00:00
rubidium
e95718bf43
(svn r21852) -Codechange: generalise GenerateCompanyPasswordHash (dihedral)
2011-01-19 16:35:11 +00:00
rubidium
c9609bbbc2
(svn r21851) -Codechange: rename NetworkClientSetPassword to NetworkClientSetCompanyPassword (dihedral)
2011-01-19 16:32:23 +00:00
rubidium
a82118f360
(svn r21850) -Codechange: move password hashing to a more general location (dihedral)
2011-01-19 16:30:09 +00:00
rubidium
b25cf57542
(svn r21701) -Codechange: ConsoleColour = TextColour, so make it that way and remove some unneeded casts
2011-01-03 12:01:41 +00:00
smatz
c6a90361fc
(svn r21693) -Codechange: no need to cast char[] to const uint8*
2011-01-01 21:41:01 +00:00
smatz
8b6a8a8935
(svn r21692) -Cleanup: remove unused extern declaration of HashCurrentCompanyPassword(), make it static
2011-01-01 21:39:52 +00:00
smatz
13456934b1
(svn r21691) -Codechange: make sure GenerateCompanyPasswordHash() behaves deterministically when/if the value of NETWORK_SERVER_ID_LENGTH is changed
2011-01-01 21:38:13 +00:00
smatz
666fbb28c2
(svn r21687) -Fix: verify the colour code we received from the server is valid
2011-01-01 17:02:29 +00:00
rubidium
5f25cdbbd5
(svn r21401) -Fix: ofcourse MSVC x64 has something to complain about...
2010-12-05 15:08:41 +00:00
rubidium
ff8a01fbd2
(svn r21400) -Fix [FS#4284]: when loading a savegame takes more than 2 seconds locally, don't see that as lag of the server. Also increase the client side's lag thresholds a bit
2010-12-05 14:49:46 +00:00
rubidium
948cffc930
(svn r21397) -Change/Feature-ish: when getting a savegame from the server, just keep it in memory instead of writing it to a file
2010-12-05 14:44:31 +00:00
rubidium
69766049ce
(svn r21396) -Codechange: rename SafeSaveOrLoad to SaveLoad (it only did load), and add support for (safe) loading with a LoadFilter
2010-12-05 14:43:10 +00:00
rubidium
97434f0e06
(svn r21392) -Change: prepare the network protocol for getting the file size later in the download process
2010-12-05 14:34:19 +00:00
rubidium
31c8ab0ed8
(svn r21361) -Change: make sure the client is listening, or rather receiving, our frames
2010-11-30 14:18:20 +00:00
rubidium
b6c2216749
(svn r21358) -Codechange: make some network function names conform to coding style
2010-11-30 13:38:46 +00:00
rubidium
67f74559fc
(svn r21334) -Fix [FS#4271]: make (more) sure that the savegame and transferred file are the same file and not different ones
2010-11-26 22:25:02 +00:00
rubidium
874abb2965
(svn r21256) -Fix [FS#4189]: Clients weren't always notified when the connection was lost
2010-11-19 15:55:53 +00:00
rubidium
8f9dcab09b
(svn r21033) -Codechange: be more strict with the packets a client accepts at a given moment
2010-10-24 20:51:12 +00:00
rubidium
2cd67a51ac
(svn r21029) -Codechange: split the map downloading packet + 3-state enum into 3 separate packets
2010-10-24 20:03:33 +00:00
rubidium
744bc2a614
(svn r21027) -Change/Fix: under some circumstances the file handle of the downloaded savegame wouldn't be closed, and validity of the handled wasn't checked in all cases
2010-10-24 16:40:02 +00:00
rubidium
3a1a915c9a
(svn r21008) -Change: don't make client reconnect waiting time depend on the company; in coop games that does not spread clients at all, and most companies have a low number causing it not to be spread out either. Use the ClientID instead. Based on a patch by dihedral.
2010-10-22 14:41:26 +00:00
rubidium
d71f590ed6
(svn r20993) -Codechange: some shuffling of game protocol packet description so they're documented in the "same" place as UDP, content and admin packets (dihedral)
2010-10-18 20:41:53 +00:00
frosch
3972c790c2
(svn r20957) -Codechange: Add another parameter to FindGRFConfig() to define search restrictions.
2010-10-17 12:12:13 +00:00
rubidium
f555e6d72e
(svn r20933) -Codechange: move some more client related methods and such to network_client.cpp
2010-10-15 19:33:08 +00:00
rubidium
7ba07d9573
(svn r20929) -Codechange: make NetworkCloseClient a class method
2010-10-15 18:42:52 +00:00
rubidium
515edee17c
(svn r20925) -Codechange: make the client send commands have a slightly more sensible name
2010-10-15 14:29:13 +00:00
rubidium
0ca7e4e82e
(svn r20924) -Codechange: make the game connection packet handling look more like UDP/content packet handling
2010-10-15 13:47:37 +00:00
rubidium
8eb07d097e
(svn r20923) -Codechange: prepare creating sub-classes of NetworkClientSocket for server and client side
2010-10-15 13:22:00 +00:00
rubidium
a4c6d07edc
(svn r20553) -Feature: allow rate limiting of incoming commands
2010-08-19 08:59:36 +00:00
rubidium
b594990071
(svn r20549) -Codechange: centralise the handling of the incoming commands (from clients and the server)
2010-08-18 22:40:17 +00:00
rubidium
e356cb9405
(svn r20281) -Codechange: unify case scope closure + break coding style
2010-08-01 18:53:30 +00:00
terkhen
88ca183191
(svn r20239) -Doc: Give a common name to all fall throughs (FALL THROUGH).
2010-07-29 14:26:28 +00:00
rubidium
99a11badaf
(svn r19996) -Codechange: Add NetworkVehicleType enum.
2010-06-19 16:37:56 +00:00
rubidium
2555522eab
(svn r19809) -Codechange: make some unnamed network related enums/defines static const variables
2010-05-13 09:04:41 +00:00
rubidium
519c8007c8
(svn r19680) -Fix [FS#3775] (r19648): when joining a MP game all clients with company ID > 0 would be shown as if they were a spectator
2010-04-20 11:29:51 +00:00
smatz
cd20724d20
(svn r19651) -Fix [FS#3745]: when a company is sold, move connected clients to spectators
2010-04-17 11:39:46 +00:00
rubidium
b907dfdef8
(svn r19648) -Fix [FS#3760]: a client would not be properly moved when moved while joining, e.g. when entering a company's password. This caused the client to be in the wrong company (according to the rest of the clients) and the client being kicked on the first command
2010-04-17 10:52:26 +00:00
smatz
11d6e21c3a
(svn r19607) -Codechange: use different packet types instead of packet subtypes
2010-04-11 17:17:12 +00:00
frosch
3926b62446
(svn r19283) -Fix (r19256): GRFConfig is not zeroed for non-dynamic construction. GRFIdentifier is sufficient though.
2010-02-27 20:26:42 +00:00
yexo
a9c8dbc0a0
(svn r19255) -Codechange: encapsulate GRFIdentifier in GRFConfig instead of subclassing it
2010-02-25 20:05:31 +00:00
alberth
33a96b5ef3
(svn r19132) -Codechange: No need to end a line with ;;.
2010-02-14 16:31:35 +00:00
smatz
73ed81b1c7
(svn r19075) -Codechange: unhackify NetworkChangeCompanyPassword()
2010-02-10 15:17:27 +00:00
rubidium
ab35d95b5a
(svn r19072) -Fix [FS#3599]: possible read/write after free when the client triggered the server to close the connection
2010-02-09 23:49:19 +00:00
rubidium
f608ad7baf
(svn r18875) -Codechange: remove some unneeded bits from the network protocol and improve the naming of some variables
2010-01-21 11:17:40 +00:00
rubidium
82fc28f77f
(svn r18809) -Codechange/Cleanup: remove unneeded headers from some files, if a header require a header make it include that header
2010-01-15 16:41:15 +00:00
rubidium
4ecb3eb33c
(svn r18804) -Codechange: guard against binaries claiming to be compatible with a future (stable) release of OpenTTD.
2010-01-14 23:06:41 +00:00
rubidium
ebe99fd493
(svn r18784) -Codechange: make NetworkSend_Command accept a company instead of using _local_company to pass that information, with the whole mess when you don't want the company to be _local_company.
2010-01-11 20:32:32 +00:00
rubidium
6a047d2316
(svn r18782) -Codechange: move the content of callback_table.cpp to network_command.cpp; it's only ever used there.
2010-01-11 20:00:14 +00:00
rubidium
b00a5f1069
(svn r18330) -Cleanup: remove some unneeded includes
2009-11-28 20:35:25 +00:00