Merge branch 'master' of https://github.com/Regalis11/Barotrauma into develop

This commit is contained in:
EvilFactory
2024-04-12 12:11:06 -03:00
20 changed files with 204 additions and 25 deletions
@@ -231,6 +231,8 @@ namespace Barotrauma.Networking
#if DEBUG
public abstract void ForceTimeOut();
public abstract void DebugSendRawMessage(IWriteMessage msg);
#endif
}
}
@@ -287,6 +287,9 @@ namespace Barotrauma.Networking
{
netClient?.ServerConnection?.ForceTimeOut();
}
public override void DebugSendRawMessage(IWriteMessage msg)
=> ForwardToLidgren(msg, DeliveryMethod.Reliable);
#endif
}
}
@@ -423,6 +423,9 @@ namespace Barotrauma.Networking
{
timeout = 0.0f;
}
public override void DebugSendRawMessage(IWriteMessage msg)
=> ForwardToRemotePeer(msg, DeliveryMethod.Reliable);
#endif
}
}
@@ -142,8 +142,12 @@ namespace Barotrauma.Networking
if (remotePeer is null) { return; }
if (remotePeer.PendingDisconnect.IsSome()) { return; }
var peerPacketHeaders = INetSerializableStruct.Read<PeerPacketHeaders>(inc);
if (!INetSerializableStruct.TryRead(inc, remotePeer.AccountInfo, out PeerPacketHeaders peerPacketHeaders))
{
CommunicateDisconnectToRemotePeer(remotePeer, PeerDisconnectPacket.WithReason(DisconnectReason.MalformedData));
return;
}
PacketHeader packetHeader = peerPacketHeaders.PacketHeader;
if (packetHeader.IsConnectionInitializationStep())
@@ -178,13 +182,11 @@ namespace Barotrauma.Networking
{
remotePeer.AuthStatus = RemotePeer.AuthenticationStatus.AuthenticationPending;
var packet = INetSerializableStruct.Read<ClientAuthTicketAndVersionPacket>(inc);
void failAuth()
if (!INetSerializableStruct.TryRead(inc, remotePeer.AccountInfo, out ClientAuthTicketAndVersionPacket packet))
{
CommunicateDisconnectToRemotePeer(remotePeer, PeerDisconnectPacket.WithReason(DisconnectReason.AuthenticationFailed));
failAuth();
return;
}
if (!packet.AuthTicket.TryUnwrap(out var authenticationTicket))
{
failAuth();
@@ -221,6 +223,11 @@ namespace Barotrauma.Networking
}
remotePeer.UnauthedMessages.Clear();
});
void failAuth()
{
CommunicateDisconnectToRemotePeer(remotePeer, PeerDisconnectPacket.WithReason(DisconnectReason.AuthenticationFailed));
}
}
public override void Update(float deltaTime)
@@ -381,7 +388,7 @@ namespace Barotrauma.Networking
{
OnInitializationComplete();
PeerPacketMessage packet = INetSerializableStruct.Read<PeerPacketMessage>(inc);
var packet = INetSerializableStruct.Read<PeerPacketMessage>(inc);
IReadMessage msg = new ReadOnlyMessage(packet.Buffer, packetHeader.IsCompressed(), 0, packet.Length, ServerConnection);
callbacks.OnMessageReceived.Invoke(msg);
}
@@ -552,6 +559,9 @@ namespace Barotrauma.Networking
{
//TODO: reimplement?
}
public override void DebugSendRawMessage(IWriteMessage msg)
=> ForwardToServerProcess(msg);
#endif
}
}