Commit Graph

187 Commits (315dd62bd98437342403f93d32f87dc017c3a2e0)

Author SHA1 Message Date
rubidium42 3bd416bfdb Change: [Console] Show help when passing invalid company number 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 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
rubidium42 cbad518bf3 Codechange: [Network] Do not leak os_abstraction.h via network_func 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
rubidium42 bfb0ab3e2f Feature: [Network] Ensure players fill in a name instead of defaulting to "Player" 3 years ago
rubidium42 b14f412117 Codechange: [Network] Introduce function to validate the client name 3 years ago
Jonathan G Rennison 0d262e4d9a Send network client desync log messages to server 3 years ago
Patric Stout 31897eaa7d Codechange: split ParseConnectionString into two functions
One also looks for a company, the other doesn't. There were more
uses of the latter than the first, leaving very weird code all
over the place.
3 years ago
Jonathan G Rennison babe98cdb1 Merge branch 'master' into jgrpp
# Conflicts:
#	src/network/network_server.h
#	src/pathfinder/yapf/yapf_road.cpp
#	src/viewport.cpp
4 years ago
Bjarni Thor 5880f1479f Feature #7756: Allow server to supply a reason to kicked/banned clients
This commit adds the missing feature of allowing the server owner to
    provide a reason for kicking/banning a client, which the client sees in
    a pop-up window after being kicked. The implementation extends the
    network protocol by adding a new network action called
    NETWORK_ACTION_KICKED that is capable of having an error string, unlike
    the other network error packages.  Additionally, the kick function
    broadcasts a message to all clients about the kicked client and the
    reason for the kick.
