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(); }
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(); }
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; }
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(); }
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); }
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); }
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); }
public virtual void Delete(IpObject obj) { Delete(ExportObject(obj)); }
public virtual void Add(IpObject obj) { Add(ExportObject(obj)); }
public IpObjectVisual3D(IpObject baseObject) { this.BaseObject = baseObject; }
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); }