Age | Commit message (Collapse) | Author | |
---|---|---|---|
2021-07-10 | Remove: old server listing via Master Server | Patric Stout | |
This removes all UDP from the game except for a local broadcast to find LAN games. So long Master Server, and tnx for all the fish! | |||
2021-07-10 | Add: use Game Coordinator to get latest public server listing | Patric Stout | |
2021-07-10 | Add: use Game Coordinator to annouce public servers | Patric Stout | |
2021-07-08 | Fix 9e32c618: network revision was always empty (#9419) | Patric Stout | |
Shadowing the variable you intend to write in tends to do that ;) | |||
2021-06-29 | Fix f7e390bd: freeaddrinfo() is not guaranteed to handle a nullptr graceful ↵ | Patric Stout | |
(#9404) | |||
2021-06-17 | Cleanup: use nullptr instead of 0 or NULL | Rubidium | |
2021-06-15 | Codechange: [Network] Use string_view for network compatability check | rubidium42 | |
2021-06-15 | Codechange: [Network] Simplify constructing the HTTP request with fmt | rubidium42 | |
2021-06-15 | Codechange: [Network] Let NetworkError return its std::string instead of a ↵ | rubidium42 | |
C-string | |||
2021-06-15 | Codechange: [Network] Make hostname/client IP return strings instead of a ↵ | rubidium42 | |
C-string | |||
2021-06-15 | Codechange: [Network] Let IsInNetmask use std::string | rubidium42 | |
2021-06-15 | Codechange: [Network] Simplify formatting of network addresses to string | rubidium42 | |
2021-06-14 | Fix: [Network] Determining GetNetworkRevisionString could overflow and ↵ | rubidium42 | |
underflow its buffer Tagged releases are not affected | |||
2021-06-13 | Codechange: convert printf DEBUG statements to fmt Debug statements | rubidium42 | |
2021-06-13 | Fix #9361, a2051ba: [Network] Off by one in CanWriteToPacket | rubidium42 | |
Previously it did not allow writing a byte to a packet that was of size limit - 1 anymore. | |||
2021-06-10 | Cleanup: [Network] Remove C-string Recv_string and its last use | rubidium42 | |
2021-06-10 | Cleanup: [ContentInfo] Remove some functions that are not needed anymore | rubidium42 | |
2021-06-10 | Codechange: [ContentInfo] Use std::string instead of string buffers | rubidium42 | |
2021-06-10 | Codechange: [ContentInfo] Use a vector for dependencies instead of custom ↵ | rubidium42 | |
allocation | |||
2021-06-10 | Codechange: [ContentInfo] Use StringList for tags instead of custom allocations | rubidium42 | |
2021-06-10 | Codechange: [ContentInfo] Do not use memset/memcpy to make it possible to ↵ | rubidium42 | |
use vector/string | |||
2021-06-10 | Cleanup: [ContentInfo] Remove unused function | rubidium42 | |
2021-05-30 | Codechange: [Network] Make admin name and version std::string | rubidium42 | |
2021-05-29 | Codechange: rename str_validate to StrMakeValid(InPlace) (#9304) | Patric Stout | |
This to be more explicit the function changes the value, and not returns yes/no. | |||
2021-05-24 | Fix: Network on Haiku, remove old code for BeOS | milek7 | |
2021-05-15 | Change: Use gender-neutral pronouns | rubidium42 | |
2021-05-15 | Fix: comparison of narrow type to wide type in loop (potential for infinite ↵ | Rubidium | |
loops) | |||
2021-05-15 | Fix: [Network] Check on CIDR for netmask check considered everything valid | Rubidium | |
2021-05-13 | Codechange: move passwords in settings to std::string | rubidium42 | |
2021-05-13 | Codechange: [Network] split CloseSocket and CloseConnection more clearly (#9261) | Patric Stout | |
* Codechange: [Network] split CloseSocket and CloseConnection more clearly - CloseSocket now closes the actual OS socket. - CloseConnection frees up the resources to just before CloseSocket. - dtors call CloseSocket / CloseConnection where needed. | |||
2021-05-13 | Codechange: remove pointless close call due to resolving virtual functions ↵ | Rubidium | |
statically in destructors In the destructors of many of the network related classes Close() is called, just like the top class in that hierarchy. However, due to virtual functions getting resolved statically in the destructor it would always call the empty Close() of the top class. Document the other cases where a virtual call is resolved statically. | |||
2021-05-13 | Fix #9255: [Network] TCPConnecter crashes when hostname not found (#9259) | Patric Stout | |
2021-05-12 | Change: reworked the debug levels for network facility (#9251) | Patric Stout | |
It now follows very simple rules: 0 - Fatal, user should know about this 1 - Error, but we are recovering 2 - Warning, wrong but okay if you don't know 3 - Info, information you might care about 4 - 5 - Debug #1 - High level debug messages 6 - Debug #2 - Low level debug messages 7 - Trace information | |||
2021-05-11 | Fix: [Network] clients leaving because of broken connections was not ↵ | Patric Stout | |
broadcasted (#9238) The code mixed up "client has quit but we already told everyone" with "client lost connection, handle this". Split up those two signals: - CLIENT_QUIT means we told everyone and the connection is now dead - CONNECTION_LIST means we should tell everyone we lost a client | |||
2021-05-10 | Change: reworded many of the network errors during connect/listen (#9230) | Patric Stout | |
Also changed some levels to 0, as a failing listen() is something we should tell the user about. Hiding this information is a bit evil. | |||
2021-05-08 | Fix: destroying a TCPConnecter that was still resolving made illegal writes | Patric Stout | |
Basically, we should join the resolve thread before we destruct the object. | |||
2021-05-08 | Codechange: move connection_string to private for TCPConnecter | Patric Stout | |
The most common case never needs access to it anymore. Make the one exception to this explicit. This means the fact that we store it is now an implementation detail. | |||
2021-05-08 | Fix f7e390bd: getpeername() doesn't work on closed sockets (#9213) | Patric Stout | |
2021-05-06 | Feature: use Happy Eyeballs to make network connections (TCP-only) (#9199) | Patric Stout | |
Hostnames like "content.openttd.org" resolve into multiple IPv4 and IPv6. It is possible that either of the IPs is not working, either due to a poorly configured OS (having IPv6 but no valid route), broken network paths, or a service that is temporary unavailable. Instead of trying the IPs one by one, waiting for a 3s timeout between each, be a bit more like browsers, and stack attempts on top of each other with slight delays. This is called Happy Eyebells. Initially, try the first IPv6 address. If within 250ms there is no connection yet, try the first IPv4 address. 250ms later, try the second IPv6 address, etc, till all addresses are tried. If any connection is created, abort all the other (pending) connections and use the one that is created. If all fail 3s after the last connect(), trigger a timeout for all. | |||
2021-05-06 | Codechange: [Network] Use std::string for NetworkGameInfo | rubidium42 | |
2021-05-06 | Codechange: [Network] Use std::string for NetworkAddress' host name | rubidium42 | |
2021-05-05 | Codechange: use connection_string in favour of NetworkAddress (#9197) | Patric Stout | |
We now resolve the connection_string to a NetworkAddress in a much later state. This means there are fewer places constructing a NetworkAddress. The main benefit of this is in later PRs that introduce different types of NetworkAddresses. Storing this in things like NetworkGameList is rather complex, especially as NetworkAddress has to be mutable at all times. Additionally, the NetworkAddress is a complex object to store simple information: how to connect to this server. | |||
2021-05-05 | Cleanup: [Network] Remove variable from NetworkGameInfo that is only used ↵ | Rubidium | |
during deserialisation | |||
2021-05-05 | Change: [Network] Update server's NetworkServerGameInfo only when needed | rubidium42 | |
Split the updating in a "static" version that only needs to be called when a new map is loaded or some settings are changed, and a "dynamic" version that updates everything that changes regularly such as the current game date or the number of spectators. | |||
2021-05-05 | Codechange: [Network] Use a single NetworkServerGameInfo object at server ↵ | rubidium42 | |
side and serialize that for the clients | |||
2021-05-03 | Add: [Network] Reading std::string from a packet | rubidium42 | |
2021-05-03 | Add: [Network] Writing std::string to a packet | rubidium42 | |
2021-05-01 | Codechange: move some OS abstraction method implementations out of the header | rubidium42 | |
2021-05-01 | Codechange: encapsulate network error handling | rubidium42 | |
2021-05-01 | Codechange: rename NetworkError to ShowNetworkError | rubidium42 | |