summaryrefslogtreecommitdiff
path: root/src/network/core/udp.cpp
AgeCommit message (Collapse)Author
2021-04-24Codechange: encapsulate writing data from Packets into sockets/files/buffers ↵Rubidium
to prevent packet state modifications outside of the Packet
2021-04-24Codechange: encapsulate reading data from sockets into Packets to prevent ↵Rubidium
packet state modifications outside of the Packet
2021-04-24Codechange: move more logic about packet size validity and reading into PacketRubidium
2021-04-20Remove: "language" field from server/clientPatric Stout
The original idea was that people could find a server they could talk in their native language on. This isn't really used in that way. There are several reasons for removing this: - the client also sends his "language" to the server, but nothing is doing anything with this. - flags are a bad way to represent languages, and over the years we had several (rightfully) complaints about this. - most servers have their language set to "All", and prefix the servername with the language it is about. This is a much more efficient way to do the same. All in all, this feature should go back to the drawing board. Maybe it could work in another form, but this form is not it.
2021-04-20Remove: "map_name" from server announcements / listingPatric Stout
The idea back in the days was nice, but it never resulted in anything useful. Most servers either read "(loaded game)" or "Random Map", neither being useful. It was meant for heightmaps, so you could find a server that was using a specific one .. but there are many things wrong with that idea. Mostly, servers tend to save and load savegames from time to time, after which the original heightmap used was lost. All in all, removing map_name all together is just better.
2020-12-15Fix: workarounds for two emscripten bugs in the network stackPatric Stout
2020-06-21Fix: Thread unsafe use of NetworkAddress::GetAddressAsStringJonathan G Rennison
Remove static buffer form of NetworkAddress::GetAddressAsString. This is used in multiple threads concurrently, and is not thread-safe. Replace it with a form returning std::string.
2019-11-10Cleanup: Removed SVN headersS. D. Cloudt
2019-04-10Codechange: Use null pointer literal instead of the NULL macroHenry Wilson
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-26Codechange: Replace SmallVector::Length() with std::vector::size()Henry Wilson
2019-03-26Codechange: Replace SmallVector::Clear() with std::vector::clear()Henry Wilson
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-05Remove: BeOS support (deprecated by Haiku)Patric Stout
In 10 years there is no commit to change how BeOS works, and we have no active maintainer for it. It is unlikely it works in its current state (but not impossible). With the arrival of SDL2 (and removal of SDL), BeOS is no longer support. SDL2 suggests to use Haiku instead of BeOS.
2018-04-30Fix b4b98e5165: Use FALLTHROUGH attribute with correct indentation.J0an Josep
2017-08-13(svn r27893) -Codechange: Use fallthrough attribute. (LordAro)frosch
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-11-22(svn r26046) -Fix: handle a number of failure conditions from methods called ↵rubidium
in the network code
2013-07-13(svn r25593) -Cleanup: remove a few stale #definesrubidium
2012-09-19(svn r24532) -Change: try to read more UDP packets per game looprubidium
2011-11-12(svn r23193) -Codechange: don't cast away const unneededlyrubidium
2011-05-01(svn r22401) -Codechange: replace some defines in the udp code so doxygen ↵rubidium
can create better documentation
2010-11-30(svn r21358) -Codechange: make some network function names conform to coding ↵rubidium
style
2010-11-30(svn r21357) -Codechange: make it possible to resize the packet's bufferrubidium
2010-08-01(svn r20289) -Codechange: Unify fall through coding style.terkhen
2010-07-29(svn r20239) -Doc: Give a common name to all fall throughs (FALL THROUGH).terkhen
2010-03-23(svn r19508) -Codechange: remove semicolon after ↵smatz
DEFINE_UNAVAILABLE_CONTENT_RECEIVE_COMMAND and DEFINE_UNAVAILABLE_UDP_RECEIVE_COMMAND
2010-02-25(svn r19256) -Codechange: use a constructor/destructor for GRFConfig to make ↵yexo
sure all members are properly initialized
2010-02-25(svn r19255) -Codechange: encapsulate GRFIdentifier in GRFConfig instead of ↵yexo
subclassing it
2010-01-15(svn r18809) -Codechange/Cleanup: remove unneeded headers from some files, ↵rubidium
if a header require a header make it include that header
2009-11-03(svn r17963) -Codechange: some documentation stylerubidium
2009-10-04(svn r17693) -Cleanup: remove some unneeded includesrubidium
2009-08-21(svn r17248) -Fix: add GPL license notice where appropriaterubidium
2009-06-19(svn r16601) -Fix [FS#2880]: try 2... hopefully better this timerubidium
2009-04-09(svn r16000) -Feature: IPv6 supportrubidium
2009-04-08(svn r15975) -Codechange: register each of the IPs we have bound to to the ↵rubidium
masterserver
2009-04-08(svn r15972) -Codechange: remove unneeded parameterrubidium
2009-04-07(svn r15971) -Codechange: make it possible for UDP socket handlers to bind ↵rubidium
to multiple sockets.
2009-04-07(svn r15967) -Codechange: do not access NetworkSocketHandler::has_quit directlyrubidium
2009-04-05(svn r15961) -Codechange: prepare the 'client' side for receiving 'session ↵rubidium
keys' from the masterserver so servers can register with multiple IPs as the same server.
2009-04-03(svn r15922) -Codechange: unify the ways to listen on a socketrubidium
2009-04-03(svn r15921) -Fix: some OSes don't like sizeof(sockaddr_storage) but want ↵rubidium
sizeof(sockaddr) or whatever is 'valid' for the given protocol
2009-04-02(svn r15918) -Fix (r15917): comparing IPs sometimes failed due to 'random' ↵rubidium
data (as spotted by SpComb)
2009-04-02(svn r15915) -Codechange: let the udp code use NetworkAddress.rubidium
2009-03-15(svn r15718) -Cleanup: apply some comment coding style on the rest of the ↵rubidium
sources too
2008-08-25(svn r14174) -Fix: since now, we are 'losing' things, not 'loosing'smatz
2008-04-09(svn r12637) -Fix [FS#1913]: possible NULL pointer dereference when reading ↵rubidium
some NewGRF data.
2007-12-26(svn r11702) -Codechange: move all date related stuff to date*.rubidium
2007-12-25(svn r11691) -Codechange: move+rename helpers.hpp and only include it when ↵rubidium
it is really needed.