Remove Password and Endpoint from OrderManager

This commit is contained in:
teinarss
2021-04-19 19:19:47 +02:00
committed by reaperrr
parent da4bf7f191
commit a1b3450b47
8 changed files with 43 additions and 32 deletions

View File

@@ -66,8 +66,14 @@ namespace OpenRA
if (recordReplay)
connection.StartRecording(() => { return TimestampedFilename(); });
var om = new OrderManager(endpoint, password, connection);
var om = new OrderManager(connection);
JoinInner(om);
CurrentServerSettings.Password = password;
CurrentServerSettings.Target = endpoint;
lastConnectionState = ConnectionState.PreConnecting;
ConnectionStateChanged(OrderManager, password, connection);
return om;
}
@@ -81,18 +87,16 @@ namespace OpenRA
{
OrderManager?.Dispose();
OrderManager = om;
lastConnectionState = ConnectionState.PreConnecting;
ConnectionStateChanged(OrderManager);
}
public static void JoinReplay(string replayFile)
{
JoinInner(new OrderManager(new ConnectionTarget(), "", new ReplayConnection(replayFile)));
JoinInner(new OrderManager(new ReplayConnection(replayFile)));
}
static void JoinLocal()
{
JoinInner(new OrderManager(new ConnectionTarget(), "", new EchoConnection()));
JoinInner(new OrderManager(new EchoConnection()));
}
// More accurate replacement for Environment.TickCount
@@ -104,7 +108,7 @@ namespace OpenRA
public static int LocalTick => OrderManager.LocalFrameNumber;
public static event Action<ConnectionTarget> OnRemoteDirectConnect = _ => { };
public static event Action<OrderManager> ConnectionStateChanged = _ => { };
public static event Action<OrderManager, string, NetworkConnection> ConnectionStateChanged = (om, pass, conn) => { };
static ConnectionState lastConnectionState = ConnectionState.PreConnecting;
public static int LocalClientId => OrderManager.Connection.LocalClientId;
@@ -415,7 +419,7 @@ namespace OpenRA
{
// Clear static state if we have switched mods
LobbyInfoChanged = () => { };
ConnectionStateChanged = om => { };
ConnectionStateChanged = (om, p, conn) => { };
BeforeGameStart = () => { };
OnRemoteDirectConnect = endpoint => { };
delayedActions = new ActionQueue();
@@ -652,7 +656,7 @@ namespace OpenRA
if (OrderManager.Connection.ConnectionState != lastConnectionState)
{
lastConnectionState = OrderManager.Connection.ConnectionState;
ConnectionStateChanged(OrderManager);
ConnectionStateChanged(OrderManager, null, null);
}
InnerLogicTick(OrderManager);
@@ -997,4 +1001,10 @@ namespace OpenRA
}
}
}
public static class CurrentServerSettings
{
public static string Password;
public static ConnectionTarget Target;
}
}

View File

@@ -40,7 +40,7 @@ namespace OpenRA.Network
void Receive(Action<int, byte[]> packetFn);
}
class EchoConnection : IConnection
public class EchoConnection : IConnection
{
protected struct ReceivedPacket
{
@@ -136,9 +136,9 @@ namespace OpenRA.Network
}
}
sealed class NetworkConnection : EchoConnection
public sealed class NetworkConnection : EchoConnection
{
readonly ConnectionTarget target;
public readonly ConnectionTarget Target;
TcpClient tcp;
IPEndPoint endpoint;
readonly List<byte[]> queuedSyncPackets = new List<byte[]>();
@@ -153,7 +153,7 @@ namespace OpenRA.Network
public NetworkConnection(ConnectionTarget target)
{
this.target = target;
Target = target;
new Thread(NetworkConnectionConnect)
{
Name = $"{GetType().Name} (connect to {target})",
@@ -166,7 +166,7 @@ namespace OpenRA.Network
var queue = new BlockingCollection<TcpClient>();
var atLeastOneEndpoint = false;
foreach (var endpoint in target.GetConnectEndPoints())
foreach (var endpoint in Target.GetConnectEndPoints())
{
atLeastOneEndpoint = true;
new Thread(() =>

View File

@@ -28,9 +28,6 @@ namespace OpenRA.Network
public Session.Client LocalClient => LobbyInfo.ClientWithIndex(Connection.LocalClientId);
public World World;
public readonly ConnectionTarget Endpoint;
public readonly string Password = "";
public string ServerError = null;
public bool AuthenticationFailed = false;
public ExternalMod ServerExternalMod = null;
@@ -94,10 +91,8 @@ namespace OpenRA.Network
Connection.Send(i, new List<byte[]>());
}
public OrderManager(ConnectionTarget endpoint, string password, IConnection conn)
public OrderManager(IConnection conn)
{
Endpoint = endpoint;
Password = password;
Connection = conn;
syncReport = new SyncReport(this);
AddChatLine += CacheChatLine;

View File

@@ -17,7 +17,7 @@ using OpenRA.FileFormats;
namespace OpenRA.Network
{
sealed class ReplayRecorder
public sealed class ReplayRecorder
{
// Arbitrary value.
const int CreateReplayFileMaxRetryCount = 128;

View File

@@ -218,7 +218,7 @@ namespace OpenRA.Network
Client = info,
Mod = mod.Id,
Version = mod.Metadata.Version,
Password = orderManager.Password,
Password = CurrentServerSettings.Password,
Fingerprint = localProfile.Fingerprint,
OrdersProtocol = ProtocolVersion.Orders
};