summaryrefslogtreecommitdiff
path: root/src/network
AgeCommit message (Collapse)Author
2021-07-11Fix: "Search LAN games" used the socket after it was closed (#9437)Patric Stout
Every outgoing connection, either TCP or UDP, triggered NetworkInitialize(), which triggered NetworkUDPInitialize() which first closes all connections. Now the problem was that "Search LAN games" found a server, added it to the list, after which (over TCP) it queries the server. This closes all UDP sockets (as that makes sense, I guess?), while the UDP was still reading from it. Solve this by simply stop initializing UDP every time we make an outgoing TCP connection; instead only do it on start-up.
2021-07-11Remove: includes to network/core/config.h from headers when only three cpp ↵Rubidium
files need it
2021-07-11Add: allow setting your server visibility to "invite-only" (#9434)Patric Stout
In this mode you do register to the Game Coordinator, but your server will not show up in the public server listing. You can give your friends the invite code of the server with which they can join.
2021-07-11Feature: join servers based on their invite codePatric Stout
This removes the need to know a server IP to join it. Invite codes are small (~7 characters) indentifiers for servers, which can be exchanged with other players to join the servers.
2021-07-11Change: groundwork to allow ServerAddress to use invite codesPatric Stout
Normally TCPConnecter will do a DNS resolving of the connection_string and connect to it. But for SERVER_ADDRESS_INVITE_CODE this is different: the Game Coordinator does the "resolving". This means we need to allow TCPConnecter to not setup a connection and allow it to be told when a connection has been setup by an external (to TCPConnecter) part of the code. We do this by telling the (active) socket for the connection. This means the rest of the code doesn't need to know the TCPConnecter is not doing a simple resolve+connect. The rest of the code only cares the connection is established; not how it was established.
2021-07-11Codechange: track servers with a ServerAddress instead of a NetworkAddressPatric Stout
This allows future extensions to have different ways of referencing a server, instead of forcing to use IP:port.
2021-07-11Feature: raise the maximum NewGRF limit to 255Patric Stout
2021-07-10Feature: allow setting (game) coordinator and content server connection ↵Rubidium
strings using environment variables OTTD_COORDINATOR_CS for the game coordinator defaults to coordinator.openttd.org:3976 OTTD_CONTENT_SERVER_CS for the content server defaults to content.openttd.org:3978 OTTD_CONTENT_MIRROR_CS for the content mirror server defaults to binaries.openttd.org:80
2021-07-10Cleanup: remove unused optional ctor parameter for NetworkGameListPatric Stout
2021-07-10Remove: unused UDP protocol partsPatric Stout
2021-07-10Remove: old server listing via Master ServerPatric 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-10Remove: old server announcement to Master ServerPatric Stout
As we now use the Game Coordinator for announcements, there is no longer a need to use the Master Server for this.
2021-07-10Add: use Game Coordinator to get latest public server listingPatric Stout
2021-07-10Add: use Game Coordinator to annouce public serversPatric Stout
2021-07-10Codechange: track version of network servers to prune once out-of-datePatric Stout
2021-07-10Codechange: use UpdateNetworkGameWindow() over manually marking window dirtyPatric Stout
2021-07-09Add #9188: netsave now keeps multiple version around, similar to autosave ↵Stephan
(#9395)
2021-07-08Fix 9e32c618: network revision was always empty (#9419)Patric Stout
Shadowing the variable you intend to write in tends to do that ;)
2021-06-29Fix f7e390bd: freeaddrinfo() is not guaranteed to handle a nullptr graceful ↵Patric Stout
(#9404)
2021-06-28Add: Show the number of clients and companies in the online players window ↵TELK
(#9376)
2021-06-26Codechange: [Network] Remove overload on NetworkValidateClientNamerubidium42
Rename the zero-parameter NetworkValidateClientName to NetworkValidateOurClientName to make it clearer it is performed on our client name, and to make it a non-overloaded function to aid with the variant being added a few commits later
2021-06-17Cleanup: use nullptr instead of 0 or NULLRubidium
2021-06-15Fix: you could join an AI company in multiplayer via the GUI (#9369)SamuXarick
2021-06-15Codechange: [Network] Use std::string instead of char[] for the name of the ↵rubidium42
file that is downloading
2021-06-15Codechange: [Network] Use std::string for the client name in the network serverrubidium42
2021-06-15Codechange: [Network] Use string_view for network compatability checkrubidium42
2021-06-15Codechange: [Network] Simplify constructing the HTTP request with fmtrubidium42
2021-06-15Codechange: [Network] Let NetworkError return its std::string instead of a ↵rubidium42
C-string
2021-06-15Codechange: [Network] Make hostname/client IP return strings instead of a ↵rubidium42
C-string
2021-06-15Codechange: [Network] Let IsInNetmask use std::stringrubidium42
2021-06-15Codechange: [Network] Simplify formatting of network addresses to stringrubidium42
2021-06-14Fix: [Network] Determining GetNetworkRevisionString could overflow and ↵rubidium42
underflow its buffer Tagged releases are not affected
2021-06-13Codechange: replace IConsolePrintF with IConsolePrint and fmt formattingrubidium42
Also make some strings more consistent with the rest of the console strings.
2021-06-13Change: improve some of the console messages related to networking (make ↵rubidium42
them more uniform) and convert to fmt
2021-06-13Codechange: convert printf DEBUG statements to fmt Debug statementsrubidium42
2021-06-13Fix #9361, a2051ba: [Network] Off by one in CanWriteToPacketrubidium42
Previously it did not allow writing a byte to a packet that was of size limit - 1 anymore.
2021-06-13Fix #9362: Hover in online players window was slightly too big (#9364)TELK
This causes graphical glitches at the bottom of the window.
2021-06-10Cleanup: [Network] Remove C-string Recv_string and its last userubidium42
2021-06-10Codechange: [Network] Use std::string to get a NewGRF's namerubidium42
2021-06-10Cleanup: [ContentInfo] Remove some functions that are not needed anymorerubidium42
2021-06-10Codechange: [ContentInfo] Use std::string instead of string buffersrubidium42
2021-06-10Codechange: [ContentInfo] Use a vector for dependencies instead of custom ↵rubidium42
allocation
2021-06-10Codechange: [ContentInfo] Use StringList for tags instead of custom allocationsrubidium42
2021-06-10Codechange: [ContentInfo] Do not use memset/memcpy to make it possible to ↵rubidium42
use vector/string
2021-06-10Cleanup: [ContentInfo] Remove unused functionrubidium42
2021-06-03Fix ef991b17: server was trying to free() a packet created with "new ↵Patric Stout
CommandPacket()" (#9334)
2021-05-30Codechange: [Network] Let admin-console use std::string(_view)rubidium42
2021-05-30Codechange: [Network] Let admin-game script use std::stringrubidium42
2021-05-30Codechange: [Network] Make admin name and version std::stringrubidium42
2021-05-30Codechange: [Network] Use std::string to determine an unique name for clientsrubidium42