Commit Graph

205 Commits (75dd135e8d8aeb376d6bf8e2e3f71bb8fd88d4d8)

Author SHA1 Message Date
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 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
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
Patric Stout 05612d60ae Remove: "language" field from server/client
The original idea was that people could find a server they could
talk in their native language on. This isn't really used in that
way. There are several reasons for removing this:

- the client also sends his "language" to the server, but nothing
  is doing anything with this.
- flags are a bad way to represent languages, and over the years
  we had several (rightfully) complaints about this.
- most servers have their language set to "All", and prefix the
  servername with the language it is about. This is a much more
  efficient way to do the same.

All in all, this feature should go back to the drawing board.
Maybe it could work in another form, but this form is not it.
3 years ago
Jonathan G Rennison 253d54ce05 Merge branch 'master' into jgrpp
# Conflicts:
#	src/lang/french.txt
#	src/network/network_udp.cpp
3 years ago
Rubidium ca6b9ad8b0 Change: move some things only relevant to UDP from network.cpp to network_udp.cpp 3 years ago
Jonathan G Rennison 425b725eab Include last sync frame in desync crash log 3 years ago
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
5 years ago
S. D. Cloudt 13cc8a0cee Cleanup: Removed SVN headers 5 years ago
Jonathan G Rennison a1d36b02f0 Network: Add state checksum which is check in network sync 5 years ago
Jonathan G Rennison 674732cd68 Merge: Codechange: Use null pointer literal instead of the NULL macro 5 years ago
Henry Wilson 7c8e7c6b6e Codechange: Use null pointer literal instead of the NULL macro 5 years ago
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
5 years ago
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.
5 years ago
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
6 years ago
Jonathan G Rennison 3001595916 Change chat arbitrary data field from an int64 to a struct. 7 years ago
rubidium a0eaaf80b7 (svn r26488) -Codechange: perform the appropriate length checks when getting a client name 10 years ago
rubidium 160ad31028 (svn r26488) -Codechange: perform the appropriate length checks when getting a client name 10 years ago
frosch 198b8897b8 (svn r26370) -Doc: Desync debugging and command replaying. 10 years ago
frosch c6ce57e8a7 (svn r26370) -Doc: Desync debugging and command replaying. 10 years ago
rubidium 73474728e3 (svn r26057) -Fix: a number of possibly uninitialised variables 11 years ago
rubidium b3e93d6520 (svn r26057) -Fix: a number of possibly uninitialised variables 11 years ago
rubidium bebf2291db (svn r26056) -Fix: a number of possibly uninitialised variables 11 years ago
rubidium 2e54c8fdfa (svn r26056) -Fix: a number of possibly uninitialised variables 11 years ago
rubidium 5791feadf0 (svn r24070) -Fix [FS#5098]: the 'last joined' server was not properly selected anymore (adf88) 12 years ago
rubidium 1adb9a5c85 (svn r24070) -Fix [FS#5098]: the 'last joined' server was not properly selected anymore (adf88) 12 years ago
rubidium abdd5ebfa7 (svn r23843) -Fix: minor issue with replaying ;) 13 years ago
rubidium b888027ddd (svn r23843) -Fix: minor issue with replaying ;) 13 years ago
rubidium 1d098d8ce2 (svn r23822) -Fix-ish: when replaying make sure companies get created even if their creating client doesn't exist during the replay 13 years ago
rubidium a66debfadd (svn r23822) -Fix-ish: when replaying make sure companies get created even if their creating client doesn't exist during the replay 13 years ago
rubidium 61a3963361 (svn r22424) -Document: some more bits 13 years ago
rubidium c4aa943aaa (svn r22424) -Document: some more bits 13 years ago
rubidium 9328b8b63d (svn r22363) -Codechange: NetworkFindClientStateFromClientID -> NetworkClientSocket::GetByClientID 13 years ago
rubidium f1d0c1a746 (svn r22363) -Codechange: NetworkFindClientStateFromClientID -> NetworkClientSocket::GetByClientID 13 years ago
rubidium 43c8073551 (svn r21886) -Codechange: move documentation towards the code to make it more likely to be updated [n]. 14 years ago
rubidium eb299736c1 (svn r21886) -Codechange: move documentation towards the code to make it more likely to be updated [n]. 14 years ago
rubidium a5108a1fa2 (svn r21853) -Codechange: HashCurrentCompanyPassword is only used by servers, so move it to network_server.* (dihedral) 14 years ago
rubidium e54a1f6721 (svn r21853) -Codechange: HashCurrentCompanyPassword is only used by servers, so move it to network_server.* (dihedral) 14 years ago
rubidium 692e61d1dc (svn r21701) -Codechange: ConsoleColour = TextColour, so make it that way and remove some unneeded casts 14 years ago
rubidium b25cf57542 (svn r21701) -Codechange: ConsoleColour = TextColour, so make it that way and remove some unneeded casts 14 years ago
rubidium 9012b54fa2 (svn r21029) -Codechange: split the map downloading packet + 3-state enum into 3 separate packets 14 years ago
rubidium 2cd67a51ac (svn r21029) -Codechange: split the map downloading packet + 3-state enum into 3 separate packets 14 years ago
rubidium 332a1bfdea (svn r20936) -Codechange: make server side packet sending methods class methods 14 years ago
rubidium f712055002 (svn r20936) -Codechange: make server side packet sending methods class methods 14 years ago
rubidium 66087c5e60 (svn r20935) -Codechange: only let the server side use a pool of connected sockets 14 years ago
rubidium 9858d699a3 (svn r20935) -Codechange: only let the server side use a pool of connected sockets 14 years ago
rubidium 04ce759165 (svn r20934) -Codechange: move NetworkGetClientName to the server's socket 14 years ago
rubidium bda26d03b5 (svn r20934) -Codechange: move NetworkGetClientName to the server's socket 14 years ago
rubidium 1ae97e4d0e (svn r20933) -Codechange: move some more client related methods and such to network_client.cpp 14 years ago
rubidium f555e6d72e (svn r20933) -Codechange: move some more client related methods and such to network_client.cpp 14 years ago
rubidium 6ff39fc5ec (svn r20929) -Codechange: make NetworkCloseClient a class method 14 years ago
rubidium 7ba07d9573 (svn r20929) -Codechange: make NetworkCloseClient a class method 14 years ago
rubidium 8f4638ed0f (svn r20925) -Codechange: make the client send commands have a slightly more sensible name 14 years ago
rubidium 515edee17c (svn r20925) -Codechange: make the client send commands have a slightly more sensible name 14 years ago
alberth e45a8f61cc (svn r20674) -Codechange: Remove declared functions that do not exist (anymore) otherwise. 14 years ago
alberth be59c90e86 (svn r20674) -Codechange: Remove declared functions that do not exist (anymore) otherwise. 14 years ago
rubidium 8f82b2b588 (svn r20549) -Codechange: centralise the handling of the incoming commands (from clients and the server) 14 years ago
rubidium b594990071 (svn r20549) -Codechange: centralise the handling of the incoming commands (from clients and the server) 14 years ago
rubidium 34cdcaf8b2 (svn r19620) -Fix: desync when a command is received and in the queue while a client starts joining, i.e. save the game state. This can happen in two ways: with frame_freq > 1 a command received in a previous frame might not be executed yet or when a command is received in the same frame as the join but before the savegame is made. In both cases the joining client would not get all commands to get in-sync with the server (and the other clients). 14 years ago
rubidium 088282bcf8 (svn r19620) -Fix: desync when a command is received and in the queue while a client starts joining, i.e. save the game state. This can happen in two ways: with frame_freq > 1 a command received in a previous frame might not be executed yet or when a command is received in the same frame as the join but before the savegame is made. In both cases the joining client would not get all commands to get in-sync with the server (and the other clients). 14 years ago
glx b702b1f3fd (svn r19596) -Fix (r19593): dedicated server always fast forwarding if compiled without DEBUG_DUMP_COMMANDS 14 years ago
glx 42f5e930d5 (svn r19596) -Fix (r19593): dedicated server always fast forwarding if compiled without DEBUG_DUMP_COMMANDS 14 years ago
rubidium de155e78e7 (svn r19593) -Codechange: improve loading/executing the desync logs 14 years ago
rubidium 465e3be105 (svn r19593) -Codechange: improve loading/executing the desync logs 14 years ago
rubidium 78f5533141 (svn r19072) -Fix [FS#3599]: possible read/write after free when the client triggered the server to close the connection 15 years ago
rubidium ab35d95b5a (svn r19072) -Fix [FS#3599]: possible read/write after free when the client triggered the server to close the connection 15 years ago
rubidium 9467b7c6d6 (svn r18809) -Codechange/Cleanup: remove unneeded headers from some files, if a header require a header make it include that header 15 years ago
rubidium 82fc28f77f (svn r18809) -Codechange/Cleanup: remove unneeded headers from some files, if a header require a header make it include that header 15 years ago
rubidium 7824727828 (svn r18251) -Codechange: make the join status window big font aware 15 years ago
rubidium 29c65215ed (svn r18251) -Codechange: make the join status window big font aware 15 years ago
rubidium b2d7edddfa (svn r18027) -Codechange: make some unneededly global variables static and remove some unused variables 15 years ago
rubidium c2221885f4 (svn r18027) -Codechange: make some unneededly global variables static and remove some unused variables 15 years ago
rubidium 67a11a5776 (svn r17699) -Codechange: move #ifdef ENABLE_NETWORK till after the 'generic' includes so compilation without network support doesn't get broken as easily by changes in header files 15 years ago
rubidium 5ff6053326 (svn r17699) -Codechange: move #ifdef ENABLE_NETWORK till after the 'generic' includes so compilation without network support doesn't get broken as easily by changes in header files 15 years ago
rubidium d1032d69c8 (svn r17617) -Codechange: make the server side packet handling be more like the client side's handling, i.e. return the connection status
-Fix: do not do invalid reads when a packet handling function closed a connection
15 years ago
rubidium 7d24e84a81 (svn r17617) -Codechange: make the server side packet handling be more like the client side's handling, i.e. return the connection status
-Fix: do not do invalid reads when a packet handling function closed a connection
15 years ago
rubidium 99d46e0ad7 (svn r17248) -Fix: add GPL license notice where appropriate 15 years ago
rubidium 7fbc33dae1 (svn r17248) -Fix: add GPL license notice where appropriate 15 years ago
rubidium 71c7064ad6 (svn r16601) -Fix [FS#2880]: try 2... hopefully better this time 15 years ago
rubidium 9b156c1bd4 (svn r16601) -Fix [FS#2880]: try 2... hopefully better this time 15 years ago
rubidium 043c3c8b06 (svn r16305) -Codechange: force-enable extra sync checking when random debugging is enable and give the calling location of Chance16(R) instead of the Random call within those functions. 15 years ago
rubidium a5d6e23e9d (svn r16305) -Codechange: force-enable extra sync checking when random debugging is enable and give the calling location of Chance16(R) instead of the Random call within those functions. 15 years ago
rubidium 8cd7def31c (svn r16014) -Feature(-ish): allow binding to several IPs; [network]:server_bind_ip doesn't exist anymore. Add the IPs/hostnames to [server_bind_addresses] 15 years ago
rubidium 7d3db3ee91 (svn r16014) -Feature(-ish): allow binding to several IPs; [network]:server_bind_ip doesn't exist anymore. Add the IPs/hostnames to [server_bind_addresses] 15 years ago
rubidium f6e27e7274 (svn r15969) -Codechange: make the list of broadcast addresses virtually unlimited. 15 years ago
rubidium 82f8badc07 (svn r15969) -Codechange: make the list of broadcast addresses virtually unlimited. 15 years ago
rubidium 2b7a30f209 (svn r15926) -Codechange: make the broadcast IP list less AF dependent. 15 years ago
rubidium 11723c40b2 (svn r15926) -Codechange: make the broadcast IP list less AF dependent. 15 years ago
rubidium be8919c968 (svn r15925) -Codechange: remove _network_server_bind_ip as it's pretty AF dependant. 15 years ago
rubidium 47602d7b60 (svn r15925) -Codechange: remove _network_server_bind_ip as it's pretty AF dependant. 15 years ago
rubidium c3e87f345d (svn r15718) -Cleanup: apply some comment coding style on the rest of the sources too 15 years ago
rubidium b25a4f8231 (svn r15718) -Cleanup: apply some comment coding style on the rest of the sources too 15 years ago
rubidium 89e1afdaa0 (svn r15428) -Codechange: consistently use colour instead of having both color and colour. 16 years ago
rubidium c0a8d09ca7 (svn r15428) -Codechange: consistently use colour instead of having both color and colour. 16 years ago
rubidium 2722cabcce (svn r15242) -Feature: allow moving clients between companies/spectators by the server and the clients themselves (dihedral) 16 years ago
rubidium 04709f2798 (svn r15242) -Feature: allow moving clients between companies/spectators by the server and the clients themselves (dihedral) 16 years ago
rubidium 206841ba5f (svn r15163) -Change/Fix: use a non-blocking method to resolve the hostname and connect to game servers. 16 years ago
rubidium 28a641066e (svn r15163) -Change/Fix: use a non-blocking method to resolve the hostname and connect to game servers. 16 years ago
rubidium 4aabc91c04 (svn r15157) -Codechange: wrap the hostname/ip and port into a single structure so we can pass either one of them and not convert an ip to a string and then back again. 16 years ago