summaryrefslogtreecommitdiff
path: root/src/network/network_client.cpp
AgeCommit message (Collapse)Author
2021-01-05Change: move "give money" from client-list to company windowPatric Stout
This is a much better location for this button, as you send money from one company to another company, not from player to player. This is based on work done by JGRPP in: https://github.com/JGRennison/OpenTTD-patches/commit/f82054339124cc6b89c5f4f9dac2d9da62f0108b and surrounding commits, which took the work from estys: https://www.tt-forums.net/viewtopic.php?p=1183311#p1183311 We did modify it to fix several bugs and clean up the code while here anyway. The callback was removed, as it meant a modified client could prevent anyone from seeing money was transfered. The message is now generated in the command itself, making that impossible.
2021-01-02Fix: prevent clients making emergency saves twice if server disconnects (#8477)Patric Stout
This was clearly overlooked during the initial implementation.
2020-12-27Codechange: Convert some more FIO functions to take std::string.Michael Lutz
2020-12-27Codechange: Replace assert_compile macro with static_assertCharles Pigott
2020-12-16Change: send network error to the server before making an emergency save (#8387)Pavel Stupnikov
2020-02-04Feature #7756: Allow server to supply a reason to kicked/banned clientsBjarni Thor
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.
2019-12-21Codechange: Replace network related FOR_ALL with range-based for loopsglx
2019-11-10Cleanup: Removed SVN headersS. D. Cloudt
2019-04-29Codechange: Remove Company/OwnerByte typesCharles Pigott
2019-04-10Codechange: Use null pointer literal instead of the NULL macroHenry Wilson
2019-04-09Remove: AutoFreeSmallVector.Michael Lutz
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-06Codechange: Use platform independent C++11 function for sleeping on a thread.Michael Lutz
2019-03-26Cleanup: Remove unused size template parameters from SmallMap and ↵Henry Wilson
Auto[Free|Delete]SmallVector
2019-03-26Codechange: Replaced SmallVector::[Begin|End]() with std alternativesHenry Wilson
2019-03-26Codechange: Replaced SmallVector::Append() with ↵Henry Wilson
std::vector::[push|emplace]_back()
2019-03-24Codechange: Use override specifer for overriding member declarationsHenry Wilson
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-20Remove: ENABLE_NETWORK switchPatric Stout
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-07Cleanup: Remove repeated network error message on connection timeout. (#7327)SamuXarick
2019-03-03Fix #7280: Save in the right location on desync and server timeoutNiels Martin Hansen
2019-02-04Add: CompanyCtrlAction enum for CMD_COMPANY_CTRL actionsglx
2019-02-03Change: Make a shortened network revision string for use in server queriesNiels Martin Hansen
2018-06-23Feature #986: Automatic save when losing connection to a network gameNiels Martin Hansen
2017-08-13(svn r27893) -Codechange: Use fallthrough attribute. (LordAro)frosch
2016-09-04(svn r27653) -Fix(r27647): Rename FileOperation enum and values to ↵alberth
SaveLoadOperation to avoid nameclash with windows compiler toolkit.
2016-09-04(svn r27650) -Codechange: Replace SaveOrLoadMode by FileOperation and ↵alberth
DetailedFileType.
2014-10-15(svn r27020) -Cleanup: some coding style consistency improvements (mostly ↵rubidium
spaces)
2014-04-23(svn r26488) -Codechange: perform the appropriate length checks when getting ↵rubidium
a client name
2014-04-23(svn r26486) -Codechange: replace a number of snprintfs with seprintfrubidium
2014-04-23(svn r26482) -Codechange: add an include that allows us to undefine/redefine ↵rubidium
"unsafe" functions to prevent them from being used, and thus having to care about certain aspects of their return values
2013-01-08(svn r24900) -Fix [FS#5389]: Comments with typos (most fixes supplied by ↵planetmaker
Eagle_rainbow)
2012-01-17(svn r23817) -Fix [FS#4962]: desync due to different NewGRF version. So ↵rubidium
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-15(svn r23802) -Fix [FS#4968] (r23601): game lobby gui not updated when new ↵yexo
company information becomes available
2012-01-09(svn r23780) -Fix [FS#4963] (r23764): also name the two new errors ↵truebrain
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-06(svn r23764) -Fix [FS#4955]: make default timeouts for certain states lower ↵rubidium
and configurable
2012-01-03(svn r23740) -Codechange: remove some 300 unneeded includes from the .cpp filesrubidium
2011-12-19(svn r23601) -Fix: fix the conflict in window numbertruebrain
2011-12-10(svn r23476) -Codechange: use the error queue to replace switch mode error ↵rubidium
strings, again making it possible to return multiple errors
2011-12-10(svn r23475) -Codechange: queue critical error messages, so when multiple ↵rubidium
happen you won't miss any
2011-12-10(svn r23474) -Codechange: move the declaration error related functions to ↵rubidium
error.h
2011-08-21(svn r22805) -Codechange: move use of magic number for version checking to ↵rubidium
more logical location
2011-05-04(svn r22423) -Document: some network stuffrubidium
2011-05-01(svn r22400) -Codechange: replace some defines in the tcp/game code so ↵rubidium
doxygen can create better documentation
2011-04-30(svn r22387) -Fix-ish [FS#4601]: Windows' recv seems to return "graceful ↵rubidium
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-22(svn r22364) -Codechange: don't show the (unknown) client address in the ↵rubidium
client list at clients
2011-04-22(svn r22362) -Codechange: NetworkFindClientInfoFromClientID -> ↵rubidium
NetworkClientInfo::GetByClientID
2011-04-09(svn r22308) -Fix [FS#4574]: waiting on a server could kick the client, or ↵rubidium
rather the client would kick itself due to an unexpected packet
2011-02-27(svn r22154) -Fix [FS#4529]: _current_company was modified when moving a ↵terkhen
client to spectators, causing issues in bankruptcy (Rubidium)
2011-02-11(svn r22063) -Change: make the "has network" check also check whether the ↵rubidium
client is actually fully connected
2011-02-08(svn r22031) -Fix: bad servers could crash a clientrubidium
2011-01-22(svn r21890) -Cleanup: remove some unneeded includesrubidium