4 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 ec892879f4 Add passworded mechanism to change server game settings from client 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 3001595916 Change chat arbitrary data field from an int64 to a struct. 7 years ago
rubidium e8788019fa (svn r27400) -Fix [FS#6368] (r26449): when a dedicated server was paused with no clients the tick length was increased significantly, making any assumptions about the tick length used further down in the code are not true anymore. One of such assumptions was that one should readvertise every 15 minutes worth of original ticks, but due to the lengthening this timeframe would be more like 45-60 minutes. Now we'll take the operating system's millisecond counter instead 9 years ago
rubidium ff5c05c1b4 (svn r27400) -Fix [FS#6368] (r26449): when a dedicated server was paused with no clients the tick length was increased significantly, making any assumptions about the tick length used further down in the code are not true anymore. One of such assumptions was that one should readvertise every 15 minutes worth of original ticks, but due to the lengthening this timeframe would be more like 45-60 minutes. Now we'll take the operating system's millisecond counter instead 9 years ago
frosch e00f4cac59 (svn r26788) -Add: Desync replay option to skip/replay failed commands 10 years ago
frosch e2f5081f40 (svn r26788) -Add: Desync replay option to skip/replay failed commands 10 years ago
rubidium 492c6ed39b (svn r26576) -Fix [FS#6003]: [Network] AIs would not reset certain network state information upon creation of their company 10 years ago
rubidium 4a52300838 (svn r26576) -Fix [FS#6003]: [Network] AIs would not reset certain network state information upon creation of their company 10 years ago
frosch 198b8897b8 (svn r26370) -Doc: Desync debugging and command replaying. 11 years ago
frosch c6ce57e8a7 (svn r26370) -Doc: Desync debugging and command replaying. 11 years ago
rubidium f8faaebaf0 (svn r23751) -Codechange: rename NetworkUDPGameLoop to a more descriptive name, and move the UDP specific bits to network_udp 13 years ago
rubidium 531e501b5a (svn r23751) -Codechange: rename NetworkUDPGameLoop to a more descriptive name, and move the UDP specific bits to network_udp 13 years ago
frosch 30c413c399 (svn r22738) -Fix [FS#4722] (r21854): Setting company passwords via the GUI on servers (including starting a company with the default password) failed, so no client could join. 13 years ago
frosch 6bb33acc0d (svn r22738) -Fix [FS#4722] (r21854): Setting company passwords via the GUI on servers (including starting a company with the default password) failed, so no client could join. 13 years ago
rubidium 7e151c1d51 (svn r22366) -Codechange: make GetClientIP a function of the server's ClientSocket, after all the Socket is the bit that's associated with the network 13 years ago
rubidium c61abe0019 (svn r22366) -Codechange: make GetClientIP a function of the server's ClientSocket, after all the Socket is the bit that's associated with the network 13 years ago
rubidium c4af57ad3b (svn r22365) -Codechange: add overload of NetworkServerKickOrBanIP using the ClientID, which later resolves the IP address to ban. This to consolidate the knowledge about resolving IP addresses 13 years ago
rubidium caf02450fb (svn r22365) -Codechange: add overload of NetworkServerKickOrBanIP using the ClientID, which later resolves the IP address to ban. This to consolidate the knowledge about resolving IP addresses 13 years ago
rubidium 0a7dcc9781 (svn r22362) -Codechange: NetworkFindClientInfoFromClientID -> NetworkClientInfo::GetByClientID 13 years ago
rubidium bc9a803ea9 (svn r22362) -Codechange: NetworkFindClientInfoFromClientID -> NetworkClientInfo::GetByClientID 13 years ago
rubidium f1e42dc23b (svn r21854) -Codechange: refactor the password setting methods to make it possible to change the password of other companies (on the server) 14 years ago
rubidium 795a528328 (svn r21854) -Codechange: refactor the password setting methods to make it possible to change the password of other companies (on the server) 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 2074b4ddce (svn r21512) -Change/Feature: make the delay of the chat messages timing out unrelated to the number of passed game days, i.e. don't stop aging chat messages when the server is paused 14 years ago
rubidium e68efb9e71 (svn r21512) -Change/Feature: make the delay of the chat messages timing out unrelated to the number of passed game days, i.e. don't stop aging chat messages when the server is paused 14 years ago
rubidium 28832b68f5 (svn r20973) -Add: chat sending and receiving support for remote admins (dihedral) 14 years ago
rubidium d9602f4ef9 (svn r20973) -Add: chat sending and receiving support for remote admins (dihedral) 14 years ago
rubidium 72c85d1cdb (svn r20967) -Add: infrastructure to send information to remote admins at specific intervals (dihedral) 14 years ago
rubidium b4ce7fad7f (svn r20967) -Add: infrastructure to send information to remote admins at specific intervals (dihedral) 14 years ago
rubidium 7d42a44556 (svn r20966) -Change: enable remote administration sockets (parts by Yexo and dihedral) 14 years ago
rubidium 7cc8a363d8 (svn r20966) -Change: enable remote administration sockets (parts by Yexo and dihedral) 14 years ago
alberth 2b4da1d345 (svn r20689) -Codechange: Make some global functions used in 1 .cpp file static in that file. 14 years ago
alberth 9f5a96ead2 (svn r20689) -Codechange: Make some global functions used in 1 .cpp file static in that file. 14 years ago
alberth 0439025e74 (svn r20678) -Codechange: Remove unused NetworkFindClientInfoFromIndex(), NetworkFindClientInfoFromIP(). 14 years ago
alberth fa6203fdc3 (svn r20678) -Codechange: Remove unused NetworkFindClientInfoFromIndex(), NetworkFindClientInfoFromIP(). 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
smatz 09cb5fff3a (svn r19818) -Fix [FS#3784](r16004): kicking clients by IP didn't work 14 years ago
smatz 80fd67a314 (svn r19818) -Fix [FS#3784](r16004): kicking clients by IP didn't work 14 years ago
smatz abaf6b5b42 (svn r19651) -Fix [FS#3745]: when a company is sold, move connected clients to spectators 14 years ago
smatz cd20724d20 (svn r19651) -Fix [FS#3745]: when a company is sold, move connected clients to spectators 14 years ago
smatz c736bbb875 (svn r19075) -Codechange: unhackify NetworkChangeCompanyPassword() 15 years ago
smatz 73ed81b1c7 (svn r19075) -Codechange: unhackify NetworkChangeCompanyPassword() 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 a0840ee58b (svn r18052) -Codechange/Fix: make the 'pause' chat message when actually executing the pause command. This to prevent showing paused and especially unpaused to be shown when the state doesn't change. Output now mentions whether pause changes keep the game paused and what reasons for pausing there 'currently' are. 15 years ago
rubidium 2a1cab4d46 (svn r18052) -Codechange/Fix: make the 'pause' chat message when actually executing the pause command. This to prevent showing paused and especially unpaused to be shown when the state doesn't change. Output now mentions whether pause changes keep the game paused and what reasons for pausing there 'currently' are. 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 d9519fdf64 (svn r17562) -Fix [FS#2972]: the NewGRF settings of (remote) network games did not get properly updated when the NewGRFs were rescanned causing reading of freed data 15 years ago
rubidium 55c0109ee0 (svn r17562) -Fix [FS#2972]: the NewGRF settings of (remote) network games did not get properly updated when the NewGRFs were rescanned causing reading of freed data 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
smatz 7d4d3850cb (svn r16555) -Feature [FS#570]: ability to enter server and company password via command line when joining a server (based on patch by Progman, Ammler and planetmaker) 15 years ago
smatz 35635c6248 (svn r16555) -Feature [FS#570]: ability to enter server and company password via command line when joining a server (based on patch by Progman, Ammler and planetmaker) 15 years ago
rubidium 789999ecf3 (svn r16360) -Codechange: don't use _network_playas as a 'second' _local_company, but only as a storage location for the company you want to join in MP. 15 years ago
rubidium 9f4d64bda0 (svn r16360) -Codechange: don't use _network_playas as a 'second' _local_company, but only as a storage location for the company you want to join in MP. 15 years ago
smatz ce7dff4acc (svn r16269) -Codechange: use gcc's ability to check parameters sent to printf-like functions
-Fix: wrong number of parameters or wrong parameter types sent to printf-like functions at several places
15 years ago
smatz f5316c5cbd (svn r16269) -Codechange: use gcc's ability to check parameters sent to printf-like functions
-Fix: wrong number of parameters or wrong parameter types sent to printf-like functions at several places
15 years ago
rubidium a46de87b03 (svn r16022) -Fix (r15159): sometimes the unregister "query" thread could be delayed so much that the network stuff was already closed and the packet would never reach the master server causing the server to appear online longer than necessary. 15 years ago
rubidium 2663ad302f (svn r16022) -Fix (r15159): sometimes the unregister "query" thread could be delayed so much that the network stuff was already closed and the packet would never reach the master server causing the server to appear online longer than necessary. 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 a76218eab9 (svn r15947) -Codechange: replace uint32 client_ip with NetworkAddress client_address. 15 years ago
rubidium c9ebf14ba5 (svn r15947) -Codechange: replace uint32 client_ip with NetworkAddress client_address. 15 years ago
rubidium bc7a870a61 (svn r15931) -Codechange: let the host and ban lists use of SmallVector. 15 years ago
rubidium 89d0eca6b7 (svn r15931) -Codechange: let the host and ban lists use of SmallVector. 15 years ago
rubidium f524d39963 (svn r15773) -Fix [FS#2475]: number of active clients wasn't always properly 16 years ago
rubidium ee4a660b0c (svn r15773) -Fix [FS#2475]: number of active clients wasn't always properly 16 years ago
smatz 154b4da4cc (svn r15628) -Fix [FS#2705]: kicking/banning a client from the Client list window crashed the server 16 years ago
smatz f3ed8268b6 (svn r15628) -Fix [FS#2705]: kicking/banning a client from the Client list window crashed the server 16 years ago
rubidium a7693c6059 (svn r15425) -Codechange: some color->colour changes and type safety. 16 years ago
rubidium 8dae160d0f (svn r15425) -Codechange: some color->colour changes and type safety. 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 840217d717 (svn r15200) -Feature: give server admins a tool to combat profanity in nick names (based on patch by dihedral) 16 years ago
rubidium f2777cd02d (svn r15200) -Feature: give server admins a tool to combat profanity in nick names (based on patch by 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