Jonathan G Rennison
eaf5908a0b
Add a constant for SERVER_GAME_INFO_EXTENDED max version
...
Set max version correctly in QueryNetworkGameSocketHandler::SendGameInfo
3 years ago
Jonathan G Rennison
324e90e5ac
Merge branch 'master' into jgrpp-beta
...
# Conflicts:
# src/lang/arabic_egypt.txt
# src/lang/english.txt
# src/lang/greek.txt
# src/network/core/tcp_connect.cpp
# src/network/network_client.cpp
# src/network/network_client.h
# src/pathfinder/npf/npf.cpp
# src/pathfinder/yapf/yapf_ship.cpp
# src/rail_gui.cpp
# src/settings_table.cpp
# src/settings_type.h
# src/station_cmd.cpp
# src/table/settings/gui_settings.ini
# src/town_cmd.cpp
# src/widgets/rail_widget.h
3 years ago
Jonathan G Rennison
9e1bb3eea7
Merge tag '12.0-beta2' into jgrpp-beta
...
# Conflicts:
# docs/landscape_grid.html
# src/lang/simplified_chinese.txt
# src/network/network_server.cpp
# src/station_cmd.cpp
3 years ago
Jonathan G Rennison
faf32200cf
Merge tag '12.0-beta1' into jgrpp-beta
...
# Conflicts:
# CMakeLists.txt
# bin/ai/CMakeLists.txt
# bin/game/CMakeLists.txt
# src/build_vehicle_gui.cpp
# src/console_cmds.cpp
# src/core/overflowsafe_type.hpp
# src/fios.cpp
# src/lang/english.txt
# src/lang/german.txt
# src/lang/korean.txt
# src/lang/polish.txt
# src/network/core/game_info.cpp
# src/network/core/game_info.h
# src/network/core/tcp_game.cpp
# src/network/core/tcp_game.h
# src/network/network.cpp
# src/network/network_client.cpp
# src/network/network_client.h
# src/network/network_coordinator.cpp
# src/network/network_gui.cpp
# src/network/network_server.cpp
# src/network/network_server.h
# src/newgrf_engine.cpp
# src/openttd.cpp
# src/rev.cpp.in
# src/settings_type.h
# src/train.h
# src/train_cmd.cpp
3 years ago
Jonathan G Rennison
f764fcfb1f
Merge branch 'master' into jgrpp-beta
...
# Conflicts:
# src/console_cmds.cpp
# src/debug.cpp
# src/lang/vietnamese.txt
# src/network/core/address.cpp
# src/network/core/address.h
# src/network/core/config.h
# src/network/core/os_abstraction.cpp
# src/network/core/os_abstraction.h
# src/network/core/tcp_listen.h
# src/network/core/udp.cpp
# src/network/core/udp.h
# src/network/network.cpp
# src/network/network_client.cpp
# src/network/network_gamelist.cpp
# src/network/network_server.cpp
# src/network/network_udp.cpp
# src/newgrf.cpp
# src/openttd.cpp
# src/saveload/saveload.h
# src/settings.cpp
# src/settings_table.cpp
# src/settings_type.h
# src/table/settings/network_settings.ini
3 years ago
Jonathan G Rennison
62afd94b47
Merge branch 'master' into jgrpp-beta
...
# Conflicts:
# src/company_cmd.cpp
# src/economy.cpp
# src/lang/swedish.txt
# src/network/network_command.cpp
# src/news_gui.cpp
# src/saveload/saveload.h
# src/script/api/script_list.cpp
# src/video/cocoa/cocoa_v.mm
# src/video/sdl2_v.cpp
3 years ago
Jonathan G Rennison
61cc60099a
Merge branch 'jgrpp' into jgrpp-beta
...
# Conflicts:
# src/network/core/packet.cpp
# src/network/core/udp.cpp
3 years ago
Jonathan G Rennison
4a57625183
Avoid cast warnings in network packet handling
...
See: #307
3 years ago
Jonathan G Rennison
0842621653
Remove unused _network_udp_mutex
...
See: #307
3 years ago
Jonathan G Rennison
24c6dfe872
Merge branch 'master' into jgrpp-beta
3 years ago
Jonathan G Rennison
da282c3ecc
Merge branch 'master' into jgrpp-beta
...
# Conflicts:
# .github/workflows/ci-build.yml
# CMakeLists.txt
# src/lang/finnish.txt
# src/lang/french.txt
# src/lang/korean.txt
# src/lang/norwegian_bokmal.txt
# src/lang/russian.txt
# src/lang/spanish.txt
# src/misc_gui.cpp
# src/newgrf.cpp
3 years ago
Jonathan G Rennison
81290df946
Merge branch 'master' into jgrpp-beta
...
# Conflicts:
# src/lang/spanish.txt
# src/network/core/tcp_content_type.h
# src/network/network_content.cpp
# src/saveload/cheat_sl.cpp
# src/saveload/saveload.cpp
# src/saveload/saveload.h
# src/saveload/station_sl.cpp
# src/saveload/vehicle_sl.cpp
# src/settings.cpp
# src/settings_internal.h
# src/table/settings.h.preamble
# src/table/settings/company_settings.ini
# src/table/settings/currency_settings.ini
# src/table/settings/gameopt_settings.ini
# src/table/settings/misc_settings.ini
# src/table/settings/settings.ini
# src/table/settings/win32_settings.ini
# src/table/settings/window_settings.ini
3 years ago
glx22
1c0700e0c0
Fix #9624 : compilation with RANDOM_DEBUG
3 years ago
Jonathan G Rennison
a9c2c7288a
Fix compilation when ENABLE_NETWORK_SYNC_EVERY_FRAME is defined
...
This is set by RANDOM_DEBUG
See also: https://github.com/OpenTTD/OpenTTD/issues/9624
3 years ago
Jonathan G Rennison
544da99102
Merge branch 'master' into jgrpp-beta
...
# Conflicts:
# src/cargopacket.h
# src/lang/korean.txt
# src/linkgraph/linkgraph.h
# src/linkgraph/linkgraphjob.h
# src/linkgraph/linkgraphschedule.h
# src/network/network_admin.h
# src/network/network_func.h
# src/network/network_server.cpp
# src/network/network_server.h
# src/order_base.h
# src/rail_cmd.cpp
# src/saveload/company_sl.cpp
# src/saveload/depot_sl.cpp
# src/saveload/economy_sl.cpp
# src/saveload/linkgraph_sl.cpp
# src/saveload/map_sl.cpp
# src/saveload/newgrf_sl.cpp
# src/saveload/order_sl.cpp
# src/saveload/saveload.cpp
# src/saveload/saveload.h
# src/saveload/signs_sl.cpp
# src/saveload/station_sl.cpp
# src/saveload/subsidy_sl.cpp
# src/saveload/town_sl.cpp
# src/saveload/vehicle_sl.cpp
# src/script/api/script_object.cpp
# src/settings.cpp
# src/string.cpp
# src/string_func.h
# src/table/CMakeLists.txt
# src/table/settings/settings.ini
# src/viewport_sprite_sorter_sse4.cpp
3 years ago
Jonathan G Rennison
406b81abb1
Merge branch 'master' into jgrpp-beta
...
# Conflicts:
# src/economy.cpp
# src/lang/traditional_chinese.txt
# src/order_gui.cpp
# src/settings.cpp
# src/settings_internal.h
# src/table/company_settings.ini
# src/table/currency_settings.ini
# src/table/gameopt_settings.ini
# src/table/misc_settings.ini
# src/table/settings.h.preamble
# src/table/settings.ini
# src/table/win32_settings.ini
# src/table/window_settings.ini
3 years ago
Jonathan G Rennison
784fcbd1e7
Merge branch 'master' into jgrpp-beta
...
# Conflicts:
# src/settings.cpp
# src/settings_gui.cpp
# src/settings_internal.h
# src/table/currency_settings.ini
# src/table/gameopt_settings.ini
# src/table/misc_settings.ini
# src/table/settings.h.preamble
3 years ago
Charles Pigott
3b7daca832
Change: Don't use 'server address' string in server list when displaying an invite code ( #9615 )
3 years ago
Jonathan G Rennison
4042480806
Merge branch 'jgrpp' into jgrpp-beta
...
# Conflicts:
# src/settings.cpp
# src/settings_gui.cpp
# src/settings_internal.h
# src/table/company_settings.ini
# src/table/currency_settings.ini
# src/table/gameopt_settings.ini
# src/table/misc_settings.ini
# src/table/settings.h.preamble
# src/table/settings.ini
# src/table/win32_settings.ini
# src/table/window_settings.ini
3 years ago
TELK
3e78624965
Fix #9362 : Hover in online players window was slightly too big ( #9364 )
...
This causes graphical glitches at the bottom of the window.
(cherry picked from commit 2d0abf5a76
)
3 years ago
Patric Stout
e4ad632989
Add: [Network] Keep the refresh button in lowered state while refreshing ( #9600 )
...
This gives user visual feedback that the refresh is still pending, and
prevents people from clicking again and again thinking nothing is
happening. This is especially true for connections that fall back to
TURN, as that takes a few seconds to kick in.
Additionally, prevent clicking on the button again while a refresh
is pending. This is only delaying a successful result.
3 years ago
Jonathan G Rennison
fd605e3cf3
Merge branch 'master' into jgrpp-beta
...
# Conflicts:
# .github/workflows/commit-checker.yml
# src/company_cmd.cpp
# src/console_cmds.cpp
# src/crashlog.cpp
# src/lang/english.txt
# src/lang/german.txt
# src/lang/indonesian.txt
# src/lang/japanese.txt
# src/lang/korean.txt
# src/lang/swedish.txt
# src/linkgraph/linkgraphjob.cpp
# src/linkgraph/mcf.cpp
# src/network/core/tcp.cpp
# src/network/core/tcp.h
# src/network/core/tcp_game.h
# src/network/core/udp.h
# src/network/network.cpp
# src/network/network_admin.cpp
# src/network/network_admin.h
# src/network/network_chat_gui.cpp
# src/network/network_client.cpp
# src/network/network_client.h
# src/network/network_func.h
# src/network/network_internal.h
# src/network/network_server.cpp
# src/network/network_server.h
# src/newgrf.cpp
# src/newgrf_station.cpp
# src/order_gui.cpp
# src/rail_cmd.cpp
# src/saveload/saveload.cpp
# src/settings.cpp
# src/settings_gui.cpp
# src/settings_internal.h
# src/settings_type.h
# src/station_cmd.cpp
# src/stdafx.h
# src/table/currency_settings.ini
# src/table/misc_settings.ini
# src/table/settings.h.preamble
# src/table/settings.ini
# src/terraform_cmd.cpp
# src/timetable_gui.cpp
# src/train_cmd.cpp
# src/tree_cmd.cpp
# src/water_cmd.cpp
3 years ago
Jonathan G Rennison
0b0d154788
Merge branch 'master' into jgrpp-beta
...
# Conflicts:
# .github/workflows/ci-build.yml
# src/lang/german.txt
# src/lang/romanian.txt
# src/lang/slovak.txt
# src/lang/turkish.txt
# src/network/core/address.cpp
# src/network/core/tcp.h
# src/network/core/udp.cpp
# src/network/network.cpp
# src/network/network_client.cpp
# src/network/network_server.cpp
# src/network/network_server.h
# src/network/network_udp.cpp
# src/openttd.cpp
# src/saveload/newgrf_sl.cpp
# src/tree_cmd.cpp
# src/video/video_driver.hpp
# src/window.cpp
# src/window_gui.h
3 years ago
dP
31cf9e888b
Add: [Network] external chat messages for remote admins ( #9563 )
3 years ago
Patric Stout
d9f8ed7bdf
Add: [Network] On join, log the ClientID + IP + Name clearly ( #9558 )
...
Additionally, reword the disconnect to match connect / join messages.
Co-authored-by: Berbe <4251220+Berbe@users.noreply.github.com>
3 years ago
Jonathan G Rennison
da1ac73c02
Merge commit 'f1dfa661a1898cde06a38ab4cb230c95912b245b' into jgrpp-beta
...
# Conflicts:
# src/lang/estonian.txt
# src/lang/hungarian.txt
# src/network/core/game_info.cpp
# src/network/core/game_info.h
# src/network/core/packet.h
# src/network/network.cpp
# src/network/network_client.cpp
# src/network/network_server.cpp
# src/network/network_udp.cpp
# src/openttd.cpp
# src/string_func.h
3 years ago
Jonathan G Rennison
2bd535e834
Merge branch 'master' into jgrpp-beta
...
# Conflicts:
# src/engine_base.h
# src/gfxinit.cpp
# src/graph_gui.cpp
# src/lang/brazilian_portuguese.txt
# src/lang/dutch.txt
# src/lang/french.txt
# src/lang/korean.txt
# src/lang/norwegian_bokmal.txt
# src/lang/portuguese.txt
# src/lang/russian.txt
# src/lang/spanish.txt
# src/lang/spanish_MX.txt
# src/network/core/address.cpp
# src/network/core/game_info.h
# src/network/core/os_abstraction.h
# src/network/core/udp.cpp
# src/network/network_client.cpp
# src/network/network_client.h
# src/network/network_internal.h
# src/newgrf_engine.cpp
# src/settings_gui.cpp
# src/station_cmd.cpp
# src/string_func.h
# src/town_gui.cpp
# src/video/video_driver.cpp
# src/widget_type.h
3 years ago
Jonathan G Rennison
7e39d3f24a
Support sending extended game info in response to PACKET_CLIENT_GAME_INFO
3 years ago
Jonathan G Rennison
8a0821c96e
Merge branch 'master' into jgrpp-beta
...
# Conflicts:
# src/network/core/game_info.h
# src/network/core/udp.cpp
# src/network/core/udp.h
# src/network/network.cpp
# src/network/network_client.cpp
# src/network/network_client.h
# src/network/network_internal.h
# src/network/network_udp.cpp
3 years ago
Patric Stout
a8641ea44a
Add: support filtering content entries for patchpacks ( #9541 )
...
This changes nothing for us, but allows patchpacks to add the
right pieces of code to start filtering content entries on patchpack
only entries.
3 years ago
Jonathan G Rennison
b67efb7e38
Add support for retrieving JGRPP-only content from content service
...
See: https://github.com/OpenTTD/OpenTTD/pull/9541 , 84cba1b8
3 years ago
Patric Stout
84cba1b842
Add: support filtering content entries for patchpacks
...
This changes nothing for us, but allows patchpacks to add the
right pieces of code to start filtering content entries on patchpack
only entries.
(cherry picked from commit 77860bb61e61307e4d9cf869ba62be8ca4d9d9b3)
3 years ago
Jonathan G Rennison
6e3d023e69
Fix #9535 : Maintain a reverse dependency map of network content ( #9538 )
...
Fixes performance issues with dependency lookup when retrieving
content list from the content server.
3 years ago
Patric Stout
f656b0ae96
Fix: use-after-free after ClientNetworkCoordinatorSocketHandler::CloseAllConnections() ( #9534 )
...
The function clears all stun-handlers. This causes all of those
objects to be destroyed.
A handler can have a pending connecter, which was only killed in
case CloseConnection() was called. This is never the case when
the object is destroyed. In result, the connecter could finish
and cause a use-after-free by calling into the (now deleted)
handler.
3 years ago
Jonathan G Rennison
fda17d25de
Send back a message for rcon and settings_access failures
3 years ago
Jonathan G Rennison
ebab945838
Network content: Maintain a reverse dependency map
...
Fixes performance issues with dependency lookup
See: https://github.com/OpenTTD/OpenTTD/issues/9535
3 years ago
Patric Stout
306726827d
Fix a2051bad: SendCmdNames only sent one name per packet ( #9528 )
...
(cherry picked from commit 63116bd59f
)
3 years ago
Rubidium
92559e6f3a
Fix #9388 : thread unsafe use of NetworkAdminConsole/IConsolePrint
3 years ago
Patric Stout
63116bd59f
Fix a2051bad: SendCmdNames only sent one name per packet ( #9528 )
3 years ago
Patric Stout
d8e870c50c
Fix: when DNS didn't resolve any IPs, the debug message was misleading ( #9519 )
3 years ago
Patric Stout
dc5b7b996c
Fix: [Network] show query errors in the server listing instead of error popup ( #9506 )
...
When you are query several servers at once, it is rather unclear
for which server you got a popup. Instead, show any errors on the
server itself.
This is only true for the query-part. Joining a server still gives
an error popup to tell you about any issue.
3 years ago
Patric Stout
e31b5d3870
Fix #9490 : [Network] a full server couldn't be queried either ( #9508 )
...
You can now still query a full server, as long as the maximum
amount of allowed connections isn't reached. This means that as
long as there are not 255 clients connected to a server, you can
always connect to query.
3 years ago
Patric Stout
b2f0491a90
Fix #9501 : [Network] crash when more than one game-info query was pending ( #9502 )
3 years ago
Patric Stout
47ce306085
Fix c4b700f1: remove left-over debug statement ( #9510 )
3 years ago
Patric Stout
0d26359b5b
Fix: [Network] don't show GameScript " (v0)" for old servers ( #9507 )
...
Old servers don't tell the GameScript they are running, so nothing
should be shown.
All values in NetworkGameInfo initialize as 0/empty, except for GS
version. Someone has to be different from the rest, I guess.
3 years ago
Patric Stout
4066a07d8f
Fix: [Network] crash when last-joined server that is no longer available ( #9503 )
...
If you update the server-list while not having last-joined selected
and it is no longer available, the game crashed.
3 years ago
Michael Lutz
fff09a4af2
Fix d9c1d18f2: Wrong format string for console disconnect message.
3 years ago
Patric Stout
c4b700f1b0
Fix #9492 : show for what server a relay session is being created ( #9494 )
...
Currently it says "the server" which is a bit ambigious. Be more
specific.
3 years ago
Patric Stout
5da60cef46
Fix: typo in the word "spectator" (tnx Heiki) ( #9496 )
3 years ago
Patric Stout
5c776f21e7
Fix 6acf204d: crash when showing coordinator-error-messages ( #9488 )
3 years ago
Patric Stout
6acf204d14
Fix: report reuse of invite-code and switch to local game-type ( #9487 )
...
This prevents two servers battling for the same invite-code. Now
the last one wins.
3 years ago
dP
2e6a77a78a
Fix: connecting with the same name thrice hangs the server ( #9485 )
3 years ago
Patric Stout
579f393374
Add: open Online Players GUI on starting/joining a server ( #9479 )
3 years ago
Patric Stout
1ef4d3cf19
Remove: COMPANY_INFO packets and related code ( #9475 )
3 years ago
Patric Stout
3d55ea2d4d
Feature: make "join game" button join the game, instead of first showing a lobby window ( #9467 )
...
Nobody really paid attention to the lobby window, and it completely
missed its purpose. Most people don't even wait for companies to
show up, but just hit "New Company".
This in turn means people create a lot of unneeded companies, while
they "just want to watch the game" or join another company.
Instead, "Join Game" now just joins the game as spectators.
3 years ago
Patric Stout
db13eebf29
Fix 508e465b: network servers didn't show invite-code / connection-type in Online Players GUI ( #9478 )
...
The selector selects the first widget, which by accident was now only
the server visibility.
3 years ago
Patric Stout
508e465b59
Add: synchronize server name to clients and display in Online Players GUI ( #9472 )
3 years ago
Patric Stout
4c1ea4020d
Change: remove the ability to control "max spectators" ( #9466 )
...
Soon we will make "join game" join the game as spectator first,
so limiting the amount of spectators makes no sense anymore in
that context. Not sure it ever did make sense.
3 years ago
Rubidium
1c8f4bfaef
Fix #9388 : thread unsafe use of NetworkAdminConsole/IConsolePrint
...
(cherry picked from commit d7a0e80fc18b689455eaca09883fccbcc722d7e3)
# Conflicts:
# src/debug.cpp
# src/debug.h
# src/table/settings/gui_settings.ini
See: https://github.com/OpenTTD/OpenTTD/pull/9456
3 years ago
Jonathan G Rennison
63d8f3bdd7
Revert "Fix thread safety issues in network admin socket console logging"
...
This reverts commit ad15d4fd8f
.
3 years ago
Rubidium
ba29edb0b3
Cleanup: remove some references to the old master-server
3 years ago
Patric Stout
9cc706847c
Fix: crash when joining a server again after a TCP disconnect ( #9453 )
...
"my_client" wasn't always free'd when a game ended. "my_client"
keeps a reference inside the PT_NCLIENT pool. The rest of the
code assumes that when you are not in a game, it can freely
reset this pool.
In result: several ways to trigger a use-after-free.
3 years ago
Patric Stout
fa1e27994d
Feature: allow the use of TURN to connect client and server together
...
TURN is a last resort, used only if all other methods failed.
TURN is a relay approach to connect client and server together, where
openttd.org (by default) is the middleman.
It is very unlikely either the client or server cannot connect to
the STUN server, as they are both already connected to the Game
Coordinator. But in the odd case it does fail, estabilishing the
connection fails without any further possibility to recover.
3 years ago
Patric Stout
8a36134003
Fix: [Network] rework when to close connections and inform Game Coordinator if needed
3 years ago
Rubidium
386ef4dac3
Feature: [Game Coordinator] Send NewGRF names to the client
3 years ago
rubidium42
3eaa470632
Feature: [Network] Optionally send NewGRF names with NewGRFs in GameInfo
...
Before 8a2da49
the NewGRF names were synchronized using UDP packets, however
those have been removed. With this a new version of the GameInfo packet is
introduced that allows to specify the type of serialisation happens for
NewGRFs. Either only the GRF ID and checksum, or those two plus the name of
the NewGRF.
On this request for local servers will send the NewGRFs names.
The Game Coordinator will get the names on the first registration, and after
that only the GRF ID and checksum.
3 years ago
rubidium42
5dd524139f
Fix c921f6d: [Network] Documentation of Game Info packet was not updated
3 years ago
rubidium42
09a7825d1e
Remove: the concept of UnknownGRFs
...
These were filled with "<Unknown>" (before 8a2da49
) and later their name would get filled via UDP requests to the server. These UDP packets do not exist anymore, so they will always remain "<Unknown>".
Remove that logic and just use the generic translated error GRF UNKNOWN string instead.
3 years ago
Loïc Guilloux
460991ecf4
Feature: Persistant rotation of numbered auto/netsave after restart ( #9397 )
...
It was always starting from 0 on openttd restart.
Now the most recent auto/netsave number will be used as a base to generate the next filename.
3 years ago
Patric Stout
29cceb59a5
Doc: explain in a bit more detail how we implemented STUN
3 years ago
Patric Stout
8adade26ed
Feature: allow the use of STUN to connect client and server together
...
This method doesn't require port-forwarding to be used, and works for
most common NAT routers in home setups. But, for sure it doesn't work
for all setups, and not everyone will be able to use this.
3 years ago
Patric Stout
55eed246b8
Codechange: allow Connect() to bind to a local address
3 years ago
Patric Stout
c921f6d817
Add: inform clients what game-script a server is running ( #9441 )
...
Co-authored-by: The Dude <thedude@novapolis.net>
3 years ago
Jonathan G Rennison
d23720cc60
Fix server crash when client joined during threaded (auto)save
3 years ago
Jonathan G Rennison
cb421294bb
Network: Log sent packets at net=5
3 years ago
Patric Stout
dd7f69be6e
Fix: "Search LAN games" used the socket after it was closed ( #9437 )
...
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.
3 years ago
Rubidium
178ea3196b
Remove: includes to network/core/config.h from headers when only three cpp files need it
3 years ago
Patric Stout
b6a116a247
Add: allow setting your server visibility to "invite-only" ( #9434 )
...
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.
3 years ago
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.
3 years ago
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.
3 years ago
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.
3 years ago
Patric Stout
f4dd2d88c7
Feature: raise the maximum NewGRF limit to 255
3 years ago
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
3 years ago
Patric Stout
de7ab2eb1c
Cleanup: remove unused optional ctor parameter for NetworkGameList
3 years ago
Patric Stout
6212d0a8da
Remove: unused UDP protocol parts
3 years ago
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!
3 years ago
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.
3 years ago
Patric Stout
aa93d76223
Add: use Game Coordinator to get latest public server listing
3 years ago
Patric Stout
b1280fd17e
Add: use Game Coordinator to annouce public servers
3 years ago
Patric Stout
e1e2212e0e
Codechange: track version of network servers to prune once out-of-date
3 years ago
Patric Stout
cbaac5609f
Codechange: use UpdateNetworkGameWindow() over manually marking window dirty
3 years ago
Stephan
a70aa5df49
Add #9188 : netsave now keeps multiple version around, similar to autosave ( #9395 )
3 years ago
Patric Stout
852e056d6f
Fix 9e32c618: network revision was always empty ( #9419 )
...
Shadowing the variable you intend to write in tends to do that ;)
3 years ago
Patric Stout
d38079d053
Fix f7e390bd: freeaddrinfo() is not guaranteed to handle a nullptr graceful ( #9404 )
3 years ago
TELK
f9b4a3a5e6
Add: Show the number of clients and companies in the online players window ( #9376 )
3 years ago
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
3 years ago
Andreas Schmitt
e1214a6d8b
Fix some type conversion warnings
3 years ago
Jonathan G Rennison
ad15d4fd8f
Fix thread safety issues in network admin socket console logging
...
See: https://github.com/OpenTTD/OpenTTD/issues/9388
3 years ago
Rubidium
f904aef176
Cleanup: use nullptr instead of 0 or NULL
3 years ago
SamuXarick
d0bcb9839a
Fix: you could join an AI company in multiplayer via the GUI ( #9369 )
3 years ago
rubidium42
05005dcdfa
Codechange: [Network] Use std::string instead of char[] for the name of the file that is downloading
3 years ago
rubidium42
981cd0197a
Codechange: [Network] Use std::string for the client name in the network server
3 years ago
rubidium42
a8b3afb236
Codechange: [Network] Use string_view for network compatability check
3 years ago
rubidium42
49dcf0c772
Codechange: [Network] Simplify constructing the HTTP request with fmt
3 years ago
rubidium42
53b4786037
Codechange: [Network] Let NetworkError return its std::string instead of a C-string
3 years ago
rubidium42
667301e3ec
Codechange: [Network] Make hostname/client IP return strings instead of a C-string
3 years ago
rubidium42
a91e29b656
Codechange: [Network] Let IsInNetmask use std::string
3 years ago
rubidium42
36705f1dc0
Codechange: [Network] Simplify formatting of network addresses to string
3 years ago
rubidium42
9e32c618f9
Fix: [Network] Determining GetNetworkRevisionString could overflow and underflow its buffer
...
Tagged releases are not affected
3 years ago
rubidium42
eb6cdadc4d
Codechange: replace IConsolePrintF with IConsolePrint and fmt formatting
...
Also make some strings more consistent with the rest of the console strings.
3 years ago
rubidium42
d9c1d18f2b
Change: improve some of the console messages related to networking (make them more uniform) and convert to fmt
3 years ago
rubidium42
55a11710a6
Codechange: convert printf DEBUG statements to fmt Debug statements
3 years ago
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.
3 years ago
TELK
2d0abf5a76
Fix #9362 : Hover in online players window was slightly too big ( #9364 )
...
This causes graphical glitches at the bottom of the window.
3 years ago
Jonathan G Rennison
ad0e085ec7
Fix off by one error in Packet::CanWriteToPacket
3 years ago
Jonathan G Rennison
1002c6d9d2
Fix various compiler warnings
...
See: #267
3 years ago
Jonathan G Rennison
97d5982cb5
Fix various compiler warnings
...
See: #267
3 years ago
rubidium42
bb8fd00760
Cleanup: [Network] Remove C-string Recv_string and its last use
3 years ago
rubidium42
ab9b937ab7
Codechange: [Network] Use std::string to get a NewGRF's name
3 years ago
rubidium42
e2417193c9
Cleanup: [ContentInfo] Remove some functions that are not needed anymore
3 years ago
rubidium42
e3717ae903
Codechange: [ContentInfo] Use std::string instead of string buffers
3 years ago
rubidium42
df181bb641
Codechange: [ContentInfo] Use a vector for dependencies instead of custom allocation
3 years ago
rubidium42
9c424ab741
Codechange: [ContentInfo] Use StringList for tags instead of custom allocations
3 years ago
rubidium42
dfb89f3891
Codechange: [ContentInfo] Do not use memset/memcpy to make it possible to use vector/string
3 years ago
rubidium42
6bb3f034e4
Cleanup: [ContentInfo] Remove unused function
3 years ago
Patric Stout
5e44da3010
Fix ef991b17: server was trying to free() a packet created with "new CommandPacket()" ( #9334 )
3 years ago
Rubidium
e227bbaff0
Cleanup: remove the old FIO slot functions
...
(cherry picked from commit fa6abe1646
)
3 years ago
rubidium42
8c273ed598
Codechange: [Network] Let admin-console use std::string(_view)
3 years ago
rubidium42
e58581f1f8
Codechange: [Network] Let admin-game script use std::string
3 years ago
rubidium42
8a918ce170
Codechange: [Network] Make admin name and version std::string
3 years ago
Rubidium
2606f5409a
Fix: leaking file descriptors
...
(cherry picked from commit 495d73a67f
)
3 years ago
rubidium42
62e3bfd684
Fix #9243 : [Network] For a dedicated server use a fallback client and server name
...
Also warn when the client or server name has not been set and provide pointers on how to set them
(cherry picked from commit 0968d009c8
)
3 years ago
rubidium42
e3c9ed4d15
Codechange: [Network] Use std::string to determine an unique name for clients
3 years ago
rubidium42
806f78aa04
Codechange: [Network] Use std::string to send the client name and rcon commands
3 years ago
rubidium42
fd95736bac
Codechange: [Network] Use std::string for server side logic of kicking and banning clients
3 years ago
rubidium42
f0e1cd0129
Codechange: [Network] Let server rcon result use std::string
3 years ago
rubidium42
8b9f1147df
Codechange: [Network] Let server changing a client name use std::string
3 years ago
glx22
5799402f7a
Codechange: Rename window related DeleteXXX to match new behaviour
3 years ago
glx22
994bf19aef
Fix f6d5c01: Delay deletion when closing windows
3 years ago
rubidium42
ef991b1772
Codechange: [Network] Use std::string in CommandPacket
3 years ago
rubidium42
2e136285e1
Codechange: move from C-string to std::string for DoCommand
3 years ago
Patric Stout
ca9a7df752
Codechange: rename str_validate to StrMakeValid(InPlace) ( #9304 )
...
This to be more explicit the function changes the value, and not
returns yes/no.
3 years ago
rubidium42
4144e949ed
Fix: [Network] Prevent an empty server name to be set anywhere
3 years ago
rubidium42
e2f5d9e561
Codechange: use separate pre and post callbacks for string settings
3 years ago
rubidium42
208952f2ba
Codechange: split Write_ValidateSetting to get separate functions for making strings valid and writing strings
3 years ago
rubidium42
8ffb4122df
Codechange: just pass the SettingDesc to SetSettingValue and remove distinction between (non)company
3 years ago
rubidium42
72ec81325b
Cleanup: remove unneeded temporary variables and casts
3 years ago
rubidium42
b791ffc6de
Fix: do not hide parameter by local variable with the same name
3 years ago
milek7
7607277380
Fix: Network on Haiku, remove old code for BeOS
3 years ago
Jonathan G Rennison
66289bbda4
Log packet size parse failures in NetworkTCPSocketHandler
3 years ago
Jonathan G Rennison
6d58115458
Net: Log sent and received game packets with type and status names
3 years ago
Jonathan G Rennison
7677d2d01a
Fix mishandling of PACKET_SERVER_MAP_BEGIN queuing at server
...
This could result in broken packet framing in the TCP stream
3 years ago
Milek7
7ab6ab7400
Fix: missing <limits> include in network/core/packet.h ( #9123 )
...
(cherry picked from commit a341852cd5
)
3 years ago
rubidium42
e2dc5aa83e
Codechange: [Network] Use C++ string functions to generate company password hash
3 years ago
rubidium42
4d246cda73
Codechange: [Network] Let NetworkClientInfo use std::string
3 years ago
rubidium42
83679c0e57
Codechange: [Network] Use std::string to populate the client list for company stats
3 years ago
rubidium42
e90b2649b6
Codechange: [Network] Let NetworkCompanyInfo use std::string
3 years ago
rubidium42
fab120ee83
Codechange: [Network] Let chat communication use std::string
3 years ago
rubidium42
ae85af98eb
Codechange: Use std::string GetString where convenient
3 years ago
rubidium42
e6703eac68
Codechange: [Network] Let NetworkTextMessage use std::string
3 years ago
rubidium42
44ca7d9377
Change: Use gender-neutral pronouns
3 years ago
Rubidium
bb9121dbd4
Fix: comparison of narrow type to wide type in loop (potential for infinite loops)
3 years ago
Rubidium
031e91de6e
Fix: [Network] Check on CIDR for netmask check considered everything valid
3 years ago
rubidium42
297d6e20bf
Codechange: [Network] Pass passwords as std::string to the network code
3 years ago
rubidium42
ebe32ad912
Codechange: [Network] Use std::string for the internal handling of admin/rcon passwords
3 years ago
rubidium42
6db52d52d0
Codechange: [Network] Use std::string for the internal handling of server passwords
3 years ago
rubidium42
1de5cdeab8
Codechange: [Network] Use std::string for the internal handling of company passwords
3 years ago
rubidium42
98283116fa
Codechange: [Network] Make company state password std::string
3 years ago
Jonathan G Rennison
f3e0507c54
Network: Include extra info in PACKET_CLIENT_ERROR packets
...
Log more details in server when PACKET_CLIENT_ERROR received
3 years ago
Jonathan G Rennison
e04218b528
Network: Log received packets at log level net=3
3 years ago
William Davis
879de9781b
Change: Use gender-neutral pronouns in console command messages (and comments) ( #9203 )
...
(cherry picked from commit 881e1da51d
)
3 years ago
rubidium42
16437b7c0d
Codechange: move client name in settings to std::string
3 years ago
rubidium42
02fdb5b210
Codechange: move server name/id in settings to std::string
3 years ago
rubidium42
cc6c078dec
Codechange: move hostnames in settings to std::string
3 years ago
rubidium42
c73d64adf9
Codechange: move passwords in settings to std::string
3 years ago
rubidium42
f219354f89
Change: further support for std::string in settings
3 years ago
Patric Stout
a403653805
Codechange: [Network] split CloseSocket and CloseConnection more clearly ( #9261 )
...
* 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.
3 years ago
Rubidium
187a3f20bf
Codechange: remove pointless close call due to resolving virtual functions 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.
3 years ago
Patric Stout
d7ce61f106
Fix #9255 : [Network] TCPConnecter crashes when hostname not found ( #9259 )
3 years ago
Patric Stout
b136e65cf9
Change: reworked the debug levels for network facility ( #9251 )
...
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
3 years ago
Patric Stout
d0eb3e4bc4
Fix: [Network] mark server as offline when no longer reachable ( #9244 )
3 years ago
rubidium42
0968d009c8
Fix #9243 : [Network] For a dedicated server use a fallback client and server name
...
Also warn when the client or server name has not been set and provide pointers on how to set them
3 years ago
Patric Stout
9e7e87ce3e
Fix: [Network] don't rebuild the host-list during iterating the list ( #9240 )
...
Additionally, only rebuild it when we added a new manual server,
as otherwise it is a noop anyway.
3 years ago
Patric Stout
9841ebb0bd
Fix: [Network] don't mark the last-joined server as manual ( #9239 )
3 years ago
Patric Stout
36e22f3a7b
Fix: [Network] clients leaving because of broken connections was not 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
3 years ago
Rubidium
495d73a67f
Fix: leaking file descriptors
3 years ago
Patric Stout
8f4a612a7c
Change: reworded many of the network errors during connect/listen ( #9230 )
...
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.
3 years ago
Patric Stout
583011bca0
Fix: lobby window doesn't close if no connection could be established ( #9223 )
3 years ago
Patric Stout
b9ab3bd6b3
Fix: only query a manually added server if it isn't there yet
...
But always mark it as manually, no matter if it was there or not.
3 years ago
Patric Stout
fc91f1d1b2
Fix: don't do a network disconnect between two queries
...
This meant that on opening the Multiplayer window, if you had more
than one server configured, it would one by one cancel all pending
queries and send a new. Result: only the last server was updated.
3 years ago
Patric Stout
1b75a29d12
Fix: destroying a TCPConnecter that was still resolving made illegal writes
...
Basically, we should join the resolve thread before we destruct
the object.
3 years ago
Patric Stout
664a8c3e85
Codechange: move connection_string to private for TCPConnecter
...
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.
3 years ago
William Davis
881e1da51d
Change: Use gender-neutral pronouns in console command messages (and comments) ( #9203 )
3 years ago
Patric Stout
f187708b3b
Fix f7e390bd: getpeername() doesn't work on closed sockets ( #9213 )
3 years ago
rubidium42
e2774354b4
Codechange: [Network] Change ChatMessage's message to std::string and simplify some code
3 years ago
Patric Stout
f7e390bdc0
Feature: use Happy Eyeballs to make network connections (TCP-only) ( #9199 )
...
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.
3 years ago
rubidium42
59a817f21f
Fix: [Network] Reading beyond the length of the server's ID when hashing password
...
Under normal circumstances the server's ID is 32 characters excluding '\0', however this can be changed at the server. This ID is sent to the server for company name hashing. The client reads it into a statically allocated buffer of 33 bytes, but fills only the bytes it received from the server. However, the hash assumes all 33 bytes are set, thus potentially reading uninitialized data, or a part of the server ID of a previous game in the hashing routine.
It is still reading from memory assigned to the server ID, so nothing bad happens, except that company passwords might not work correctly.
(cherry picked from commit 56aa6d0edd
)
3 years ago
rubidium42
f1dfa661a1
Codechange: [Network] Use std::string for NetworkGameInfo
3 years ago
Peter Nelson
a469b4f395
Fix: Recalculate padding and minimum sizes when GUI or Font zoom is changed.
...
(cherry picked from commit 4791ff2862
)
3 years ago
rubidium42
3d91eee919
Codechange: [Network] Move connection string parsing away from C-strings
3 years ago
rubidium42
6c4a65eeb8
Codechange: [Network] Use std::string for NetworkAddress' host name
3 years ago
rubidium42
dcef3209a6
Codechange: [Network] Use new/delete instead of calloc/free for NetworkGameList
3 years ago
Loïc Guilloux
88bc7bd235
Fix: [MinGW] Set minimum OS version to Windows XP ( #9135 )
...
(cherry picked from commit 356bbbb90a
)
3 years ago
Patric Stout
f94fb93779
Codechange: use connection_string in favour of NetworkAddress ( #9197 )
...
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.
3 years ago
Rubidium
ead30dc725
Cleanup: [Network] Remove variable from NetworkGameInfo that is only used during deserialisation
3 years ago
rubidium42
e7581fd42d
Change: [Network] Update server's NetworkServerGameInfo only when needed
...
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.
3 years ago
rubidium42
72bd62fd70
Codechange: [Network] Use a single NetworkServerGameInfo object at server side and serialize that for the clients
3 years ago
Jonathan G Rennison
a9515456cb
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/network/core/os_abstraction.h
# src/network/core/tcp_content.h
# src/network/core/udp.cpp
# src/table/currency_settings.ini
# src/table/settings.h.preamble
3 years ago
rubidium42
7bcc472f73
Add: [Network] Reading std::string from a packet
3 years ago
rubidium42
ba409e8c45
Add: [Network] Writing std::string to a packet
3 years ago
rubidium42
56aa6d0edd
Fix: [Network] Reading beyond the length of the server's ID when hashing password
...
Under normal circumstances the server's ID is 32 characters excluding '\0', however this can be changed at the server. This ID is sent to the server for company name hashing. The client reads it into a statically allocated buffer of 33 bytes, but fills only the bytes it received from the server. However, the hash assumes all 33 bytes are set, thus potentially reading uninitialized data, or a part of the server ID of a previous game in the hashing routine.
It is still reading from memory assigned to the server ID, so nothing bad happens, except that company passwords might not work correctly.
3 years ago
rubidium42
e097c83c83
Codechange: move some OS abstraction method implementations out of the header
3 years ago
rubidium42
22720332eb
Codechange: encapsulate network error handling
3 years ago
rubidium42
0eb17a70af
Codechange: rename NetworkError to ShowNetworkError
3 years ago
rubidium42
05394d5216
Fix #6598 : Prevent invalid memory accesses when abandoning a join from within a network game
...
One could join a network game from within an already running network game. This would call a NetworkDisconnect, but keeps the UI alive. If, during that process the join is aborted, e.g. by cancelling on a password dialog, you would still be in your network game but also get shown the server list.
Solve all the underlying problems by falling back to the main UI when (re)connecting to a(nother) server.
3 years ago
rubidium42
83985fe26f
Codechange: Move join information into a single structure
3 years ago
rubidium42
3bd416bfdb
Change: [Console] Show help when passing invalid company number
3 years ago
Peter Nelson
4791ff2862
Fix: Recalculate padding and minimum sizes when GUI or Font zoom is changed.
3 years ago
Patric Stout
69118d063f
Change: use TCP for everything except for master-server and initial server scan ( #9130 )
...
This means that pressing Refresh button and adding servers manually
now uses TCP.
The master-server and initial scan are still UDP as they will be
replaced by Game Coordinator; no need to change this now.
If we query a server that is too old, show a proper warning to the
user informing him the server is too old.
3 years ago
rubidium42
a61696d6c5
Change: [Network] Encapsulate logic about the connection string to the network code ( #23 )
3 years ago
Patric Stout
be37a2cab8
Codechange: use NetworkAddress instead of two host/port variables where possible
...
This also means we no longer need last_host/last_port, but can
just use a single last_joined setting.
3 years ago
Patric Stout
99f998805b
Codechange: use std::string over stack-based strings if possible
3 years ago
Patric Stout
a8afbe74bf
Cleanup: remove write-only variable "hostname" in NetworkGameList
3 years ago
Loïc Guilloux
356bbbb90a
Fix: [MinGW] Set minimum OS version to Windows XP ( #9135 )
3 years ago
Patric Stout
96dc0d04ec
Fix b3003dd1: swap SERVER_GAME_INFO with CLIENT_GAME_INFO ( #9129 )
...
The idea is that if you query an older server that does not support
this packet yet, the client receives an error. The assumption was
that on every "illegal packet" the connection would be closed. This
turns out to be false.
Now CLIENT_GAME_INFO aligns with the old PACKET_CLIENT_NEWGRFS_CHECKED,
which does a pre-check (which fails), and an error is sent back
and the connection is closed.
This is not a nice solution, but it is the best we got.
3 years ago
Milek7
a341852cd5
Fix: missing <limits> include in network/core/packet.h ( #9123 )
3 years ago
Patric Stout
31f1db2d3a
Change: no longer use UDP when entering the lobby of a server
...
The lobby of a server requested some parts via UDP and some via
TCP. This is strictly seen fine, but for future extensions it
is a lot easier if just one protocol is used.
3 years ago
Patric Stout
b57d845e55
Codechange: refactor CheckGameCompatibility() from existing function
...
Later commits use this function in other places too.
3 years ago
Patric Stout
b3003dd163
Add: ability to retrieve game info from server over TCP
3 years ago
Patric Stout
84c75a7b9a
Codechange: be explicit in pointer comparisons
3 years ago
Patric Stout
cb2ef1ea4b
Codechange: move all NetworkGameInfo related functions to a single file
...
It currently was a bit scattered over the place. Part of
NetworkGameInfo is also the GRF Identifiers that goes with it.
3 years ago
Patric Stout
8fa53f543a
Change: [Network] lower TCP connect() timeout to 3s ( #9112 )
...
Currently we use default OS timeout for TCP connections, which
is around 30s. 99% of the users will never notice this, but there
are a few cases where this is an issue:
- If you have a broken IPv6 connection, using Content Service is
first tried over IPv6. Only after 30s it times out and tries
IPv4. Nobody is waiting for that 30s.
- Upcoming STUN support has several methods of establishing a
connection between client and server. This requires feedback
from connect() to know if any method worked (they have to be
tried one by one). With 30s, this would take a very long time.
What is good to mention, is that there is no good value here. Any
value will have edge-cases where the experience is suboptimal. But
with 3s we support most of the stable connections, and if it fails,
the user can just retry. On the other side of the spectrum, with 30s,
it means the user has no possibility to use the service. So worst case
we annoy a few users with them having the retry vs annoying a few
users which have no means of resolving the situation.
3 years ago
rubidium42
015e3b412e
Cleanup: remove #ifdefs for compiling the old content server
3 years ago
rubidium42
84985c1223
Codechange: [Network] Do not leak os_abstraction.h via fios.h
3 years ago
rubidium42
cbad518bf3
Codechange: [Network] Do not leak os_abstraction.h via network_func
3 years ago
rubidium42
cf8c1aa860
Change: [Network] Use string error messages instead of numeric error numbers that need to be looked up
3 years ago
rubidium42
65c5a64719
Fix: [Network] errno and strerror do not handle network errors on Windows
3 years ago
Charles Pigott
43b6f6915b
Fix 8a95fee4: Missing initialiser in Packet constructor
3 years ago
Jonathan G Rennison
8eb27e1ac7
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/company_cmd.cpp
# src/lang/japanese.txt
# src/network/core/config.h
# src/network/core/packet.cpp
# src/network/core/tcp.cpp
# src/network/network_content.cpp
# src/network/network_server.cpp
# src/network/network_udp.cpp
# src/toolbar_gui.cpp
# src/vehicle_gui_base.h
3 years ago
Jonathan G Rennison
66fda55ec4
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/company_cmd.cpp
# src/network/core/packet.cpp
# src/network/core/packet.h
# src/network/core/tcp.cpp
# src/network/core/udp.cpp
# src/network/network_server.cpp
# src/network/network_server.h
# src/toolbar_gui.cpp
# src/vehicle_gui_base.h
3 years ago
rubidium42
5afb090082
Change: [Network] Remove now defunct savegame transfer packet limiter
3 years ago
Rubidium
a3c9eca722
Change: use 32 KiB packets to send requests to the content server
3 years ago
Rubidium
21f58ab437
Change: use 32 KiB packets to transfer the savegame
3 years ago
Rubidium
d6000c2ec5
Codechange: differentiate between UDP, TCP and compatibility MTU values
3 years ago
Rubidium
8b302761d4
Codechange: allow different limits in packet sizes
3 years ago
rubidium42
65818db1f4
Fix: [Network] Prevent stalling save game transfer when compression is slow
3 years ago
Jonathan G Rennison
253772e9af
Merge branch 'master' into jgrpp
...
# Conflicts:
# CMakeLists.txt
# COMPILING.md
# src/console.cpp
# src/console_cmds.cpp
# src/console_internal.h
# src/rev.cpp.in
3 years ago
Jonathan G Rennison
ba418f9d0d
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/lang/simplified_chinese.txt
# src/network/core/tcp_content.cpp
# src/network/core/udp.cpp
# src/network/network_server.cpp
# src/saveload/linkgraph_sl.cpp
# src/table/gameopt_settings.ini
3 years ago
Jonathan G Rennison
1e4161ff56
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/group_gui.cpp
3 years ago
Patric Stout
fda1a590f6
Change: use icons to indicate you/host in Online Players GUI
3 years ago