Patric Stout
e4d216e44b
Feature: join servers based on their invite code
...
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-11 20:38:42 +02:00
Patric Stout
1baec41542
Change: groundwork to allow ServerAddress to use invite codes
...
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-11 20:38:42 +02:00
Patric Stout
cee8174d02
Codechange: track servers with a ServerAddress instead of a NetworkAddress
...
This allows future extensions to have different ways of referencing
a server, instead of forcing to use IP:port.
2021-07-11 20:38:42 +02:00
Patric Stout
f4dd2d88c7
Feature: raise the maximum NewGRF limit to 255
2021-07-11 12:16:07 +02:00
Rubidium
e99134654b
Feature: allow setting (game) coordinator and content server connection 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-10 23:09:45 +02:00
Patric Stout
de7ab2eb1c
Cleanup: remove unused optional ctor parameter for NetworkGameList
2021-07-10 20:17:07 +02:00
Patric Stout
6212d0a8da
Remove: unused UDP protocol parts
2021-07-10 20:17:07 +02:00
Patric Stout
8a2da49413
Remove: old server listing via Master Server
...
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 20:17:07 +02:00
Patric Stout
61fdef8457
Remove: old server announcement to Master Server
...
As we now use the Game Coordinator for announcements, there is no
longer a need to use the Master Server for this.
2021-07-10 20:17:07 +02:00
Patric Stout
aa93d76223
Add: use Game Coordinator to get latest public server listing
2021-07-10 20:17:07 +02:00
Patric Stout
b1280fd17e
Add: use Game Coordinator to annouce public servers
2021-07-10 20:17:07 +02:00
Patric Stout
e1e2212e0e
Codechange: track version of network servers to prune once out-of-date
2021-07-10 20:17:07 +02:00
Patric Stout
cbaac5609f
Codechange: use UpdateNetworkGameWindow() over manually marking window dirty
2021-07-10 20:17:07 +02:00
Stephan
a70aa5df49
Add #9188 : netsave now keeps multiple version around, similar to autosave ( #9395 )
2021-07-09 21:44:02 +02:00
Patric Stout
852e056d6f
Fix 9e32c618
: network revision was always empty ( #9419 )
...
Shadowing the variable you intend to write in tends to do that ;)
2021-07-08 12:29:16 +02:00
Patric Stout
d38079d053
Fix f7e390bd
: freeaddrinfo() is not guaranteed to handle a nullptr graceful ( #9404 )
2021-06-29 23:02:25 +02:00
TELK
f9b4a3a5e6
Add: Show the number of clients and companies in the online players window ( #9376 )
2021-06-28 18:42:23 +02:00
rubidium42
cdf9caf8ea
Codechange: [Network] Remove overload on NetworkValidateClientName
...
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-26 20:28:34 +02:00
Rubidium
f904aef176
Cleanup: use nullptr instead of 0 or NULL
2021-06-17 16:18:30 +02:00
SamuXarick
d0bcb9839a
Fix: you could join an AI company in multiplayer via the GUI ( #9369 )
2021-06-15 14:00:50 +02:00
rubidium42
05005dcdfa
Codechange: [Network] Use std::string instead of char[] for the name of the file that is downloading
2021-06-15 06:13:00 +02:00
rubidium42
981cd0197a
Codechange: [Network] Use std::string for the client name in the network server
2021-06-15 06:13:00 +02:00
rubidium42
a8b3afb236
Codechange: [Network] Use string_view for network compatability check
2021-06-15 06:13:00 +02:00
rubidium42
49dcf0c772
Codechange: [Network] Simplify constructing the HTTP request with fmt
2021-06-15 06:13:00 +02:00
rubidium42
53b4786037
Codechange: [Network] Let NetworkError return its std::string instead of a C-string
2021-06-15 06:13:00 +02:00
rubidium42
667301e3ec
Codechange: [Network] Make hostname/client IP return strings instead of a C-string
2021-06-15 06:13:00 +02:00
rubidium42
a91e29b656
Codechange: [Network] Let IsInNetmask use std::string
2021-06-15 06:13:00 +02:00
rubidium42
36705f1dc0
Codechange: [Network] Simplify formatting of network addresses to string
2021-06-15 06:13:00 +02:00
rubidium42
9e32c618f9
Fix: [Network] Determining GetNetworkRevisionString could overflow and underflow its buffer
...
Tagged releases are not affected
2021-06-14 23:05:18 +02:00
rubidium42
eb6cdadc4d
Codechange: replace IConsolePrintF with IConsolePrint and fmt formatting
...
Also make some strings more consistent with the rest of the console strings.
2021-06-13 15:25:31 +02:00
rubidium42
d9c1d18f2b
Change: improve some of the console messages related to networking (make them more uniform) and convert to fmt
2021-06-13 15:25:31 +02:00
rubidium42
55a11710a6
Codechange: convert printf DEBUG statements to fmt Debug statements
2021-06-13 12:45:45 +02:00
rubidium42
845fded2a0
Fix #9361 , a2051ba
: [Network] Off by one in CanWriteToPacket
...
Previously it did not allow writing a byte to a packet that was of size limit - 1 anymore.
2021-06-13 10:31:02 +02:00
TELK
2d0abf5a76
Fix #9362 : Hover in online players window was slightly too big ( #9364 )
...
This causes graphical glitches at the bottom of the window.
2021-06-13 10:06:50 +02:00
rubidium42
bb8fd00760
Cleanup: [Network] Remove C-string Recv_string and its last use
2021-06-10 21:53:19 +02:00
rubidium42
ab9b937ab7
Codechange: [Network] Use std::string to get a NewGRF's name
2021-06-10 21:53:19 +02:00
rubidium42
e2417193c9
Cleanup: [ContentInfo] Remove some functions that are not needed anymore
2021-06-10 20:09:44 +02:00
rubidium42
e3717ae903
Codechange: [ContentInfo] Use std::string instead of string buffers
2021-06-10 20:09:44 +02:00
rubidium42
df181bb641
Codechange: [ContentInfo] Use a vector for dependencies instead of custom allocation
2021-06-10 20:09:44 +02:00
rubidium42
9c424ab741
Codechange: [ContentInfo] Use StringList for tags instead of custom allocations
2021-06-10 20:09:44 +02:00
rubidium42
dfb89f3891
Codechange: [ContentInfo] Do not use memset/memcpy to make it possible to use vector/string
2021-06-10 20:09:44 +02:00
rubidium42
6bb3f034e4
Cleanup: [ContentInfo] Remove unused function
2021-06-10 20:09:44 +02:00
Patric Stout
5e44da3010
Fix ef991b17
: server was trying to free() a packet created with "new CommandPacket()" ( #9334 )
2021-06-03 22:07:44 +02:00
rubidium42
8c273ed598
Codechange: [Network] Let admin-console use std::string(_view)
2021-05-30 10:15:22 +02:00
rubidium42
e58581f1f8
Codechange: [Network] Let admin-game script use std::string
2021-05-30 10:15:22 +02:00
rubidium42
8a918ce170
Codechange: [Network] Make admin name and version std::string
2021-05-30 10:15:22 +02:00
rubidium42
e3c9ed4d15
Codechange: [Network] Use std::string to determine an unique name for clients
2021-05-30 00:01:49 +02:00
rubidium42
806f78aa04
Codechange: [Network] Use std::string to send the client name and rcon commands
2021-05-30 00:01:49 +02:00
rubidium42
fd95736bac
Codechange: [Network] Use std::string for server side logic of kicking and banning clients
2021-05-30 00:01:49 +02:00
rubidium42
f0e1cd0129
Codechange: [Network] Let server rcon result use std::string
2021-05-30 00:01:49 +02:00