Fixed suspicious non-maxsizes
This commit is contained in:
parent
7dbe2ecd55
commit
691086fdb9
|
@ -44,7 +44,7 @@ public class Server {
|
||||||
|
|
||||||
// broadcast packets to all clients
|
// broadcast packets to all clients
|
||||||
public async Task Broadcast<T>(T packet, Client? sender = null) where T : unmanaged, IPacket {
|
public async Task Broadcast<T>(T packet, Client? sender = null) where T : unmanaged, IPacket {
|
||||||
IMemoryOwner<byte> memory = memoryPool.Rent(Marshal.SizeOf<T>() + Constants.HeaderSize);
|
IMemoryOwner<byte> memory = memoryPool.Rent(Constants.MaxPacketSize);
|
||||||
|
|
||||||
PacketHeader header = new PacketHeader {
|
PacketHeader header = new PacketHeader {
|
||||||
Id = sender?.Id ?? Guid.Empty,
|
Id = sender?.Id ?? Guid.Empty,
|
||||||
|
@ -142,7 +142,7 @@ public class Server {
|
||||||
|
|
||||||
List<Client> otherConnectedPlayers = Clients.FindAll(c => c.Id != header.Id && c.Connected && c.Socket != null);
|
List<Client> otherConnectedPlayers = Clients.FindAll(c => c.Id != header.Id && c.Connected && c.Socket != null);
|
||||||
await Parallel.ForEachAsync(otherConnectedPlayers, async (other, _) => {
|
await Parallel.ForEachAsync(otherConnectedPlayers, async (other, _) => {
|
||||||
IMemoryOwner<byte> connectBuffer = MemoryPool<byte>.Shared.Rent(256);
|
IMemoryOwner<byte> connectBuffer = MemoryPool<byte>.Shared.Rent(Constants.MaxPacketSize);
|
||||||
PacketHeader connectHeader = new PacketHeader {
|
PacketHeader connectHeader = new PacketHeader {
|
||||||
Id = other.Id,
|
Id = other.Id,
|
||||||
Type = PacketType.Connect
|
Type = PacketType.Connect
|
||||||
|
|
|
@ -27,7 +27,7 @@ PacketType[] reboundPackets = {
|
||||||
};
|
};
|
||||||
|
|
||||||
async Task S() {
|
async Task S() {
|
||||||
IMemoryOwner<byte> owner = MemoryPool<byte>.Shared.Rent(256);
|
IMemoryOwner<byte> owner = MemoryPool<byte>.Shared.Rent(Constants.MaxPacketSize);
|
||||||
while (true) {
|
while (true) {
|
||||||
await stream.ReadAsync(owner.Memory);
|
await stream.ReadAsync(owner.Memory);
|
||||||
PacketHeader header = MemoryMarshal.Read<PacketHeader>(owner.Memory.Span);
|
PacketHeader header = MemoryMarshal.Read<PacketHeader>(owner.Memory.Span);
|
||||||
|
@ -43,12 +43,12 @@ PacketHeader coolHeader = new PacketHeader {
|
||||||
Type = PacketType.Connect,
|
Type = PacketType.Connect,
|
||||||
Id = ownId
|
Id = ownId
|
||||||
};
|
};
|
||||||
IMemoryOwner<byte> owner = MemoryPool<byte>.Shared.Rent(256);
|
IMemoryOwner<byte> owner = MemoryPool<byte>.Shared.Rent(Constants.MaxPacketSize);
|
||||||
MemoryMarshal.Write(owner.Memory.Span[..], ref coolHeader);
|
MemoryMarshal.Write(owner.Memory.Span[..], ref coolHeader);
|
||||||
ConnectPacket connect = new ConnectPacket {
|
ConnectPacket connect = new ConnectPacket {
|
||||||
ConnectionType = ConnectionTypes.FirstConnection
|
ConnectionType = ConnectionTypes.FirstConnection
|
||||||
};
|
};
|
||||||
MemoryMarshal.Write(owner.Memory.Span[Constants.HeaderSize..256], ref connect);
|
MemoryMarshal.Write(owner.Memory.Span[Constants.HeaderSize..Constants.MaxPacketSize], ref connect);
|
||||||
await stream.WriteAsync(owner.Memory);
|
await stream.WriteAsync(owner.Memory);
|
||||||
coolHeader.Type = PacketType.Player;
|
coolHeader.Type = PacketType.Player;
|
||||||
MemoryMarshal.Write(owner.Memory.Span[..], ref coolHeader);
|
MemoryMarshal.Write(owner.Memory.Span[..], ref coolHeader);
|
||||||
|
|
Loading…
Reference in New Issue