예제 #1
0
        public override void Deactivation()
        {
            base.Deactivation();

            foreach (RouteEntry Entry in EntryAdded.Values)
            {
                Entry.Remove();
            }

            foreach (RouteEntry Entry in EntryRemoved.Values)
            {
                Entry.Add();
                Engine.Instance.Logs.Log(LogType.Verbose, MessagesFormatter.Format(Messages.NetworkLockRouteRestored, Entry.ToString()));
            }

            DefaultGateway   = "";
            DefaultInterface = "";

            EntryAdded.Clear();
            EntryRemoved.Clear();
        }
예제 #2
0
        public override void Activation()
        {
            base.Activation();


            List <RouteEntry> EntryList = Platform.Instance.RouteList();

            DefaultGateway   = "";
            DefaultInterface = "";
            EntryRemoved.Clear();
            EntryAdded.Clear();

            foreach (RouteEntry Entry in EntryList)
            {
                if (IsIP(Entry.Gateway))
                {
                    if (DefaultGateway.Valid == false)
                    {
                        DefaultGateway   = Entry.Gateway;
                        DefaultInterface = Entry.Interface;
                    }
                    else if (DefaultGateway != Entry.Gateway)
                    {
                        Failed = true;
                        break;
                    }
                }
            }

            if (DefaultGateway.Valid == false)
            {
                Failed = true;
            }

            if (Failed)
            {
                DefaultGateway   = "";
                DefaultInterface = "";
                foreach (RouteEntry Entry in EntryList)
                {
                    Engine.Instance.Logs.Log(LogType.Verbose, Entry.ToString());
                }

                throw new Exception("error");
            }

            /*
             * foreach (RouteEntry Entry in EntryList)
             * {
             *      if (IsIP(Entry.Gateway))
             *      {
             *              EntryRemoved[Entry.Key] = Entry;
             *              Engine.Instance.Logs.Log(LogType.Verbose, Messages.Format(Messages.NetworkLockRouteRemoved, Entry.ToString()));
             *              Entry.Remove();
             *      }
             * }
             */

            IpAddress destinationHole = DefaultGateway;
            string    interfaceHole   = "1";
            int       routesHoleN     = 4;

            for (int i = 0; i < routesHoleN; i++)
            {
                string maskHole = "192.0.0.0";
                string ipHole   = Conversions.ToString((256 / routesHoleN * i)) + ".0.0.0";

                RouteAdd(ipHole, maskHole, destinationHole, interfaceHole);
            }
        }