Skip to content

Commit cf0aba0

Browse files
committed
Improved logging when writing to var without permissions
1 parent 2b14f67 commit cf0aba0

File tree

2 files changed

+12
-10
lines changed

2 files changed

+12
-10
lines changed

MLAPI/MonoBehaviours/Core/NetworkedBehaviour.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -364,7 +364,7 @@ private bool CouldHaveDirtyVars()
364364
}
365365

366366

367-
internal static void HandleNetworkedVarDeltas(List<INetworkedVar> networkedVarList, Stream stream, uint clientId)
367+
internal static void HandleNetworkedVarDeltas(List<INetworkedVar> networkedVarList, Stream stream, uint clientId, NetworkedBehaviour logInstance)
368368
{
369369
using (PooledBitReader reader = PooledBitReader.Get(stream))
370370
{
@@ -382,7 +382,7 @@ internal static void HandleNetworkedVarDeltas(List<INetworkedVar> networkedVarLi
382382
//A dummy read COULD be added to the interface for this situation, but it's just being too nice.
383383
//This is after all a developer fault. A critical error should be fine.
384384
// - TwoTen
385-
if (LogHelper.CurrentLogLevel <= LogLevel.Error) LogHelper.LogError("Client wrote to NetworkedVar without permission. No more variables can be read. This is critical");
385+
if (LogHelper.CurrentLogLevel <= LogLevel.Error) LogHelper.LogError("Client wrote to NetworkedVar without permission. No more variables can be read. This is critical. " + logInstance != null ? ("NetworkId: " + logInstance.networkId + " BehaviourIndex: " + logInstance.networkedObject.GetOrderIndex(logInstance) + " VariableIndex: " + i) : string.Empty);
386386
return;
387387
}
388388

@@ -391,7 +391,7 @@ internal static void HandleNetworkedVarDeltas(List<INetworkedVar> networkedVarLi
391391
}
392392
}
393393

394-
internal static void HandleNetworkedVarUpdate(List<INetworkedVar> networkedVarList, Stream stream, uint clientId)
394+
internal static void HandleNetworkedVarUpdate(List<INetworkedVar> networkedVarList, Stream stream, uint clientId, NetworkedBehaviour logInstance)
395395
{
396396
using (PooledBitReader reader = PooledBitReader.Get(stream))
397397
{
@@ -409,7 +409,7 @@ internal static void HandleNetworkedVarUpdate(List<INetworkedVar> networkedVarLi
409409
//A dummy read COULD be added to the interface for this situation, but it's just being too nice.
410410
//This is after all a developer fault. A critical error should be fine.
411411
// - TwoTen
412-
if (LogHelper.CurrentLogLevel <= LogLevel.Error) LogHelper.LogError("Client wrote to NetworkedVar without permission. No more variables can be read. This is critical");
412+
if (LogHelper.CurrentLogLevel <= LogLevel.Error) LogHelper.LogError("Client wrote to NetworkedVar without permission. No more variables can be read. This is critical. " + logInstance != null ? ("NetworkId: " + logInstance.networkId + " BehaviourIndex: " + logInstance.networkedObject.GetOrderIndex(logInstance) + " VariableIndex: " + i) : string.Empty);
413413
return;
414414
}
415415

MLAPI/NetworkingManagerComponents/Core/InternalMessageHandler.Receive.cs

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -455,16 +455,17 @@ internal static void HandleNetworkedVarDelta(uint clientId, Stream stream, int c
455455

456456
if (SpawnManager.SpawnedObjects.ContainsKey(netId))
457457
{
458-
if (SpawnManager.SpawnedObjects[netId].GetBehaviourAtOrderIndex(orderIndex) == null)
458+
NetworkedBehaviour instance = SpawnManager.SpawnedObjects[netId].GetBehaviourAtOrderIndex(orderIndex);
459+
if (instance == null)
459460
{
460461
if (LogHelper.CurrentLogLevel <= LogLevel.Normal) LogHelper.LogWarning("NetworkedVar message recieved for a non existant behaviour");
461462
return;
462463
}
463-
NetworkedBehaviour.HandleNetworkedVarDeltas(SpawnManager.SpawnedObjects[netId].GetBehaviourAtOrderIndex(orderIndex).networkedVarFields, stream, clientId);
464+
NetworkedBehaviour.HandleNetworkedVarDeltas(instance.networkedVarFields, stream, clientId, instance);
464465
}
465466
else if (SpawnManager.PendingSpawnObjects.ContainsKey(netId))
466467
{
467-
NetworkedBehaviour.HandleNetworkedVarDeltas(SpawnManager.PendingSpawnObjects[netId].GetDummyNetworkedVarListAtOrderIndex(orderIndex), stream, clientId);
468+
NetworkedBehaviour.HandleNetworkedVarDeltas(SpawnManager.PendingSpawnObjects[netId].GetDummyNetworkedVarListAtOrderIndex(orderIndex), stream, clientId, null);
468469
}
469470
else
470471
{
@@ -483,16 +484,17 @@ internal static void HandleNetworkedVarUpdate(uint clientId, Stream stream, int
483484

484485
if (SpawnManager.SpawnedObjects.ContainsKey(netId))
485486
{
486-
if (SpawnManager.SpawnedObjects[netId].GetBehaviourAtOrderIndex(orderIndex) == null)
487+
NetworkedBehaviour instance = SpawnManager.SpawnedObjects[netId].GetBehaviourAtOrderIndex(orderIndex);
488+
if (instance == null)
487489
{
488490
if (LogHelper.CurrentLogLevel <= LogLevel.Normal) LogHelper.LogWarning("NetworkedVar message recieved for a non existant behaviour");
489491
return;
490492
}
491-
NetworkedBehaviour.HandleNetworkedVarUpdate(SpawnManager.SpawnedObjects[netId].GetBehaviourAtOrderIndex(orderIndex).networkedVarFields, stream, clientId);
493+
NetworkedBehaviour.HandleNetworkedVarUpdate(instance.networkedVarFields, stream, clientId, instance);
492494
}
493495
else if (SpawnManager.PendingSpawnObjects.ContainsKey(netId))
494496
{
495-
NetworkedBehaviour.HandleNetworkedVarUpdate(SpawnManager.PendingSpawnObjects[netId].GetDummyNetworkedVarListAtOrderIndex(orderIndex), stream, clientId);
497+
NetworkedBehaviour.HandleNetworkedVarUpdate(SpawnManager.PendingSpawnObjects[netId].GetDummyNetworkedVarListAtOrderIndex(orderIndex), stream, clientId, null);
496498
}
497499
else
498500
{

0 commit comments

Comments
 (0)