summaryrefslogtreecommitdiff
path: root/src/network/network_udp.cpp
AgeCommit message (Collapse)Author
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.
2020-05-21Codechange: Replace custom linked list for GRF texts with STL vectors and ↵Michael Lutz
strings.
2019-12-21Codechange: Replace FOR_ALL_COMPANIES with range-based for loopsglx
2019-11-10Cleanup: Removed SVN headersS. D. Cloudt
2019-04-10Codechange: Use null pointer literal instead of the NULL macroHenry Wilson
2019-04-06Codechange: Replace custom thread code with C++11 thread objects.Michael Lutz
We assume a conforming C++11 compiler environment that has a valid <thread>-header. Failure to run a real thread is handled gracefully.
2019-04-06Codechange: Replace custom mutex code with C++11 mutex'es.Michael Lutz
A conforming compiler with a valid <mutex>-header is expected. Most parts of the code assume that locking a mutex will never fail unexpectedly, which is generally true on all common platforms that don't just pretend to be C++11. The use of condition variables in driver code is checked.
2019-03-26Codechange: Replaced SmallVector::[Begin|End]() with std alternativesHenry Wilson
2019-03-26Codechange: Replace SmallVector::Clear() with std::vector::clear()Henry Wilson
2019-03-24Codechange: Use override keyword in networking classes.peter1138
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-02-03Change: Make a shortened network revision string for use in server queriesNiels Martin Hansen
2016-10-30(svn r27670) -Add: [FS#6471] Assign descriptive names to (GNU pthread) ↵frosch
threads. (JGR)
2015-09-19(svn r27400) -Fix [FS#6368] (r26449): when a dedicated server was paused ↵rubidium
with no clients the tick length was increased significantly, making any assumptions about the tick length used further down in the code are not true anymore. One of such assumptions was that one should readvertise every 15 minutes worth of original ticks, but due to the lengthening this timeframe would be more like 45-60 minutes. Now we'll take the operating system's millisecond counter instead
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-03-25(svn r24070) -Fix [FS#5098]: the 'last joined' server was not properly ↵rubidium
selected anymore (adf88)
2012-01-05(svn r23754) -Fix (r23752): the locks aren't reentrantrubidium
2012-01-04(svn r23752) -Fix [FS#4938]: missing locking causing crash is extreme case ↵rubidium
when being in the MP lobby
2012-01-04(svn r23751) -Codechange: rename NetworkUDPGameLoop to a more descriptive ↵rubidium
name, and move the UDP specific bits to network_udp
2011-12-11(svn r23494) -Feature: [NewGRF] action14 node INFO->URL_ to add an urlyexo
2011-07-30(svn r22695) -Fix [FS#4697]: mark addresses that could not be resolved as ↵rubidium
'do not resolve anymore' as well, instead of trying to resolve them each and every time the address is accessed
2011-05-04(svn r22423) -Document: some network stuffrubidium
2011-05-01(svn r22401) -Codechange: replace some defines in the udp code so doxygen ↵rubidium
can create better documentation
2011-03-03(svn r22162) -Fix [FS#4533]: No update of NewGRF window when unknown GRF ↵yexo
name becomes available
2010-12-11(svn r21463) -Fix [FS#4296] (r21405): when packets are filled their pos and ↵rubidium
size aren't the same as when they're read. As a check was incorrect.
2010-12-05(svn r21417) -Fix: ofcourse MSVC x64 has something to complain aboutrubidium
2010-12-05(svn r21405) -Codechange: prepare sending of company information in the UDP ↵rubidium
packet for longer company names (in bytes), by truncating the names if needed
2010-11-30(svn r21358) -Codechange: make some network function names conform to coding ↵rubidium
style
2010-10-17(svn r20957) -Codechange: Add another parameter to FindGRFConfig() to define ↵frosch
search restrictions.
2010-07-31(svn r20249) -Codechange: change the newgrf name/description from a char* to ↵yexo
a GRFText* to make translations possible
2010-07-24(svn r20211) -Codechange: Indented code should have curly braces around it.alberth
2010-05-13(svn r19814) -Codechange: give some more unnamed enums a name, in case they ↵rubidium
consisted of unrelated values use static const (u)int
2010-02-28(svn r19295) -Codechange: introduce wrapper functions for GRFConfig::name/infoyexo
2010-02-27(svn r19283) -Fix (r19256): GRFConfig is not zeroed for non-dynamic ↵frosch
construction. GRFIdentifier is sufficient though.
2010-02-25(svn r19255) -Codechange: encapsulate GRFIdentifier in GRFConfig instead of ↵yexo
subclassing it
2010-02-11(svn r19094) -Codechange: don't check for NULL values before calling StrEmptyyexo
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
2010-01-06(svn r18746) -Fix [FS#3489]: clear the cached NewGRFs of a server when ↵rubidium
receiving a reply instead of when requesting the information. With slow/unstable network connections it would look like the NewGRF settings button went randomly missing.
2009-11-09(svn r18028) -Codechange: unglobalise some functionsrubidium
2009-11-09(svn r18027) -Codechange: make some unneededly global variables static and ↵rubidium
remove some unused variables
2009-10-04(svn r17701) -Codechange: don't start line with a space if it's not inside ↵smatz
comment
2009-10-04(svn r17693) -Cleanup: remove some unneeded includesrubidium
2009-09-01(svn r17339) -Codechange: move thread related files to their own directory ↵rubidium
(like done for video, music, sound, etc)
2009-08-21(svn r17248) -Fix: add GPL license notice where appropriaterubidium
2009-06-13(svn r16573) -Fix: [Network] Always send the starting date from the game ↵rubidium
you're currently playing instead the starting date from the config file.
2009-05-22(svn r16379) -Codechange: remove GetNumTowns(), GetNumIndustries() and ↵smatz
GetActiveCompanyCount(), use PoolItem::GetNumItems() instead
2009-05-10(svn r16265) -Fix (r16238): wrong format string for debug outputsmatz
2009-05-06(svn r16238) -Change: improve/clarify some network related debug "error" ↵rubidium
messages by adding more information to them. Also give some clues on how to fix certain issues (like failing advertising).