diff options
author | Patrick McHardy <kaber@trash.net> | 2007-12-03 15:32:28 +0000 |
---|---|---|
committer | Patrick McHardy <kaber@trash.net> | 2007-12-03 15:32:28 +0000 |
commit | df1ef3862761e534c6cec6bd9370285cb5909dd0 (patch) | |
tree | 6c17dc069e0bbbd4924efaf4bc4089185ce2481c /xtables.c | |
parent | 19b61ddebbd67bc91d2c395dea29bad7db21f316 (diff) |
Fix showing help text for matches/targets with revision as user
When running as a user iptables can't determine the highest supported
revision and exits. Assume all revision are supported in case we get
a EPERM. If the user is not showing the help text but trying to add
new rules he'll get EPERM later anyway.
Diffstat (limited to 'xtables.c')
-rw-r--r-- | xtables.c | 9 |
1 files changed, 9 insertions, 0 deletions
@@ -411,6 +411,15 @@ static int compatible_revision(const char *name, u_int8_t revision, int opt) sockfd = socket(afinfo.family, SOCK_RAW, IPPROTO_RAW); if (sockfd < 0) { + if (errno == EPERM) { + /* revision 0 is always supported. */ + if (revision != 0) + fprintf(stderr, "Could not determine whether " + "revision %u is supported, " + "assuming it is.\n", + revision); + return 1; + } fprintf(stderr, "Could not open socket to kernel: %s\n", strerror(errno)); exit(1); |