コード例 #1
0
 internal override string[] ExportObject(IpObject obj)
 {
     var ret = new List<string>(base.ExportObject(obj));
     if (!obj.Pairs.ContainsKey("from"))
     {
         ret.Add("from");
         ret.Add("all");
     }
     return ret.ToArray();
 }
コード例 #2
0
ファイル: IpController.cs プロジェクト: splitice/IPTables.Net
 internal virtual String[] ExportObject(IpObject obj)
 {
     var ret = new List<string>(obj.Singles);
     foreach (var kv in obj.Pairs)
     {
         ret.Add(kv.Key);
         ret.Add(kv.Value);
     }
     return ret.ToArray();
 }
コード例 #3
0
ファイル: IpController.cs プロジェクト: splitice/IPTables.Net
 protected virtual IpObject ParseObject(String str, String firstKey, char[] firstTrimChars = null)
 {
     IpObject ret = new IpObject();
     String[] strs = str.Split(new char[] {' ','\t'}, StringSplitOptions.RemoveEmptyEntries);
     if (strs.Length == 0)
     {
         return null;
     }
     int i = 0;
     for (; i < strs.Length; i++)
     {
         var k = strs[i];
         if (IsSingle(k))
         {
             ret.Singles.Add(k);
         }
         else
         {
             break;
         }
     }
     if (firstKey != null)
     {
         var v = strs[i];
         if (firstTrimChars != null)
         {
             v = v.TrimEnd(firstTrimChars);
         }
         ret.Pairs.Add(firstKey, v);
         i++;
     }
     for (; i < strs.Length; i++)
     {
         var k = strs[i];
         if (IsSingle(k))
         {
             ret.Singles.Add(k);
         }
         else if (i + 1 != strs.Length)
         {
             ret.Pairs.Add(k,strs[i+1]);
             i++;
         }
         else
         {
             //Console.WriteLine("{0} {1}",ret.Singles.Count,string.Join(", ",ret.Pairs.Select((a)=>a.Key + ":" + a.Value)));
             throw new IpTablesNetException(String.Format("Insufficient values to parse: {0}", k));
         }
     }
     return ret;
 }
コード例 #4
0
 internal override String[] ExportObject(IpObject obj)
 {
     List<String> ret = new List<string>();
     if (obj.Pairs.ContainsKey("to"))
     {
         ret.Add(obj.Pairs["to"]);
     }
     foreach (var kv in obj.Pairs)
     {
         if(kv.Key == "to") continue;
         ret.Add(kv.Key);
         ret.Add(kv.Value);
     }
     ret.AddRange(obj.Singles);
     return ret.ToArray();
 }
コード例 #5
0
        public void TestAddObjRule()
        {
            var systemFactory = new MockIptablesSystemFactory();
            var ipUtils = new IpRuleController(systemFactory);
            var obj = new IpObject();
            obj.Pairs.Add("from", "1.1.1.1");
            obj.Pairs.Add("lookup", "100");
            obj.Singles.Add("not");
            ipUtils.Add(obj);

            var expected = new List<KeyValuePair<String, String>>
            {
                new KeyValuePair<string, string> ("ip","rule add not from 1.1.1.1 lookup 100")
            };

            CollectionAssert.AreEqual(expected, systemFactory.ExecutionLog);
        }
コード例 #6
0
        public void TestDeleteRuleId()
        {
            var      systemFactory = new MockIptablesSystemFactory();
            var      ipUtils       = new IpRuleController(systemFactory);
            IpObject ipObject      = new IpObject();

            ipObject.Pairs.Add("pref", "100");
            ipObject.Pairs.Add("from", "1.1.1.1");
            ipUtils.Delete(ipObject);

            var expected = new List <KeyValuePair <String, String> >
            {
                new KeyValuePair <string, string> ("ip", "rule delete pref 100 from 1.1.1.1")
            };

            CollectionAssert.AreEqual(expected, systemFactory.ExecutionLog);
        }
コード例 #7
0
        public void TestAddObjRule()
        {
            var systemFactory = new MockIptablesSystemFactory();
            var ipUtils       = new IpRuleController(systemFactory);
            var obj           = new IpObject();

            obj.Pairs.Add("from", "1.1.1.1");
            obj.Pairs.Add("lookup", "100");
            obj.Singles.Add("not");
            ipUtils.Add(obj);

            var expected = new List <KeyValuePair <String, String> >
            {
                new KeyValuePair <string, string> ("ip", "rule add not from 1.1.1.1 lookup 100")
            };

            CollectionAssert.AreEqual(expected, systemFactory.ExecutionLog);
        }
コード例 #8
0
ファイル: IpController.cs プロジェクト: splitice/IPTables.Net
 public virtual void Delete(IpObject obj)
 {
     Delete(ExportObject(obj));
 }
コード例 #9
0
ファイル: IpController.cs プロジェクト: splitice/IPTables.Net
 public virtual void Add(IpObject obj)
 {
     Add(ExportObject(obj));
 }
コード例 #10
0
 public IpObjectVisual3D(IpObject baseObject)
 {
     this.BaseObject = baseObject;
 }
コード例 #11
0
        public void TestDeleteRuleId()
        {
            var systemFactory = new MockIptablesSystemFactory();
            var ipUtils = new IpRuleController(systemFactory);
            IpObject ipObject = new IpObject();
            ipObject.Pairs.Add("pref","100");
            ipObject.Pairs.Add("from","1.1.1.1");
            ipUtils.Delete(ipObject);

            var expected = new List<KeyValuePair<String, String>>
            {
                new KeyValuePair<string, string> ("ip","rule delete pref 100 from 1.1.1.1")
            };

            CollectionAssert.AreEqual(expected, systemFactory.ExecutionLog);
        }