public void PerformSync(string matches) { var whitelist = _aclProvider.GetWhitelisted(); IpSetSet set = new IpSetSet(IpSetType.HashIp,"wl_ip",0, _system, IpSetSyncMode.SetAndEntries); foreach (var w in whitelist) { set.Entries.Add(new IpSetEntry(set, new IpCidr(w))); } IpSetSets sets = new IpSetSets(_system); sets.AddSet(set); sets.Sync(); IpTablesRuleSet rules = new IpTablesRuleSet(4, _system); rules.AddRule("-A INPUT -m set --match-set wl_ip src -j ACCEPT -m comment --comment WLRULE"); rules.AddRule("-A INPUT " + matches + " j DROP -m comment --comment DROPRULE"); rules.Sync(new DefaultNetfilterSync<IpTablesRule>(Comparer)); }
public void TestParseEntry1() { var set = IpSetSet.Parse("test_set hash:ip family inet hashsize 10 maxelem 14", null); IpSetSets sets = new IpSetSets(null); sets.AddSet(set); String toParse = "test_set 8.8.8.8"; var entry = IpSetEntry.Parse(toParse, sets); Assert.AreEqual("test_set", entry.Set.Name); Assert.AreEqual(IPAddress.Parse("8.8.8.8"), entry.Cidr.Address); }