rubidium42
fab120ee83
Codechange: [Network] Let chat communication use std::string
2021-05-15 10:20:50 +02:00
rubidium42
297d6e20bf
Codechange: [Network] Pass passwords as std::string to the network code
2021-05-14 23:22:04 +02:00
rubidium42
1de5cdeab8
Codechange: [Network] Use std::string for the internal handling of company passwords
2021-05-14 23:22:04 +02:00
rubidium42
16437b7c0d
Codechange: move client name in settings to std::string
2021-05-13 23:13:17 +02:00
rubidium42
e2774354b4
Codechange: [Network] Change ChatMessage's message to std::string and simplify some code
2021-05-08 10:19:42 +02:00
rubidium42
3d91eee919
Codechange: [Network] Move connection string parsing away from C-strings
2021-05-06 20:33:26 +02:00
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.
2021-05-05 21:01:23 +02:00
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.
2021-05-01 18:30:08 +02:00
rubidium42
3bd416bfdb
Change: [Console] Show help when passing invalid company number
2021-05-01 18:30:08 +02:00
rubidium42
a61696d6c5
Change: [Network] Encapsulate logic about the connection string to the network code ( #23 )
2021-04-29 20:12:11 +02:00
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.
2021-04-29 20:12:11 +02:00
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.
2021-04-27 20:18:53 +02:00
rubidium42
cbad518bf3
Codechange: [Network] Do not leak os_abstraction.h via network_func
2021-04-27 18:17:34 +01:00
rubidium42
bfb0ab3e2f
Feature: [Network] Ensure players fill in a name instead of defaulting to "Player"
2021-04-24 08:02:54 +02:00
rubidium42
b14f412117
Codechange: [Network] Introduce function to validate the client name
2021-04-24 08:02:54 +02:00
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.
2021-04-20 17:34:04 +02:00
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.
2020-02-04 22:17:39 +00:00
S. D. Cloudt
13cc8a0cee
Cleanup: Removed SVN headers
2019-11-10 17:59:20 +00:00
Henry Wilson
7c8e7c6b6e
Codechange: Use null pointer literal instead of the NULL macro
2019-04-10 23:22:20 +02: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
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
2015-09-19 16:49:46 +00:00
frosch
e2f5081f40
(svn r26788) -Add: Desync replay option to skip/replay failed commands
2014-09-07 14:21:16 +00:00
rubidium
4a52300838
(svn r26576) -Fix [FS#6003]: [Network] AIs would not reset certain network state information upon creation of their company
2014-05-11 12:52:21 +00:00
frosch
c6ce57e8a7
(svn r26370) -Doc: Desync debugging and command replaying.
2014-02-23 19:32:32 +00:00
rubidium
531e501b5a
(svn r23751) -Codechange: rename NetworkUDPGameLoop to a more descriptive name, and move the UDP specific bits to network_udp
2012-01-04 22:08:43 +00:00
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.
2011-08-13 08:32:55 +00:00
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
2011-04-22 16:02:21 +00:00
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
2011-04-22 15:59:32 +00:00
rubidium
bc9a803ea9
(svn r22362) -Codechange: NetworkFindClientInfoFromClientID -> NetworkClientInfo::GetByClientID
2011-04-22 15:54:16 +00:00
rubidium
795a528328
(svn r21854) -Codechange: refactor the password setting methods to make it possible to change the password of other companies (on the server)
2011-01-19 16:47:40 +00:00
rubidium
b25cf57542
(svn r21701) -Codechange: ConsoleColour = TextColour, so make it that way and remove some unneeded casts
2011-01-03 12:01:41 +00:00
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
2010-12-14 14:57:51 +00:00
rubidium
d9602f4ef9
(svn r20973) -Add: chat sending and receiving support for remote admins (dihedral)
2010-10-17 17:40:18 +00:00
rubidium
b4ce7fad7f
(svn r20967) -Add: infrastructure to send information to remote admins at specific intervals (dihedral)
2010-10-17 17:36:23 +00:00
rubidium
7cc8a363d8
(svn r20966) -Change: enable remote administration sockets (parts by Yexo and dihedral)
2010-10-17 17:35:42 +00:00
alberth
9f5a96ead2
(svn r20689) -Codechange: Make some global functions used in 1 .cpp file static in that file.
2010-08-29 15:58:43 +00:00
alberth
fa6203fdc3
(svn r20678) -Codechange: Remove unused NetworkFindClientInfoFromIndex(), NetworkFindClientInfoFromIP().
2010-08-29 12:37:49 +00:00
alberth
be59c90e86
(svn r20674) -Codechange: Remove declared functions that do not exist (anymore) otherwise.
2010-08-28 20:15:45 +00:00
smatz
80fd67a314
(svn r19818) -Fix [FS#3784](r16004): kicking clients by IP didn't work
2010-05-13 16:00:50 +00:00
smatz
cd20724d20
(svn r19651) -Fix [FS#3745]: when a company is sold, move connected clients to spectators
2010-04-17 11:39:46 +00:00
smatz
73ed81b1c7
(svn r19075) -Codechange: unhackify NetworkChangeCompanyPassword()
2010-02-10 15:17:27 +00:00
rubidium
82fc28f77f
(svn r18809) -Codechange/Cleanup: remove unneeded headers from some files, if a header require a header make it include that header
2010-01-15 16:41:15 +00:00
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.
2009-11-12 20:33:30 +00:00
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
2009-10-04 20:00:56 +00:00
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
2009-09-17 21:14:16 +00:00
rubidium
7fbc33dae1
(svn r17248) -Fix: add GPL license notice where appropriate
2009-08-21 20:21:05 +00:00
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)
2009-06-10 19:00:34 +00:00
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.
2009-05-19 21:20:14 +00:00
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
2009-05-10 17:27:25 +00:00
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.
2009-04-10 20:18:48 +00:00