Jonathan G Rennison
7c569b2c83
Fix PACKET_SERVER_MAP_DONE prepending with packet encryption
...
Also fix logging of sent encrypted packets
2024-07-03 02:32:57 +01:00
Jonathan G Rennison
84a0dd326f
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/console_cmds.cpp
# src/network/core/config.h
# src/network/core/packet.h
# src/network/core/tcp.cpp
# src/network/core/tcp_game.cpp
# src/network/core/tcp_game.h
# src/network/network_client.cpp
# src/network/network_client.h
# src/network/network_gui.h
# src/network/network_server.cpp
# src/network/network_server.h
# src/table/settings/network_secrets_settings.ini
2024-05-27 16:17:10 +01:00
Jonathan G Rennison
18a42664fc
Merge branch 'master' into jgrpp
...
Remove 'byte' typedef
2024-05-07 17:21:50 +01:00
Rubidium
1cf8799810
Feature: encrypt the connection between game server and client
2024-03-17 19:48:34 +01:00
Rubidium
d26629c15b
Codechange: make encoded length of packet size and type more explicit
2024-03-17 19:48:34 +01:00
Patric Stout
a3cfd23cf9
Codechange: rename byte to uint8_t ( #12308 )
2024-03-16 23:59:32 +01:00
Rubidium
15d02f51ed
Codechange: use span to send bytes to Packet and add span recv function
2024-03-16 12:27:06 +01:00
Rubidium
6eff879e49
Codechange: pass the socket handler that is going to send the packet into the packet
2024-03-16 10:39:22 +01:00
Jonathan G Rennison
75dd135e8d
Merge tag '14.0-beta3' into jgrpp
...
# Conflicts:
# regression/regression/result.txt
# src/industrytype.h
# src/network/core/config.h
# src/network/core/network_game_info.cpp
# src/network/core/network_game_info.h
# src/network/core/packet.cpp
# src/network/core/packet.h
# src/network/core/tcp.cpp
# src/network/core/tcp.h
# src/network/core/tcp_admin.cpp
# src/network/core/tcp_content.cpp
# src/network/core/tcp_coordinator.cpp
# src/network/core/tcp_game.cpp
# src/network/core/tcp_game.h
# src/network/core/tcp_turn.cpp
# src/network/core/udp.cpp
# src/network/core/udp.h
# src/network/network_admin.cpp
# src/network/network_client.cpp
# src/network/network_client.h
# src/network/network_command.cpp
# src/network/network_content.cpp
# src/network/network_internal.h
# src/network/network_query.cpp
# src/network/network_query.h
# src/network/network_server.cpp
# src/network/network_server.h
# src/network/network_turn.cpp
# src/network/network_udp.cpp
# src/rail_gui.cpp
# src/road_gui.cpp
2024-02-19 17:57:05 +00:00
Rubidium
36e1b32ccf
Codechange: use std::deque of std::unique_ptr to queue packets
2024-02-05 16:30:49 +01:00
Jonathan G Rennison
97e6f3062e
Adding of _t to (u)int types, and WChar to char32_t
...
See: eaae0bb5e
2024-01-07 17:20:41 +00:00
Rubidium
eaae0bb5e7
Codechange: automatic adding of _t to (u)int types, and WChar to char32_t
...
for i in `find src -type f|grep -v 3rdparty/fmt|grep -v 3rdparty/catch2|grep -v 3rdparty/opengl|grep -v stdafx.h`; do sed 's/uint16& /uint16 \&/g;s/int8\([ >*),;[]\)/int8_t\1/g;s/int16\([ >*),;[]\)/int16_t\1/g;s/int32\([ >*),;[]\)/int32_t\1/g;s/int64\([ >*),;[]\)/int64_t\1/g;s/ uint32(/ uint32_t(/g;s/_uint8_t/_uint8/;s/Uint8_t/Uint8/;s/ft_int64_t/ft_int64/g;s/uint64$/uint64_t/;s/WChar/char32_t/g;s/char32_t char32_t/char32_t WChar/' -i $i; done
2023-07-19 19:30:14 +02:00
Jonathan G Rennison
d75c489466
Add various missing includes
2023-07-03 23:44:54 +01:00
Jonathan G Rennison
120f0e8a81
Add a helper for sub-packet deserialisation
2023-06-14 21:02:26 +01:00
Rubidium
68ff3fd062
Change: include fmt.h C++ headers in stdafx.h
...
This to prevent compilation issues between runs with and without precompiled
headers. Also remove the headers from the rest of the code base as they are
not needed there anymore, although they do relatively little harm.
2023-05-08 16:49:23 +02:00
Jonathan G Rennison
f32733ef22
Command: Replace binary_length field with auxiliary data
...
Use for CMD_ADD_PLAN_LINE
2022-12-07 21:14:34 +00:00
Jonathan G Rennison
f1f73ddd6e
Factor out packet deserialisation functions into common file
2022-12-07 21:04:20 +00:00
Jonathan G Rennison
c29b395357
Factor out packet serialisation functions into new common file
2022-12-07 18:10:55 +00:00
Michael Lutz
a05fd7aa50
Change: [Network] Transfer command data as serialized byte stream without fixed structure.
...
The data will be transmitted as the length followed by the serialized data. This allows the command
data to be different for every command type in the future.
2021-12-16 22:28:32 +01:00
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
2021-10-28 01:07:51 +01:00
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
2021-09-18 22:10:04 +01:00
rubidium42
bb8fd00760
Cleanup: [Network] Remove C-string Recv_string and its last use
2021-06-10 21:53:19 +02:00
Milek7
7ab6ab7400
Fix: missing <limits> include in network/core/packet.h ( #9123 )
...
(cherry picked from commit a341852cd5 )
2021-05-19 18:19:59 +01:00
rubidium42
7bcc472f73
Add: [Network] Reading std::string from a packet
2021-05-03 17:56:05 +02:00
rubidium42
ba409e8c45
Add: [Network] Writing std::string to a packet
2021-05-03 17:56:05 +02:00
Milek7
a341852cd5
Fix: missing <limits> include in network/core/packet.h ( #9123 )
2021-04-27 23:22:03 +01:00
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
2021-04-25 22:14:59 +01:00
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
2021-04-25 20:56:16 +01:00
Rubidium
d6000c2ec5
Codechange: differentiate between UDP, TCP and compatibility MTU values
2021-04-25 21:27:54 +02:00
Rubidium
8b302761d4
Codechange: allow different limits in packet sizes
2021-04-25 21:27:54 +02:00
Rubidium
75386873b7
Codechange: use std::vector instead of a fixed size array for Packets
2021-04-24 20:42:01 +02:00
Rubidium
450178d780
Codechange: add accessor for the packet type to Packet and make the internal state of Packet private
2021-04-24 20:42:01 +02:00
Rubidium
3abefdf561
Codechange: remove public access to the next pointer in Packet
2021-04-24 20:42:01 +02:00
Rubidium
f71fb0f54a
Codechange: encapsulate reading the size of a Packet
2021-04-24 20:42:01 +02:00
Rubidium
6f161f6559
Codechange: encapsulate the logic about how many bytes can be sent from a buffer in to a Packet
2021-04-24 20:42:01 +02:00
Rubidium
d4f027c03b
Codechange: encapsulate writing data from Packets into sockets/files/buffers to prevent packet state modifications outside of the Packet
2021-04-24 20:42:01 +02:00
Rubidium
98aa561cf7
Codechange: encapsulate reading data from sockets into Packets to prevent packet state modifications outside of the Packet
2021-04-24 20:42:01 +02:00
Rubidium
a2051bad50
Codechange: move logic whether there is enough space in a packet to write data into the Packet
2021-04-24 20:42:01 +02:00
Rubidium
c545cc9d70
Codechange: move more logic about packet size validity and reading into Packet
2021-04-24 20:42:01 +02:00
Jonathan G Rennison
a1d85b812b
Network: Use unique_ptr for packets, use deque for packet queues
2020-05-07 20:53:50 +01:00
Jonathan G Rennison
cbdd9f84d8
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/console_gui.cpp
# src/lang/korean.txt
# src/video/sdl2_v.cpp
# src/video/sdl2_v.h
# src/window.cpp
# src/window_gui.h
2019-11-12 18:43:10 +00:00
S. D. Cloudt
13cc8a0cee
Cleanup: Removed SVN headers
2019-11-10 17:59:20 +00:00
Jonathan G Rennison
ba34ec7ade
Merge branch 'master' into jgrpp
...
Replace build and refit, and group collapse implementations
Fix template creation build and refit
# Conflicts:
# Makefile.bundle.in
# config.lib
# src/animated_tile.cpp
# src/blitter/32bpp_anim.hpp
# src/blitter/32bpp_base.hpp
# src/blitter/8bpp_base.hpp
# src/blitter/null.hpp
# src/build_vehicle_gui.cpp
# src/command.cpp
# src/command_func.h
# src/console_gui.cpp
# src/core/smallstack_type.hpp
# src/date.cpp
# src/debug.cpp
# src/genworld_gui.cpp
# src/ground_vehicle.hpp
# src/group_gui.cpp
# src/lang/korean.txt
# src/linkgraph/linkgraph_gui.h
# src/main_gui.cpp
# src/misc_gui.cpp
# src/network/core/game.h
# src/network/core/packet.cpp
# src/network/core/udp.cpp
# src/network/core/udp.h
# src/network/network_content.cpp
# src/network/network_type.h
# src/network/network_udp.cpp
# src/newgrf_house.h
# src/openttd.cpp
# src/order_cmd.cpp
# src/order_gui.cpp
# src/os/unix/crashlog_unix.cpp
# src/os/windows/crashlog_win.cpp
# src/osk_gui.cpp
# src/pathfinder/opf/opf_ship.cpp
# src/rail_cmd.cpp
# src/rail_gui.cpp
# src/saveload/saveload.cpp
# src/settings.cpp
# src/settings_gui.cpp
# src/smallmap_gui.h
# src/station_base.h
# src/station_cmd.cpp
# src/table/gameopt_settings.ini
# src/table/newgrf_debug_data.h
# src/table/settings.ini
# src/timetable_gui.cpp
# src/toolbar_gui.cpp
# src/train_gui.cpp
# src/vehicle.cpp
# src/vehicle_gui.cpp
# src/vehiclelist.cpp
# src/viewport.cpp
# src/widgets/dropdown.cpp
# src/window_gui.h
2019-03-27 18:12:04 +00:00
Patric Stout
e3c639a09f
Remove: ENABLE_NETWORK switch
...
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-03-20 19:24:55 +01:00
Jonathan G Rennison
940314a3c7
Use std::string for CommandContainer text instead of giant static buffer
...
Use move semantics for CommandContainer instance where feasible
2018-08-13 12:16:41 +01:00
Jonathan G Rennison
6342099c4d
Allow 256 NewGRFs in multiplayer
...
Add extended network format for server info
Add general UDP packet fragmentation system
Fix map dimensions >= 64k
Increase length of server revision string
Maintain backwards compatibility with trunk for advertisement/server listing
2018-05-12 09:11:41 +01:00
patch-import
536a95dfd0
Import combined Enhanced viewport: zoom out, overlays & tooltips (r53_27127) patch
...
https://www.tt-forums.net/viewtopic.php?f=33&t=53394
2015-08-05 21:24:30 +01:00
rubidium
8e4b6c3055
(svn r23590) -Codechange: make the string validation settings better expandable
2011-12-18 18:37:54 +00:00
rubidium
fefe22b4aa
(svn r23590) -Codechange: make the string validation settings better expandable
2011-12-18 18:37:54 +00:00
rubidium
8a58e2cd16
(svn r22401) -Codechange: replace some defines in the udp code so doxygen can create better documentation
2011-05-01 12:18:34 +00:00