[prev in list] [next in list] [prev in thread] [next in thread]
List: netfilter
Subject: (libiptc) iptc_delete_entry or iptc_delete_num_entry?
From: Craig Davison <cd () securityfocus ! com>
Date: 2003-01-31 20:57:37
[Download RAW message or body]
Hi,
Should I be using iptc_delete_num_entry or iptc_delete_entry to delete
rules from a chain? I can't seem to find documentation for the
parameters of iptc_delete_entry (please point me in the right direction if
it exists!), and I'm not 100% sure what to pass for the rulenum parameter
to iptc_delete_num_entry.
The only documentation I have for iptc_delete_num_entry is the
Querying-libiptc-HOWTO from the LDP, and it says that rulenum is a rule
number starting at 1 for the first rule.
So let's say I want to delete every rule one at a time from a chain. Do I
have to manually increase my own rulenum counter for every rule, or is
there some way to get rulenum from an ipt_entry?
Example:
iptc_handle_t htable;
const char *chain = "INPUT";
struct ipt_entry *entry;
int rulenum = 0, is_chain_changed = 0;
if (!(htable = iptc_init ("filter")))
{
printf ("iptc_init: %s\n", iptc_strerror (errno));
exit(0);
}
entry = (struct ipt_entry *)iptc_first_rule (chain, &htable);
while (entry)
{
rulenum++;
if (!(iptc_delete_num_entry (chain, rulenum, &htable)))
{
printf ("iptc_delete_num_entry: %s\n", iptc_strerror (errno));
break;
}
is_chain_changed = 1;
entry = (struct ipt_entry *)iptc_next_rule (entry, &htable);
}
if (is_chain_changed)
{
if (!(iptc_commit (&htable)))
fprintf (stderr, "iptc_commit: %s\n", iptc_strerror (errno));
}
Plus, is the rulenum going to change for the rest of the rules in a chain
if I delete a rule? If not immediately, how about after I commit?
TIA for any help.
--
Craig Davison
Symantec Corporation
+1 (403) 213-3939 ext. 228
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic