/// <summary> /// Itère à travers toutes les couches de sécurité savant gérer la commande passée en paramètres. /// </summary> /// <returns></returns> static bool SecurityCheck(int connectionID, NetworkCommandMessage commandMessage) { bool passed = true; // Par défaut à true au cas où il n'y aurait aucune couche ne supportant cette commande. int i = 0; while (++i < SecurityLayers.Count && passed) { if (SecurityLayers[i].CanCheckCommand(commandMessage.Command)) { passed = SecurityLayers[i].DoSecurityCheck(commandMessage.Command, commandMessage.Args); } } return(passed); }
static void NetworkCommandReceiver(NetworkMessageInfo info, NetworkMessage message) { NetworkCommandMessage commandMessage = (NetworkCommandMessage)message; if (SecurityCheck(info.ConnectionID, commandMessage)) // Sécurité { // On a passé la sécurité ! Exécuter la commande. if (commandMessage.Args == null || commandMessage.Args.Length == 0) { InputManager.SendCommand(commandMessage.Command); } else { InputManager.SendCommand(commandMessage.Command, commandMessage.Args); } } }