public int GetRulePosition(IpTablesRule rule) { var index = Rules.IndexOf(rule); if (index == -1) { return(-1); } return(index + 1); }
public bool Compare(IpTablesRule y) { if (!Chain.Equals(y.Chain)) { return(false); } var diff = _moduleData.DictionaryDiffering(y.ModuleDataInternal); return(diff == default(string)); }
public override bool Equals(IpTablesRule x, IpTablesRule y) { var ret = base.Equals(x, y); if (!ret) { var diff = x._moduleData.DictionaryDiffering(y.ModuleDataInternal); Console.WriteLine("1: {0}\r\n2: {1}\r\nDifference: {2}", x.GetActionCommand(), y.GetActionCommand(), diff); } return(ret); }
public void ReplaceRule(INetfilterAdapterClient client, IpTablesRule withRule) { if (Chain == null) { throw new IpTablesNetException("Unknown Chain"); } int idx = Chain.Rules.IndexOf(this); if (idx == -1) { throw new IpTablesNetException("Could not find rule to replace"); } client.ReplaceRule(withRule); Chain.Rules[idx] = withRule; }
/// <summary> /// Add an IPTables rule to the set /// </summary> /// <param name="rule"></param> public void AddRule(IpTablesRule rule) { IpTablesChain ipchain = _chains.GetChainOrAdd(rule.Chain); ipchain.Rules.Add(rule); }