summaryrefslogtreecommitdiff
path: root/net-firewall
diff options
context:
space:
mode:
Diffstat (limited to 'net-firewall')
-rw-r--r--net-firewall/iptables-snmp/ChangeLog14
-rw-r--r--net-firewall/iptables-snmp/Manifest13
-rw-r--r--net-firewall/iptables-snmp/files/0001-Patch-from-https-dev.openwrt.org-browser-packages-ne.patch42
-rw-r--r--net-firewall/iptables-snmp/files/0002-Patch-from-https-dev.openwrt.org-ticket-11045.patch550
-rw-r--r--net-firewall/iptables-snmp/files/0003-Patch-from-https-dev.openwrt.org-ticket-11045.patch487
-rw-r--r--net-firewall/iptables-snmp/files/0004-MINOR-Remove-unused-source-directories.patch4524
-rw-r--r--net-firewall/iptables-snmp/files/0005-MINOR-Ignore-generated-files.patch29
-rw-r--r--net-firewall/iptables-snmp/files/0006-MINOR-Strip-spaces.patch906
-rw-r--r--net-firewall/iptables-snmp/files/0007-MINOR-Remove-dead-code.patch214
-rw-r--r--net-firewall/iptables-snmp/files/0008-MINOR-Remove-unused-parameters.patch284
-rw-r--r--net-firewall/iptables-snmp/files/0009-MAJOR-Replace-autotools-with-simple-Makefile.patch6012
-rw-r--r--net-firewall/iptables-snmp/iptables-snmp-0.1.ebuild4
12 files changed, 18 insertions, 13061 deletions
diff --git a/net-firewall/iptables-snmp/ChangeLog b/net-firewall/iptables-snmp/ChangeLog
index d078e51c..dfac3e1d 100644
--- a/net-firewall/iptables-snmp/ChangeLog
+++ b/net-firewall/iptables-snmp/ChangeLog
@@ -1,3 +1,17 @@
+ 15 Aug 2015; Bertrand Jacquin <bertrand@jacquin.bzh>
+ -files/0001-Patch-from-https-dev.openwrt.org-browser-packages-ne.patch,
+ -files/0002-Patch-from-https-dev.openwrt.org-ticket-11045.patch,
+ -files/0003-Patch-from-https-dev.openwrt.org-ticket-11045.patch,
+ -files/0004-MINOR-Remove-unused-source-directories.patch,
+ -files/0005-MINOR-Ignore-generated-files.patch,
+ -files/0006-MINOR-Strip-spaces.patch,
+ -files/0007-MINOR-Remove-dead-code.patch,
+ -files/0008-MINOR-Remove-unused-parameters.patch,
+ -files/0009-MAJOR-Replace-autotools-with-simple-Makefile.patch,
+ iptables-snmp-0.1.ebuild:
+ net-firewall/iptables-snmp: Move patches to http://git.meleeweb.net/gentoo
+ /etc-portage-patches.git/tree/net-firewall/iptables-snmp
+
25 Jan 2015; Bertrand Jacquin <bertrand@jacquin.bzh> metadata.xml:
Update email address
diff --git a/net-firewall/iptables-snmp/Manifest b/net-firewall/iptables-snmp/Manifest
index 46764bde..b56209b2 100644
--- a/net-firewall/iptables-snmp/Manifest
+++ b/net-firewall/iptables-snmp/Manifest
@@ -1,13 +1,4 @@
-AUX 0001-Patch-from-https-dev.openwrt.org-browser-packages-ne.patch 1190 SHA256 bd149732e021c1474a8f753f254eeab52d2aeb75f4058ba0a347cb4c8407047d WHIRLPOOL 4c4459709ecc72717576c99c4a66c3d354f4a37006a4e2e7752aab16787ce7900c4c1c0eb214a12ffd1b2739ac8f021fbf718ddfef4f03066173125e5ee0d080
-AUX 0002-Patch-from-https-dev.openwrt.org-ticket-11045.patch 17582 SHA256 8247228e21dc76b83b20235edbe2844a0c519762be6f626d1bc8a25f62117e35 WHIRLPOOL f9a83d8b4ac190a3c76e52c6706660294764f16b883afaf40a913720f0f91660d285015eac6637434c89cec20c684831a65f0846dbfd45f9caadc2743ab2c8f7
-AUX 0003-Patch-from-https-dev.openwrt.org-ticket-11045.patch 14728 SHA256 1ea2021ead349c3b0f8f816dfc718a96a3a1d64e82ea56932961d051cdfb8c39 WHIRLPOOL bb8b75bd3555b8ce00b30519b41404383ce202f186ce429682659cf2588b59f0494f32ca3aee36def595e42ad57750ca28af88df1f84748faaf4aa3b96972f94
-AUX 0004-MINOR-Remove-unused-source-directories.patch 125882 SHA256 5768accc9d1ea8da5dffad4f282f4e6f8372915ae62c9bc2e5c85ca8d5178b1e WHIRLPOOL 71d0e0a35224c9f08687a11fac9d0222fc328a9a7732833ab97ddec1c584c16c8508d1410932f5b87a0f4fc6315b0b3244b830374234979d955618614fba88ad
-AUX 0005-MINOR-Ignore-generated-files.patch 589 SHA256 fc4660dc32d0977088bf4d344d986907ebcc7be23bd55ac1fb5ab6bb96bc2546 WHIRLPOOL 1e87e974bfdec3ec555f1cd343424534a004f62fec7631d0f456d46ebd046960eeb981cdafff59006f5cb7594a7c632c3c3aec4368f29df6ca32bb07e21e1272
-AUX 0006-MINOR-Strip-spaces.patch 26026 SHA256 8a4a1a2479bf489a9c5583c79bdafedc49dac8fcb985636e1946497e0d672c83 WHIRLPOOL 374f1bde3e9815a6f863fccd7b1213817bafae1c25552b52929bd2f68ab3e9e99b14ceb45bd88010af7628f92ea1357f53f7938c7b3611a7d8c3f41d3c8c4a6a
-AUX 0007-MINOR-Remove-dead-code.patch 6424 SHA256 74a41610cf2e30b0f0653b5040f897aaf8c86ae5bfc53abfc835e09a4d61cb32 WHIRLPOOL ad3762ee94c3b80676134d05b4e84894da74118ed4c8252f59164c2bc6d17a662d2be056be3027207746e269036a71bb00a07746f46a76b45d731c500ebac516
-AUX 0008-MINOR-Remove-unused-parameters.patch 9307 SHA256 a2f1f6f380c403f159e5b0f0ef42654bc0c688376b61eddb9170b2c65f50c2ab WHIRLPOOL 36b2a0dffbe4afac268b214ab76b05edf78db7067625b42e610c330c43127b9d4abc88cdb407aafcabe0c09d258554b99ca8abcd439fbb4f8fd2630eab236d28
-AUX 0009-MAJOR-Replace-autotools-with-simple-Makefile.patch 189928 SHA256 3547341aeb48a5305e6d4175eeecbd2c37f175b8a0268c28d63740fa162beedf WHIRLPOOL 9377676ea4a29b7c608e1eb4052688b197a85e4810869de6e71d0c35511be4c36aed6f450e198bc1b70819845bb82a4485aba0a31d9b5ed7323cafa781ae4cee
DIST iptables-snmp-0.1.tar.gz 80215 SHA256 3275bb3820809a311b9f92ea32f071888b9a92f60c831417490e811f46ec4d54 WHIRLPOOL bac93d4a4b59916ae45a7e318b75d3d067003fedfcf247624b9396b60e1f1cad4aec0e2d1d50e3a48e382d7c259ded1165f1a802b9583280ef4cbd06a53a7335
-EBUILD iptables-snmp-0.1.ebuild 959 SHA256 11065775825e46eafc33c8987ca308db749acb2a4a04e973380d4305d670f87b WHIRLPOOL 4f55ccc55094d542c01ec422afdb4ae878f2258ba9e7922b8146062e75f5a2ed22837b1f2d70aa5ae1edc573e40223fe643ee880d323abed46288f772d68cada
-MISC ChangeLog 1293 SHA256 8686b9a506cab9bda2aaf6ec8490c46c6ff4064f8d6f0970c91697060ef262ca WHIRLPOOL f7d4d4394063bd5c65dca975de389541a8dbd6e752596f5675050c9bb3e3cb61fbe3d58e4978c088ce074c50e172522508695e0afcbb292fafffa41aac1ae2b9
+EBUILD iptables-snmp-0.1.ebuild 942 SHA256 bdae87f242e9b4c0b7b0b6b367fcd8326f59ab7cc16b919ca53a5bacf55808df WHIRLPOOL e344e62ebdb4c42863ad708187e21ed328457951fc82181f22009546a4dd1d7f68e91c093a2845ccb34b4c3ec57dcf1e3911393ff655710de89bc2a5abb0cab6
+MISC ChangeLog 2033 SHA256 d95d17970972bc04baf7e6c96c085f6ad61ca1ceed99d19e7cd9d68fb5851d38 WHIRLPOOL 69c41c96cfefc8c5bb92e1c4e9ed5eda9c8b31f2f6f630144d89083e5c0ef9d672bd0c6c0ac8499e3b11cd73d2c8df04b875c6d9b409ee473a9b5cf9d630c091
MISC metadata.xml 256 SHA256 6ca43960767ca28661abf97c85263db77fe7643902be2ce777c61aa688d8ea2d WHIRLPOOL cef8582829111be09e651eb819e6d1ea59c9c4386b842169ccd46a14c8e3ccb090486fecd61c5fd4aa47998cacc69cdc1fb5ca6bb6325a4da1ebfd0b6eebda7b
diff --git a/net-firewall/iptables-snmp/files/0001-Patch-from-https-dev.openwrt.org-browser-packages-ne.patch b/net-firewall/iptables-snmp/files/0001-Patch-from-https-dev.openwrt.org-browser-packages-ne.patch
deleted file mode 100644
index b4c3c30d..00000000
--- a/net-firewall/iptables-snmp/files/0001-Patch-from-https-dev.openwrt.org-browser-packages-ne.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 1394f5bc558b5a55d1ceabaff7b4b3b7f813867e Mon Sep 17 00:00:00 2001
-From: Bertrand Jacquin <bertrand@jacquin.bzh>
-Date: Thu, 12 Dec 2013 22:56:05 +0100
-Subject: [PATCH 1/9] Patch from
- https://dev.openwrt.org/browser/packages/net/iptables-snmp/patches/001-use_libiptc.patch
-
-Signed-off-by: Bertrand Jacquin <bertrand@jacquin.bzh>
----
- Makefile.in | 2 +-
- iptables-snmp.c | 3 +++
- 2 files changed, 4 insertions(+), 1 deletion(-)
-
-diff --git Makefile.in Makefile.in
-index 781ccca..1f41908 100644
---- Makefile.in
-+++ Makefile.in
-@@ -67,7 +67,7 @@ OTHER = -Iinclude -DIPTABLES_VERSION=$(NETFILTER) -DUSE_ENTERPRISE_OID=$(STAMFE
-
- all: iptables-snmp.so
-
--iptables-snmp.so: $(OBJS) libiptc.a Makefile
-+iptables-snmp.so: $(OBJS) Makefile
- $(CC) $(CFLAGS) $(OTHER) $(DFLAGS) -shared -o $@ $(OBJS) $(LDFLAGS)
-
- libiptc.a: $(LIBIPTC_OBJS) Makefile
-diff --git iptables-snmp.c iptables-snmp.c
-index 84db747..ca43892 100644
---- iptables-snmp.c
-+++ iptables-snmp.c
-@@ -37,6 +37,9 @@
-
- #include "libiptc/libiptc.h"
-
-+/* For backward compatibility */
-+typedef struct iptc_handle *iptc_handle_t;
-+
- static oid agent_version_oid[] = {
- BASE_OID, 1, 0, AGENT_VERSION_INDEX
- };
---
-1.8.5.1
-
diff --git a/net-firewall/iptables-snmp/files/0002-Patch-from-https-dev.openwrt.org-ticket-11045.patch b/net-firewall/iptables-snmp/files/0002-Patch-from-https-dev.openwrt.org-ticket-11045.patch
deleted file mode 100644
index 09a65363..00000000
--- a/net-firewall/iptables-snmp/files/0002-Patch-from-https-dev.openwrt.org-ticket-11045.patch
+++ /dev/null
@@ -1,550 +0,0 @@
-From a17336fdf00b49a958a6f9680abc2e5b3f690f4c Mon Sep 17 00:00:00 2001
-From: Bertrand Jacquin <bertrand@jacquin.bzh>
-Date: Thu, 12 Dec 2013 23:01:42 +0100
-Subject: [PATCH 2/9] Patch from https://dev.openwrt.org/ticket/11045
- 002-use_libiptc.patch
-
-Signed-off-by: Bertrand Jacquin <bertrand@jacquin.bzh>
----
- Makefile.in | 7 +++---
- iptables-snmp.c | 70 ++++++++++++++++++++++++----------------------------
- iptables-snmp.h | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
- mibs/IPTABLES.MIB | 72 ++++++++++++++++++++++++++++++++++++++----------------
- mibs/STAMFEST.MIB | 29 ++++++++++++++--------
- 5 files changed, 179 insertions(+), 72 deletions(-)
- create mode 100644 iptables-snmp.h
-
-diff --git Makefile.in Makefile.in
-index 1f41908..80d47c5 100644
---- Makefile.in
-+++ Makefile.in
-@@ -53,7 +53,8 @@ STAMFEST_OID = 1,3,6,1,4,1,12806
-
- SRCS = iptables-snmp.c
- OBJS = $(SRCS:.c=.o)
--LDFLAGS = -L. -liptc
-+L_SNMP_FLAGS = -lnetsnmp -lnetsnmphelpers -lnetsnmpagent -lnetsnmpmibs
-+L_LDFLAGS = -lip4tc $(L_SNMP_FLAGS)
-
- NETFILTER = \"$(IPTABLES)\"
-
-@@ -63,12 +64,12 @@ LIBIPTC_OBJS = $(LIBIPTC_SRCS:.c=.o)
-
- DFLAGS = -fPIC
-
--OTHER = -Iinclude -DIPTABLES_VERSION=$(NETFILTER) -DUSE_ENTERPRISE_OID=$(STAMFEST_OID) -DAGENT_VERSION=\"$(AGENT_VERSION)\"
-+OTHER = -DIPTABLES_VERSION=$(NETFILTER) -DUSE_ENTERPRISE_OID=$(STAMFEST_OID) -DAGENT_VERSION=\"$(AGENT_VERSION)\"
-
- all: iptables-snmp.so
-
- iptables-snmp.so: $(OBJS) Makefile
-- $(CC) $(CFLAGS) $(OTHER) $(DFLAGS) -shared -o $@ $(OBJS) $(LDFLAGS)
-+ $(CC) $(DFLAGS) -shared -o $@ $(OBJS) $(L_LDFLAGS) $(LDFLAGS)
-
- libiptc.a: $(LIBIPTC_OBJS) Makefile
- $(AR) rc $@ $(LIBIPTC_OBJS)
-diff --git iptables-snmp.c iptables-snmp.c
-index ca43892..10d7374 100644
---- iptables-snmp.c
-+++ iptables-snmp.c
-@@ -35,7 +35,7 @@
- #include <net-snmp/agent/net-snmp-agent-includes.h>
- #include "iptables-snmp.h"
-
--#include "libiptc/libiptc.h"
-+#include <libiptc/libiptc.h>
-
- /* For backward compatibility */
- typedef struct iptc_handle *iptc_handle_t;
-@@ -83,7 +83,7 @@ static void free_data(iptables_data *data) {
- free(data->tables[i]);
-
- if (data->t[i] != NULL) {
-- iptc_free(&(data->t[i]));
-+ iptc_free(data->t[i]);
- }
- }
- free(data->tables);
-@@ -379,10 +379,10 @@ store_chains(void **my_loop_context,
- c->table++;
- if (c->ctx->tables[c->table] == NULL) return NULL;
-
-- c->chainname = iptc_first_chain(&(c->ctx->t[c->table]));
-+ c->chainname = iptc_first_chain(c->ctx->t[c->table]);
- c->chain = 0;
- } else {
-- c->chainname = iptc_next_chain(&(c->ctx->t[c->table]));
-+ c->chainname = iptc_next_chain(c->ctx->t[c->table]);
- c->chain++;
- }
- } while (c->chainname == NULL);
-@@ -523,8 +523,8 @@ iptables_chains_handler(netsnmp_mib_handler *handler,
-
- const char *cn;
- int i;
-- for (cn = iptc_first_chain(&(ctx->t[table])), i=0 ; cn ;
-- cn = iptc_next_chain(&(ctx->t[table])), i++) {
-+ for (cn = iptc_first_chain(ctx->t[table]), i=0 ; cn ;
-+ cn = iptc_next_chain(ctx->t[table]), i++) {
- if (i == chain) {
- if (table_info->colnum == C_CHAIN_NAME) {
- snmp_set_var_typed_value(var, ASN_OCTET_STR,
-@@ -535,8 +535,8 @@ iptables_chains_handler(netsnmp_mib_handler *handler,
- struct ipt_counters cnt;
- unsigned int isbuiltin = 1;
-
-- const char *pol =
-- iptc_get_policy(cn, &cnt, &(ctx->t[table]));
-+ char *pol =
-+ (char *)iptc_get_policy(cn, &cnt, ctx->t[table]);
-
- if (!pol) {
- isbuiltin = 0;
-@@ -544,40 +544,33 @@ iptables_chains_handler(netsnmp_mib_handler *handler,
-
- switch (table_info->colnum) {
- case C_CHAIN_POLICY:
-- if (!pol) {
-- // this is not a built in chain, there is no policy
-- break;
-- }
-- snmp_set_var_typed_value(var, ASN_OCTET_STR,
-+ if (!isbuiltin) {
-+ pol = "none";
-+ }
-+ snmp_set_var_typed_value(var, ASN_OCTET_STR,
- (unsigned char *) pol,
- strlen(pol));
-- break;
-+ break;
- case C_CHAIN_OCTETS:
-- if (isbuiltin) {
-- // this is a built in chain, display
-- // counter
--
-+ if (!isbuiltin) {
-+ cnt.bcnt = 0;
-+ }
- c64.low = 0xffffffff & cnt.bcnt;
- c64.high = 0xffffffff & (cnt.bcnt >> 32);
- snmp_set_var_typed_value(var, ASN_COUNTER64,
- (void*) &(c64),
- sizeof(c64));
--
-- }
-- break;
-+ break;
- case C_CHAIN_PACKETS:
-- if (isbuiltin) {
-- // this is a built in chain, display
-- // counter
--
-+ if (!isbuiltin) {
-+ cnt.pcnt = 0;
-+ }
- c64.low = 0xffffffff & cnt.pcnt;
- c64.high = 0xffffffff & (cnt.pcnt >> 32);
- snmp_set_var_typed_value(var, ASN_COUNTER64,
- (void*) &(c64),
- sizeof(c64));
--
-- }
-- break;
-+ break;
- }
- }
- break;
-@@ -655,18 +648,18 @@ store_rules(void **my_loop_context,
- c->table++;
- if (c->ctx->tables[c->table] == NULL) return NULL;
-
-- c->chainname = iptc_first_chain(&(c->ctx->t[c->table]));
-+ c->chainname = iptc_first_chain(c->ctx->t[c->table]);
- c->chain = 0;
- } else {
-- c->chainname = iptc_next_chain(&(c->ctx->t[c->table]));
-+ c->chainname = iptc_next_chain(c->ctx->t[c->table]);
- c->chain++;
- }
- } while (c->chainname == NULL);
-
-- c->e = iptc_first_rule(c->chainname, &(c->ctx->t[c->table]));
-+ c->e = iptc_first_rule(c->chainname, c->ctx->t[c->table]);
- c->rule = 0;
- } else {
-- c->e = iptc_next_rule(c->e, &(c->ctx->t[c->table]));
-+ c->e = iptc_next_rule(c->e, c->ctx->t[c->table]);
- c->rule++;
- }
- } while (c->e == NULL);
-@@ -868,8 +861,8 @@ iptables_rules_handler(netsnmp_mib_handler *handler,
- case R_CHAIN_NAME_INDEX: {
- const char *cn;
- int i;
-- for (cn = iptc_first_chain(&(ctx->t[table])), i=0 ; cn ;
-- cn = iptc_next_chain(&(ctx->t[table])), i++) {
-+ for (cn = iptc_first_chain(ctx->t[table]), i=0 ; cn ;
-+ cn = iptc_next_chain(ctx->t[table]), i++) {
- if (i == chain) {
- snmp_set_var_typed_value(var, ASN_OCTET_STR,
- (unsigned char *) cn,
-@@ -890,12 +883,12 @@ iptables_rules_handler(netsnmp_mib_handler *handler,
- const char *cn;
- int i;
-
-- for (cn = iptc_first_chain(&(ctx->t[table])), i=0 ; cn ;
-- cn = iptc_next_chain(&(ctx->t[table])), i++) {
-+ for (cn = iptc_first_chain(ctx->t[table]), i=0 ; cn ;
-+ cn = iptc_next_chain(ctx->t[table]), i++) {
- /* printf("%d %d\n", i, chain); */
- if (i == chain) {
- struct ipt_counters *cnt =
-- iptc_read_counter(cn, rule+1, &(ctx->t[table]));
-+ iptc_read_counter(cn, rule+1, ctx->t[table]);
- struct counter64 c64;
-
-
-@@ -950,7 +943,7 @@ iptables_rules_handler(netsnmp_mib_handler *handler,
- n -= i;
-
- /* Print target name */
-- target_name = iptc_get_target(e, &(ctx->t[table]));
-+ target_name = iptc_get_target(e, ctx->t[table]);
-
- if (target_name && *target_name) {
- i = snprintf(buf + sizeof(buf) - n, n,
-@@ -1159,6 +1152,7 @@ init_iptables(void)
-
- table_info->min_column = 1;
- table_info->max_column = 7;
-+ iinfo->make_data_context = chains_make_data_context;
- iinfo->get_first_data_point = chains_get_first_names;
- iinfo->get_next_data_point = chains_get_next_names;
- iinfo->free_loop_context_at_end = chains_free_loop_context_at_end;
-diff --git iptables-snmp.h iptables-snmp.h
-new file mode 100644
-index 0000000..2b23a2f
---- /dev/null
-+++ iptables-snmp.h
-@@ -0,0 +1,73 @@
-+/*
-+ * $Id$
-+ *
-+ * This file is part of iptables-snmp - using SNMP to read data from linux
-+ * iptables
-+ *
-+ * iptables-snmp is copyrighted software:
-+ * (c) 2003 by Peter Stamfest <peter@stamfest.at>
-+ *
-+ * iptables-snmp is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * iptables-snmp is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with iptables-snmp; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-+ *
-+ * Note: See the file COPYING for the GNU General Public License and some
-+ * extensions to it designed to protect the OID space of Peter Stamfest from
-+ * becoming polluted.
-+ */
-+#ifndef IPTABLES_SNMP_H_INCLUDED
-+#define IPTABLES_SNMP_H_INCLUDED
-+
-+/* init function */
-+void init_iptables(void);
-+
-+#define STAMFEST_OID 1,3,6,1,4,1,12806
-+
-+/* USE_ENTERPRISE_OID may get passed on the commandline (-D) */
-+#ifndef USE_ENTERPRISE_OID
-+# define USE_ENTERPRISE_OID STAMFEST_OID
-+#endif
-+
-+#define BASE_OID USE_ENTERPRISE_OID,6,1
-+
-+#define AGENT_VERSION_INDEX 1
-+#define IPTABLES_VERSION_INDEX 2
-+
-+/* the chains table */
-+
-+#define C_CHAIN_INDEX 1
-+#define C_TABLE_INDEX 2
-+#define C_CHAIN_NAME 3
-+#define C_TABLE_NAME 4
-+#define C_CHAIN_POLICY 5
-+#define C_CHAIN_OCTETS 6
-+#define C_CHAIN_PACKETS 7
-+
-+/* the rules table */
-+
-+#define R_RULE_INDEX 1
-+#define R_CHAIN_INDEX 2
-+#define R_TABLE_INDEX 3
-+#define R_CHAIN_NAME_INDEX 4
-+#define R_TABLE_NAME_INDEX 5
-+#define R_OCTETS_INDEX 6
-+#define R_PACKETS_INDEX 7
-+#define R_RULE_SHORT_INDEX 8
-+#define R_SRC_IPADDR_INDEX 9
-+#define R_SRC_MASK_INDEX 10
-+#define R_DST_IPADDR_INDEX 11
-+#define R_DST_MASK_INDEX 12
-+
-+#define R_MAX 12
-+
-+#endif /* IPTABLES_SNMP_H_INCLUDED */
-diff --git mibs/IPTABLES.MIB mibs/IPTABLES.MIB
-index 12aee69..105e4dc 100644
---- mibs/IPTABLES.MIB
-+++ mibs/IPTABLES.MIB
-@@ -38,15 +38,25 @@ IPTABLES-MIB DEFINITIONS ::= BEGIN
-
- IMPORTS
- MODULE-IDENTITY, OBJECT-TYPE,
-+ -- next missing imports added by AG
-+ Integer32, Counter64, IpAddress,
- Counter32 FROM SNMPv2-SMI
-+ -- next missing import added by AG
-+ DisplayString FROM SNMPv2-TC
-+
- stamfestMIB FROM STAMFEST-MIB;
-
- iptablesMIB MODULE-IDENTITY
-- LAST-UPDATED "200303190800Z"
-+ LAST-UPDATED "201202231600Z"
-+ -- LAST-UPDATED "200303190800Z"
- ORGANIZATION "Peter Stamfest - Unix, Networking and Computing Consultant"
- CONTACT-INFO "peter@stamfest.at"
- DESCRIPTION
- "A MIB module describing linux iptables"
-+ REVISION "201202231600Z"
-+ DESCRIPTION
-+ "Modified by AG to adhere to standards and
-+ to reflect the latest version of libiptc."
- ::= { stamfestMIB 1 }
-
- iptablesMIBObjects OBJECT IDENTIFIER ::= { iptablesMIB 1 }
-@@ -77,7 +87,8 @@ iptablesVersion OBJECT-TYPE
- ----------------------------------------------------------------------
-
- iptableNamesTable OBJECT-TYPE
-- SYNTAX SEQUENCE OF iptableNamesEntry
-+ -- next changed to SEQUENCE name by AG
-+ SYNTAX SEQUENCE OF IptableNamesEntry
- MAX-ACCESS not-accessible
- STATUS current
- DESCRIPTION
-@@ -100,7 +111,8 @@ IptableNamesEntry ::=
- }
-
- tableIndex OBJECT-TYPE
-- SYNTAX Integer32
-+ -- next range added by AG
-+ SYNTAX Integer32 (0..65535)
- MAX-ACCESS read-only
- STATUS current
- DESCRIPTION
-@@ -123,7 +135,8 @@ tableName OBJECT-TYPE
- ----------------------------------------------------------------------
-
- iptableChains OBJECT-TYPE
-- SYNTAX SEQUENCE OF iptableChainsEntry
-+ -- next changed to SEQUENCE name by AG
-+ SYNTAX SEQUENCE OF IptableChainsEntry
- MAX-ACCESS not-accessible
- STATUS current
- DESCRIPTION
-@@ -131,12 +144,14 @@ iptableChains OBJECT-TYPE
- ::= { iptablesMIBObjects 2 }
-
- iptableChainsEntry OBJECT-TYPE
-- SYNTAX IptableRulesEntry
-+ -- next changed to chains SEQUENCE name by AG
-+ SYNTAX IptableChainsEntry
- MAX-ACCESS not-accessible
- STATUS current
- DESCRIPTION
- "An entry containing and mapping of table and chain names."
-- INDEX { tableIndex }
-+ -- next changed to defined object by AG
-+ INDEX { chainIndex }
- ::= { iptableChains 1 }
-
- IptableChainsEntry ::=
-@@ -144,13 +159,19 @@ IptableChainsEntry ::=
- chainIndex Integer32,
- tableIndexC Integer32,
- chainName DisplayString,
-- chainPolicy DisplayString
-- chainOctets Integer64,
-- chainPackets Integer64
-+ -- next added by AG
-+ chainTableNameC DisplayString,
-+ -- next comma added by AG
-+ chainPolicy DisplayString,
-+ -- next 2 changed to Counter64 by AG
-+ chainOctets Counter64,
-+ chainPackets Counter64
-+
- }
-
- chainIndex OBJECT-TYPE
-- SYNTAX Integer32
-+ -- next range added by AG
-+ SYNTAX Integer32 (0..65535)
- MAX-ACCESS read-only
- STATUS current
- DESCRIPTION
-@@ -190,7 +211,8 @@ chainPolicy OBJECT-TYPE
- ::= { iptableChainsEntry 5 }
-
- chainOctets OBJECT-TYPE
-- SYNTAX Integer64
-+ -- next changed to Counter64 by AG
-+ SYNTAX Counter64
- MAX-ACCESS read-only
- STATUS current
- DESCRIPTION
-@@ -198,7 +220,8 @@ chainOctets OBJECT-TYPE
- ::= { iptableChainsEntry 6 }
-
- chainPackets OBJECT-TYPE
-- SYNTAX Integer64
-+ -- next changed to Counter64 by AG
-+ SYNTAX Counter64
- MAX-ACCESS read-only
- STATUS current
- DESCRIPTION
-@@ -212,7 +235,8 @@ chainPackets OBJECT-TYPE
- ----------------------------------------------------------------------
-
- iptableRules OBJECT-TYPE
-- SYNTAX SEQUENCE OF iptableRulesEntry
-+ -- next changed to SEQUENCE name by AG
-+ SYNTAX SEQUENCE OF IptableRulesEntry
- MAX-ACCESS not-accessible
- STATUS current
- DESCRIPTION
-@@ -225,7 +249,8 @@ iptableRulesEntry OBJECT-TYPE
- STATUS current
- DESCRIPTION
- "An entry containing and mapping of table and chain names."
-- INDEX { tableIndex }
-+ -- next changed to defined object by AG
-+ INDEX { tableIndexR }
- ::= { iptableRules 1 }
-
- IptableRulesEntry ::=
-@@ -235,9 +260,11 @@ IptableRulesEntry ::=
- tableIndexR Integer32,
- chainNameR DisplayString,
- chainTableNameR DisplayString,
-- ruleOctets Integer64,
-- rulePackets Integer64,
-- chainRule DisplayString
-+ -- next 2 changed to Counter64 by AG
-+ ruleOctets Counter64,
-+ rulePackets Counter64,
-+ -- next comma added by AG
-+ chainRule DisplayString,
- sourceIP IpAddress,
- sourceMask IpAddress,
- destinationIP IpAddress,
-@@ -261,7 +288,8 @@ chainIndexR OBJECT-TYPE
- ::= { iptableRulesEntry 2 }
-
- tableIndexR OBJECT-TYPE
-- SYNTAX Integer32
-+ -- next range added by AG
-+ SYNTAX Integer32 (0..65535)
- MAX-ACCESS read-only
- STATUS current
- DESCRIPTION
-@@ -285,7 +313,8 @@ chainTableNameR OBJECT-TYPE
- ::= { iptableRulesEntry 5 }
-
- ruleOctets OBJECT-TYPE
-- SYNTAX Integer64
-+ -- next changed to Counter64 by AG
-+ SYNTAX Counter64
- MAX-ACCESS read-only
- STATUS current
- DESCRIPTION
-@@ -293,7 +322,8 @@ ruleOctets OBJECT-TYPE
- ::= { iptableRulesEntry 6 }
-
- rulePackets OBJECT-TYPE
-- SYNTAX Integer64
-+ -- next changed to Counter64 by AG
-+ SYNTAX Counter64
- MAX-ACCESS read-only
- STATUS current
- DESCRIPTION
-@@ -350,4 +380,4 @@ destinationMask OBJECT-TYPE
-
- ip6tablesMIBObjects OBJECT IDENTIFIER ::= { iptablesMIB 2 }
-
--END
-\ No newline at end of file
-+END
-diff --git mibs/STAMFEST.MIB mibs/STAMFEST.MIB
-index 7d05030..05182c5 100644
---- mibs/STAMFEST.MIB
-+++ mibs/STAMFEST.MIB
-@@ -29,27 +29,36 @@ STAMFEST-MIB DEFINITIONS ::= BEGIN
- ----------------------------------------------------------------------
-
- IMPORTS
-- enterprises FROM SNMPv2-SMI;
-+ -- enterprises FROM SNMPv2-SMI;
-+ -- Modified by AG
-+ enterprises, MODULE-IDENTITY FROM SNMPv2-SMI;
-
- stamfestTOP MODULE-IDENTITY
-- LAST-UPDATED "200303131352Z"
-+ -- LAST-UPDATED "200303131352Z"
-+ LAST-UPDATED "201202231311Z"
- ORGANIZATION "Peter Stamfest - Unix, Networking and Computing Consultant"
- CONTACT-INFO
- "peter@stamfest.at"
-+ -- Added by AG
- DESCRIPTION
- "The top OID assigned to Peter Stamfest. Sub OIDs get used for LDAP
- and SNMP. Note that all MIBs get collected below stamfestMIB
- (not stamfestTOP)"
-+ REVISION "201202231311Z"
-+ DESCRIPTION
-+ "Modified by AG to adhere to standards"
- ::= { enterprises 12806 }
-
--stamfestMIB MODULE-IDENTITY
-- LAST-UPDATED "200303131352Z"
-- ORGANIZATION "Peter Stamfest - Unix, Networking and Computing Consultant"
-- CONTACT-INFO
-- "peter@stamfest.at"
-- DESCRIPTION
-- "A common MIB base for SNMP MIBs released by Peter Stamfest"
-- ::= { stamfestTOP 6 }
-+-- Modified by AG
-+-- stamfestMIB MODULE-IDENTITY
-+-- LAST-UPDATED "200303131352Z"
-+-- ORGANIZATION "Peter Stamfest - Unix, Networking and Computing Consultant"
-+-- CONTACT-INFO
-+-- "peter@stamfest.at"
-+-- DESCRIPTION
-+-- "A common MIB base for SNMP MIBs released by Peter Stamfest"
-+-- ::= { stamfestTOP 6 }
-+stamfestMIB OBJECT IDENTIFIER ::= { stamfestTOP 6 }
-
- END
-
---
-1.8.5.1
-
diff --git a/net-firewall/iptables-snmp/files/0003-Patch-from-https-dev.openwrt.org-ticket-11045.patch b/net-firewall/iptables-snmp/files/0003-Patch-from-https-dev.openwrt.org-ticket-11045.patch
deleted file mode 100644
index f6aaa921..00000000
--- a/net-firewall/iptables-snmp/files/0003-Patch-from-https-dev.openwrt.org-ticket-11045.patch
+++ /dev/null
@@ -1,487 +0,0 @@
-From 1619d1d1ea325b691eb859b0c1bed45cbf887fcd Mon Sep 17 00:00:00 2001
-From: Bertrand Jacquin <bertrand@jacquin.bzh>
-Date: Thu, 12 Dec 2013 23:03:26 +0100
-Subject: [PATCH 3/9] Patch from https://dev.openwrt.org/ticket/11045
- 003-simplified-mibs.patch
-
-Signed-off-by: Bertrand Jacquin <bertrand@jacquin.bzh>
----
- include/iptables-snmp.h | 40 +++++-----
- iptables-snmp.c | 4 +
- iptables-snmp.h | 40 +++++-----
- mibs/IPTABLES.MIB | 190 ++++++++++++++++++++++++------------------------
- 4 files changed, 138 insertions(+), 136 deletions(-)
-
-diff --git include/iptables-snmp.h include/iptables-snmp.h
-index 2b23a2f..4746ff2 100644
---- include/iptables-snmp.h
-+++ include/iptables-snmp.h
-@@ -45,29 +45,29 @@ void init_iptables(void);
-
- /* the chains table */
-
--#define C_CHAIN_INDEX 1
--#define C_TABLE_INDEX 2
--#define C_CHAIN_NAME 3
--#define C_TABLE_NAME 4
--#define C_CHAIN_POLICY 5
--#define C_CHAIN_OCTETS 6
--#define C_CHAIN_PACKETS 7
-+/* #define C_CHAIN_INDEX 1 */
-+/* #define C_TABLE_INDEX 2 */
-+#define C_TABLE_NAME 1
-+#define C_CHAIN_NAME 2
-+#define C_CHAIN_POLICY 3
-+#define C_CHAIN_OCTETS 4
-+#define C_CHAIN_PACKETS 5
-
- /* the rules table */
-
--#define R_RULE_INDEX 1
--#define R_CHAIN_INDEX 2
--#define R_TABLE_INDEX 3
--#define R_CHAIN_NAME_INDEX 4
--#define R_TABLE_NAME_INDEX 5
--#define R_OCTETS_INDEX 6
--#define R_PACKETS_INDEX 7
--#define R_RULE_SHORT_INDEX 8
--#define R_SRC_IPADDR_INDEX 9
--#define R_SRC_MASK_INDEX 10
--#define R_DST_IPADDR_INDEX 11
--#define R_DST_MASK_INDEX 12
-+/* #define R_RULE_INDEX 1 */
-+/* #define R_CHAIN_INDEX 2 */
-+/* #define R_TABLE_INDEX 3 */
-+#define R_TABLE_NAME_INDEX 1
-+#define R_CHAIN_NAME_INDEX 2
-+#define R_SRC_IPADDR_INDEX 3
-+#define R_SRC_MASK_INDEX 4
-+#define R_DST_IPADDR_INDEX 5
-+#define R_DST_MASK_INDEX 6
-+#define R_RULE_SHORT_INDEX 7
-+#define R_OCTETS_INDEX 8
-+#define R_PACKETS_INDEX 9
-
--#define R_MAX 12
-+#define R_MAX 9
-
- #endif /* IPTABLES_SNMP_H_INCLUDED */
-diff --git iptables-snmp.c iptables-snmp.c
-index 10d7374..f1dd72c 100644
---- iptables-snmp.c
-+++ iptables-snmp.c
-@@ -506,6 +506,7 @@ iptables_chains_handler(netsnmp_mib_handler *handler,
- switch (reqinfo->mode) {
- case MODE_GET:
- switch (table_info->colnum) {
-+/*
- case C_CHAIN_INDEX: {
- snmp_set_var_typed_value(var, ASN_INTEGER,
- (void*) &chain, sizeof(chain));
-@@ -516,6 +517,7 @@ iptables_chains_handler(netsnmp_mib_handler *handler,
- (void*) &table, sizeof(table));
- break;
- }
-+*/
- case C_CHAIN_NAME:
- case C_CHAIN_POLICY:
- case C_CHAIN_OCTETS:
-@@ -843,6 +845,7 @@ iptables_rules_handler(netsnmp_mib_handler *handler,
- switch (reqinfo->mode) {
- case MODE_GET:
- switch (table_info->colnum) {
-+/*
- case R_RULE_INDEX: {
- snmp_set_var_typed_value(var, ASN_INTEGER,
- (void*) &rule, sizeof(rule));
-@@ -858,6 +861,7 @@ iptables_rules_handler(netsnmp_mib_handler *handler,
- (void*) &table, sizeof(table));
- break;
- }
-+*/
- case R_CHAIN_NAME_INDEX: {
- const char *cn;
- int i;
-diff --git iptables-snmp.h iptables-snmp.h
-index 2b23a2f..4746ff2 100644
---- iptables-snmp.h
-+++ iptables-snmp.h
-@@ -45,29 +45,29 @@ void init_iptables(void);
-
- /* the chains table */
-
--#define C_CHAIN_INDEX 1
--#define C_TABLE_INDEX 2
--#define C_CHAIN_NAME 3
--#define C_TABLE_NAME 4
--#define C_CHAIN_POLICY 5
--#define C_CHAIN_OCTETS 6
--#define C_CHAIN_PACKETS 7
-+/* #define C_CHAIN_INDEX 1 */
-+/* #define C_TABLE_INDEX 2 */
-+#define C_TABLE_NAME 1
-+#define C_CHAIN_NAME 2
-+#define C_CHAIN_POLICY 3
-+#define C_CHAIN_OCTETS 4
-+#define C_CHAIN_PACKETS 5
-
- /* the rules table */
-
--#define R_RULE_INDEX 1
--#define R_CHAIN_INDEX 2
--#define R_TABLE_INDEX 3
--#define R_CHAIN_NAME_INDEX 4
--#define R_TABLE_NAME_INDEX 5
--#define R_OCTETS_INDEX 6
--#define R_PACKETS_INDEX 7
--#define R_RULE_SHORT_INDEX 8
--#define R_SRC_IPADDR_INDEX 9
--#define R_SRC_MASK_INDEX 10
--#define R_DST_IPADDR_INDEX 11
--#define R_DST_MASK_INDEX 12
-+/* #define R_RULE_INDEX 1 */
-+/* #define R_CHAIN_INDEX 2 */
-+/* #define R_TABLE_INDEX 3 */
-+#define R_TABLE_NAME_INDEX 1
-+#define R_CHAIN_NAME_INDEX 2
-+#define R_SRC_IPADDR_INDEX 3
-+#define R_SRC_MASK_INDEX 4
-+#define R_DST_IPADDR_INDEX 5
-+#define R_DST_MASK_INDEX 6
-+#define R_RULE_SHORT_INDEX 7
-+#define R_OCTETS_INDEX 8
-+#define R_PACKETS_INDEX 9
-
--#define R_MAX 12
-+#define R_MAX 9
-
- #endif /* IPTABLES_SNMP_H_INCLUDED */
-diff --git mibs/IPTABLES.MIB mibs/IPTABLES.MIB
-index 105e4dc..faaabd9 100644
---- mibs/IPTABLES.MIB
-+++ mibs/IPTABLES.MIB
-@@ -47,13 +47,13 @@ IMPORTS
- stamfestMIB FROM STAMFEST-MIB;
-
- iptablesMIB MODULE-IDENTITY
-- LAST-UPDATED "201202231600Z"
-+ LAST-UPDATED "201202261600Z"
- -- LAST-UPDATED "200303190800Z"
- ORGANIZATION "Peter Stamfest - Unix, Networking and Computing Consultant"
- CONTACT-INFO "peter@stamfest.at"
- DESCRIPTION
- "A MIB module describing linux iptables"
-- REVISION "201202231600Z"
-+ REVISION "201202261600Z"
- DESCRIPTION
- "Modified by AG to adhere to standards and
- to reflect the latest version of libiptc."
-@@ -86,7 +86,7 @@ iptablesVersion OBJECT-TYPE
- --
- ----------------------------------------------------------------------
-
--iptableNamesTable OBJECT-TYPE
-+iptableTables OBJECT-TYPE
- -- next changed to SEQUENCE name by AG
- SYNTAX SEQUENCE OF IptableNamesEntry
- MAX-ACCESS not-accessible
-@@ -102,7 +102,7 @@ iptableNamesEntry OBJECT-TYPE
- DESCRIPTION
- "An entry containing and mapping the name of a iptables table name."
- INDEX { tableIndex }
-- ::= { iptableNamesTable 1 }
-+ ::= { iptableTables 1 }
-
- IptableNamesEntry ::=
- SEQUENCE {
-@@ -156,11 +156,11 @@ iptableChainsEntry OBJECT-TYPE
-
- IptableChainsEntry ::=
- SEQUENCE {
-- chainIndex Integer32,
-- tableIndexC Integer32,
-- chainName DisplayString,
-+-- chainIndex Integer32,
-+-- tableIndexC Integer32,
- -- next added by AG
- chainTableNameC DisplayString,
-+ chainName DisplayString,
- -- next comma added by AG
- chainPolicy DisplayString,
- -- next 2 changed to Counter64 by AG
-@@ -169,22 +169,30 @@ IptableChainsEntry ::=
-
- }
-
--chainIndex OBJECT-TYPE
-+--chainIndex OBJECT-TYPE
- -- next range added by AG
-- SYNTAX Integer32 (0..65535)
-- MAX-ACCESS read-only
-- STATUS current
-- DESCRIPTION
-- "The index of the corresponding iptables chain within the table"
-- ::= { iptableChainsEntry 1 }
-+-- SYNTAX Integer32 (0..65535)
-+-- MAX-ACCESS read-only
-+-- STATUS current
-+-- DESCRIPTION
-+-- "The index of the corresponding iptables chain within the table"
-+-- ::= { iptableChainsEntry 1 }
-+
-+--tableIndexC OBJECT-TYPE
-+-- SYNTAX Integer32
-+-- MAX-ACCESS read-only
-+-- STATUS current
-+-- DESCRIPTION
-+-- "The index of the corresponding iptables table the chain belongs to."
-+-- ::= { iptableChainsEntry 2 }
-
--tableIndexC OBJECT-TYPE
-- SYNTAX Integer32
-+chainTableNameC OBJECT-TYPE
-+ SYNTAX DisplayString (SIZE (0..255))
- MAX-ACCESS read-only
- STATUS current
- DESCRIPTION
-- "The index of the corresponding iptables table the chain belongs to."
-- ::= { iptableChainsEntry 2 }
-+ "The name of the corresponding iptables table of the chain"
-+ ::= { iptableChainsEntry 1 }
-
- chainName OBJECT-TYPE
- SYNTAX DisplayString (SIZE (0..255))
-@@ -192,15 +200,7 @@ chainName OBJECT-TYPE
- STATUS current
- DESCRIPTION
- "The name of the corresponding iptables chain"
-- ::= { iptableChainsEntry 3 }
--
--chainTableNameC OBJECT-TYPE
-- SYNTAX DisplayString (SIZE (0..255))
-- MAX-ACCESS read-only
-- STATUS current
-- DESCRIPTION
-- "The name of the corresponding iptables table of the chain"
-- ::= { iptableChainsEntry 4 }
-+ ::= { iptableChainsEntry 2 }
-
- chainPolicy OBJECT-TYPE
- SYNTAX DisplayString (SIZE (0..255))
-@@ -208,7 +208,7 @@ chainPolicy OBJECT-TYPE
- STATUS current
- DESCRIPTION
- "The chain policy"
-- ::= { iptableChainsEntry 5 }
-+ ::= { iptableChainsEntry 3 }
-
- chainOctets OBJECT-TYPE
- -- next changed to Counter64 by AG
-@@ -217,7 +217,7 @@ chainOctets OBJECT-TYPE
- STATUS current
- DESCRIPTION
- "The number of octets matched by this chain"
-- ::= { iptableChainsEntry 6 }
-+ ::= { iptableChainsEntry 4 }
-
- chainPackets OBJECT-TYPE
- -- next changed to Counter64 by AG
-@@ -226,7 +226,7 @@ chainPackets OBJECT-TYPE
- STATUS current
- DESCRIPTION
- "The number of packets matched by this chain"
-- ::= { iptableChainsEntry 7 }
-+ ::= { iptableChainsEntry 5 }
-
- ----------------------------------------------------------------------
- --
-@@ -255,122 +255,120 @@ iptableRulesEntry OBJECT-TYPE
-
- IptableRulesEntry ::=
- SEQUENCE {
-- ruleIndex Integer32,
-- chainIndexR Integer32,
-- tableIndexR Integer32,
-- chainNameR DisplayString,
-+-- ruleIndex Integer32,
-+-- chainIndexR Integer32,
-+-- tableIndexR Integer32,
- chainTableNameR DisplayString,
-- -- next 2 changed to Counter64 by AG
-- ruleOctets Counter64,
-- rulePackets Counter64,
-- -- next comma added by AG
-- chainRule DisplayString,
-+ chainNameR DisplayString,
- sourceIP IpAddress,
- sourceMask IpAddress,
- destinationIP IpAddress,
-- destinationMask IpAddress
-+ destinationMask IpAddress,
-+ -- next comma added by AG
-+ chainRule DisplayString,
-+ -- next 2 changed to Counter64 by AG
-+ ruleOctets Counter64,
-+ rulePackets Counter64
- }
-
--ruleIndex OBJECT-TYPE
-- SYNTAX Integer32
-+--ruleIndex OBJECT-TYPE
-+-- SYNTAX Integer32
-+-- MAX-ACCESS read-only
-+-- STATUS current
-+-- DESCRIPTION
-+-- "The index of the corresponding iptables rule within the chain within the table"
-+-- ::= { iptableRulesEntry 1 }
-+
-+--chainIndexR OBJECT-TYPE
-+-- SYNTAX Integer32
-+-- MAX-ACCESS read-only
-+-- STATUS current
-+-- DESCRIPTION
-+-- "The index of the corresponding iptables chain within the table"
-+-- ::= { iptableRulesEntry 2 }
-+
-+--tableIndexR OBJECT-TYPE
-+ -- next range added by AG
-+-- SYNTAX Integer32 (0..65535)
-+-- MAX-ACCESS read-only
-+-- STATUS current
-+-- DESCRIPTION
-+-- "The index of the corresponding iptables chain"
-+-- ::= { iptableRulesEntry 3 }
-+
-+chainTableNameR OBJECT-TYPE
-+ SYNTAX DisplayString (SIZE (0..255))
- MAX-ACCESS read-only
- STATUS current
- DESCRIPTION
-- "The index of the corresponding iptables rule within the chain within the table"
-+ "The name of the table of the corresponding iptables chain"
- ::= { iptableRulesEntry 1 }
-
--chainIndexR OBJECT-TYPE
-- SYNTAX Integer32
-+chainNameR OBJECT-TYPE
-+ SYNTAX DisplayString (SIZE (0..255))
- MAX-ACCESS read-only
- STATUS current
- DESCRIPTION
-- "The index of the corresponding iptables chain within the table"
-+ "The name of the corresponding iptables chain"
- ::= { iptableRulesEntry 2 }
-
--tableIndexR OBJECT-TYPE
-- -- next range added by AG
-- SYNTAX Integer32 (0..65535)
-+sourceIP OBJECT-TYPE
-+ SYNTAX IpAddress
- MAX-ACCESS read-only
- STATUS current
- DESCRIPTION
-- "The index of the corresponding iptables chain"
-+ "The source ip address the rule matches"
- ::= { iptableRulesEntry 3 }
-
--chainNameR OBJECT-TYPE
-- SYNTAX DisplayString (SIZE (0..255))
-+sourceMask OBJECT-TYPE
-+ SYNTAX IpAddress
- MAX-ACCESS read-only
- STATUS current
- DESCRIPTION
-- "The name of the corresponding iptables chain"
-+ "The source ip netmask the rule matches"
- ::= { iptableRulesEntry 4 }
-
--chainTableNameR OBJECT-TYPE
-- SYNTAX DisplayString (SIZE (0..255))
-+destinationIP OBJECT-TYPE
-+ SYNTAX IpAddress
- MAX-ACCESS read-only
- STATUS current
- DESCRIPTION
-- "The name of the table of the corresponding iptables chain"
-+ "The destination ip address the rule matches"
- ::= { iptableRulesEntry 5 }
-
--ruleOctets OBJECT-TYPE
-- -- next changed to Counter64 by AG
-- SYNTAX Counter64
-+destinationMask OBJECT-TYPE
-+ SYNTAX IpAddress
- MAX-ACCESS read-only
- STATUS current
- DESCRIPTION
-- "The number of octets matched by this rule"
-+ "The destination ip netmask the rule matches"
- ::= { iptableRulesEntry 6 }
-
--rulePackets OBJECT-TYPE
-- -- next changed to Counter64 by AG
-- SYNTAX Counter64
-- MAX-ACCESS read-only
-- STATUS current
-- DESCRIPTION
-- "The number of packets matched by this rule"
-- ::= { iptableRulesEntry 7 }
--
--
--
- chainRule OBJECT-TYPE
- SYNTAX DisplayString (SIZE (0..255))
- MAX-ACCESS read-only
- STATUS current
- DESCRIPTION
- "The name of the table of the corresponding iptables chain"
-- ::= { iptableRulesEntry 8 }
--
--sourceIP OBJECT-TYPE
-- SYNTAX IpAddress
-- MAX-ACCESS read-only
-- STATUS current
-- DESCRIPTION
-- "The source ip address the rule matches"
-- ::= { iptableRulesEntry 9 }
--
--sourceMask OBJECT-TYPE
-- SYNTAX IpAddress
-- MAX-ACCESS read-only
-- STATUS current
-- DESCRIPTION
-- "The source ip netmask the rule matches"
-- ::= { iptableRulesEntry 10 }
-+ ::= { iptableRulesEntry 7 }
-
--destinationIP OBJECT-TYPE
-- SYNTAX IpAddress
-+ruleOctets OBJECT-TYPE
-+ -- next changed to Counter64 by AG
-+ SYNTAX Counter64
- MAX-ACCESS read-only
- STATUS current
- DESCRIPTION
-- "The destination ip address the rule matches"
-- ::= { iptableRulesEntry 11 }
-+ "The number of octets matched by this rule"
-+ ::= { iptableRulesEntry 8 }
-
--destinationMask OBJECT-TYPE
-- SYNTAX IpAddress
-+rulePackets OBJECT-TYPE
-+ -- next changed to Counter64 by AG
-+ SYNTAX Counter64
- MAX-ACCESS read-only
- STATUS current
- DESCRIPTION
-- "The destination ip netmask the rule matches"
-- ::= { iptableRulesEntry 12 }
-+ "The number of packets matched by this rule"
-+ ::= { iptableRulesEntry 9 }
-
- ----------------------------------------------------------------------------
- --
---
-1.8.5.1
-
diff --git a/net-firewall/iptables-snmp/files/0004-MINOR-Remove-unused-source-directories.patch b/net-firewall/iptables-snmp/files/0004-MINOR-Remove-unused-source-directories.patch
deleted file mode 100644
index d2679f2c..00000000
--- a/net-firewall/iptables-snmp/files/0004-MINOR-Remove-unused-source-directories.patch
+++ /dev/null
@@ -1,4524 +0,0 @@
-From 98256a203028c5076f7ebca07b90d614277f9b5f Mon Sep 17 00:00:00 2001
-From: Bertrand Jacquin <bertrand@jacquin.bzh>
-Date: Thu, 12 Dec 2013 23:05:44 +0100
-Subject: [PATCH 4/9] MINOR: Remove unused source directories
-
-Signed-off-by: Bertrand Jacquin <bertrand@jacquin.bzh>
----
- Makefile.in | 2 +-
- include/iptables-snmp.h | 73 --
- include/libiptc/ipt_kernel_headers.h | 27 -
- include/libiptc/libip6tc.h | 154 ---
- include/libiptc/libiptc.h | 166 ---
- include/libiptc/linux_stddef.h | 39 -
- include/linux_list.h | 723 -----------
- libiptc/Makefile | 23 -
- libiptc/libip4tc.c | 500 --------
- libiptc/libip6tc.c | 439 -------
- libiptc/libiptc.c | 2274 ----------------------------------
- 11 files changed, 1 insertion(+), 4419 deletions(-)
- delete mode 100644 include/iptables-snmp.h
- delete mode 100644 include/libiptc/ipt_kernel_headers.h
- delete mode 100644 include/libiptc/libip6tc.h
- delete mode 100644 include/libiptc/libiptc.h
- delete mode 100644 include/libiptc/linux_stddef.h
- delete mode 100644 include/linux_list.h
- delete mode 100644 libiptc/Makefile
- delete mode 100644 libiptc/libip4tc.c
- delete mode 100644 libiptc/libip6tc.c
- delete mode 100644 libiptc/libiptc.c
-
-diff --git Makefile.in Makefile.in
-index 80d47c5..8b2e0a3 100644
---- Makefile.in
-+++ Makefile.in
-@@ -79,7 +79,7 @@ $(LIBIPTC_OBJS): libiptc/libiptc.c
- .c.o:
- $(CC) $(CFLAGS) $(OTHER) $(DFLAGS) -c -o $@ $<
-
--iptables-snmp.o: include/iptables-snmp.h
-+iptables-snmp.o: iptables-snmp.h
-
- clean: local-clean
-
-diff --git include/iptables-snmp.h include/iptables-snmp.h
-deleted file mode 100644
-index 4746ff2..0000000
---- include/iptables-snmp.h
-+++ /dev/null
-@@ -1,73 +0,0 @@
--/*
-- * $Id$
-- *
-- * This file is part of iptables-snmp - using SNMP to read data from linux
-- * iptables
-- *
-- * iptables-snmp is copyrighted software:
-- * (c) 2003 by Peter Stamfest <peter@stamfest.at>
-- *
-- * iptables-snmp is free software; you can redistribute it and/or modify
-- * it under the terms of the GNU General Public License as published by
-- * the Free Software Foundation; either version 2 of the License, or
-- * (at your option) any later version.
-- *
-- * iptables-snmp is distributed in the hope that it will be useful,
-- * but WITHOUT ANY WARRANTY; without even the implied warranty of
-- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- * GNU General Public License for more details.
-- *
-- * You should have received a copy of the GNU General Public License
-- * along with iptables-snmp; if not, write to the Free Software
-- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-- *
-- * Note: See the file COPYING for the GNU General Public License and some
-- * extensions to it designed to protect the OID space of Peter Stamfest from
-- * becoming polluted.
-- */
--#ifndef IPTABLES_SNMP_H_INCLUDED
--#define IPTABLES_SNMP_H_INCLUDED
--
--/* init function */
--void init_iptables(void);
--
--#define STAMFEST_OID 1,3,6,1,4,1,12806
--
--/* USE_ENTERPRISE_OID may get passed on the commandline (-D) */
--#ifndef USE_ENTERPRISE_OID
--# define USE_ENTERPRISE_OID STAMFEST_OID
--#endif
--
--#define BASE_OID USE_ENTERPRISE_OID,6,1
--
--#define AGENT_VERSION_INDEX 1
--#define IPTABLES_VERSION_INDEX 2
--
--/* the chains table */
--
--/* #define C_CHAIN_INDEX 1 */
--/* #define C_TABLE_INDEX 2 */
--#define C_TABLE_NAME 1
--#define C_CHAIN_NAME 2
--#define C_CHAIN_POLICY 3
--#define C_CHAIN_OCTETS 4
--#define C_CHAIN_PACKETS 5
--
--/* the rules table */
--
--/* #define R_RULE_INDEX 1 */
--/* #define R_CHAIN_INDEX 2 */
--/* #define R_TABLE_INDEX 3 */
--#define R_TABLE_NAME_INDEX 1
--#define R_CHAIN_NAME_INDEX 2
--#define R_SRC_IPADDR_INDEX 3
--#define R_SRC_MASK_INDEX 4
--#define R_DST_IPADDR_INDEX 5
--#define R_DST_MASK_INDEX 6
--#define R_RULE_SHORT_INDEX 7
--#define R_OCTETS_INDEX 8
--#define R_PACKETS_INDEX 9
--
--#define R_MAX 9
--
--#endif /* IPTABLES_SNMP_H_INCLUDED */
-diff --git include/libiptc/ipt_kernel_headers.h include/libiptc/ipt_kernel_headers.h
-deleted file mode 100644
-index 18861fe..0000000
---- include/libiptc/ipt_kernel_headers.h
-+++ /dev/null
-@@ -1,27 +0,0 @@
--/* This is the userspace/kernel interface for Generic IP Chains,
-- required for libc6. */
--#ifndef _FWCHAINS_KERNEL_HEADERS_H
--#define _FWCHAINS_KERNEL_HEADERS_H
--
--#include <limits.h>
--
--#if defined(__GLIBC__) && __GLIBC__ == 2
--#include <netinet/ip.h>
--#include <netinet/in.h>
--#include <netinet/ip_icmp.h>
--#include <netinet/tcp.h>
--#include <netinet/udp.h>
--#include <net/if.h>
--#include <sys/types.h>
--#else /* libc5 */
--#include <sys/socket.h>
--#include <linux/ip.h>
--#include <linux/in.h>
--#include <linux/if.h>
--#include <linux/icmp.h>
--#include <linux/tcp.h>
--#include <linux/udp.h>
--#include <linux/types.h>
--#include <linux/in6.h>
--#endif
--#endif
-diff --git include/libiptc/libip6tc.h include/libiptc/libip6tc.h
-deleted file mode 100644
-index 7a247c4..0000000
---- include/libiptc/libip6tc.h
-+++ /dev/null
-@@ -1,154 +0,0 @@
--#ifndef _LIBIP6TC_H
--#define _LIBIP6TC_H
--/* Library which manipulates firewall rules. Version 0.2. */
--
--#include <libiptc/ipt_kernel_headers.h>
--#include <linux/netfilter_ipv6/ip6_tables.h>
--
--#ifndef IP6T_MIN_ALIGN
--#define IP6T_MIN_ALIGN (__alignof__(struct ip6t_entry))
--#endif
--#define IP6T_ALIGN(s) (((s) + (IP6T_MIN_ALIGN-1)) & ~(IP6T_MIN_ALIGN-1))
--
--typedef char ip6t_chainlabel[32];
--
--#define IP6TC_LABEL_ACCEPT "ACCEPT"
--#define IP6TC_LABEL_DROP "DROP"
--#define IP6TC_LABEL_QUEUE "QUEUE"
--#define IP6TC_LABEL_RETURN "RETURN"
--
--/* Transparent handle type. */
--typedef struct ip6tc_handle *ip6tc_handle_t;
--
--/* Does this chain exist? */
--int ip6tc_is_chain(const char *chain, const ip6tc_handle_t handle);
--
--/* Take a snapshot of the rules. Returns NULL on error. */
--ip6tc_handle_t ip6tc_init(const char *tablename);
--
--/* Cleanup after ip6tc_init(). */
--void ip6tc_free(ip6tc_handle_t *h);
--
--/* Iterator functions to run through the chains. Returns NULL at end. */
--const char *ip6tc_first_chain(ip6tc_handle_t *handle);
--const char *ip6tc_next_chain(ip6tc_handle_t *handle);
--
--/* Get first rule in the given chain: NULL for empty chain. */
--const struct ip6t_entry *ip6tc_first_rule(const char *chain,
-- ip6tc_handle_t *handle);
--
--/* Returns NULL when rules run out. */
--const struct ip6t_entry *ip6tc_next_rule(const struct ip6t_entry *prev,
-- ip6tc_handle_t *handle);
--
--/* Returns a pointer to the target name of this position. */
--const char *ip6tc_get_target(const struct ip6t_entry *e,
-- ip6tc_handle_t *handle);
--
--/* Is this a built-in chain? */
--int ip6tc_builtin(const char *chain, const ip6tc_handle_t handle);
--
--/* Get the policy of a given built-in chain */
--const char *ip6tc_get_policy(const char *chain,
-- struct ip6t_counters *counters,
-- ip6tc_handle_t *handle);
--
--/* These functions return TRUE for OK or 0 and set errno. If errno ==
-- 0, it means there was a version error (ie. upgrade libiptc). */
--/* Rule numbers start at 1 for the first rule. */
--
--/* Insert the entry `fw' in chain `chain' into position `rulenum'. */
--int ip6tc_insert_entry(const ip6t_chainlabel chain,
-- const struct ip6t_entry *e,
-- unsigned int rulenum,
-- ip6tc_handle_t *handle);
--
--/* Atomically replace rule `rulenum' in `chain' with `fw'. */
--int ip6tc_replace_entry(const ip6t_chainlabel chain,
-- const struct ip6t_entry *e,
-- unsigned int rulenum,
-- ip6tc_handle_t *handle);
--
--/* Append entry `fw' to chain `chain'. Equivalent to insert with
-- rulenum = length of chain. */
--int ip6tc_append_entry(const ip6t_chainlabel chain,
-- const struct ip6t_entry *e,
-- ip6tc_handle_t *handle);
--
--/* Delete the first rule in `chain' which matches `fw'. */
--int ip6tc_delete_entry(const ip6t_chainlabel chain,
-- const struct ip6t_entry *origfw,
-- unsigned char *matchmask,
-- ip6tc_handle_t *handle);
--
--/* Delete the rule in position `rulenum' in `chain'. */
--int ip6tc_delete_num_entry(const ip6t_chainlabel chain,
-- unsigned int rulenum,
-- ip6tc_handle_t *handle);
--
--/* Check the packet `fw' on chain `chain'. Returns the verdict, or
-- NULL and sets errno. */
--const char *ip6tc_check_packet(const ip6t_chainlabel chain,
-- struct ip6t_entry *,
-- ip6tc_handle_t *handle);
--
--/* Flushes the entries in the given chain (ie. empties chain). */
--int ip6tc_flush_entries(const ip6t_chainlabel chain,
-- ip6tc_handle_t *handle);
--
--/* Zeroes the counters in a chain. */
--int ip6tc_zero_entries(const ip6t_chainlabel chain,
-- ip6tc_handle_t *handle);
--
--/* Creates a new chain. */
--int ip6tc_create_chain(const ip6t_chainlabel chain,
-- ip6tc_handle_t *handle);
--
--/* Deletes a chain. */
--int ip6tc_delete_chain(const ip6t_chainlabel chain,
-- ip6tc_handle_t *handle);
--
--/* Renames a chain. */
--int ip6tc_rename_chain(const ip6t_chainlabel oldname,
-- const ip6t_chainlabel newname,
-- ip6tc_handle_t *handle);
--
--/* Sets the policy on a built-in chain. */
--int ip6tc_set_policy(const ip6t_chainlabel chain,
-- const ip6t_chainlabel policy,
-- struct ip6t_counters *counters,
-- ip6tc_handle_t *handle);
--
--/* Get the number of references to this chain */
--int ip6tc_get_references(unsigned int *ref, const ip6t_chainlabel chain,
-- ip6tc_handle_t *handle);
--
--/* read packet and byte counters for a specific rule */
--struct ip6t_counters *ip6tc_read_counter(const ip6t_chainlabel chain,
-- unsigned int rulenum,
-- ip6tc_handle_t *handle);
--
--/* zero packet and byte counters for a specific rule */
--int ip6tc_zero_counter(const ip6t_chainlabel chain,
-- unsigned int rulenum,
-- ip6tc_handle_t *handle);
--
--/* set packet and byte counters for a specific rule */
--int ip6tc_set_counter(const ip6t_chainlabel chain,
-- unsigned int rulenum,
-- struct ip6t_counters *counters,
-- ip6tc_handle_t *handle);
--
--/* Makes the actual changes. */
--int ip6tc_commit(ip6tc_handle_t *handle);
--
--/* Get raw socket. */
--int ip6tc_get_raw_socket();
--
--/* Translates errno numbers into more human-readable form than strerror. */
--const char *ip6tc_strerror(int err);
--
--/* Return prefix length, or -1 if not contiguous */
--int ipv6_prefix_length(const struct in6_addr *a);
--
--#endif /* _LIBIP6TC_H */
-diff --git include/libiptc/libiptc.h include/libiptc/libiptc.h
-deleted file mode 100644
-index 50765d9..0000000
---- include/libiptc/libiptc.h
-+++ /dev/null
-@@ -1,166 +0,0 @@
--#ifndef _LIBIPTC_H
--#define _LIBIPTC_H
--/* Library which manipulates filtering rules. */
--
--#include <libiptc/ipt_kernel_headers.h>
--#include <linux/netfilter_ipv4/ip_tables.h>
--
--#ifdef __cplusplus
--extern "C" {
--#endif
--
--#ifndef IPT_MIN_ALIGN
--/* ipt_entry has pointers and u_int64_t's in it, so if you align to
-- it, you'll also align to any crazy matches and targets someone
-- might write */
--#define IPT_MIN_ALIGN (__alignof__(struct ipt_entry))
--#endif
--
--#define IPT_ALIGN(s) (((s) + ((IPT_MIN_ALIGN)-1)) & ~((IPT_MIN_ALIGN)-1))
--
--typedef char ipt_chainlabel[32];
--
--#define IPTC_LABEL_ACCEPT "ACCEPT"
--#define IPTC_LABEL_DROP "DROP"
--#define IPTC_LABEL_QUEUE "QUEUE"
--#define IPTC_LABEL_RETURN "RETURN"
--
--/* Transparent handle type. */
--typedef struct iptc_handle *iptc_handle_t;
--
--/* Does this chain exist? */
--int iptc_is_chain(const char *chain, const iptc_handle_t handle);
--
--/* Take a snapshot of the rules. Returns NULL on error. */
--iptc_handle_t iptc_init(const char *tablename);
--
--/* Cleanup after iptc_init(). */
--void iptc_free(iptc_handle_t *h);
--
--/* Iterator functions to run through the chains. Returns NULL at end. */
--const char *iptc_first_chain(iptc_handle_t *handle);
--const char *iptc_next_chain(iptc_handle_t *handle);
--
--/* Get first rule in the given chain: NULL for empty chain. */
--const struct ipt_entry *iptc_first_rule(const char *chain,
-- iptc_handle_t *handle);
--
--/* Returns NULL when rules run out. */
--const struct ipt_entry *iptc_next_rule(const struct ipt_entry *prev,
-- iptc_handle_t *handle);
--
--/* Returns a pointer to the target name of this entry. */
--const char *iptc_get_target(const struct ipt_entry *e,
-- iptc_handle_t *handle);
--
--/* Is this a built-in chain? */
--int iptc_builtin(const char *chain, const iptc_handle_t handle);
--
--/* Get the policy of a given built-in chain */
--const char *iptc_get_policy(const char *chain,
-- struct ipt_counters *counter,
-- iptc_handle_t *handle);
--
--/* These functions return TRUE for OK or 0 and set errno. If errno ==
-- 0, it means there was a version error (ie. upgrade libiptc). */
--/* Rule numbers start at 1 for the first rule. */
--
--/* Insert the entry `e' in chain `chain' into position `rulenum'. */
--int iptc_insert_entry(const ipt_chainlabel chain,
-- const struct ipt_entry *e,
-- unsigned int rulenum,
-- iptc_handle_t *handle);
--
--/* Atomically replace rule `rulenum' in `chain' with `e'. */
--int iptc_replace_entry(const ipt_chainlabel chain,
-- const struct ipt_entry *e,
-- unsigned int rulenum,
-- iptc_handle_t *handle);
--
--/* Append entry `e' to chain `chain'. Equivalent to insert with
-- rulenum = length of chain. */
--int iptc_append_entry(const ipt_chainlabel chain,
-- const struct ipt_entry *e,
-- iptc_handle_t *handle);
--
--/* Delete the first rule in `chain' which matches `e', subject to
-- matchmask (array of length == origfw) */
--int iptc_delete_entry(const ipt_chainlabel chain,
-- const struct ipt_entry *origfw,
-- unsigned char *matchmask,
-- iptc_handle_t *handle);
--
--/* Delete the rule in position `rulenum' in `chain'. */
--int iptc_delete_num_entry(const ipt_chainlabel chain,
-- unsigned int rulenum,
-- iptc_handle_t *handle);
--
--/* Check the packet `e' on chain `chain'. Returns the verdict, or
-- NULL and sets errno. */
--const char *iptc_check_packet(const ipt_chainlabel chain,
-- struct ipt_entry *entry,
-- iptc_handle_t *handle);
--
--/* Flushes the entries in the given chain (ie. empties chain). */
--int iptc_flush_entries(const ipt_chainlabel chain,
-- iptc_handle_t *handle);
--
--/* Zeroes the counters in a chain. */
--int iptc_zero_entries(const ipt_chainlabel chain,
-- iptc_handle_t *handle);
--
--/* Creates a new chain. */
--int iptc_create_chain(const ipt_chainlabel chain,
-- iptc_handle_t *handle);
--
--/* Deletes a chain. */
--int iptc_delete_chain(const ipt_chainlabel chain,
-- iptc_handle_t *handle);
--
--/* Renames a chain. */
--int iptc_rename_chain(const ipt_chainlabel oldname,
-- const ipt_chainlabel newname,
-- iptc_handle_t *handle);
--
--/* Sets the policy on a built-in chain. */
--int iptc_set_policy(const ipt_chainlabel chain,
-- const ipt_chainlabel policy,
-- struct ipt_counters *counters,
-- iptc_handle_t *handle);
--
--/* Get the number of references to this chain */
--int iptc_get_references(unsigned int *ref,
-- const ipt_chainlabel chain,
-- iptc_handle_t *handle);
--
--/* read packet and byte counters for a specific rule */
--struct ipt_counters *iptc_read_counter(const ipt_chainlabel chain,
-- unsigned int rulenum,
-- iptc_handle_t *handle);
--
--/* zero packet and byte counters for a specific rule */
--int iptc_zero_counter(const ipt_chainlabel chain,
-- unsigned int rulenum,
-- iptc_handle_t *handle);
--
--/* set packet and byte counters for a specific rule */
--int iptc_set_counter(const ipt_chainlabel chain,
-- unsigned int rulenum,
-- struct ipt_counters *counters,
-- iptc_handle_t *handle);
--
--/* Makes the actual changes. */
--int iptc_commit(iptc_handle_t *handle);
--
--/* Get raw socket. */
--int iptc_get_raw_socket();
--
--/* Translates errno numbers into more human-readable form than strerror. */
--const char *iptc_strerror(int err);
--
--#ifdef __cplusplus
--}
--#endif
--
--
--#endif /* _LIBIPTC_H */
-diff --git include/libiptc/linux_stddef.h include/libiptc/linux_stddef.h
-deleted file mode 100644
-index 56416f1..0000000
---- include/libiptc/linux_stddef.h
-+++ /dev/null
-@@ -1,39 +0,0 @@
--#ifndef _LINUX_STDDEF_H
--#define _LINUX_STDDEF_H
--
--#undef NULL
--#if defined(__cplusplus)
--#define NULL 0
--#else
--#define NULL ((void *)0)
--#endif
--
--#undef offsetof
--#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
--
--
--/**
-- * container_of - cast a member of a structure out to the containing structure
-- *
-- * @ptr: the pointer to the member.
-- * @type: the type of the container struct this is embedded in.
-- * @member: the name of the member within the struct.
-- *
-- */
--#define container_of(ptr, type, member) ({ \
-- const typeof( ((type *)0)->member ) *__mptr = (ptr); \
-- (type *)( (char *)__mptr - offsetof(type,member) );})
--
--/*
-- * Check at compile time that something is of a particular type.
-- * Always evaluates to 1 so you may use it easily in comparisons.
-- */
--#define typecheck(type,x) \
--({ type __dummy; \
-- typeof(x) __dummy2; \
-- (void)(&__dummy == &__dummy2); \
-- 1; \
--})
--
--
--#endif
-diff --git include/linux_list.h include/linux_list.h
-deleted file mode 100644
-index abdcf88..0000000
---- include/linux_list.h
-+++ /dev/null
-@@ -1,723 +0,0 @@
--#ifndef _LINUX_LIST_H
--#define _LINUX_LIST_H
--
--#undef offsetof
--#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
--
--/**
-- * container_of - cast a member of a structure out to the containing structure
-- *
-- * @ptr: the pointer to the member.
-- * @type: the type of the container struct this is embedded in.
-- * @member: the name of the member within the struct.
-- *
-- */
--#define container_of(ptr, type, member) ({ \
-- const typeof( ((type *)0)->member ) *__mptr = (ptr); \
-- (type *)( (char *)__mptr - offsetof(type,member) );})
--
--/*
-- * Check at compile time that something is of a particular type.
-- * Always evaluates to 1 so you may use it easily in comparisons.
-- */
--#define typecheck(type,x) \
--({ type __dummy; \
-- typeof(x) __dummy2; \
-- (void)(&__dummy == &__dummy2); \
-- 1; \
--})
--
--#define prefetch(x) 1
--
--/* empty define to make this work in userspace -HW */
--#define smp_wmb()
--
--/*
-- * These are non-NULL pointers that will result in page faults
-- * under normal circumstances, used to verify that nobody uses
-- * non-initialized list entries.
-- */
--#define LIST_POISON1 ((void *) 0x00100100)
--#define LIST_POISON2 ((void *) 0x00200200)
--
--/*
-- * Simple doubly linked list implementation.
-- *
-- * Some of the internal functions ("__xxx") are useful when
-- * manipulating whole lists rather than single entries, as
-- * sometimes we already know the next/prev entries and we can
-- * generate better code by using them directly rather than
-- * using the generic single-entry routines.
-- */
--
--struct list_head {
-- struct list_head *next, *prev;
--};
--
--#define LIST_HEAD_INIT(name) { &(name), &(name) }
--
--#define LIST_HEAD(name) \
-- struct list_head name = LIST_HEAD_INIT(name)
--
--#define INIT_LIST_HEAD(ptr) do { \
-- (ptr)->next = (ptr); (ptr)->prev = (ptr); \
--} while (0)
--
--/*
-- * Insert a new entry between two known consecutive entries.
-- *
-- * This is only for internal list manipulation where we know
-- * the prev/next entries already!
-- */
--static inline void __list_add(struct list_head *new,
-- struct list_head *prev,
-- struct list_head *next)
--{
-- next->prev = new;
-- new->next = next;
-- new->prev = prev;
-- prev->next = new;
--}
--
--/**
-- * list_add - add a new entry
-- * @new: new entry to be added
-- * @head: list head to add it after
-- *
-- * Insert a new entry after the specified head.
-- * This is good for implementing stacks.
-- */
--static inline void list_add(struct list_head *new, struct list_head *head)
--{
-- __list_add(new, head, head->next);
--}
--
--/**
-- * list_add_tail - add a new entry
-- * @new: new entry to be added
-- * @head: list head to add it before
-- *
-- * Insert a new entry before the specified head.
-- * This is useful for implementing queues.
-- */
--static inline void list_add_tail(struct list_head *new, struct list_head *head)
--{
-- __list_add(new, head->prev, head);
--}
--
--/*
-- * Insert a new entry between two known consecutive entries.
-- *
-- * This is only for internal list manipulation where we know
-- * the prev/next entries already!
-- */
--static inline void __list_add_rcu(struct list_head * new,
-- struct list_head * prev, struct list_head * next)
--{
-- new->next = next;
-- new->prev = prev;
-- smp_wmb();
-- next->prev = new;
-- prev->next = new;
--}
--
--/**
-- * list_add_rcu - add a new entry to rcu-protected list
-- * @new: new entry to be added
-- * @head: list head to add it after
-- *
-- * Insert a new entry after the specified head.
-- * This is good for implementing stacks.
-- *
-- * The caller must take whatever precautions are necessary
-- * (such as holding appropriate locks) to avoid racing
-- * with another list-mutation primitive, such as list_add_rcu()
-- * or list_del_rcu(), running on this same list.
-- * However, it is perfectly legal to run concurrently with
-- * the _rcu list-traversal primitives, such as
-- * list_for_each_entry_rcu().
-- */
--static inline void list_add_rcu(struct list_head *new, struct list_head *head)
--{
-- __list_add_rcu(new, head, head->next);
--}
--
--/**
-- * list_add_tail_rcu - add a new entry to rcu-protected list
-- * @new: new entry to be added
-- * @head: list head to add it before
-- *
-- * Insert a new entry before the specified head.
-- * This is useful for implementing queues.
-- *
-- * The caller must take whatever precautions are necessary
-- * (such as holding appropriate locks) to avoid racing
-- * with another list-mutation primitive, such as list_add_tail_rcu()
-- * or list_del_rcu(), running on this same list.
-- * However, it is perfectly legal to run concurrently with
-- * the _rcu list-traversal primitives, such as
-- * list_for_each_entry_rcu().
-- */
--static inline void list_add_tail_rcu(struct list_head *new,
-- struct list_head *head)
--{
-- __list_add_rcu(new, head->prev, head);
--}
--
--/*
-- * Delete a list entry by making the prev/next entries
-- * point to each other.
-- *
-- * This is only for internal list manipulation where we know
-- * the prev/next entries already!
-- */
--static inline void __list_del(struct list_head * prev, struct list_head * next)
--{
-- next->prev = prev;
-- prev->next = next;
--}
--
--/**
-- * list_del - deletes entry from list.
-- * @entry: the element to delete from the list.
-- * Note: list_empty on entry does not return true after this, the entry is
-- * in an undefined state.
-- */
--static inline void list_del(struct list_head *entry)
--{
-- __list_del(entry->prev, entry->next);
-- entry->next = LIST_POISON1;
-- entry->prev = LIST_POISON2;
--}
--
--/**
-- * list_del_rcu - deletes entry from list without re-initialization
-- * @entry: the element to delete from the list.
-- *
-- * Note: list_empty on entry does not return true after this,
-- * the entry is in an undefined state. It is useful for RCU based
-- * lockfree traversal.
-- *
-- * In particular, it means that we can not poison the forward
-- * pointers that may still be used for walking the list.
-- *
-- * The caller must take whatever precautions are necessary
-- * (such as holding appropriate locks) to avoid racing
-- * with another list-mutation primitive, such as list_del_rcu()
-- * or list_add_rcu(), running on this same list.
-- * However, it is perfectly legal to run concurrently with
-- * the _rcu list-traversal primitives, such as
-- * list_for_each_entry_rcu().
-- *
-- * Note that the caller is not permitted to immediately free
-- * the newly deleted entry. Instead, either synchronize_kernel()
-- * or call_rcu() must be used to defer freeing until an RCU
-- * grace period has elapsed.
-- */
--static inline void list_del_rcu(struct list_head *entry)
--{
-- __list_del(entry->prev, entry->next);
-- entry->prev = LIST_POISON2;
--}
--
--/**
-- * list_del_init - deletes entry from list and reinitialize it.
-- * @entry: the element to delete from the list.
-- */
--static inline void list_del_init(struct list_head *entry)
--{
-- __list_del(entry->prev, entry->next);
-- INIT_LIST_HEAD(entry);
--}
--
--/**
-- * list_move - delete from one list and add as another's head
-- * @list: the entry to move
-- * @head: the head that will precede our entry
-- */
--static inline void list_move(struct list_head *list, struct list_head *head)
--{
-- __list_del(list->prev, list->next);
-- list_add(list, head);
--}
--
--/**
-- * list_move_tail - delete from one list and add as another's tail
-- * @list: the entry to move
-- * @head: the head that will follow our entry
-- */
--static inline void list_move_tail(struct list_head *list,
-- struct list_head *head)
--{
-- __list_del(list->prev, list->next);
-- list_add_tail(list, head);
--}
--
--/**
-- * list_empty - tests whether a list is empty
-- * @head: the list to test.
-- */
--static inline int list_empty(const struct list_head *head)
--{
-- return head->next == head;
--}
--
--/**
-- * list_empty_careful - tests whether a list is
-- * empty _and_ checks that no other CPU might be
-- * in the process of still modifying either member
-- *
-- * NOTE: using list_empty_careful() without synchronization
-- * can only be safe if the only activity that can happen
-- * to the list entry is list_del_init(). Eg. it cannot be used
-- * if another CPU could re-list_add() it.
-- *
-- * @head: the list to test.
-- */
--static inline int list_empty_careful(const struct list_head *head)
--{
-- struct list_head *next = head->next;
-- return (next == head) && (next == head->prev);
--}
--
--static inline void __list_splice(struct list_head *list,
-- struct list_head *head)
--{
-- struct list_head *first = list->next;
-- struct list_head *last = list->prev;
-- struct list_head *at = head->next;
--
-- first->prev = head;
-- head->next = first;
--
-- last->next = at;
-- at->prev = last;
--}
--
--/**
-- * list_splice - join two lists
-- * @list: the new list to add.
-- * @head: the place to add it in the first list.
-- */
--static inline void list_splice(struct list_head *list, struct list_head *head)
--{
-- if (!list_empty(list))
-- __list_splice(list, head);
--}
--
--/**
-- * list_splice_init - join two lists and reinitialise the emptied list.
-- * @list: the new list to add.
-- * @head: the place to add it in the first list.
-- *
-- * The list at @list is reinitialised
-- */
--static inline void list_splice_init(struct list_head *list,
-- struct list_head *head)
--{
-- if (!list_empty(list)) {
-- __list_splice(list, head);
-- INIT_LIST_HEAD(list);
-- }
--}
--
--/**
-- * list_entry - get the struct for this entry
-- * @ptr: the &struct list_head pointer.
-- * @type: the type of the struct this is embedded in.
-- * @member: the name of the list_struct within the struct.
-- */
--#define list_entry(ptr, type, member) \
-- container_of(ptr, type, member)
--
--/**
-- * list_for_each - iterate over a list
-- * @pos: the &struct list_head to use as a loop counter.
-- * @head: the head for your list.
-- */
--#define list_for_each(pos, head) \
-- for (pos = (head)->next, prefetch(pos->next); pos != (head); \
-- pos = pos->next, prefetch(pos->next))
--
--/**
-- * __list_for_each - iterate over a list
-- * @pos: the &struct list_head to use as a loop counter.
-- * @head: the head for your list.
-- *
-- * This variant differs from list_for_each() in that it's the
-- * simplest possible list iteration code, no prefetching is done.
-- * Use this for code that knows the list to be very short (empty
-- * or 1 entry) most of the time.
-- */
--#define __list_for_each(pos, head) \
-- for (pos = (head)->next; pos != (head); pos = pos->next)
--
--/**
-- * list_for_each_prev - iterate over a list backwards
-- * @pos: the &struct list_head to use as a loop counter.
-- * @head: the head for your list.
-- */
--#define list_for_each_prev(pos, head) \
-- for (pos = (head)->prev, prefetch(pos->prev); pos != (head); \
-- pos = pos->prev, prefetch(pos->prev))
--
--/**
-- * list_for_each_safe - iterate over a list safe against removal of list entry
-- * @pos: the &struct list_head to use as a loop counter.
-- * @n: another &struct list_head to use as temporary storage
-- * @head: the head for your list.
-- */
--#define list_for_each_safe(pos, n, head) \
-- for (pos = (head)->next, n = pos->next; pos != (head); \
-- pos = n, n = pos->next)
--
--/**
-- * list_for_each_entry - iterate over list of given type
-- * @pos: the type * to use as a loop counter.
-- * @head: the head for your list.
-- * @member: the name of the list_struct within the struct.
-- */
--#define list_for_each_entry(pos, head, member) \
-- for (pos = list_entry((head)->next, typeof(*pos), member), \
-- prefetch(pos->member.next); \
-- &pos->member != (head); \
-- pos = list_entry(pos->member.next, typeof(*pos), member), \
-- prefetch(pos->member.next))
--
--/**
-- * list_for_each_entry_reverse - iterate backwards over list of given type.
-- * @pos: the type * to use as a loop counter.
-- * @head: the head for your list.
-- * @member: the name of the list_struct within the struct.
-- */
--#define list_for_each_entry_reverse(pos, head, member) \
-- for (pos = list_entry((head)->prev, typeof(*pos), member), \
-- prefetch(pos->member.prev); \
-- &pos->member != (head); \
-- pos = list_entry(pos->member.prev, typeof(*pos), member), \
-- prefetch(pos->member.prev))
--
--/**
-- * list_prepare_entry - prepare a pos entry for use as a start point in
-- * list_for_each_entry_continue
-- * @pos: the type * to use as a start point
-- * @head: the head of the list
-- * @member: the name of the list_struct within the struct.
-- */
--#define list_prepare_entry(pos, head, member) \
-- ((pos) ? : list_entry(head, typeof(*pos), member))
--
--/**
-- * list_for_each_entry_continue - iterate over list of given type
-- * continuing after existing point
-- * @pos: the type * to use as a loop counter.
-- * @head: the head for your list.
-- * @member: the name of the list_struct within the struct.
-- */
--#define list_for_each_entry_continue(pos, head, member) \
-- for (pos = list_entry(pos->member.next, typeof(*pos), member), \
-- prefetch(pos->member.next); \
-- &pos->member != (head); \
-- pos = list_entry(pos->member.next, typeof(*pos), member), \
-- prefetch(pos->member.next))
--
--/**
-- * list_for_each_entry_safe - iterate over list of given type safe against removal of list entry
-- * @pos: the type * to use as a loop counter.
-- * @n: another type * to use as temporary storage
-- * @head: the head for your list.
-- * @member: the name of the list_struct within the struct.
-- */
--#define list_for_each_entry_safe(pos, n, head, member) \
-- for (pos = list_entry((head)->next, typeof(*pos), member), \
-- n = list_entry(pos->member.next, typeof(*pos), member); \
-- &pos->member != (head); \
-- pos = n, n = list_entry(n->member.next, typeof(*n), member))
--
--/**
-- * list_for_each_rcu - iterate over an rcu-protected list
-- * @pos: the &struct list_head to use as a loop counter.
-- * @head: the head for your list.
-- *
-- * This list-traversal primitive may safely run concurrently with
-- * the _rcu list-mutation primitives such as list_add_rcu()
-- * as long as the traversal is guarded by rcu_read_lock().
-- */
--#define list_for_each_rcu(pos, head) \
-- for (pos = (head)->next, prefetch(pos->next); pos != (head); \
-- pos = pos->next, ({ smp_read_barrier_depends(); 0;}), prefetch(pos->next))
--
--#define __list_for_each_rcu(pos, head) \
-- for (pos = (head)->next; pos != (head); \
-- pos = pos->next, ({ smp_read_barrier_depends(); 0;}))
--
--/**
-- * list_for_each_safe_rcu - iterate over an rcu-protected list safe
-- * against removal of list entry
-- * @pos: the &struct list_head to use as a loop counter.
-- * @n: another &struct list_head to use as temporary storage
-- * @head: the head for your list.
-- *
-- * This list-traversal primitive may safely run concurrently with
-- * the _rcu list-mutation primitives such as list_add_rcu()
-- * as long as the traversal is guarded by rcu_read_lock().
-- */
--#define list_for_each_safe_rcu(pos, n, head) \
-- for (pos = (head)->next, n = pos->next; pos != (head); \
-- pos = n, ({ smp_read_barrier_depends(); 0;}), n = pos->next)
--
--/**
-- * list_for_each_entry_rcu - iterate over rcu list of given type
-- * @pos: the type * to use as a loop counter.
-- * @head: the head for your list.
-- * @member: the name of the list_struct within the struct.
-- *
-- * This list-traversal primitive may safely run concurrently with
-- * the _rcu list-mutation primitives such as list_add_rcu()
-- * as long as the traversal is guarded by rcu_read_lock().
-- */
--#define list_for_each_entry_rcu(pos, head, member) \
-- for (pos = list_entry((head)->next, typeof(*pos), member), \
-- prefetch(pos->member.next); \
-- &pos->member != (head); \
-- pos = list_entry(pos->member.next, typeof(*pos), member), \
-- ({ smp_read_barrier_depends(); 0;}), \
-- prefetch(pos->member.next))
--
--
--/**
-- * list_for_each_continue_rcu - iterate over an rcu-protected list
-- * continuing after existing point.
-- * @pos: the &struct list_head to use as a loop counter.
-- * @head: the head for your list.
-- *
-- * This list-traversal primitive may safely run concurrently with
-- * the _rcu list-mutation primitives such as list_add_rcu()
-- * as long as the traversal is guarded by rcu_read_lock().
-- */
--#define list_for_each_continue_rcu(pos, head) \
-- for ((pos) = (pos)->next, prefetch((pos)->next); (pos) != (head); \
-- (pos) = (pos)->next, ({ smp_read_barrier_depends(); 0;}), prefetch((pos)->next))
--
--/*
-- * Double linked lists with a single pointer list head.
-- * Mostly useful for hash tables where the two pointer list head is
-- * too wasteful.
-- * You lose the ability to access the tail in O(1).
-- */
--
--struct hlist_head {
-- struct hlist_node *first;
--};
--
--struct hlist_node {
-- struct hlist_node *next, **pprev;
--};
--
--#define HLIST_HEAD_INIT { .first = NULL }
--#define HLIST_HEAD(name) struct hlist_head name = { .first = NULL }
--#define INIT_HLIST_HEAD(ptr) ((ptr)->first = NULL)
--#define INIT_HLIST_NODE(ptr) ((ptr)->next = NULL, (ptr)->pprev = NULL)
--
--static inline int hlist_unhashed(const struct hlist_node *h)
--{
-- return !h->pprev;
--}
--
--static inline int hlist_empty(const struct hlist_head *h)
--{
-- return !h->first;
--}
--
--static inline void __hlist_del(struct hlist_node *n)
--{
-- struct hlist_node *next = n->next;
-- struct hlist_node **pprev = n->pprev;
-- *pprev = next;
-- if (next)
-- next->pprev = pprev;
--}
--
--static inline void hlist_del(struct hlist_node *n)
--{
-- __hlist_del(n);
-- n->next = LIST_POISON1;
-- n->pprev = LIST_POISON2;
--}
--
--/**
-- * hlist_del_rcu - deletes entry from hash list without re-initialization
-- * @n: the element to delete from the hash list.
-- *
-- * Note: list_unhashed() on entry does not return true after this,
-- * the entry is in an undefined state. It is useful for RCU based
-- * lockfree traversal.
-- *
-- * In particular, it means that we can not poison the forward
-- * pointers that may still be used for walking the hash list.
-- *
-- * The caller must take whatever precautions are necessary
-- * (such as holding appropriate locks) to avoid racing
-- * with another list-mutation primitive, such as hlist_add_head_rcu()
-- * or hlist_del_rcu(), running on this same list.
-- * However, it is perfectly legal to run concurrently with
-- * the _rcu list-traversal primitives, such as
-- * hlist_for_each_entry().
-- */
--static inline void hlist_del_rcu(struct hlist_node *n)
--{
-- __hlist_del(n);
-- n->pprev = LIST_POISON2;
--}
--
--static inline void hlist_del_init(struct hlist_node *n)
--{
-- if (n->pprev) {
-- __hlist_del(n);
-- INIT_HLIST_NODE(n);
-- }
--}
--
--#define hlist_del_rcu_init hlist_del_init
--
--static inline void hlist_add_head(struct hlist_node *n, struct hlist_head *h)
--{
-- struct hlist_node *first = h->first;
-- n->next = first;
-- if (first)
-- first->pprev = &n->next;
-- h->first = n;
-- n->pprev = &h->first;
--}
--
--
--/**
-- * hlist_add_head_rcu - adds the specified element to the specified hlist,
-- * while permitting racing traversals.
-- * @n: the element to add to the hash list.
-- * @h: the list to add to.
-- *
-- * The caller must take whatever precautions are necessary
-- * (such as holding appropriate locks) to avoid racing
-- * with another list-mutation primitive, such as hlist_add_head_rcu()
-- * or hlist_del_rcu(), running on this same list.
-- * However, it is perfectly legal to run concurrently with
-- * the _rcu list-traversal primitives, such as
-- * hlist_for_each_entry(), but only if smp_read_barrier_depends()
-- * is used to prevent memory-consistency problems on Alpha CPUs.
-- * Regardless of the type of CPU, the list-traversal primitive
-- * must be guarded by rcu_read_lock().
-- *
-- * OK, so why don't we have an hlist_for_each_entry_rcu()???
-- */
--static inline void hlist_add_head_rcu(struct hlist_node *n,
-- struct hlist_head *h)
--{
-- struct hlist_node *first = h->first;
-- n->next = first;
-- n->pprev = &h->first;
-- smp_wmb();
-- if (first)
-- first->pprev = &n->next;
-- h->first = n;
--}
--
--/* next must be != NULL */
--static inline void hlist_add_before(struct hlist_node *n,
-- struct hlist_node *next)
--{
-- n->pprev = next->pprev;
-- n->next = next;
-- next->pprev = &n->next;
-- *(n->pprev) = n;
--}
--
--static inline void hlist_add_after(struct hlist_node *n,
-- struct hlist_node *next)
--{
-- next->next = n->next;
-- n->next = next;
-- next->pprev = &n->next;
--
-- if(next->next)
-- next->next->pprev = &next->next;
--}
--
--#define hlist_entry(ptr, type, member) container_of(ptr,type,member)
--
--#define hlist_for_each(pos, head) \
-- for (pos = (head)->first; pos && ({ prefetch(pos->next); 1; }); \
-- pos = pos->next)
--
--#define hlist_for_each_safe(pos, n, head) \
-- for (pos = (head)->first; pos && ({ n = pos->next; 1; }); \
-- pos = n)
--
--/**
-- * hlist_for_each_entry - iterate over list of given type
-- * @tpos: the type * to use as a loop counter.
-- * @pos: the &struct hlist_node to use as a loop counter.
-- * @head: the head for your list.
-- * @member: the name of the hlist_node within the struct.
-- */
--#define hlist_for_each_entry(tpos, pos, head, member) \
-- for (pos = (head)->first; \
-- pos && ({ prefetch(pos->next); 1;}) && \
-- ({ tpos = hlist_entry(pos, typeof(*tpos), member); 1;}); \
-- pos = pos->next)
--
--/**
-- * hlist_for_each_entry_continue - iterate over a hlist continuing after existing point
-- * @tpos: the type * to use as a loop counter.
-- * @pos: the &struct hlist_node to use as a loop counter.
-- * @member: the name of the hlist_node within the struct.
-- */
--#define hlist_for_each_entry_continue(tpos, pos, member) \
-- for (pos = (pos)->next; \
-- pos && ({ prefetch(pos->next); 1;}) && \
-- ({ tpos = hlist_entry(pos, typeof(*tpos), member); 1;}); \
-- pos = pos->next)
--
--/**
-- * hlist_for_each_entry_from - iterate over a hlist continuing from existing point
-- * @tpos: the type * to use as a loop counter.
-- * @pos: the &struct hlist_node to use as a loop counter.
-- * @member: the name of the hlist_node within the struct.
-- */
--#define hlist_for_each_entry_from(tpos, pos, member) \
-- for (; pos && ({ prefetch(pos->next); 1;}) && \
-- ({ tpos = hlist_entry(pos, typeof(*tpos), member); 1;}); \
-- pos = pos->next)
--
--/**
-- * hlist_for_each_entry_safe - iterate over list of given type safe against removal of list entry
-- * @tpos: the type * to use as a loop counter.
-- * @pos: the &struct hlist_node to use as a loop counter.
-- * @n: another &struct hlist_node to use as temporary storage
-- * @head: the head for your list.
-- * @member: the name of the hlist_node within the struct.
-- */
--#define hlist_for_each_entry_safe(tpos, pos, n, head, member) \
-- for (pos = (head)->first; \
-- pos && ({ n = pos->next; 1; }) && \
-- ({ tpos = hlist_entry(pos, typeof(*tpos), member); 1;}); \
-- pos = n)
--
--/**
-- * hlist_for_each_entry_rcu - iterate over rcu list of given type
-- * @pos: the type * to use as a loop counter.
-- * @pos: the &struct hlist_node to use as a loop counter.
-- * @head: the head for your list.
-- * @member: the name of the hlist_node within the struct.
-- *
-- * This list-traversal primitive may safely run concurrently with
-- * the _rcu list-mutation primitives such as hlist_add_rcu()
-- * as long as the traversal is guarded by rcu_read_lock().
-- */
--#define hlist_for_each_entry_rcu(tpos, pos, head, member) \
-- for (pos = (head)->first; \
-- pos && ({ prefetch(pos->next); 1;}) && \
-- ({ tpos = hlist_entry(pos, typeof(*tpos), member); 1;}); \
-- pos = pos->next, ({ smp_read_barrier_depends(); 0; }) )
--
--#endif
-diff --git libiptc/Makefile libiptc/Makefile
-deleted file mode 100644
-index 1fbebef..0000000
---- libiptc/Makefile
-+++ /dev/null
-@@ -1,23 +0,0 @@
--#! /usr/bin/make
--
--EXTRAS+=libiptc/libiptc.a
--
--DEVEL_LIBS+=libiptc/libiptc.a
--
--ifndef TOPLEVEL_INCLUDED
--local:
-- cd .. && $(MAKE) $(KERN_TARGETS) $(SHARED_LIBS) $(EXTRAS)
--
--else
--EXTRA_DEPENDS+=libiptc/libip4tc.d
--
--libiptc/libiptc.a: libiptc/libiptc.a(libiptc/libip4tc.o)
--
--ifeq ($(DO_IPV6), 1)
--EXTRA_DEPENDS+= libiptc/libip6tc.d
--libiptc/libiptc.a: libiptc/libiptc.a(libiptc/libip6tc.o)
--endif
--
--libiptc/libip4tc.d libiptc/libip6tc.d: %.d: %.c
-- @-$(CC) -M -MG $(CFLAGS) $< | sed -e 's@^.*\.o:@$*.d libiptc/libiptc.a($*.o):@' > $@
--endif
-diff --git libiptc/libip4tc.c libiptc/libip4tc.c
-deleted file mode 100644
-index 2e8647c..0000000
---- libiptc/libip4tc.c
-+++ /dev/null
-@@ -1,500 +0,0 @@
--/* Library which manipulates firewall rules. Version 0.1. */
--
--/* Architecture of firewall rules is as follows:
-- *
-- * Chains go INPUT, FORWARD, OUTPUT then user chains.
-- * Each user chain starts with an ERROR node.
-- * Every chain ends with an unconditional jump: a RETURN for user chains,
-- * and a POLICY for built-ins.
-- */
--
--/* (C)1999 Paul ``Rusty'' Russell - Placed under the GNU GPL (See
-- COPYING for details). */
--
--#include <assert.h>
--#include <string.h>
--#include <errno.h>
--#include <stdlib.h>
--#include <stdio.h>
--#include <unistd.h>
--
--#ifdef DEBUG_CONNTRACK
--#define inline
--#endif
--
--#if !defined(__GLIBC__) || (__GLIBC__ < 2)
--typedef unsigned int socklen_t;
--#endif
--
--#include "libiptc/libiptc.h"
--
--#define IP_VERSION 4
--#define IP_OFFSET 0x1FFF
--
--#define HOOK_PRE_ROUTING NF_IP_PRE_ROUTING
--#define HOOK_LOCAL_IN NF_IP_LOCAL_IN
--#define HOOK_FORWARD NF_IP_FORWARD
--#define HOOK_LOCAL_OUT NF_IP_LOCAL_OUT
--#define HOOK_POST_ROUTING NF_IP_POST_ROUTING
--#ifdef NF_IP_DROPPING
--#define HOOK_DROPPING NF_IP_DROPPING
--#endif
--
--#define STRUCT_ENTRY_TARGET struct ipt_entry_target
--#define STRUCT_ENTRY struct ipt_entry
--#define STRUCT_ENTRY_MATCH struct ipt_entry_match
--#define STRUCT_GETINFO struct ipt_getinfo
--#define STRUCT_GET_ENTRIES struct ipt_get_entries
--#define STRUCT_COUNTERS struct ipt_counters
--#define STRUCT_COUNTERS_INFO struct ipt_counters_info
--#define STRUCT_STANDARD_TARGET struct ipt_standard_target
--#define STRUCT_REPLACE struct ipt_replace
--
--#define STRUCT_TC_HANDLE struct iptc_handle
--#define TC_HANDLE_T iptc_handle_t
--
--#define ENTRY_ITERATE IPT_ENTRY_ITERATE
--#define TABLE_MAXNAMELEN IPT_TABLE_MAXNAMELEN
--#define FUNCTION_MAXNAMELEN IPT_FUNCTION_MAXNAMELEN
--
--#define GET_TARGET ipt_get_target
--
--#define ERROR_TARGET IPT_ERROR_TARGET
--#define NUMHOOKS NF_IP_NUMHOOKS
--
--#define IPT_CHAINLABEL ipt_chainlabel
--
--#define TC_DUMP_ENTRIES dump_entries
--#define TC_IS_CHAIN iptc_is_chain
--#define TC_FIRST_CHAIN iptc_first_chain
--#define TC_NEXT_CHAIN iptc_next_chain
--#define TC_FIRST_RULE iptc_first_rule
--#define TC_NEXT_RULE iptc_next_rule
--#define TC_GET_TARGET iptc_get_target
--#define TC_BUILTIN iptc_builtin
--#define TC_GET_POLICY iptc_get_policy
--#define TC_INSERT_ENTRY iptc_insert_entry
--#define TC_REPLACE_ENTRY iptc_replace_entry
--#define TC_APPEND_ENTRY iptc_append_entry
--#define TC_DELETE_ENTRY iptc_delete_entry
--#define TC_DELETE_NUM_ENTRY iptc_delete_num_entry
--#define TC_CHECK_PACKET iptc_check_packet
--#define TC_FLUSH_ENTRIES iptc_flush_entries
--#define TC_ZERO_ENTRIES iptc_zero_entries
--#define TC_READ_COUNTER iptc_read_counter
--#define TC_ZERO_COUNTER iptc_zero_counter
--#define TC_SET_COUNTER iptc_set_counter
--#define TC_CREATE_CHAIN iptc_create_chain
--#define TC_GET_REFERENCES iptc_get_references
--#define TC_DELETE_CHAIN iptc_delete_chain
--#define TC_RENAME_CHAIN iptc_rename_chain
--#define TC_SET_POLICY iptc_set_policy
--#define TC_GET_RAW_SOCKET iptc_get_raw_socket
--#define TC_INIT iptc_init
--#define TC_FREE iptc_free
--#define TC_COMMIT iptc_commit
--#define TC_STRERROR iptc_strerror
--
--#define TC_AF AF_INET
--#define TC_IPPROTO IPPROTO_IP
--
--#define SO_SET_REPLACE IPT_SO_SET_REPLACE
--#define SO_SET_ADD_COUNTERS IPT_SO_SET_ADD_COUNTERS
--#define SO_GET_INFO IPT_SO_GET_INFO
--#define SO_GET_ENTRIES IPT_SO_GET_ENTRIES
--#define SO_GET_VERSION IPT_SO_GET_VERSION
--
--#define STANDARD_TARGET IPT_STANDARD_TARGET
--#define LABEL_RETURN IPTC_LABEL_RETURN
--#define LABEL_ACCEPT IPTC_LABEL_ACCEPT
--#define LABEL_DROP IPTC_LABEL_DROP
--#define LABEL_QUEUE IPTC_LABEL_QUEUE
--
--#define ALIGN IPT_ALIGN
--#define RETURN IPT_RETURN
--
--#include "libiptc.c"
--
--#define IP_PARTS_NATIVE(n) \
--(unsigned int)((n)>>24)&0xFF, \
--(unsigned int)((n)>>16)&0xFF, \
--(unsigned int)((n)>>8)&0xFF, \
--(unsigned int)((n)&0xFF)
--
--#define IP_PARTS(n) IP_PARTS_NATIVE(ntohl(n))
--
--int
--dump_entry(STRUCT_ENTRY *e, const TC_HANDLE_T handle)
--{
-- size_t i;
-- STRUCT_ENTRY_TARGET *t;
--
-- printf("Entry %u (%lu):\n", iptcb_entry2index(handle, e),
-- iptcb_entry2offset(handle, e));
-- printf("SRC IP: %u.%u.%u.%u/%u.%u.%u.%u\n",
-- IP_PARTS(e->ip.src.s_addr),IP_PARTS(e->ip.smsk.s_addr));
-- printf("DST IP: %u.%u.%u.%u/%u.%u.%u.%u\n",
-- IP_PARTS(e->ip.dst.s_addr),IP_PARTS(e->ip.dmsk.s_addr));
-- printf("Interface: `%s'/", e->ip.iniface);
-- for (i = 0; i < IFNAMSIZ; i++)
-- printf("%c", e->ip.iniface_mask[i] ? 'X' : '.');
-- printf("to `%s'/", e->ip.outiface);
-- for (i = 0; i < IFNAMSIZ; i++)
-- printf("%c", e->ip.outiface_mask[i] ? 'X' : '.');
-- printf("\nProtocol: %u\n", e->ip.proto);
-- printf("Flags: %02X\n", e->ip.flags);
-- printf("Invflags: %02X\n", e->ip.invflags);
-- printf("Counters: %llu packets, %llu bytes\n",
-- (unsigned long long)e->counters.pcnt, (unsigned long long)e->counters.bcnt);
-- printf("Cache: %08X ", e->nfcache);
-- if (e->nfcache & NFC_ALTERED) printf("ALTERED ");
-- if (e->nfcache & NFC_UNKNOWN) printf("UNKNOWN ");
-- printf("\n");
--
-- IPT_MATCH_ITERATE(e, print_match);
--
-- t = GET_TARGET(e);
-- printf("Target name: `%s' [%u]\n", t->u.user.name, t->u.target_size);
-- if (strcmp(t->u.user.name, STANDARD_TARGET) == 0) {
-- int pos = *(int *)t->data;
-- if (pos < 0)
-- printf("verdict=%s\n",
-- pos == -NF_ACCEPT-1 ? "NF_ACCEPT"
-- : pos == -NF_DROP-1 ? "NF_DROP"
-- : pos == -NF_QUEUE-1 ? "NF_QUEUE"
-- : pos == RETURN ? "RETURN"
-- : "UNKNOWN");
-- else
-- printf("verdict=%u\n", pos);
-- } else if (strcmp(t->u.user.name, IPT_ERROR_TARGET) == 0)
-- printf("error=`%s'\n", t->data);
--
-- printf("\n");
-- return 0;
--}
--
--static unsigned char *
--is_same(const STRUCT_ENTRY *a, const STRUCT_ENTRY *b, unsigned char *matchmask)
--{
-- unsigned int i;
-- unsigned char *mptr;
--
-- /* Always compare head structures: ignore mask here. */
-- if (a->ip.src.s_addr != b->ip.src.s_addr
-- || a->ip.dst.s_addr != b->ip.dst.s_addr
-- || a->ip.smsk.s_addr != b->ip.smsk.s_addr
-- || a->ip.dmsk.s_addr != b->ip.dmsk.s_addr
-- || a->ip.proto != b->ip.proto
-- || a->ip.flags != b->ip.flags
-- || a->ip.invflags != b->ip.invflags)
-- return NULL;
--
-- for (i = 0; i < IFNAMSIZ; i++) {
-- if (a->ip.iniface_mask[i] != b->ip.iniface_mask[i])
-- return NULL;
-- if ((a->ip.iniface[i] & a->ip.iniface_mask[i])
-- != (b->ip.iniface[i] & b->ip.iniface_mask[i]))
-- return NULL;
-- if (a->ip.outiface_mask[i] != b->ip.outiface_mask[i])
-- return NULL;
-- if ((a->ip.outiface[i] & a->ip.outiface_mask[i])
-- != (b->ip.outiface[i] & b->ip.outiface_mask[i]))
-- return NULL;
-- }
--
-- if (a->nfcache != b->nfcache
-- || a->target_offset != b->target_offset
-- || a->next_offset != b->next_offset)
-- return NULL;
--
-- mptr = matchmask + sizeof(STRUCT_ENTRY);
-- if (IPT_MATCH_ITERATE(a, match_different, a->elems, b->elems, &mptr))
-- return NULL;
-- mptr += IPT_ALIGN(sizeof(struct ipt_entry_target));
--
-- return mptr;
--}
--
--#if 0
--/***************************** DEBUGGING ********************************/
--static inline int
--unconditional(const struct ipt_ip *ip)
--{
-- unsigned int i;
--
-- for (i = 0; i < sizeof(*ip)/sizeof(u_int32_t); i++)
-- if (((u_int32_t *)ip)[i])
-- return 0;
--
-- return 1;
--}
--
--static inline int
--check_match(const STRUCT_ENTRY_MATCH *m, unsigned int *off)
--{
-- assert(m->u.match_size >= sizeof(STRUCT_ENTRY_MATCH));
-- assert(ALIGN(m->u.match_size) == m->u.match_size);
--
-- (*off) += m->u.match_size;
-- return 0;
--}
--
--static inline int
--check_entry(const STRUCT_ENTRY *e, unsigned int *i, unsigned int *off,
-- unsigned int user_offset, int *was_return,
-- TC_HANDLE_T h)
--{
-- unsigned int toff;
-- STRUCT_STANDARD_TARGET *t;
--
-- assert(e->target_offset >= sizeof(STRUCT_ENTRY));
-- assert(e->next_offset >= e->target_offset
-- + sizeof(STRUCT_ENTRY_TARGET));
-- toff = sizeof(STRUCT_ENTRY);
-- IPT_MATCH_ITERATE(e, check_match, &toff);
--
-- assert(toff == e->target_offset);
--
-- t = (STRUCT_STANDARD_TARGET *)
-- GET_TARGET((STRUCT_ENTRY *)e);
-- /* next_offset will have to be multiple of entry alignment. */
-- assert(e->next_offset == ALIGN(e->next_offset));
-- assert(e->target_offset == ALIGN(e->target_offset));
-- assert(t->target.u.target_size == ALIGN(t->target.u.target_size));
-- assert(!TC_IS_CHAIN(t->target.u.user.name, h));
--
-- if (strcmp(t->target.u.user.name, STANDARD_TARGET) == 0) {
-- assert(t->target.u.target_size
-- == ALIGN(sizeof(STRUCT_STANDARD_TARGET)));
--
-- assert(t->verdict == -NF_DROP-1
-- || t->verdict == -NF_ACCEPT-1
-- || t->verdict == RETURN
-- || t->verdict < (int)h->entries->size);
--
-- if (t->verdict >= 0) {
-- STRUCT_ENTRY *te = get_entry(h, t->verdict);
-- int idx;
--
-- idx = iptcb_entry2index(h, te);
-- assert(strcmp(GET_TARGET(te)->u.user.name,
-- IPT_ERROR_TARGET)
-- != 0);
-- assert(te != e);
--
-- /* Prior node must be error node, or this node. */
-- assert(t->verdict == iptcb_entry2offset(h, e)+e->next_offset
-- || strcmp(GET_TARGET(index2entry(h, idx-1))
-- ->u.user.name, IPT_ERROR_TARGET)
-- == 0);
-- }
--
-- if (t->verdict == RETURN
-- && unconditional(&e->ip)
-- && e->target_offset == sizeof(*e))
-- *was_return = 1;
-- else
-- *was_return = 0;
-- } else if (strcmp(t->target.u.user.name, IPT_ERROR_TARGET) == 0) {
-- assert(t->target.u.target_size
-- == ALIGN(sizeof(struct ipt_error_target)));
--
-- /* If this is in user area, previous must have been return */
-- if (*off > user_offset)
-- assert(*was_return);
--
-- *was_return = 0;
-- }
-- else *was_return = 0;
--
-- if (*off == user_offset)
-- assert(strcmp(t->target.u.user.name, IPT_ERROR_TARGET) == 0);
--
-- (*off) += e->next_offset;
-- (*i)++;
-- return 0;
--}
--
--#ifdef IPTC_DEBUG
--/* Do every conceivable sanity check on the handle */
--static void
--do_check(TC_HANDLE_T h, unsigned int line)
--{
-- unsigned int i, n;
-- unsigned int user_offset; /* Offset of first user chain */
-- int was_return;
--
-- assert(h->changed == 0 || h->changed == 1);
-- if (strcmp(h->info.name, "filter") == 0) {
-- assert(h->info.valid_hooks
-- == (1 << NF_IP_LOCAL_IN
-- | 1 << NF_IP_FORWARD
-- | 1 << NF_IP_LOCAL_OUT));
--
-- /* Hooks should be first three */
-- assert(h->info.hook_entry[NF_IP_LOCAL_IN] == 0);
--
-- n = get_chain_end(h, 0);
-- n += get_entry(h, n)->next_offset;
-- assert(h->info.hook_entry[NF_IP_FORWARD] == n);
--
-- n = get_chain_end(h, n);
-- n += get_entry(h, n)->next_offset;
-- assert(h->info.hook_entry[NF_IP_LOCAL_OUT] == n);
--
-- user_offset = h->info.hook_entry[NF_IP_LOCAL_OUT];
-- } else if (strcmp(h->info.name, "nat") == 0) {
-- assert((h->info.valid_hooks
-- == (1 << NF_IP_PRE_ROUTING
-- | 1 << NF_IP_POST_ROUTING
-- | 1 << NF_IP_LOCAL_OUT)) ||
-- (h->info.valid_hooks
-- == (1 << NF_IP_PRE_ROUTING
-- | 1 << NF_IP_LOCAL_IN
-- | 1 << NF_IP_POST_ROUTING
-- | 1 << NF_IP_LOCAL_OUT)));
--
-- assert(h->info.hook_entry[NF_IP_PRE_ROUTING] == 0);
--
-- n = get_chain_end(h, 0);
--
-- n += get_entry(h, n)->next_offset;
-- assert(h->info.hook_entry[NF_IP_POST_ROUTING] == n);
-- n = get_chain_end(h, n);
--
-- n += get_entry(h, n)->next_offset;
-- assert(h->info.hook_entry[NF_IP_LOCAL_OUT] == n);
-- user_offset = h->info.hook_entry[NF_IP_LOCAL_OUT];
--
-- if (h->info.valid_hooks & (1 << NF_IP_LOCAL_IN)) {
-- n = get_chain_end(h, n);
-- n += get_entry(h, n)->next_offset;
-- assert(h->info.hook_entry[NF_IP_LOCAL_IN] == n);
-- user_offset = h->info.hook_entry[NF_IP_LOCAL_IN];
-- }
--
-- } else if (strcmp(h->info.name, "mangle") == 0) {
-- /* This code is getting ugly because linux < 2.4.18-pre6 had
-- * two mangle hooks, linux >= 2.4.18-pre6 has five mangle hooks
-- * */
-- assert((h->info.valid_hooks
-- == (1 << NF_IP_PRE_ROUTING
-- | 1 << NF_IP_LOCAL_OUT)) ||
-- (h->info.valid_hooks
-- == (1 << NF_IP_PRE_ROUTING
-- | 1 << NF_IP_LOCAL_IN
-- | 1 << NF_IP_FORWARD
-- | 1 << NF_IP_LOCAL_OUT
-- | 1 << NF_IP_POST_ROUTING)));
--
-- /* Hooks should be first five */
-- assert(h->info.hook_entry[NF_IP_PRE_ROUTING] == 0);
--
-- n = get_chain_end(h, 0);
--
-- if (h->info.valid_hooks & (1 << NF_IP_LOCAL_IN)) {
-- n += get_entry(h, n)->next_offset;
-- assert(h->info.hook_entry[NF_IP_LOCAL_IN] == n);
-- n = get_chain_end(h, n);
-- }
--
-- if (h->info.valid_hooks & (1 << NF_IP_FORWARD)) {
-- n += get_entry(h, n)->next_offset;
-- assert(h->info.hook_entry[NF_IP_FORWARD] == n);
-- n = get_chain_end(h, n);
-- }
--
-- n += get_entry(h, n)->next_offset;
-- assert(h->info.hook_entry[NF_IP_LOCAL_OUT] == n);
-- user_offset = h->info.hook_entry[NF_IP_LOCAL_OUT];
--
-- if (h->info.valid_hooks & (1 << NF_IP_POST_ROUTING)) {
-- n = get_chain_end(h, n);
-- n += get_entry(h, n)->next_offset;
-- assert(h->info.hook_entry[NF_IP_POST_ROUTING] == n);
-- user_offset = h->info.hook_entry[NF_IP_POST_ROUTING];
-- }
-- } else if (strcmp(h->info.name, "raw") == 0) {
-- assert(h->info.valid_hooks
-- == (1 << NF_IP_PRE_ROUTING
-- | 1 << NF_IP_LOCAL_OUT));
--
-- /* Hooks should be first three */
-- assert(h->info.hook_entry[NF_IP_PRE_ROUTING] == 0);
--
-- n = get_chain_end(h, n);
-- n += get_entry(h, n)->next_offset;
-- assert(h->info.hook_entry[NF_IP_LOCAL_OUT] == n);
--
-- user_offset = h->info.hook_entry[NF_IP_LOCAL_OUT];
--
--#ifdef NF_IP_DROPPING
-- } else if (strcmp(h->info.name, "drop") == 0) {
-- assert(h->info.valid_hooks == (1 << NF_IP_DROPPING));
--
-- /* Hook should be first */
-- assert(h->info.hook_entry[NF_IP_DROPPING] == 0);
-- user_offset = 0;
--#endif
-- } else {
-- fprintf(stderr, "Unknown table `%s'\n", h->info.name);
-- abort();
-- }
--
-- /* User chain == end of last builtin + policy entry */
-- user_offset = get_chain_end(h, user_offset);
-- user_offset += get_entry(h, user_offset)->next_offset;
--
-- /* Overflows should be end of entry chains, and unconditional
-- policy nodes. */
-- for (i = 0; i < NUMHOOKS; i++) {
-- STRUCT_ENTRY *e;
-- STRUCT_STANDARD_TARGET *t;
--
-- if (!(h->info.valid_hooks & (1 << i)))
-- continue;
-- assert(h->info.underflow[i]
-- == get_chain_end(h, h->info.hook_entry[i]));
--
-- e = get_entry(h, get_chain_end(h, h->info.hook_entry[i]));
-- assert(unconditional(&e->ip));
-- assert(e->target_offset == sizeof(*e));
-- t = (STRUCT_STANDARD_TARGET *)GET_TARGET(e);
-- assert(t->target.u.target_size == ALIGN(sizeof(*t)));
-- assert(e->next_offset == sizeof(*e) + ALIGN(sizeof(*t)));
--
-- assert(strcmp(t->target.u.user.name, STANDARD_TARGET)==0);
-- assert(t->verdict == -NF_DROP-1 || t->verdict == -NF_ACCEPT-1);
--
-- /* Hooks and underflows must be valid entries */
-- entry2index(h, get_entry(h, h->info.hook_entry[i]));
-- entry2index(h, get_entry(h, h->info.underflow[i]));
-- }
--
-- assert(h->info.size
-- >= h->info.num_entries * (sizeof(STRUCT_ENTRY)
-- +sizeof(STRUCT_STANDARD_TARGET)));
--
-- assert(h->entries.size
-- >= (h->new_number
-- * (sizeof(STRUCT_ENTRY)
-- + sizeof(STRUCT_STANDARD_TARGET))));
-- assert(strcmp(h->info.name, h->entries.name) == 0);
--
-- i = 0; n = 0;
-- was_return = 0;
-- /* Check all the entries. */
-- ENTRY_ITERATE(h->entries.entrytable, h->entries.size,
-- check_entry, &i, &n, user_offset, &was_return, h);
--
-- assert(i == h->new_number);
-- assert(n == h->entries.size);
--
-- /* Final entry must be error node */
-- assert(strcmp(GET_TARGET(index2entry(h, h->new_number-1))
-- ->u.user.name,
-- ERROR_TARGET) == 0);
--}
--#endif /*IPTC_DEBUG*/
--
--#endif
-diff --git libiptc/libip6tc.c libiptc/libip6tc.c
-deleted file mode 100644
-index 8ca5ea6..0000000
---- libiptc/libip6tc.c
-+++ /dev/null
-@@ -1,439 +0,0 @@
--/* Library which manipulates firewall rules. Version 0.1. */
--
--/* Architecture of firewall rules is as follows:
-- *
-- * Chains go INPUT, FORWARD, OUTPUT then user chains.
-- * Each user chain starts with an ERROR node.
-- * Every chain ends with an unconditional jump: a RETURN for user chains,
-- * and a POLICY for built-ins.
-- */
--
--/* (C)1999 Paul ``Rusty'' Russell - Placed under the GNU GPL (See
-- COPYING for details). */
--
--#include <assert.h>
--#include <string.h>
--#include <errno.h>
--#include <stdlib.h>
--#include <stdio.h>
--#include <unistd.h>
--#include <arpa/inet.h>
--
--#ifdef DEBUG_CONNTRACK
--#define inline
--#endif
--
--#if !defined(__GLIBC__) || (__GLIBC__ < 2)
--typedef unsigned int socklen_t;
--#endif
--
--#include "libiptc/libip6tc.h"
--
--#define HOOK_PRE_ROUTING NF_IP6_PRE_ROUTING
--#define HOOK_LOCAL_IN NF_IP6_LOCAL_IN
--#define HOOK_FORWARD NF_IP6_FORWARD
--#define HOOK_LOCAL_OUT NF_IP6_LOCAL_OUT
--#define HOOK_POST_ROUTING NF_IP6_POST_ROUTING
--
--#define STRUCT_ENTRY_TARGET struct ip6t_entry_target
--#define STRUCT_ENTRY struct ip6t_entry
--#define STRUCT_ENTRY_MATCH struct ip6t_entry_match
--#define STRUCT_GETINFO struct ip6t_getinfo
--#define STRUCT_GET_ENTRIES struct ip6t_get_entries
--#define STRUCT_COUNTERS struct ip6t_counters
--#define STRUCT_COUNTERS_INFO struct ip6t_counters_info
--#define STRUCT_STANDARD_TARGET struct ip6t_standard_target
--#define STRUCT_REPLACE struct ip6t_replace
--
--#define STRUCT_TC_HANDLE struct ip6tc_handle
--#define TC_HANDLE_T ip6tc_handle_t
--
--#define ENTRY_ITERATE IP6T_ENTRY_ITERATE
--#define TABLE_MAXNAMELEN IP6T_TABLE_MAXNAMELEN
--#define FUNCTION_MAXNAMELEN IP6T_FUNCTION_MAXNAMELEN
--
--#define GET_TARGET ip6t_get_target
--
--#define ERROR_TARGET IP6T_ERROR_TARGET
--#define NUMHOOKS NF_IP6_NUMHOOKS
--
--#define IPT_CHAINLABEL ip6t_chainlabel
--
--#define TC_DUMP_ENTRIES dump_entries6
--#define TC_IS_CHAIN ip6tc_is_chain
--#define TC_FIRST_CHAIN ip6tc_first_chain
--#define TC_NEXT_CHAIN ip6tc_next_chain
--#define TC_FIRST_RULE ip6tc_first_rule
--#define TC_NEXT_RULE ip6tc_next_rule
--#define TC_GET_TARGET ip6tc_get_target
--#define TC_BUILTIN ip6tc_builtin
--#define TC_GET_POLICY ip6tc_get_policy
--#define TC_INSERT_ENTRY ip6tc_insert_entry
--#define TC_REPLACE_ENTRY ip6tc_replace_entry
--#define TC_APPEND_ENTRY ip6tc_append_entry
--#define TC_DELETE_ENTRY ip6tc_delete_entry
--#define TC_DELETE_NUM_ENTRY ip6tc_delete_num_entry
--#define TC_CHECK_PACKET ip6tc_check_packet
--#define TC_FLUSH_ENTRIES ip6tc_flush_entries
--#define TC_ZERO_ENTRIES ip6tc_zero_entries
--#define TC_ZERO_COUNTER ip6tc_zero_counter
--#define TC_READ_COUNTER ip6tc_read_counter
--#define TC_SET_COUNTER ip6tc_set_counter
--#define TC_CREATE_CHAIN ip6tc_create_chain
--#define TC_GET_REFERENCES ip6tc_get_references
--#define TC_DELETE_CHAIN ip6tc_delete_chain
--#define TC_RENAME_CHAIN ip6tc_rename_chain
--#define TC_SET_POLICY ip6tc_set_policy
--#define TC_GET_RAW_SOCKET ip6tc_get_raw_socket
--#define TC_INIT ip6tc_init
--#define TC_FREE ip6tc_free
--#define TC_COMMIT ip6tc_commit
--#define TC_STRERROR ip6tc_strerror
--
--#define TC_AF AF_INET6
--#define TC_IPPROTO IPPROTO_IPV6
--
--#define SO_SET_REPLACE IP6T_SO_SET_REPLACE
--#define SO_SET_ADD_COUNTERS IP6T_SO_SET_ADD_COUNTERS
--#define SO_GET_INFO IP6T_SO_GET_INFO
--#define SO_GET_ENTRIES IP6T_SO_GET_ENTRIES
--#define SO_GET_VERSION IP6T_SO_GET_VERSION
--
--#define STANDARD_TARGET IP6T_STANDARD_TARGET
--#define LABEL_RETURN IP6TC_LABEL_RETURN
--#define LABEL_ACCEPT IP6TC_LABEL_ACCEPT
--#define LABEL_DROP IP6TC_LABEL_DROP
--#define LABEL_QUEUE IP6TC_LABEL_QUEUE
--
--#define ALIGN IP6T_ALIGN
--#define RETURN IP6T_RETURN
--
--#include "libiptc.c"
--
--#define BIT6(a, l) \
-- ((ntohl(a->in6_u.u6_addr32[(l) / 32]) >> (31 - ((l) & 31))) & 1)
--
--int
--ipv6_prefix_length(const struct in6_addr *a)
--{
-- int l, i;
-- for (l = 0; l < 128; l++) {
-- if (BIT6(a, l) == 0)
-- break;
-- }
-- for (i = l + 1; i < 128; i++) {
-- if (BIT6(a, i) == 1)
-- return -1;
-- }
-- return l;
--}
--
--static int
--dump_entry(struct ip6t_entry *e, const ip6tc_handle_t handle)
--{
-- size_t i;
-- char buf[40];
-- int len;
-- struct ip6t_entry_target *t;
--
-- printf("Entry %u (%lu):\n", iptcb_entry2index(handle, e),
-- iptcb_entry2offset(handle, e));
-- puts("SRC IP: ");
-- inet_ntop(AF_INET6, &e->ipv6.src, buf, sizeof buf);
-- puts(buf);
-- putchar('/');
-- len = ipv6_prefix_length(&e->ipv6.smsk);
-- if (len != -1)
-- printf("%d", len);
-- else {
-- inet_ntop(AF_INET6, &e->ipv6.smsk, buf, sizeof buf);
-- puts(buf);
-- }
-- putchar('\n');
--
-- puts("DST IP: ");
-- inet_ntop(AF_INET6, &e->ipv6.dst, buf, sizeof buf);
-- puts(buf);
-- putchar('/');
-- len = ipv6_prefix_length(&e->ipv6.dmsk);
-- if (len != -1)
-- printf("%d", len);
-- else {
-- inet_ntop(AF_INET6, &e->ipv6.dmsk, buf, sizeof buf);
-- puts(buf);
-- }
-- putchar('\n');
--
-- printf("Interface: `%s'/", e->ipv6.iniface);
-- for (i = 0; i < IFNAMSIZ; i++)
-- printf("%c", e->ipv6.iniface_mask[i] ? 'X' : '.');
-- printf("to `%s'/", e->ipv6.outiface);
-- for (i = 0; i < IFNAMSIZ; i++)
-- printf("%c", e->ipv6.outiface_mask[i] ? 'X' : '.');
-- printf("\nProtocol: %u\n", e->ipv6.proto);
-- if (e->ipv6.flags & IP6T_F_TOS)
-- printf("TOS: %u\n", e->ipv6.tos);
-- printf("Flags: %02X\n", e->ipv6.flags);
-- printf("Invflags: %02X\n", e->ipv6.invflags);
-- printf("Counters: %llu packets, %llu bytes\n",
-- (unsigned long long)e->counters.pcnt, (unsigned long long)e->counters.bcnt);
-- printf("Cache: %08X ", e->nfcache);
-- if (e->nfcache & NFC_ALTERED) printf("ALTERED ");
-- if (e->nfcache & NFC_UNKNOWN) printf("UNKNOWN ");
-- printf("\n");
--
-- IP6T_MATCH_ITERATE(e, print_match);
--
-- t = ip6t_get_target(e);
-- printf("Target name: `%s' [%u]\n", t->u.user.name, t->u.target_size);
-- if (strcmp(t->u.user.name, IP6T_STANDARD_TARGET) == 0) {
-- int pos = *(int *)t->data;
-- if (pos < 0)
-- printf("verdict=%s\n",
-- pos == -NF_ACCEPT-1 ? "NF_ACCEPT"
-- : pos == -NF_DROP-1 ? "NF_DROP"
-- : pos == IP6T_RETURN ? "RETURN"
-- : "UNKNOWN");
-- else
-- printf("verdict=%u\n", pos);
-- } else if (strcmp(t->u.user.name, IP6T_ERROR_TARGET) == 0)
-- printf("error=`%s'\n", t->data);
--
-- printf("\n");
-- return 0;
--}
--
--static unsigned char *
--is_same(const STRUCT_ENTRY *a, const STRUCT_ENTRY *b,
-- unsigned char *matchmask)
--{
-- unsigned int i;
-- unsigned char *mptr;
--
-- /* Always compare head structures: ignore mask here. */
-- if (memcmp(&a->ipv6.src, &b->ipv6.src, sizeof(struct in6_addr))
-- || memcmp(&a->ipv6.dst, &b->ipv6.dst, sizeof(struct in6_addr))
-- || memcmp(&a->ipv6.smsk, &b->ipv6.smsk, sizeof(struct in6_addr))
-- || memcmp(&a->ipv6.dmsk, &b->ipv6.dmsk, sizeof(struct in6_addr))
-- || a->ipv6.proto != b->ipv6.proto
-- || a->ipv6.tos != b->ipv6.tos
-- || a->ipv6.flags != b->ipv6.flags
-- || a->ipv6.invflags != b->ipv6.invflags)
-- return NULL;
--
-- for (i = 0; i < IFNAMSIZ; i++) {
-- if (a->ipv6.iniface_mask[i] != b->ipv6.iniface_mask[i])
-- return NULL;
-- if ((a->ipv6.iniface[i] & a->ipv6.iniface_mask[i])
-- != (b->ipv6.iniface[i] & b->ipv6.iniface_mask[i]))
-- return NULL;
-- if (a->ipv6.outiface_mask[i] != b->ipv6.outiface_mask[i])
-- return NULL;
-- if ((a->ipv6.outiface[i] & a->ipv6.outiface_mask[i])
-- != (b->ipv6.outiface[i] & b->ipv6.outiface_mask[i]))
-- return NULL;
-- }
--
-- if (a->nfcache != b->nfcache
-- || a->target_offset != b->target_offset
-- || a->next_offset != b->next_offset)
-- return NULL;
--
-- mptr = matchmask + sizeof(STRUCT_ENTRY);
-- if (IP6T_MATCH_ITERATE(a, match_different, a->elems, b->elems, &mptr))
-- return NULL;
-- mptr += IP6T_ALIGN(sizeof(struct ip6t_entry_target));
--
-- return mptr;
--}
--
--/* All zeroes == unconditional rule. */
--static inline int
--unconditional(const struct ip6t_ip6 *ipv6)
--{
-- unsigned int i;
--
-- for (i = 0; i < sizeof(*ipv6); i++)
-- if (((char *)ipv6)[i])
-- break;
--
-- return (i == sizeof(*ipv6));
--}
--
--#ifdef IPTC_DEBUG
--/* Do every conceivable sanity check on the handle */
--static void
--do_check(TC_HANDLE_T h, unsigned int line)
--{
-- unsigned int i, n;
-- unsigned int user_offset; /* Offset of first user chain */
-- int was_return;
--
-- assert(h->changed == 0 || h->changed == 1);
-- if (strcmp(h->info.name, "filter") == 0) {
-- assert(h->info.valid_hooks
-- == (1 << NF_IP6_LOCAL_IN
-- | 1 << NF_IP6_FORWARD
-- | 1 << NF_IP6_LOCAL_OUT));
--
-- /* Hooks should be first three */
-- assert(h->info.hook_entry[NF_IP6_LOCAL_IN] == 0);
--
-- n = get_chain_end(h, 0);
-- n += get_entry(h, n)->next_offset;
-- assert(h->info.hook_entry[NF_IP6_FORWARD] == n);
--
-- n = get_chain_end(h, n);
-- n += get_entry(h, n)->next_offset;
-- assert(h->info.hook_entry[NF_IP6_LOCAL_OUT] == n);
--
-- user_offset = h->info.hook_entry[NF_IP6_LOCAL_OUT];
-- } else if (strcmp(h->info.name, "nat") == 0) {
-- assert((h->info.valid_hooks
-- == (1 << NF_IP6_PRE_ROUTING
-- | 1 << NF_IP6_LOCAL_OUT
-- | 1 << NF_IP6_POST_ROUTING)) ||
-- (h->info.valid_hooks
-- == (1 << NF_IP6_PRE_ROUTING
-- | 1 << NF_IP6_LOCAL_IN
-- | 1 << NF_IP6_LOCAL_OUT
-- | 1 << NF_IP6_POST_ROUTING)));
--
-- assert(h->info.hook_entry[NF_IP6_PRE_ROUTING] == 0);
--
-- n = get_chain_end(h, 0);
--
-- n += get_entry(h, n)->next_offset;
-- assert(h->info.hook_entry[NF_IP6_POST_ROUTING] == n);
-- n = get_chain_end(h, n);
--
-- n += get_entry(h, n)->next_offset;
-- assert(h->info.hook_entry[NF_IP6_LOCAL_OUT] == n);
-- user_offset = h->info.hook_entry[NF_IP6_LOCAL_OUT];
--
-- if (h->info.valid_hooks & (1 << NF_IP6_LOCAL_IN)) {
-- n = get_chain_end(h, n);
-- n += get_entry(h, n)->next_offset;
-- assert(h->info.hook_entry[NF_IP6_LOCAL_IN] == n);
-- user_offset = h->info.hook_entry[NF_IP6_LOCAL_IN];
-- }
--
-- } else if (strcmp(h->info.name, "mangle") == 0) {
-- /* This code is getting ugly because linux < 2.4.18-pre6 had
-- * two mangle hooks, linux >= 2.4.18-pre6 has five mangle hooks
-- * */
-- assert((h->info.valid_hooks
-- == (1 << NF_IP6_PRE_ROUTING
-- | 1 << NF_IP6_LOCAL_OUT)) ||
-- (h->info.valid_hooks
-- == (1 << NF_IP6_PRE_ROUTING
-- | 1 << NF_IP6_LOCAL_IN
-- | 1 << NF_IP6_FORWARD
-- | 1 << NF_IP6_LOCAL_OUT
-- | 1 << NF_IP6_POST_ROUTING)));
--
-- /* Hooks should be first five */
-- assert(h->info.hook_entry[NF_IP6_PRE_ROUTING] == 0);
--
-- n = get_chain_end(h, 0);
--
-- if (h->info.valid_hooks & (1 << NF_IP6_LOCAL_IN)) {
-- n += get_entry(h, n)->next_offset;
-- assert(h->info.hook_entry[NF_IP6_LOCAL_IN] == n);
-- n = get_chain_end(h, n);
-- }
--
-- if (h->info.valid_hooks & (1 << NF_IP6_FORWARD)) {
-- n += get_entry(h, n)->next_offset;
-- assert(h->info.hook_entry[NF_IP6_FORWARD] == n);
-- n = get_chain_end(h, n);
-- }
--
-- n += get_entry(h, n)->next_offset;
-- assert(h->info.hook_entry[NF_IP6_LOCAL_OUT] == n);
-- user_offset = h->info.hook_entry[NF_IP6_LOCAL_OUT];
--
-- if (h->info.valid_hooks & (1 << NF_IP6_POST_ROUTING)) {
-- n = get_chain_end(h, n);
-- n += get_entry(h, n)->next_offset;
-- assert(h->info.hook_entry[NF_IP6_POST_ROUTING] == n);
-- user_offset = h->info.hook_entry[NF_IP6_POST_ROUTING];
-- }
-- } else if (strcmp(h->info.name, "raw") == 0) {
-- assert(h->info.valid_hooks
-- == (1 << NF_IP6_PRE_ROUTING
-- | 1 << NF_IP6_LOCAL_OUT));
--
-- /* Hooks should be first three */
-- assert(h->info.hook_entry[NF_IP6_PRE_ROUTING] == 0);
--
-- n = get_chain_end(h, n);
-- n += get_entry(h, n)->next_offset;
-- assert(h->info.hook_entry[NF_IP6_LOCAL_OUT] == n);
--
-- user_offset = h->info.hook_entry[NF_IP6_LOCAL_OUT];
-- } else {
-- fprintf(stderr, "Unknown table `%s'\n", h->info.name);
-- abort();
-- }
--
-- /* User chain == end of last builtin + policy entry */
-- user_offset = get_chain_end(h, user_offset);
-- user_offset += get_entry(h, user_offset)->next_offset;
--
-- /* Overflows should be end of entry chains, and unconditional
-- policy nodes. */
-- for (i = 0; i < NUMHOOKS; i++) {
-- STRUCT_ENTRY *e;
-- STRUCT_STANDARD_TARGET *t;
--
-- if (!(h->info.valid_hooks & (1 << i)))
-- continue;
-- assert(h->info.underflow[i]
-- == get_chain_end(h, h->info.hook_entry[i]));
--
-- e = get_entry(h, get_chain_end(h, h->info.hook_entry[i]));
-- assert(unconditional(&e->ipv6));
-- assert(e->target_offset == sizeof(*e));
-- t = (STRUCT_STANDARD_TARGET *)GET_TARGET(e);
-- printf("target_size=%u, align=%u\n",
-- t->target.u.target_size, ALIGN(sizeof(*t)));
-- assert(t->target.u.target_size == ALIGN(sizeof(*t)));
-- assert(e->next_offset == sizeof(*e) + ALIGN(sizeof(*t)));
--
-- assert(strcmp(t->target.u.user.name, STANDARD_TARGET)==0);
-- assert(t->verdict == -NF_DROP-1 || t->verdict == -NF_ACCEPT-1);
--
-- /* Hooks and underflows must be valid entries */
-- iptcb_entry2index(h, get_entry(h, h->info.hook_entry[i]));
-- iptcb_entry2index(h, get_entry(h, h->info.underflow[i]));
-- }
--
-- assert(h->info.size
-- >= h->info.num_entries * (sizeof(STRUCT_ENTRY)
-- +sizeof(STRUCT_STANDARD_TARGET)));
--
-- assert(h->entries.size
-- >= (h->new_number
-- * (sizeof(STRUCT_ENTRY)
-- + sizeof(STRUCT_STANDARD_TARGET))));
-- assert(strcmp(h->info.name, h->entries.name) == 0);
--
-- i = 0; n = 0;
-- was_return = 0;
--
--#if 0
-- /* Check all the entries. */
-- ENTRY_ITERATE(h->entries.entrytable, h->entries.size,
-- check_entry, &i, &n, user_offset, &was_return, h);
--
-- assert(i == h->new_number);
-- assert(n == h->entries.size);
--
-- /* Final entry must be error node */
-- assert(strcmp(GET_TARGET(index2entry(h, h->new_number-1))
-- ->u.user.name,
-- ERROR_TARGET) == 0);
--#endif
--}
--#endif /*IPTC_DEBUG*/
-diff --git libiptc/libiptc.c libiptc/libiptc.c
-deleted file mode 100644
-index 08f5f4c..0000000
---- libiptc/libiptc.c
-+++ /dev/null
-@@ -1,2274 +0,0 @@
--/* Library which manipulates firewall rules. Version $Revision: 4136 $ */
--
--/* Architecture of firewall rules is as follows:
-- *
-- * Chains go INPUT, FORWARD, OUTPUT then user chains.
-- * Each user chain starts with an ERROR node.
-- * Every chain ends with an unconditional jump: a RETURN for user chains,
-- * and a POLICY for built-ins.
-- */
--
--/* (C) 1999 Paul ``Rusty'' Russell - Placed under the GNU GPL (See
-- * COPYING for details).
-- * (C) 2000-2004 by the Netfilter Core Team <coreteam@netfilter.org>
-- *
-- * 2003-Jun-20: Harald Welte <laforge@netfilter.org>:
-- * - Reimplementation of chain cache to use offsets instead of entries
-- * 2003-Jun-23: Harald Welte <laforge@netfilter.org>:
-- * - performance optimization, sponsored by Astaro AG (http://www.astaro.com/)
-- * don't rebuild the chain cache after every operation, instead fix it
-- * up after a ruleset change.
-- * 2004-Aug-18: Harald Welte <laforge@netfilter.org>:
-- * - futher performance work: total reimplementation of libiptc.
-- * - libiptc now has a real internal (linked-list) represntation of the
-- * ruleset and a parser/compiler from/to this internal representation
-- * - again sponsored by Astaro AG (http://www.astaro.com/)
-- */
--#include <sys/types.h>
--#include <sys/socket.h>
--
--#include "linux_list.h"
--
--//#define IPTC_DEBUG2 1
--
--#ifdef IPTC_DEBUG2
--#include <fcntl.h>
--#define DEBUGP(x, args...) fprintf(stderr, "%s: " x, __FUNCTION__, ## args)
--#define DEBUGP_C(x, args...) fprintf(stderr, x, ## args)
--#else
--#define DEBUGP(x, args...)
--#define DEBUGP_C(x, args...)
--#endif
--
--#ifndef IPT_LIB_DIR
--#define IPT_LIB_DIR "/usr/local/lib/iptables"
--#endif
--
--static int sockfd = -1;
--static int sockfd_use = 0;
--static void *iptc_fn = NULL;
--
--static const char *hooknames[]
--= { [HOOK_PRE_ROUTING] "PREROUTING",
-- [HOOK_LOCAL_IN] "INPUT",
-- [HOOK_FORWARD] "FORWARD",
-- [HOOK_LOCAL_OUT] "OUTPUT",
-- [HOOK_POST_ROUTING] "POSTROUTING",
--#ifdef HOOK_DROPPING
-- [HOOK_DROPPING] "DROPPING"
--#endif
--};
--
--/* Convenience structures */
--struct ipt_error_target
--{
-- STRUCT_ENTRY_TARGET t;
-- char error[TABLE_MAXNAMELEN];
--};
--
--struct chain_head;
--struct rule_head;
--
--struct counter_map
--{
-- enum {
-- COUNTER_MAP_NOMAP,
-- COUNTER_MAP_NORMAL_MAP,
-- COUNTER_MAP_ZEROED,
-- COUNTER_MAP_SET
-- } maptype;
-- unsigned int mappos;
--};
--
--enum iptcc_rule_type {
-- IPTCC_R_STANDARD, /* standard target (ACCEPT, ...) */
-- IPTCC_R_MODULE, /* extension module (SNAT, ...) */
-- IPTCC_R_FALLTHROUGH, /* fallthrough rule */
-- IPTCC_R_JUMP, /* jump to other chain */
--};
--
--struct rule_head
--{
-- struct list_head list;
-- struct chain_head *chain;
-- struct counter_map counter_map;
--
-- unsigned int index; /* index (needed for counter_map) */
-- unsigned int offset; /* offset in rule blob */
--
-- enum iptcc_rule_type type;
-- struct chain_head *jump; /* jump target, if IPTCC_R_JUMP */
--
-- unsigned int size; /* size of entry data */
-- STRUCT_ENTRY entry[0];
--};
--
--struct chain_head
--{
-- struct list_head list;
-- char name[TABLE_MAXNAMELEN];
-- unsigned int hooknum; /* hook number+1 if builtin */
-- unsigned int references; /* how many jumps reference us */
-- int verdict; /* verdict if builtin */
--
-- STRUCT_COUNTERS counters; /* per-chain counters */
-- struct counter_map counter_map;
--
-- unsigned int num_rules; /* number of rules in list */
-- struct list_head rules; /* list of rules */
--
-- unsigned int index; /* index (needed for jump resolval) */
-- unsigned int head_offset; /* offset in rule blob */
-- unsigned int foot_index; /* index (needed for counter_map) */
-- unsigned int foot_offset; /* offset in rule blob */
--};
--
--STRUCT_TC_HANDLE
--{
-- int changed; /* Have changes been made? */
--
-- struct list_head chains;
--
-- struct chain_head *chain_iterator_cur;
-- struct rule_head *rule_iterator_cur;
--
-- STRUCT_GETINFO info;
-- STRUCT_GET_ENTRIES *entries;
--};
--
--/* allocate a new chain head for the cache */
--static struct chain_head *iptcc_alloc_chain_head(const char *name, int hooknum)
--{
-- struct chain_head *c = malloc(sizeof(*c));
-- if (!c)
-- return NULL;
-- memset(c, 0, sizeof(*c));
--
-- strncpy(c->name, name, TABLE_MAXNAMELEN);
-- c->hooknum = hooknum;
-- INIT_LIST_HEAD(&c->rules);
--
-- return c;
--}
--
--/* allocate and initialize a new rule for the cache */
--static struct rule_head *iptcc_alloc_rule(struct chain_head *c, unsigned int size)
--{
-- struct rule_head *r = malloc(sizeof(*r)+size);
-- if (!r)
-- return NULL;
-- memset(r, 0, sizeof(*r));
--
-- r->chain = c;
-- r->size = size;
--
-- return r;
--}
--
--/* notify us that the ruleset has been modified by the user */
--static void
--set_changed(TC_HANDLE_T h)
--{
-- h->changed = 1;
--}
--
--#ifdef IPTC_DEBUG
--static void do_check(TC_HANDLE_T h, unsigned int line);
--#define CHECK(h) do { if (!getenv("IPTC_NO_CHECK")) do_check((h), __LINE__); } while(0)
--#else
--#define CHECK(h)
--#endif
--
--
--/**********************************************************************
-- * iptc blob utility functions (iptcb_*)
-- **********************************************************************/
--
--static inline int
--iptcb_get_number(const STRUCT_ENTRY *i,
-- const STRUCT_ENTRY *seek,
-- unsigned int *pos)
--{
-- if (i == seek)
-- return 1;
-- (*pos)++;
-- return 0;
--}
--
--static inline int
--iptcb_get_entry_n(STRUCT_ENTRY *i,
-- unsigned int number,
-- unsigned int *pos,
-- STRUCT_ENTRY **pe)
--{
-- if (*pos == number) {
-- *pe = i;
-- return 1;
-- }
-- (*pos)++;
-- return 0;
--}
--
--static inline STRUCT_ENTRY *
--iptcb_get_entry(TC_HANDLE_T h, unsigned int offset)
--{
-- return (STRUCT_ENTRY *)((char *)h->entries->entrytable + offset);
--}
--
--static unsigned int
--iptcb_entry2index(const TC_HANDLE_T h, const STRUCT_ENTRY *seek)
--{
-- unsigned int pos = 0;
--
-- if (ENTRY_ITERATE(h->entries->entrytable, h->entries->size,
-- iptcb_get_number, seek, &pos) == 0) {
-- fprintf(stderr, "ERROR: offset %u not an entry!\n",
-- (unsigned int)((char *)seek - (char *)h->entries->entrytable));
-- abort();
-- }
-- return pos;
--}
--
--static inline STRUCT_ENTRY *
--iptcb_offset2entry(TC_HANDLE_T h, unsigned int offset)
--{
-- return (STRUCT_ENTRY *) ((void *)h->entries->entrytable+offset);
--}
--
--
--static inline unsigned long
--iptcb_entry2offset(const TC_HANDLE_T h, const STRUCT_ENTRY *e)
--{
-- return (void *)e - (void *)h->entries->entrytable;
--}
--
--static inline unsigned int
--iptcb_offset2index(const TC_HANDLE_T h, unsigned int offset)
--{
-- return iptcb_entry2index(h, iptcb_offset2entry(h, offset));
--}
--
--/* Returns 0 if not hook entry, else hooknumber + 1 */
--static inline unsigned int
--iptcb_ent_is_hook_entry(STRUCT_ENTRY *e, TC_HANDLE_T h)
--{
-- unsigned int i;
--
-- for (i = 0; i < NUMHOOKS; i++) {
-- if ((h->info.valid_hooks & (1 << i))
-- && iptcb_get_entry(h, h->info.hook_entry[i]) == e)
-- return i+1;
-- }
-- return 0;
--}
--
--
--/**********************************************************************
-- * iptc cache utility functions (iptcc_*)
-- **********************************************************************/
--
--/* Is the given chain builtin (1) or user-defined (0) */
--static unsigned int iptcc_is_builtin(struct chain_head *c)
--{
-- return (c->hooknum ? 1 : 0);
--}
--
--/* Get a specific rule within a chain */
--static struct rule_head *iptcc_get_rule_num(struct chain_head *c,
-- unsigned int rulenum)
--{
-- struct rule_head *r;
-- unsigned int num = 0;
--
-- list_for_each_entry(r, &c->rules, list) {
-- num++;
-- if (num == rulenum)
-- return r;
-- }
-- return NULL;
--}
--
--/* Get a specific rule within a chain backwards */
--static struct rule_head *iptcc_get_rule_num_reverse(struct chain_head *c,
-- unsigned int rulenum)
--{
-- struct rule_head *r;
-- unsigned int num = 0;
--
-- list_for_each_entry_reverse(r, &c->rules, list) {
-- num++;
-- if (num == rulenum)
-- return r;
-- }
-- return NULL;
--}
--
--/* Returns chain head if found, otherwise NULL. */
--static struct chain_head *
--iptcc_find_chain_by_offset(TC_HANDLE_T handle, unsigned int offset)
--{
-- struct list_head *pos;
--
-- if (list_empty(&handle->chains))
-- return NULL;
--
-- list_for_each(pos, &handle->chains) {
-- struct chain_head *c = list_entry(pos, struct chain_head, list);
-- if (offset >= c->head_offset && offset <= c->foot_offset)
-- return c;
-- }
--
-- return NULL;
--}
--/* Returns chain head if found, otherwise NULL. */
--static struct chain_head *
--iptcc_find_label(const char *name, TC_HANDLE_T handle)
--{
-- struct list_head *pos;
--
-- if (list_empty(&handle->chains))
-- return NULL;
--
-- list_for_each(pos, &handle->chains) {
-- struct chain_head *c = list_entry(pos, struct chain_head, list);
-- if (!strcmp(c->name, name))
-- return c;
-- }
--
-- return NULL;
--}
--
--/* called when rule is to be removed from cache */
--static void iptcc_delete_rule(struct rule_head *r)
--{
-- DEBUGP("deleting rule %p (offset %u)\n", r, r->offset);
-- /* clean up reference count of called chain */
-- if (r->type == IPTCC_R_JUMP
-- && r->jump)
-- r->jump->references--;
--
-- list_del(&r->list);
-- free(r);
--}
--
--
--/**********************************************************************
-- * RULESET PARSER (blob -> cache)
-- **********************************************************************/
--
--/* Delete policy rule of previous chain, since cache doesn't contain
-- * chain policy rules.
-- * WARNING: This function has ugly design and relies on a lot of context, only
-- * to be called from specific places within the parser */
--static int __iptcc_p_del_policy(TC_HANDLE_T h, unsigned int num)
--{
-- if (h->chain_iterator_cur) {
-- /* policy rule is last rule */
-- struct rule_head *pr = (struct rule_head *)
-- h->chain_iterator_cur->rules.prev;
--
-- /* save verdict */
-- h->chain_iterator_cur->verdict =
-- *(int *)GET_TARGET(pr->entry)->data;
--
-- /* save counter and counter_map information */
-- h->chain_iterator_cur->counter_map.maptype =
-- COUNTER_MAP_NORMAL_MAP;
-- h->chain_iterator_cur->counter_map.mappos = num-1;
-- memcpy(&h->chain_iterator_cur->counters, &pr->entry->counters,
-- sizeof(h->chain_iterator_cur->counters));
--
-- /* foot_offset points to verdict rule */
-- h->chain_iterator_cur->foot_index = num;
-- h->chain_iterator_cur->foot_offset = pr->offset;
--
-- /* delete rule from cache */
-- iptcc_delete_rule(pr);
-- h->chain_iterator_cur->num_rules--;
--
-- return 1;
-- }
-- return 0;
--}
--
--/* alphabetically insert a chain into the list */
--static inline void iptc_insert_chain(TC_HANDLE_T h, struct chain_head *c)
--{
-- struct chain_head *tmp;
--
-- /* sort only user defined chains */
-- if (!c->hooknum) {
-- list_for_each_entry(tmp, &h->chains, list) {
-- if (strcmp(c->name, tmp->name) <= 0) {
-- list_add(&c->list, tmp->list.prev);
-- return;
-- }
-- }
-- }
--
-- /* survived till end of list: add at tail */
-- list_add_tail(&c->list, &h->chains);
--}
--
--/* Another ugly helper function split out of cache_add_entry to make it less
-- * spaghetti code */
--static void __iptcc_p_add_chain(TC_HANDLE_T h, struct chain_head *c,
-- unsigned int offset, unsigned int *num)
--{
-- __iptcc_p_del_policy(h, *num);
--
-- c->head_offset = offset;
-- c->index = *num;
--
-- iptc_insert_chain(h, c);
--
-- h->chain_iterator_cur = c;
--}
--
--/* main parser function: add an entry from the blob to the cache */
--static int cache_add_entry(STRUCT_ENTRY *e,
-- TC_HANDLE_T h,
-- STRUCT_ENTRY **prev,
-- unsigned int *num)
--{
-- unsigned int builtin;
-- unsigned int offset = (char *)e - (char *)h->entries->entrytable;
--
-- DEBUGP("entering...");
--
-- /* Last entry ("policy rule"). End it.*/
-- if (iptcb_entry2offset(h,e) + e->next_offset == h->entries->size) {
-- /* This is the ERROR node at the end of the chain */
-- DEBUGP_C("%u:%u: end of table:\n", *num, offset);
--
-- __iptcc_p_del_policy(h, *num);
--
-- h->chain_iterator_cur = NULL;
-- goto out_inc;
-- }
--
-- /* We know this is the start of a new chain if it's an ERROR
-- * target, or a hook entry point */
--
-- if (strcmp(GET_TARGET(e)->u.user.name, ERROR_TARGET) == 0) {
-- struct chain_head *c =
-- iptcc_alloc_chain_head((const char *)GET_TARGET(e)->data, 0);
-- DEBUGP_C("%u:%u:new userdefined chain %s: %p\n", *num, offset,
-- (char *)c->name, c);
-- if (!c) {
-- errno = -ENOMEM;
-- return -1;
-- }
--
-- __iptcc_p_add_chain(h, c, offset, num);
--
-- } else if ((builtin = iptcb_ent_is_hook_entry(e, h)) != 0) {
-- struct chain_head *c =
-- iptcc_alloc_chain_head((char *)hooknames[builtin-1],
-- builtin);
-- DEBUGP_C("%u:%u new builtin chain: %p (rules=%p)\n",
-- *num, offset, c, &c->rules);
-- if (!c) {
-- errno = -ENOMEM;
-- return -1;
-- }
--
-- c->hooknum = builtin;
--
-- __iptcc_p_add_chain(h, c, offset, num);
--
-- /* FIXME: this is ugly. */
-- goto new_rule;
-- } else {
-- /* has to be normal rule */
-- struct rule_head *r;
--new_rule:
--
-- if (!(r = iptcc_alloc_rule(h->chain_iterator_cur,
-- e->next_offset))) {
-- errno = ENOMEM;
-- return -1;
-- }
-- DEBUGP_C("%u:%u normal rule: %p: ", *num, offset, r);
--
-- r->index = *num;
-- r->offset = offset;
-- memcpy(r->entry, e, e->next_offset);
-- r->counter_map.maptype = COUNTER_MAP_NORMAL_MAP;
-- r->counter_map.mappos = r->index;
--
-- /* handling of jumps, etc. */
-- if (!strcmp(GET_TARGET(e)->u.user.name, STANDARD_TARGET)) {
-- STRUCT_STANDARD_TARGET *t;
--
-- t = (STRUCT_STANDARD_TARGET *)GET_TARGET(e);
-- if (t->target.u.target_size
-- != ALIGN(sizeof(STRUCT_STANDARD_TARGET))) {
-- errno = EINVAL;
-- return -1;
-- }
--
-- if (t->verdict < 0) {
-- DEBUGP_C("standard, verdict=%d\n", t->verdict);
-- r->type = IPTCC_R_STANDARD;
-- } else if (t->verdict == r->offset+e->next_offset) {
-- DEBUGP_C("fallthrough\n");
-- r->type = IPTCC_R_FALLTHROUGH;
-- } else {
-- DEBUGP_C("jump, target=%u\n", t->verdict);
-- r->type = IPTCC_R_JUMP;
-- /* Jump target fixup has to be deferred
-- * until second pass, since we migh not
-- * yet have parsed the target */
-- }
-- } else {
-- DEBUGP_C("module, target=%s\n", GET_TARGET(e)->u.user.name);
-- r->type = IPTCC_R_MODULE;
-- }
--
-- list_add_tail(&r->list, &h->chain_iterator_cur->rules);
-- h->chain_iterator_cur->num_rules++;
-- }
--out_inc:
-- (*num)++;
-- return 0;
--}
--
--
--/* parse an iptables blob into it's pieces */
--static int parse_table(TC_HANDLE_T h)
--{
-- STRUCT_ENTRY *prev;
-- unsigned int num = 0;
-- struct chain_head *c;
--
-- /* First pass: over ruleset blob */
-- ENTRY_ITERATE(h->entries->entrytable, h->entries->size,
-- cache_add_entry, h, &prev, &num);
--
-- /* Second pass: fixup parsed data from first pass */
-- list_for_each_entry(c, &h->chains, list) {
-- struct rule_head *r;
-- list_for_each_entry(r, &c->rules, list) {
-- struct chain_head *c;
-- STRUCT_STANDARD_TARGET *t;
--
-- if (r->type != IPTCC_R_JUMP)
-- continue;
--
-- t = (STRUCT_STANDARD_TARGET *)GET_TARGET(r->entry);
-- c = iptcc_find_chain_by_offset(h, t->verdict);
-- if (!c)
-- return -1;
-- r->jump = c;
-- c->references++;
-- }
-- }
--
-- /* FIXME: sort chains */
--
-- return 1;
--}
--
--
--/**********************************************************************
-- * RULESET COMPILATION (cache -> blob)
-- **********************************************************************/
--
--/* Convenience structures */
--struct iptcb_chain_start{
-- STRUCT_ENTRY e;
-- struct ipt_error_target name;
--};
--#define IPTCB_CHAIN_START_SIZE (sizeof(STRUCT_ENTRY) + \
-- ALIGN(sizeof(struct ipt_error_target)))
--
--struct iptcb_chain_foot {
-- STRUCT_ENTRY e;
-- STRUCT_STANDARD_TARGET target;
--};
--#define IPTCB_CHAIN_FOOT_SIZE (sizeof(STRUCT_ENTRY) + \
-- ALIGN(sizeof(STRUCT_STANDARD_TARGET)))
--
--struct iptcb_chain_error {
-- STRUCT_ENTRY entry;
-- struct ipt_error_target target;
--};
--#define IPTCB_CHAIN_ERROR_SIZE (sizeof(STRUCT_ENTRY) + \
-- ALIGN(sizeof(struct ipt_error_target)))
--
--
--
--/* compile rule from cache into blob */
--static inline int iptcc_compile_rule (TC_HANDLE_T h, STRUCT_REPLACE *repl, struct rule_head *r)
--{
-- /* handle jumps */
-- if (r->type == IPTCC_R_JUMP) {
-- STRUCT_STANDARD_TARGET *t;
-- t = (STRUCT_STANDARD_TARGET *)GET_TARGET(r->entry);
-- /* memset for memcmp convenience on delete/replace */
-- memset(t->target.u.user.name, 0, FUNCTION_MAXNAMELEN);
-- strcpy(t->target.u.user.name, STANDARD_TARGET);
-- /* Jumps can only happen to builtin chains, so we
-- * can safely assume that they always have a header */
-- t->verdict = r->jump->head_offset + IPTCB_CHAIN_START_SIZE;
-- } else if (r->type == IPTCC_R_FALLTHROUGH) {
-- STRUCT_STANDARD_TARGET *t;
-- t = (STRUCT_STANDARD_TARGET *)GET_TARGET(r->entry);
-- t->verdict = r->offset + r->size;
-- }
--
-- /* copy entry from cache to blob */
-- memcpy((char *)repl->entries+r->offset, r->entry, r->size);
--
-- return 1;
--}
--
--/* compile chain from cache into blob */
--static int iptcc_compile_chain(TC_HANDLE_T h, STRUCT_REPLACE *repl, struct chain_head *c)
--{
-- int ret;
-- struct rule_head *r;
-- struct iptcb_chain_start *head;
-- struct iptcb_chain_foot *foot;
--
-- /* only user-defined chains have heaer */
-- if (!iptcc_is_builtin(c)) {
-- /* put chain header in place */
-- head = (void *)repl->entries + c->head_offset;
-- head->e.target_offset = sizeof(STRUCT_ENTRY);
-- head->e.next_offset = IPTCB_CHAIN_START_SIZE;
-- strcpy(head->name.t.u.user.name, ERROR_TARGET);
-- head->name.t.u.target_size =
-- ALIGN(sizeof(struct ipt_error_target));
-- strcpy(head->name.error, c->name);
-- } else {
-- repl->hook_entry[c->hooknum-1] = c->head_offset;
-- repl->underflow[c->hooknum-1] = c->foot_offset;
-- }
--
-- /* iterate over rules */
-- list_for_each_entry(r, &c->rules, list) {
-- ret = iptcc_compile_rule(h, repl, r);
-- if (ret < 0)
-- return ret;
-- }
--
-- /* put chain footer in place */
-- foot = (void *)repl->entries + c->foot_offset;
-- foot->e.target_offset = sizeof(STRUCT_ENTRY);
-- foot->e.next_offset = IPTCB_CHAIN_FOOT_SIZE;
-- strcpy(foot->target.target.u.user.name, STANDARD_TARGET);
-- foot->target.target.u.target_size =
-- ALIGN(sizeof(STRUCT_STANDARD_TARGET));
-- /* builtin targets have verdict, others return */
-- if (iptcc_is_builtin(c))
-- foot->target.verdict = c->verdict;
-- else
-- foot->target.verdict = RETURN;
-- /* set policy-counters */
-- memcpy(&foot->e.counters, &c->counters, sizeof(STRUCT_COUNTERS));
--
-- return 0;
--}
--
--/* calculate offset and number for every rule in the cache */
--static int iptcc_compile_chain_offsets(TC_HANDLE_T h, struct chain_head *c,
-- unsigned int *offset, unsigned int *num)
--{
-- struct rule_head *r;
--
-- c->head_offset = *offset;
-- DEBUGP("%s: chain_head %u, offset=%u\n", c->name, *num, *offset);
--
-- if (!iptcc_is_builtin(c)) {
-- /* Chain has header */
-- *offset += sizeof(STRUCT_ENTRY)
-- + ALIGN(sizeof(struct ipt_error_target));
-- (*num)++;
-- }
--
-- list_for_each_entry(r, &c->rules, list) {
-- DEBUGP("rule %u, offset=%u, index=%u\n", *num, *offset, *num);
-- r->offset = *offset;
-- r->index = *num;
-- *offset += r->size;
-- (*num)++;
-- }
--
-- DEBUGP("%s; chain_foot %u, offset=%u, index=%u\n", c->name, *num,
-- *offset, *num);
-- c->foot_offset = *offset;
-- c->foot_index = *num;
-- *offset += sizeof(STRUCT_ENTRY)
-- + ALIGN(sizeof(STRUCT_STANDARD_TARGET));
-- (*num)++;
--
-- return 1;
--}
--
--/* put the pieces back together again */
--static int iptcc_compile_table_prep(TC_HANDLE_T h, unsigned int *size)
--{
-- struct chain_head *c;
-- unsigned int offset = 0, num = 0;
-- int ret = 0;
--
-- /* First pass: calculate offset for every rule */
-- list_for_each_entry(c, &h->chains, list) {
-- ret = iptcc_compile_chain_offsets(h, c, &offset, &num);
-- if (ret < 0)
-- return ret;
-- }
--
-- /* Append one error rule at end of chain */
-- num++;
-- offset += sizeof(STRUCT_ENTRY)
-- + ALIGN(sizeof(struct ipt_error_target));
--
-- /* ruleset size is now in offset */
-- *size = offset;
-- return num;
--}
--
--static int iptcc_compile_table(TC_HANDLE_T h, STRUCT_REPLACE *repl)
--{
-- struct chain_head *c;
-- struct iptcb_chain_error *error;
--
-- /* Second pass: copy from cache to offsets, fill in jumps */
-- list_for_each_entry(c, &h->chains, list) {
-- int ret = iptcc_compile_chain(h, repl, c);
-- if (ret < 0)
-- return ret;
-- }
--
-- /* Append error rule at end of chain */
-- error = (void *)repl->entries + repl->size - IPTCB_CHAIN_ERROR_SIZE;
-- error->entry.target_offset = sizeof(STRUCT_ENTRY);
-- error->entry.next_offset = IPTCB_CHAIN_ERROR_SIZE;
-- error->target.t.u.user.target_size =
-- ALIGN(sizeof(struct ipt_error_target));
-- strcpy((char *)&error->target.t.u.user.name, ERROR_TARGET);
-- strcpy((char *)&error->target.error, "ERROR");
--
-- return 1;
--}
--
--/**********************************************************************
-- * EXTERNAL API (operates on cache only)
-- **********************************************************************/
--
--/* Allocate handle of given size */
--static TC_HANDLE_T
--alloc_handle(const char *tablename, unsigned int size, unsigned int num_rules)
--{
-- size_t len;
-- TC_HANDLE_T h;
--
-- len = sizeof(STRUCT_TC_HANDLE) + size;
--
-- h = malloc(sizeof(STRUCT_TC_HANDLE));
-- if (!h) {
-- errno = ENOMEM;
-- return NULL;
-- }
-- memset(h, 0, sizeof(*h));
-- INIT_LIST_HEAD(&h->chains);
-- strcpy(h->info.name, tablename);
--
-- h->entries = malloc(sizeof(STRUCT_GET_ENTRIES) + size);
-- if (!h->entries)
-- goto out_free_handle;
--
-- strcpy(h->entries->name, tablename);
-- h->entries->size = size;
--
-- return h;
--
--out_free_handle:
-- free(h);
--
-- return NULL;
--}
--
--
--TC_HANDLE_T
--TC_INIT(const char *tablename)
--{
-- TC_HANDLE_T h;
-- STRUCT_GETINFO info;
-- unsigned int tmp;
-- socklen_t s;
--
-- iptc_fn = TC_INIT;
--
-- if (strlen(tablename) >= TABLE_MAXNAMELEN) {
-- errno = EINVAL;
-- return NULL;
-- }
--
-- if (sockfd_use == 0) {
-- sockfd = socket(TC_AF, SOCK_RAW, IPPROTO_RAW);
-- if (sockfd < 0)
-- return NULL;
-- }
-- sockfd_use++;
--
-- s = sizeof(info);
--
-- strcpy(info.name, tablename);
-- if (getsockopt(sockfd, TC_IPPROTO, SO_GET_INFO, &info, &s) < 0) {
-- if (--sockfd_use == 0) {
-- close(sockfd);
-- sockfd = -1;
-- }
-- return NULL;
-- }
--
-- DEBUGP("valid_hooks=0x%08x, num_entries=%u, size=%u\n",
-- info.valid_hooks, info.num_entries, info.size);
--
-- if ((h = alloc_handle(info.name, info.size, info.num_entries))
-- == NULL) {
-- if (--sockfd_use == 0) {
-- close(sockfd);
-- sockfd = -1;
-- }
-- return NULL;
-- }
--
-- /* Initialize current state */
-- h->info = info;
--
-- h->entries->size = h->info.size;
--
-- tmp = sizeof(STRUCT_GET_ENTRIES) + h->info.size;
--
-- if (getsockopt(sockfd, TC_IPPROTO, SO_GET_ENTRIES, h->entries,
-- &tmp) < 0)
-- goto error;
--
--#ifdef IPTC_DEBUG2
-- {
-- int fd = open("/tmp/libiptc-so_get_entries.blob",
-- O_CREAT|O_WRONLY);
-- if (fd >= 0) {
-- write(fd, h->entries, tmp);
-- close(fd);
-- }
-- }
--#endif
--
-- if (parse_table(h) < 0)
-- goto error;
--
-- CHECK(h);
-- return h;
--error:
-- if (--sockfd_use == 0) {
-- close(sockfd);
-- sockfd = -1;
-- }
-- TC_FREE(&h);
-- return NULL;
--}
--
--void
--TC_FREE(TC_HANDLE_T *h)
--{
-- struct chain_head *c, *tmp;
--
-- iptc_fn = TC_FREE;
-- if (--sockfd_use == 0) {
-- close(sockfd);
-- sockfd = -1;
-- }
--
-- list_for_each_entry_safe(c, tmp, &(*h)->chains, list) {
-- struct rule_head *r, *rtmp;
--
-- list_for_each_entry_safe(r, rtmp, &c->rules, list) {
-- free(r);
-- }
--
-- free(c);
-- }
--
-- free((*h)->entries);
-- free(*h);
--
-- *h = NULL;
--}
--
--static inline int
--print_match(const STRUCT_ENTRY_MATCH *m)
--{
-- printf("Match name: `%s'\n", m->u.user.name);
-- return 0;
--}
--
--static int dump_entry(STRUCT_ENTRY *e, const TC_HANDLE_T handle);
--
--void
--TC_DUMP_ENTRIES(const TC_HANDLE_T handle)
--{
-- iptc_fn = TC_DUMP_ENTRIES;
-- CHECK(handle);
--#if 0
-- printf("libiptc v%s. %u bytes.\n",
-- IPTABLES_VERSION, handle->entries->size);
-- printf("Table `%s'\n", handle->info.name);
-- printf("Hooks: pre/in/fwd/out/post = %u/%u/%u/%u/%u\n",
-- handle->info.hook_entry[HOOK_PRE_ROUTING],
-- handle->info.hook_entry[HOOK_LOCAL_IN],
-- handle->info.hook_entry[HOOK_FORWARD],
-- handle->info.hook_entry[HOOK_LOCAL_OUT],
-- handle->info.hook_entry[HOOK_POST_ROUTING]);
-- printf("Underflows: pre/in/fwd/out/post = %u/%u/%u/%u/%u\n",
-- handle->info.underflow[HOOK_PRE_ROUTING],
-- handle->info.underflow[HOOK_LOCAL_IN],
-- handle->info.underflow[HOOK_FORWARD],
-- handle->info.underflow[HOOK_LOCAL_OUT],
-- handle->info.underflow[HOOK_POST_ROUTING]);
--
-- ENTRY_ITERATE(handle->entries->entrytable, handle->entries->size,
-- dump_entry, handle);
--#endif
--}
--
--/* Does this chain exist? */
--int TC_IS_CHAIN(const char *chain, const TC_HANDLE_T handle)
--{
-- iptc_fn = TC_IS_CHAIN;
-- return iptcc_find_label(chain, handle) != NULL;
--}
--
--static void iptcc_chain_iterator_advance(TC_HANDLE_T handle)
--{
-- struct chain_head *c = handle->chain_iterator_cur;
--
-- if (c->list.next == &handle->chains)
-- handle->chain_iterator_cur = NULL;
-- else
-- handle->chain_iterator_cur =
-- list_entry(c->list.next, struct chain_head, list);
--}
--
--/* Iterator functions to run through the chains. */
--const char *
--TC_FIRST_CHAIN(TC_HANDLE_T *handle)
--{
-- struct chain_head *c = list_entry((*handle)->chains.next,
-- struct chain_head, list);
--
-- iptc_fn = TC_FIRST_CHAIN;
--
--
-- if (list_empty(&(*handle)->chains)) {
-- DEBUGP(": no chains\n");
-- return NULL;
-- }
--
-- (*handle)->chain_iterator_cur = c;
-- iptcc_chain_iterator_advance(*handle);
--
-- DEBUGP(": returning `%s'\n", c->name);
-- return c->name;
--}
--
--/* Iterator functions to run through the chains. Returns NULL at end. */
--const char *
--TC_NEXT_CHAIN(TC_HANDLE_T *handle)
--{
-- struct chain_head *c = (*handle)->chain_iterator_cur;
--
-- iptc_fn = TC_NEXT_CHAIN;
--
-- if (!c) {
-- DEBUGP(": no more chains\n");
-- return NULL;
-- }
--
-- iptcc_chain_iterator_advance(*handle);
--
-- DEBUGP(": returning `%s'\n", c->name);
-- return c->name;
--}
--
--/* Get first rule in the given chain: NULL for empty chain. */
--const STRUCT_ENTRY *
--TC_FIRST_RULE(const char *chain, TC_HANDLE_T *handle)
--{
-- struct chain_head *c;
-- struct rule_head *r;
--
-- iptc_fn = TC_FIRST_RULE;
--
-- DEBUGP("first rule(%s): ", chain);
--
-- c = iptcc_find_label(chain, *handle);
-- if (!c) {
-- errno = ENOENT;
-- return NULL;
-- }
--
-- /* Empty chain: single return/policy rule */
-- if (list_empty(&c->rules)) {
-- DEBUGP_C("no rules, returning NULL\n");
-- return NULL;
-- }
--
-- r = list_entry(c->rules.next, struct rule_head, list);
-- (*handle)->rule_iterator_cur = r;
-- DEBUGP_C("%p\n", r);
--
-- return r->entry;
--}
--
--/* Returns NULL when rules run out. */
--const STRUCT_ENTRY *
--TC_NEXT_RULE(const STRUCT_ENTRY *prev, TC_HANDLE_T *handle)
--{
-- struct rule_head *r;
--
-- iptc_fn = TC_NEXT_RULE;
-- DEBUGP("rule_iterator_cur=%p...", (*handle)->rule_iterator_cur);
--
-- if (!(*handle)->rule_iterator_cur) {
-- DEBUGP_C("returning NULL\n");
-- return NULL;
-- }
--
-- r = list_entry((*handle)->rule_iterator_cur->list.next,
-- struct rule_head, list);
--
-- iptc_fn = TC_NEXT_RULE;
--
-- DEBUGP_C("next=%p, head=%p...", &r->list,
-- &(*handle)->rule_iterator_cur->chain->rules);
--
-- if (&r->list == &(*handle)->rule_iterator_cur->chain->rules) {
-- (*handle)->rule_iterator_cur = NULL;
-- DEBUGP_C("finished, returning NULL\n");
-- return NULL;
-- }
--
-- (*handle)->rule_iterator_cur = r;
--
-- /* NOTE: prev is without any influence ! */
-- DEBUGP_C("returning rule %p\n", r);
-- return r->entry;
--}
--
--/* How many rules in this chain? */
--unsigned int
--TC_NUM_RULES(const char *chain, TC_HANDLE_T *handle)
--{
-- struct chain_head *c;
-- iptc_fn = TC_NUM_RULES;
-- CHECK(*handle);
--
-- c = iptcc_find_label(chain, *handle);
-- if (!c) {
-- errno = ENOENT;
-- return (unsigned int)-1;
-- }
--
-- return c->num_rules;
--}
--
--const STRUCT_ENTRY *TC_GET_RULE(const char *chain,
-- unsigned int n,
-- TC_HANDLE_T *handle)
--{
-- struct chain_head *c;
-- struct rule_head *r;
--
-- iptc_fn = TC_GET_RULE;
--
-- CHECK(*handle);
--
-- c = iptcc_find_label(chain, *handle);
-- if (!c) {
-- errno = ENOENT;
-- return NULL;
-- }
--
-- r = iptcc_get_rule_num(c, n);
-- if (!r)
-- return NULL;
-- return r->entry;
--}
--
--/* Returns a pointer to the target name of this position. */
--const char *standard_target_map(int verdict)
--{
-- switch (verdict) {
-- case RETURN:
-- return LABEL_RETURN;
-- break;
-- case -NF_ACCEPT-1:
-- return LABEL_ACCEPT;
-- break;
-- case -NF_DROP-1:
-- return LABEL_DROP;
-- break;
-- case -NF_QUEUE-1:
-- return LABEL_QUEUE;
-- break;
-- default:
-- fprintf(stderr, "ERROR: %d not a valid target)\n",
-- verdict);
-- abort();
-- break;
-- }
-- /* not reached */
-- return NULL;
--}
--
--/* Returns a pointer to the target name of this position. */
--const char *TC_GET_TARGET(const STRUCT_ENTRY *ce,
-- TC_HANDLE_T *handle)
--{
-- STRUCT_ENTRY *e = (STRUCT_ENTRY *)ce;
-- struct rule_head *r = container_of(e, struct rule_head, entry[0]);
--
-- iptc_fn = TC_GET_TARGET;
--
-- switch(r->type) {
-- int spos;
-- case IPTCC_R_FALLTHROUGH:
-- return "";
-- break;
-- case IPTCC_R_JUMP:
-- DEBUGP("r=%p, jump=%p, name=`%s'\n", r, r->jump, r->jump->name);
-- return r->jump->name;
-- break;
-- case IPTCC_R_STANDARD:
-- spos = *(int *)GET_TARGET(e)->data;
-- DEBUGP("r=%p, spos=%d'\n", r, spos);
-- return standard_target_map(spos);
-- break;
-- case IPTCC_R_MODULE:
-- return GET_TARGET(e)->u.user.name;
-- break;
-- }
-- return NULL;
--}
--/* Is this a built-in chain? Actually returns hook + 1. */
--int
--TC_BUILTIN(const char *chain, const TC_HANDLE_T handle)
--{
-- struct chain_head *c;
--
-- iptc_fn = TC_BUILTIN;
--
-- c = iptcc_find_label(chain, handle);
-- if (!c) {
-- errno = ENOENT;
-- return 0;
-- }
--
-- return iptcc_is_builtin(c);
--}
--
--/* Get the policy of a given built-in chain */
--const char *
--TC_GET_POLICY(const char *chain,
-- STRUCT_COUNTERS *counters,
-- TC_HANDLE_T *handle)
--{
-- struct chain_head *c;
--
-- iptc_fn = TC_GET_POLICY;
--
-- DEBUGP("called for chain %s\n", chain);
--
-- c = iptcc_find_label(chain, *handle);
-- if (!c) {
-- errno = ENOENT;
-- return NULL;
-- }
--
-- if (!iptcc_is_builtin(c))
-- return NULL;
--
-- *counters = c->counters;
--
-- return standard_target_map(c->verdict);
--}
--
--static int
--iptcc_standard_map(struct rule_head *r, int verdict)
--{
-- STRUCT_ENTRY *e = r->entry;
-- STRUCT_STANDARD_TARGET *t;
--
-- t = (STRUCT_STANDARD_TARGET *)GET_TARGET(e);
--
-- if (t->target.u.target_size
-- != ALIGN(sizeof(STRUCT_STANDARD_TARGET))) {
-- errno = EINVAL;
-- return 0;
-- }
-- /* memset for memcmp convenience on delete/replace */
-- memset(t->target.u.user.name, 0, FUNCTION_MAXNAMELEN);
-- strcpy(t->target.u.user.name, STANDARD_TARGET);
-- t->verdict = verdict;
--
-- r->type = IPTCC_R_STANDARD;
--
-- return 1;
--}
--
--static int
--iptcc_map_target(const TC_HANDLE_T handle,
-- struct rule_head *r)
--{
-- STRUCT_ENTRY *e = r->entry;
-- STRUCT_ENTRY_TARGET *t = GET_TARGET(e);
--
-- /* Maybe it's empty (=> fall through) */
-- if (strcmp(t->u.user.name, "") == 0) {
-- r->type = IPTCC_R_FALLTHROUGH;
-- return 1;
-- }
-- /* Maybe it's a standard target name... */
-- else if (strcmp(t->u.user.name, LABEL_ACCEPT) == 0)
-- return iptcc_standard_map(r, -NF_ACCEPT - 1);
-- else if (strcmp(t->u.user.name, LABEL_DROP) == 0)
-- return iptcc_standard_map(r, -NF_DROP - 1);
-- else if (strcmp(t->u.user.name, LABEL_QUEUE) == 0)
-- return iptcc_standard_map(r, -NF_QUEUE - 1);
-- else if (strcmp(t->u.user.name, LABEL_RETURN) == 0)
-- return iptcc_standard_map(r, RETURN);
-- else if (TC_BUILTIN(t->u.user.name, handle)) {
-- /* Can't jump to builtins. */
-- errno = EINVAL;
-- return 0;
-- } else {
-- /* Maybe it's an existing chain name. */
-- struct chain_head *c;
-- DEBUGP("trying to find chain `%s': ", t->u.user.name);
--
-- c = iptcc_find_label(t->u.user.name, handle);
-- if (c) {
-- DEBUGP_C("found!\n");
-- r->type = IPTCC_R_JUMP;
-- r->jump = c;
-- c->references++;
-- return 1;
-- }
-- DEBUGP_C("not found :(\n");
-- }
--
-- /* Must be a module? If not, kernel will reject... */
-- /* memset to all 0 for your memcmp convenience: don't clear version */
-- memset(t->u.user.name + strlen(t->u.user.name),
-- 0,
-- FUNCTION_MAXNAMELEN - 1 - strlen(t->u.user.name));
-- r->type = IPTCC_R_MODULE;
-- set_changed(handle);
-- return 1;
--}
--
--/* Insert the entry `fw' in chain `chain' into position `rulenum'. */
--int
--TC_INSERT_ENTRY(const IPT_CHAINLABEL chain,
-- const STRUCT_ENTRY *e,
-- unsigned int rulenum,
-- TC_HANDLE_T *handle)
--{
-- struct chain_head *c;
-- struct rule_head *r;
-- struct list_head *prev;
--
-- iptc_fn = TC_INSERT_ENTRY;
--
-- if (!(c = iptcc_find_label(chain, *handle))) {
-- errno = ENOENT;
-- return 0;
-- }
--
-- /* first rulenum index = 0
-- first c->num_rules index = 1 */
-- if (rulenum > c->num_rules) {
-- errno = E2BIG;
-- return 0;
-- }
--
-- /* If we are inserting at the end just take advantage of the
-- double linked list, insert will happen before the entry
-- prev points to. */
-- if (rulenum == c->num_rules) {
-- prev = &c->rules;
-- } else if (rulenum + 1 <= c->num_rules/2) {
-- r = iptcc_get_rule_num(c, rulenum + 1);
-- prev = &r->list;
-- } else {
-- r = iptcc_get_rule_num_reverse(c, c->num_rules - rulenum);
-- prev = &r->list;
-- }
--
-- if (!(r = iptcc_alloc_rule(c, e->next_offset))) {
-- errno = ENOMEM;
-- return 0;
-- }
--
-- memcpy(r->entry, e, e->next_offset);
-- r->counter_map.maptype = COUNTER_MAP_SET;
--
-- if (!iptcc_map_target(*handle, r)) {
-- free(r);
-- return 0;
-- }
--
-- list_add_tail(&r->list, prev);
-- c->num_rules++;
--
-- set_changed(*handle);
--
-- return 1;
--}
--
--/* Atomically replace rule `rulenum' in `chain' with `fw'. */
--int
--TC_REPLACE_ENTRY(const IPT_CHAINLABEL chain,
-- const STRUCT_ENTRY *e,
-- unsigned int rulenum,
-- TC_HANDLE_T *handle)
--{
-- struct chain_head *c;
-- struct rule_head *r, *old;
--
-- iptc_fn = TC_REPLACE_ENTRY;
--
-- if (!(c = iptcc_find_label(chain, *handle))) {
-- errno = ENOENT;
-- return 0;
-- }
--
-- if (rulenum >= c->num_rules) {
-- errno = E2BIG;
-- return 0;
-- }
--
-- /* Take advantage of the double linked list if possible. */
-- if (rulenum + 1 <= c->num_rules/2) {
-- old = iptcc_get_rule_num(c, rulenum + 1);
-- } else {
-- old = iptcc_get_rule_num_reverse(c, c->num_rules - rulenum);
-- }
--
-- if (!(r = iptcc_alloc_rule(c, e->next_offset))) {
-- errno = ENOMEM;
-- return 0;
-- }
--
-- memcpy(r->entry, e, e->next_offset);
-- r->counter_map.maptype = COUNTER_MAP_SET;
--
-- if (!iptcc_map_target(*handle, r)) {
-- free(r);
-- return 0;
-- }
--
-- list_add(&r->list, &old->list);
-- iptcc_delete_rule(old);
--
-- set_changed(*handle);
--
-- return 1;
--}
--
--/* Append entry `fw' to chain `chain'. Equivalent to insert with
-- rulenum = length of chain. */
--int
--TC_APPEND_ENTRY(const IPT_CHAINLABEL chain,
-- const STRUCT_ENTRY *e,
-- TC_HANDLE_T *handle)
--{
-- struct chain_head *c;
-- struct rule_head *r;
--
-- iptc_fn = TC_APPEND_ENTRY;
-- if (!(c = iptcc_find_label(chain, *handle))) {
-- DEBUGP("unable to find chain `%s'\n", chain);
-- errno = ENOENT;
-- return 0;
-- }
--
-- if (!(r = iptcc_alloc_rule(c, e->next_offset))) {
-- DEBUGP("unable to allocate rule for chain `%s'\n", chain);
-- errno = ENOMEM;
-- return 0;
-- }
--
-- memcpy(r->entry, e, e->next_offset);
-- r->counter_map.maptype = COUNTER_MAP_SET;
--
-- if (!iptcc_map_target(*handle, r)) {
-- DEBUGP("unable to map target of rule for chain `%s'\n", chain);
-- free(r);
-- return 0;
-- }
--
-- list_add_tail(&r->list, &c->rules);
-- c->num_rules++;
--
-- set_changed(*handle);
--
-- return 1;
--}
--
--static inline int
--match_different(const STRUCT_ENTRY_MATCH *a,
-- const unsigned char *a_elems,
-- const unsigned char *b_elems,
-- unsigned char **maskptr)
--{
-- const STRUCT_ENTRY_MATCH *b;
-- unsigned int i;
--
-- /* Offset of b is the same as a. */
-- b = (void *)b_elems + ((unsigned char *)a - a_elems);
--
-- if (a->u.match_size != b->u.match_size)
-- return 1;
--
-- if (strcmp(a->u.user.name, b->u.user.name) != 0)
-- return 1;
--
-- *maskptr += ALIGN(sizeof(*a));
--
-- for (i = 0; i < a->u.match_size - ALIGN(sizeof(*a)); i++)
-- if (((a->data[i] ^ b->data[i]) & (*maskptr)[i]) != 0)
-- return 1;
-- *maskptr += i;
-- return 0;
--}
--
--static inline int
--target_same(struct rule_head *a, struct rule_head *b,const unsigned char *mask)
--{
-- unsigned int i;
-- STRUCT_ENTRY_TARGET *ta, *tb;
--
-- if (a->type != b->type)
-- return 0;
--
-- ta = GET_TARGET(a->entry);
-- tb = GET_TARGET(b->entry);
--
-- switch (a->type) {
-- case IPTCC_R_FALLTHROUGH:
-- return 1;
-- case IPTCC_R_JUMP:
-- return a->jump == b->jump;
-- case IPTCC_R_STANDARD:
-- return ((STRUCT_STANDARD_TARGET *)ta)->verdict
-- == ((STRUCT_STANDARD_TARGET *)tb)->verdict;
-- case IPTCC_R_MODULE:
-- if (ta->u.target_size != tb->u.target_size)
-- return 0;
-- if (strcmp(ta->u.user.name, tb->u.user.name) != 0)
-- return 0;
--
-- for (i = 0; i < ta->u.target_size - sizeof(*ta); i++)
-- if (((ta->data[i] ^ tb->data[i]) & mask[i]) != 0)
-- return 0;
-- return 1;
-- default:
-- fprintf(stderr, "ERROR: bad type %i\n", a->type);
-- abort();
-- }
--}
--
--static unsigned char *
--is_same(const STRUCT_ENTRY *a,
-- const STRUCT_ENTRY *b,
-- unsigned char *matchmask);
--
--/* Delete the first rule in `chain' which matches `fw'. */
--int
--TC_DELETE_ENTRY(const IPT_CHAINLABEL chain,
-- const STRUCT_ENTRY *origfw,
-- unsigned char *matchmask,
-- TC_HANDLE_T *handle)
--{
-- struct chain_head *c;
-- struct rule_head *r, *i;
--
-- iptc_fn = TC_DELETE_ENTRY;
-- if (!(c = iptcc_find_label(chain, *handle))) {
-- errno = ENOENT;
-- return 0;
-- }
--
-- /* Create a rule_head from origfw. */
-- r = iptcc_alloc_rule(c, origfw->next_offset);
-- if (!r) {
-- errno = ENOMEM;
-- return 0;
-- }
--
-- memcpy(r->entry, origfw, origfw->next_offset);
-- r->counter_map.maptype = COUNTER_MAP_NOMAP;
-- if (!iptcc_map_target(*handle, r)) {
-- DEBUGP("unable to map target of rule for chain `%s'\n", chain);
-- free(r);
-- return 0;
-- }
--
-- list_for_each_entry(i, &c->rules, list) {
-- unsigned char *mask;
--
-- mask = is_same(r->entry, i->entry, matchmask);
-- if (!mask)
-- continue;
--
-- if (!target_same(r, i, mask))
-- continue;
--
-- /* If we are about to delete the rule that is the
-- * current iterator, move rule iterator back. next
-- * pointer will then point to real next node */
-- if (i == (*handle)->rule_iterator_cur) {
-- (*handle)->rule_iterator_cur =
-- list_entry((*handle)->rule_iterator_cur->list.prev,
-- struct rule_head, list);
-- }
--
-- c->num_rules--;
-- iptcc_delete_rule(i);
--
-- set_changed(*handle);
-- free(r);
-- return 1;
-- }
--
-- free(r);
-- errno = ENOENT;
-- return 0;
--}
--
--
--/* Delete the rule in position `rulenum' in `chain'. */
--int
--TC_DELETE_NUM_ENTRY(const IPT_CHAINLABEL chain,
-- unsigned int rulenum,
-- TC_HANDLE_T *handle)
--{
-- struct chain_head *c;
-- struct rule_head *r;
--
-- iptc_fn = TC_DELETE_NUM_ENTRY;
--
-- if (!(c = iptcc_find_label(chain, *handle))) {
-- errno = ENOENT;
-- return 0;
-- }
--
-- if (rulenum >= c->num_rules) {
-- errno = E2BIG;
-- return 0;
-- }
--
-- /* Take advantage of the double linked list if possible. */
-- if (rulenum + 1 <= c->num_rules/2) {
-- r = iptcc_get_rule_num(c, rulenum + 1);
-- } else {
-- r = iptcc_get_rule_num_reverse(c, c->num_rules - rulenum);
-- }
--
-- /* If we are about to delete the rule that is the current
-- * iterator, move rule iterator back. next pointer will then
-- * point to real next node */
-- if (r == (*handle)->rule_iterator_cur) {
-- (*handle)->rule_iterator_cur =
-- list_entry((*handle)->rule_iterator_cur->list.prev,
-- struct rule_head, list);
-- }
--
-- c->num_rules--;
-- iptcc_delete_rule(r);
--
-- set_changed(*handle);
--
-- return 1;
--}
--
--/* Check the packet `fw' on chain `chain'. Returns the verdict, or
-- NULL and sets errno. */
--const char *
--TC_CHECK_PACKET(const IPT_CHAINLABEL chain,
-- STRUCT_ENTRY *entry,
-- TC_HANDLE_T *handle)
--{
-- iptc_fn = TC_CHECK_PACKET;
-- errno = ENOSYS;
-- return NULL;
--}
--
--/* Flushes the entries in the given chain (ie. empties chain). */
--int
--TC_FLUSH_ENTRIES(const IPT_CHAINLABEL chain, TC_HANDLE_T *handle)
--{
-- struct chain_head *c;
-- struct rule_head *r, *tmp;
--
-- iptc_fn = TC_FLUSH_ENTRIES;
-- if (!(c = iptcc_find_label(chain, *handle))) {
-- errno = ENOENT;
-- return 0;
-- }
--
-- list_for_each_entry_safe(r, tmp, &c->rules, list) {
-- iptcc_delete_rule(r);
-- }
--
-- c->num_rules = 0;
--
-- set_changed(*handle);
--
-- return 1;
--}
--
--/* Zeroes the counters in a chain. */
--int
--TC_ZERO_ENTRIES(const IPT_CHAINLABEL chain, TC_HANDLE_T *handle)
--{
-- struct chain_head *c;
-- struct rule_head *r;
--
-- iptc_fn = TC_ZERO_ENTRIES;
-- if (!(c = iptcc_find_label(chain, *handle))) {
-- errno = ENOENT;
-- return 0;
-- }
--
-- list_for_each_entry(r, &c->rules, list) {
-- if (r->counter_map.maptype == COUNTER_MAP_NORMAL_MAP)
-- r->counter_map.maptype = COUNTER_MAP_ZEROED;
-- }
--
-- set_changed(*handle);
--
-- return 1;
--}
--
--STRUCT_COUNTERS *
--TC_READ_COUNTER(const IPT_CHAINLABEL chain,
-- unsigned int rulenum,
-- TC_HANDLE_T *handle)
--{
-- struct chain_head *c;
-- struct rule_head *r;
--
-- iptc_fn = TC_READ_COUNTER;
-- CHECK(*handle);
--
-- if (!(c = iptcc_find_label(chain, *handle))) {
-- errno = ENOENT;
-- return NULL;
-- }
--
-- if (!(r = iptcc_get_rule_num(c, rulenum))) {
-- errno = E2BIG;
-- return NULL;
-- }
--
-- return &r->entry[0].counters;
--}
--
--int
--TC_ZERO_COUNTER(const IPT_CHAINLABEL chain,
-- unsigned int rulenum,
-- TC_HANDLE_T *handle)
--{
-- struct chain_head *c;
-- struct rule_head *r;
--
-- iptc_fn = TC_ZERO_COUNTER;
-- CHECK(*handle);
--
-- if (!(c = iptcc_find_label(chain, *handle))) {
-- errno = ENOENT;
-- return 0;
-- }
--
-- if (!(r = iptcc_get_rule_num(c, rulenum))) {
-- errno = E2BIG;
-- return 0;
-- }
--
-- if (r->counter_map.maptype == COUNTER_MAP_NORMAL_MAP)
-- r->counter_map.maptype = COUNTER_MAP_ZEROED;
--
-- set_changed(*handle);
--
-- return 1;
--}
--
--int
--TC_SET_COUNTER(const IPT_CHAINLABEL chain,
-- unsigned int rulenum,
-- STRUCT_COUNTERS *counters,
-- TC_HANDLE_T *handle)
--{
-- struct chain_head *c;
-- struct rule_head *r;
-- STRUCT_ENTRY *e;
--
-- iptc_fn = TC_SET_COUNTER;
-- CHECK(*handle);
--
-- if (!(c = iptcc_find_label(chain, *handle))) {
-- errno = ENOENT;
-- return 0;
-- }
--
-- if (!(r = iptcc_get_rule_num(c, rulenum))) {
-- errno = E2BIG;
-- return 0;
-- }
--
-- e = r->entry;
-- r->counter_map.maptype = COUNTER_MAP_SET;
--
-- memcpy(&e->counters, counters, sizeof(STRUCT_COUNTERS));
--
-- set_changed(*handle);
--
-- return 1;
--}
--
--/* Creates a new chain. */
--/* To create a chain, create two rules: error node and unconditional
-- * return. */
--int
--TC_CREATE_CHAIN(const IPT_CHAINLABEL chain, TC_HANDLE_T *handle)
--{
-- static struct chain_head *c;
--
-- iptc_fn = TC_CREATE_CHAIN;
--
-- /* find_label doesn't cover built-in targets: DROP, ACCEPT,
-- QUEUE, RETURN. */
-- if (iptcc_find_label(chain, *handle)
-- || strcmp(chain, LABEL_DROP) == 0
-- || strcmp(chain, LABEL_ACCEPT) == 0
-- || strcmp(chain, LABEL_QUEUE) == 0
-- || strcmp(chain, LABEL_RETURN) == 0) {
-- DEBUGP("Chain `%s' already exists\n", chain);
-- errno = EEXIST;
-- return 0;
-- }
--
-- if (strlen(chain)+1 > sizeof(IPT_CHAINLABEL)) {
-- DEBUGP("Chain name `%s' too long\n", chain);
-- errno = EINVAL;
-- return 0;
-- }
--
-- c = iptcc_alloc_chain_head(chain, 0);
-- if (!c) {
-- DEBUGP("Cannot allocate memory for chain `%s'\n", chain);
-- errno = ENOMEM;
-- return 0;
--
-- }
--
-- DEBUGP("Creating chain `%s'\n", chain);
-- list_add_tail(&c->list, &(*handle)->chains);
--
-- set_changed(*handle);
--
-- return 1;
--}
--
--/* Get the number of references to this chain. */
--int
--TC_GET_REFERENCES(unsigned int *ref, const IPT_CHAINLABEL chain,
-- TC_HANDLE_T *handle)
--{
-- struct chain_head *c;
--
-- iptc_fn = TC_GET_REFERENCES;
-- if (!(c = iptcc_find_label(chain, *handle))) {
-- errno = ENOENT;
-- return 0;
-- }
--
-- *ref = c->references;
--
-- return 1;
--}
--
--/* Deletes a chain. */
--int
--TC_DELETE_CHAIN(const IPT_CHAINLABEL chain, TC_HANDLE_T *handle)
--{
-- unsigned int references;
-- struct chain_head *c;
--
-- iptc_fn = TC_DELETE_CHAIN;
--
-- if (!(c = iptcc_find_label(chain, *handle))) {
-- DEBUGP("cannot find chain `%s'\n", chain);
-- errno = ENOENT;
-- return 0;
-- }
--
-- if (TC_BUILTIN(chain, *handle)) {
-- DEBUGP("cannot remove builtin chain `%s'\n", chain);
-- errno = EINVAL;
-- return 0;
-- }
--
-- if (!TC_GET_REFERENCES(&references, chain, handle)) {
-- DEBUGP("cannot get references on chain `%s'\n", chain);
-- return 0;
-- }
--
-- if (references > 0) {
-- DEBUGP("chain `%s' still has references\n", chain);
-- errno = EMLINK;
-- return 0;
-- }
--
-- if (c->num_rules) {
-- DEBUGP("chain `%s' is not empty\n", chain);
-- errno = ENOTEMPTY;
-- return 0;
-- }
--
-- /* If we are about to delete the chain that is the current
-- * iterator, move chain iterator firward. */
-- if (c == (*handle)->chain_iterator_cur)
-- iptcc_chain_iterator_advance(*handle);
--
-- list_del(&c->list);
-- free(c);
--
-- DEBUGP("chain `%s' deleted\n", chain);
--
-- set_changed(*handle);
--
-- return 1;
--}
--
--/* Renames a chain. */
--int TC_RENAME_CHAIN(const IPT_CHAINLABEL oldname,
-- const IPT_CHAINLABEL newname,
-- TC_HANDLE_T *handle)
--{
-- struct chain_head *c;
-- iptc_fn = TC_RENAME_CHAIN;
--
-- /* find_label doesn't cover built-in targets: DROP, ACCEPT,
-- QUEUE, RETURN. */
-- if (iptcc_find_label(newname, *handle)
-- || strcmp(newname, LABEL_DROP) == 0
-- || strcmp(newname, LABEL_ACCEPT) == 0
-- || strcmp(newname, LABEL_QUEUE) == 0
-- || strcmp(newname, LABEL_RETURN) == 0) {
-- errno = EEXIST;
-- return 0;
-- }
--
-- if (!(c = iptcc_find_label(oldname, *handle))
-- || TC_BUILTIN(oldname, *handle)) {
-- errno = ENOENT;
-- return 0;
-- }
--
-- if (strlen(newname)+1 > sizeof(IPT_CHAINLABEL)) {
-- errno = EINVAL;
-- return 0;
-- }
--
-- strncpy(c->name, newname, sizeof(IPT_CHAINLABEL));
--
-- set_changed(*handle);
--
-- return 1;
--}
--
--/* Sets the policy on a built-in chain. */
--int
--TC_SET_POLICY(const IPT_CHAINLABEL chain,
-- const IPT_CHAINLABEL policy,
-- STRUCT_COUNTERS *counters,
-- TC_HANDLE_T *handle)
--{
-- struct chain_head *c;
--
-- iptc_fn = TC_SET_POLICY;
--
-- if (!(c = iptcc_find_label(chain, *handle))) {
-- DEBUGP("cannot find chain `%s'\n", chain);
-- errno = ENOENT;
-- return 0;
-- }
--
-- if (!iptcc_is_builtin(c)) {
-- DEBUGP("cannot set policy of userdefinedchain `%s'\n", chain);
-- errno = ENOENT;
-- return 0;
-- }
--
-- if (strcmp(policy, LABEL_ACCEPT) == 0)
-- c->verdict = -NF_ACCEPT - 1;
-- else if (strcmp(policy, LABEL_DROP) == 0)
-- c->verdict = -NF_DROP - 1;
-- else {
-- errno = EINVAL;
-- return 0;
-- }
--
-- if (counters) {
-- /* set byte and packet counters */
-- memcpy(&c->counters, counters, sizeof(STRUCT_COUNTERS));
-- c->counter_map.maptype = COUNTER_MAP_SET;
-- } else {
-- c->counter_map.maptype = COUNTER_MAP_NOMAP;
-- }
--
-- set_changed(*handle);
--
-- return 1;
--}
--
--/* Without this, on gcc 2.7.2.3, we get:
-- libiptc.c: In function `TC_COMMIT':
-- libiptc.c:833: fixed or forbidden register was spilled.
-- This may be due to a compiler bug or to impossible asm
-- statements or clauses.
--*/
--static void
--subtract_counters(STRUCT_COUNTERS *answer,
-- const STRUCT_COUNTERS *a,
-- const STRUCT_COUNTERS *b)
--{
-- answer->pcnt = a->pcnt - b->pcnt;
-- answer->bcnt = a->bcnt - b->bcnt;
--}
--
--
--static void counters_nomap(STRUCT_COUNTERS_INFO *newcounters,
-- unsigned int index)
--{
-- newcounters->counters[index] = ((STRUCT_COUNTERS) { 0, 0});
-- DEBUGP_C("NOMAP => zero\n");
--}
--
--static void counters_normal_map(STRUCT_COUNTERS_INFO *newcounters,
-- STRUCT_REPLACE *repl,
-- unsigned int index,
-- unsigned int mappos)
--{
-- /* Original read: X.
-- * Atomic read on replacement: X + Y.
-- * Currently in kernel: Z.
-- * Want in kernel: X + Y + Z.
-- * => Add in X + Y
-- * => Add in replacement read.
-- */
-- newcounters->counters[index] = repl->counters[mappos];
-- DEBUGP_C("NORMAL_MAP => mappos %u \n", mappos);
--}
--
--static void counters_map_zeroed(STRUCT_COUNTERS_INFO *newcounters,
-- STRUCT_REPLACE *repl,
-- unsigned int index,
-- unsigned int mappos,
-- STRUCT_COUNTERS *counters)
--{
-- /* Original read: X.
-- * Atomic read on replacement: X + Y.
-- * Currently in kernel: Z.
-- * Want in kernel: Y + Z.
-- * => Add in Y.
-- * => Add in (replacement read - original read).
-- */
-- subtract_counters(&newcounters->counters[index],
-- &repl->counters[mappos],
-- counters);
-- DEBUGP_C("ZEROED => mappos %u\n", mappos);
--}
--
--static void counters_map_set(STRUCT_COUNTERS_INFO *newcounters,
-- unsigned int index,
-- STRUCT_COUNTERS *counters)
--{
-- /* Want to set counter (iptables-restore) */
--
-- memcpy(&newcounters->counters[index], counters,
-- sizeof(STRUCT_COUNTERS));
--
-- DEBUGP_C("SET\n");
--}
--
--
--int
--TC_COMMIT(TC_HANDLE_T *handle)
--{
-- /* Replace, then map back the counters. */
-- STRUCT_REPLACE *repl;
-- STRUCT_COUNTERS_INFO *newcounters;
-- struct chain_head *c;
-- int ret;
-- size_t counterlen;
-- int new_number;
-- unsigned int new_size;
--
-- iptc_fn = TC_COMMIT;
-- CHECK(*handle);
--
-- /* Don't commit if nothing changed. */
-- if (!(*handle)->changed)
-- goto finished;
--
-- new_number = iptcc_compile_table_prep(*handle, &new_size);
-- if (new_number < 0) {
-- errno = ENOMEM;
-- return 0;
-- }
--
-- repl = malloc(sizeof(*repl) + new_size);
-- if (!repl) {
-- errno = ENOMEM;
-- return 0;
-- }
-- memset(repl, 0, sizeof(*repl) + new_size);
--
--#if 0
-- TC_DUMP_ENTRIES(*handle);
--#endif
--
-- counterlen = sizeof(STRUCT_COUNTERS_INFO)
-- + sizeof(STRUCT_COUNTERS) * new_number;
--
-- /* These are the old counters we will get from kernel */
-- repl->counters = malloc(sizeof(STRUCT_COUNTERS)
-- * (*handle)->info.num_entries);
-- if (!repl->counters) {
-- free(repl);
-- errno = ENOMEM;
-- return 0;
-- }
-- /* These are the counters we're going to put back, later. */
-- newcounters = malloc(counterlen);
-- if (!newcounters) {
-- free(repl->counters);
-- free(repl);
-- errno = ENOMEM;
-- return 0;
-- }
-- memset(newcounters, 0, counterlen);
--
-- strcpy(repl->name, (*handle)->info.name);
-- repl->num_entries = new_number;
-- repl->size = new_size;
--
-- repl->num_counters = (*handle)->info.num_entries;
-- repl->valid_hooks = (*handle)->info.valid_hooks;
--
-- DEBUGP("num_entries=%u, size=%u, num_counters=%u\n",
-- repl->num_entries, repl->size, repl->num_counters);
--
-- ret = iptcc_compile_table(*handle, repl);
-- if (ret < 0) {
-- errno = ret;
-- free(repl->counters);
-- free(repl);
-- return 0;
-- }
--
--
--#ifdef IPTC_DEBUG2
-- {
-- int fd = open("/tmp/libiptc-so_set_replace.blob",
-- O_CREAT|O_WRONLY);
-- if (fd >= 0) {
-- write(fd, repl, sizeof(*repl) + repl->size);
-- close(fd);
-- }
-- }
--#endif
--
-- if (setsockopt(sockfd, TC_IPPROTO, SO_SET_REPLACE, repl,
-- sizeof(*repl) + repl->size) < 0) {
-- free(repl->counters);
-- free(repl);
-- free(newcounters);
-- return 0;
-- }
--
-- /* Put counters back. */
-- strcpy(newcounters->name, (*handle)->info.name);
-- newcounters->num_counters = new_number;
--
-- list_for_each_entry(c, &(*handle)->chains, list) {
-- struct rule_head *r;
--
-- /* Builtin chains have their own counters */
-- if (iptcc_is_builtin(c)) {
-- DEBUGP("counter for chain-index %u: ", c->foot_index);
-- switch(c->counter_map.maptype) {
-- case COUNTER_MAP_NOMAP:
-- counters_nomap(newcounters, c->foot_index);
-- break;
-- case COUNTER_MAP_NORMAL_MAP:
-- counters_normal_map(newcounters, repl,
-- c->foot_index,
-- c->counter_map.mappos);
-- break;
-- case COUNTER_MAP_ZEROED:
-- counters_map_zeroed(newcounters, repl,
-- c->foot_index,
-- c->counter_map.mappos,
-- &c->counters);
-- break;
-- case COUNTER_MAP_SET:
-- counters_map_set(newcounters, c->foot_index,
-- &c->counters);
-- break;
-- }
-- }
--
-- list_for_each_entry(r, &c->rules, list) {
-- DEBUGP("counter for index %u: ", r->index);
-- switch (r->counter_map.maptype) {
-- case COUNTER_MAP_NOMAP:
-- counters_nomap(newcounters, r->index);
-- break;
--
-- case COUNTER_MAP_NORMAL_MAP:
-- counters_normal_map(newcounters, repl,
-- r->index,
-- r->counter_map.mappos);
-- break;
--
-- case COUNTER_MAP_ZEROED:
-- counters_map_zeroed(newcounters, repl,
-- r->index,
-- r->counter_map.mappos,
-- &r->entry->counters);
-- break;
--
-- case COUNTER_MAP_SET:
-- counters_map_set(newcounters, r->index,
-- &r->entry->counters);
-- break;
-- }
-- }
-- }
--
--
--#ifdef KERNEL_64_USERSPACE_32
-- {
-- /* Kernel will think that pointer should be 64-bits, and get
-- padding. So we accomodate here (assumption: alignment of
-- `counters' is on 64-bit boundary). */
-- u_int64_t *kernptr = (u_int64_t *)&newcounters->counters;
-- if ((unsigned long)&newcounters->counters % 8 != 0) {
-- fprintf(stderr,
-- "counters alignment incorrect! Mail rusty!\n");
-- abort();
-- }
-- *kernptr = newcounters->counters;
-- }
--#endif /* KERNEL_64_USERSPACE_32 */
--
--#ifdef IPTC_DEBUG2
-- {
-- int fd = open("/tmp/libiptc-so_set_add_counters.blob",
-- O_CREAT|O_WRONLY);
-- if (fd >= 0) {
-- write(fd, newcounters, counterlen);
-- close(fd);
-- }
-- }
--#endif
--
-- if (setsockopt(sockfd, TC_IPPROTO, SO_SET_ADD_COUNTERS,
-- newcounters, counterlen) < 0) {
-- free(repl->counters);
-- free(repl);
-- free(newcounters);
-- return 0;
-- }
--
-- free(repl->counters);
-- free(repl);
-- free(newcounters);
--
-- finished:
-- TC_FREE(handle);
-- return 1;
--}
--
--/* Get raw socket. */
--int
--TC_GET_RAW_SOCKET()
--{
-- return sockfd;
--}
--
--/* Translates errno numbers into more human-readable form than strerror. */
--const char *
--TC_STRERROR(int err)
--{
-- unsigned int i;
-- struct table_struct {
-- void *fn;
-- int err;
-- const char *message;
-- } table [] =
-- { { TC_INIT, EPERM, "Permission denied (you must be root)" },
-- { TC_INIT, EINVAL, "Module is wrong version" },
-- { TC_INIT, ENOENT,
-- "Table does not exist (do you need to insmod?)" },
-- { TC_DELETE_CHAIN, ENOTEMPTY, "Chain is not empty" },
-- { TC_DELETE_CHAIN, EINVAL, "Can't delete built-in chain" },
-- { TC_DELETE_CHAIN, EMLINK,
-- "Can't delete chain with references left" },
-- { TC_CREATE_CHAIN, EEXIST, "Chain already exists" },
-- { TC_INSERT_ENTRY, E2BIG, "Index of insertion too big" },
-- { TC_REPLACE_ENTRY, E2BIG, "Index of replacement too big" },
-- { TC_DELETE_NUM_ENTRY, E2BIG, "Index of deletion too big" },
-- { TC_READ_COUNTER, E2BIG, "Index of counter too big" },
-- { TC_ZERO_COUNTER, E2BIG, "Index of counter too big" },
-- { TC_INSERT_ENTRY, ELOOP, "Loop found in table" },
-- { TC_INSERT_ENTRY, EINVAL, "Target problem" },
-- /* EINVAL for CHECK probably means bad interface. */
-- { TC_CHECK_PACKET, EINVAL,
-- "Bad arguments (does that interface exist?)" },
-- { TC_CHECK_PACKET, ENOSYS,
-- "Checking will most likely never get implemented" },
-- /* ENOENT for DELETE probably means no matching rule */
-- { TC_DELETE_ENTRY, ENOENT,
-- "Bad rule (does a matching rule exist in that chain?)" },
-- { TC_SET_POLICY, ENOENT,
-- "Bad built-in chain name" },
-- { TC_SET_POLICY, EINVAL,
-- "Bad policy name" },
--
-- { NULL, 0, "Incompatible with this kernel" },
-- { NULL, ENOPROTOOPT, "iptables who? (do you need to insmod?)" },
-- { NULL, ENOSYS, "Will be implemented real soon. I promise ;)" },
-- { NULL, ENOMEM, "Memory allocation problem" },
-- { NULL, ENOENT, "No chain/target/match by that name" },
-- };
--
-- for (i = 0; i < sizeof(table)/sizeof(struct table_struct); i++) {
-- if ((!table[i].fn || table[i].fn == iptc_fn)
-- && table[i].err == err)
-- return table[i].message;
-- }
--
-- return strerror(err);
--}
---
-1.8.5.1
-
diff --git a/net-firewall/iptables-snmp/files/0005-MINOR-Ignore-generated-files.patch b/net-firewall/iptables-snmp/files/0005-MINOR-Ignore-generated-files.patch
deleted file mode 100644
index 20b99cdc..00000000
--- a/net-firewall/iptables-snmp/files/0005-MINOR-Ignore-generated-files.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From c085e41a3b9fc3ef257fba4ec99927d38aece068 Mon Sep 17 00:00:00 2001
-From: Bertrand Jacquin <bertrand@jacquin.bzh>
-Date: Thu, 12 Dec 2013 23:07:51 +0100
-Subject: [PATCH 5/9] MINOR: Ignore generated files
-
-Signed-off-by: Bertrand Jacquin <bertrand@jacquin.bzh>
----
- .gitignore | 9 +++++++++
- 1 file changed, 9 insertions(+)
- create mode 100644 .gitignore
-
-diff --git .gitignore .gitignore
-new file mode 100644
-index 0000000..ae11007
---- /dev/null
-+++ .gitignore
-@@ -0,0 +1,9 @@
-+config.h
-+config.log
-+config.status
-+configure
-+
-+Makefile
-+
-+iptables-snmp.o
-+iptables-snmp.so
---
-1.8.5.1
-
diff --git a/net-firewall/iptables-snmp/files/0006-MINOR-Strip-spaces.patch b/net-firewall/iptables-snmp/files/0006-MINOR-Strip-spaces.patch
deleted file mode 100644
index 15772bad..00000000
--- a/net-firewall/iptables-snmp/files/0006-MINOR-Strip-spaces.patch
+++ /dev/null
@@ -1,906 +0,0 @@
-From 768fec83dc722072215aaf55a680686a3b6ef387 Mon Sep 17 00:00:00 2001
-From: Bertrand Jacquin <bertrand@jacquin.bzh>
-Date: Thu, 12 Dec 2013 23:09:34 +0100
-Subject: [PATCH 6/9] MINOR: Strip spaces
-
-Signed-off-by: Bertrand Jacquin <bertrand@jacquin.bzh>
----
- COPYING | 2 -
- Makefile.in | 20 ++----
- README | 9 +--
- aclocal.m4 | 1 -
- iptables-snmp.c | 195 ++++++++++++++++++++++--------------------------------
- iptables-snmp.h | 14 ++--
- mibs/IPTABLES.MIB | 5 +-
- mibs/STAMFEST.MIB | 3 +-
- mkinstalldirs | 0
- 9 files changed, 97 insertions(+), 152 deletions(-)
- mode change 100755 => 100644 mkinstalldirs
-
-diff --git COPYING COPYING
-index 589e208..1f00f14 100644
---- COPYING
-+++ COPYING
-@@ -1,7 +1,6 @@
- NOTE: Some additional restrictions are placed on some files. See the
- comments in the MIB files distributed.
-
--
- ------------------------------------------------------------------
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-@@ -312,7 +311,6 @@ the "copyright" line and a pointer to where the full notice is found.
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
--
- Also add information on how to contact you by electronic and paper mail.
-
- If the program is interactive, make it output a short notice like this
-diff --git Makefile.in Makefile.in
-index 8b2e0a3..7744b82 100644
---- Makefile.in
-+++ Makefile.in
-@@ -1,18 +1,15 @@
--#
--# $Id$
--#
- # This file is part of iptables-snmp - using SNMP to read data from linux
- # iptables
--#
--# iptables-snmp is copyrighted software:
-+#
-+# iptables-snmp is copyrighted software:
- # (c) 2003 by Peter Stamfest <peter@stamfest.at>
- # munged by Nigel Roberts <nigel@nobiscuit.com>
--#
-+#
- # iptables-snmp is free software; you can redistribute it and/or modify
- # it under the terms of the GNU General Public License as published by
- # the Free Software Foundation; either version 2 of the License, or
- # (at your option) any later version.
--#
-+#
- # iptables-snmp is distributed in the hope that it will be useful,
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-@@ -24,8 +21,8 @@
- #
- # Note: See the file COPYING for the GNU General Public License and some
- # extensions to it designed to protect the OID space of Peter Stamfest from
--# becoming polluted.
--#
-+# becoming polluted.
-+
- SHELL = /bin/sh
- VPATH = @srcdir@
-
-@@ -59,7 +56,7 @@ L_LDFLAGS = -lip4tc $(L_SNMP_FLAGS)
- NETFILTER = \"$(IPTABLES)\"
-
- LIBIPTC_SRCS = libiptc/libip4tc.c \
-- libiptc/libip6tc.c
-+ libiptc/libip6tc.c
- LIBIPTC_OBJS = $(LIBIPTC_SRCS:.c=.o)
-
- DFLAGS = -fPIC
-@@ -121,6 +118,3 @@ Makefile: Makefile.in config.status
- ./config.status
- config.status: configure
- ./config.status --recheck
--
--
--
-diff --git README README
-index 11e6802..815ce54 100644
---- README
-+++ README
-@@ -46,9 +46,9 @@ Make the software:
-
- $ make
-
--Try it:
-+Try it:
-
--You will have to add a line like
-+You will have to add a line like
-
- dlmod iptables /path/to/iptables-snmp.so
-
-@@ -77,8 +77,3 @@ IPTABLES-MIB::chainIndex.1.0 = INTEGER: 0
- IPTABLES-MIB::chainIndex.1.1 = INTEGER: 1
- IPTABLES-MIB::chainIndex.1.2 = INTEGER: 2
- [truncated]
--
--
--
--
--
-diff --git aclocal.m4 aclocal.m4
-index 334fb95..9161320 100644
---- aclocal.m4
-+++ aclocal.m4
-@@ -830,4 +830,3 @@ fi
- test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
- AC_LIB_PROG_LD_GNU
- ])
--
-diff --git iptables-snmp.c iptables-snmp.c
-index f1dd72c..34f3367 100644
---- iptables-snmp.c
-+++ iptables-snmp.c
-@@ -1,18 +1,18 @@
--/*
-+/*
- * $Id$
-- *
-+ *
- * This file is part of iptables-snmp - using SNMP to read data from linux
- * iptables
-- *
-- * iptables-snmp is copyrighted software:
-+ *
-+ * iptables-snmp is copyrighted software:
- * (c) 2003 by Peter Stamfest <peter@stamfest.at>
- * (c) 2005 by Nigel Roberts <nigel@nobiscuit.com>
-- *
-+ *
- * iptables-snmp is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
-- *
-+ *
- * iptables-snmp is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-@@ -24,7 +24,7 @@
- *
- * Note: See the file COPYING for the GNU General Public License and some
- * extensions to it designed to protect the OID space of Peter Stamfest from
-- * becoming polluted.
-+ * becoming polluted.
- */
-
- #include <errno.h>
-@@ -73,7 +73,6 @@ typedef struct _iptables_data {
- static iptables_data ipt = { 0, NULL };
- /* static iptables_data ipt = { 0, xx, tt }; */
-
--
- static void free_data(iptables_data *data) {
- if (!data) return;
- if (data->tables) {
-@@ -81,7 +80,7 @@ static void free_data(iptables_data *data) {
-
- for (i = 0 ; data->tables[i] ; i++) {
- free(data->tables[i]);
--
-+
- if (data->t[i] != NULL) {
- iptc_free(data->t[i]);
- }
-@@ -94,7 +93,6 @@ static void free_data(iptables_data *data) {
- data->loaded = 0; /* just to make sure */
- }
-
--
- static iptables_data *get_data() {
- time_t now = time(NULL);
- FILE *fp;
-@@ -114,21 +112,20 @@ static iptables_data *get_data() {
- free_data(&ipt);
-
- fp = fopen(PROCFILE, "r");
--
-+
- if (fp == NULL) {
- /** error - bail out */
- snmp_log(LOG_ERR,
-- "Cannot open iptables table file %s: %s",
-+ "Cannot open iptables table file %s: %s",
- PROCFILE, strerror(errno));
- return NULL;
- }
-
--
- while (fgets(line, sizeof(line), fp)) {
- int n = strlen(line);
- if (n == 0) continue;
- if (line[n-1] == '\n') line[n-1] = 0;
--
-+
- if (num >= N - 2) {
- N += 10;
- ipt.tables = realloc(ipt.tables, N * sizeof(char*));
-@@ -161,15 +158,13 @@ static iptables_data *get_data() {
- return NULL;
- }
- }
--
-+
- done:
- fclose(fp);
-
- return &ipt;
- }
-
--
--
- /* static void get_tables() { */
-
- /* } */
-@@ -179,8 +174,6 @@ struct tables_iter {
- iptables_data *ctx;
- };
-
--
--
- static netsnmp_variable_list *
- store_names(void **my_loop_context, void **my_data_context,
- netsnmp_variable_list * put_index_data,
-@@ -191,23 +184,21 @@ store_names(void **my_loop_context, void **my_data_context,
- /* char **tables = (char**) *my_data_context; */
- netsnmp_variable_list *vars;
-
--
-- if (data == NULL ||
-- data->tables == NULL ||
-+ if (data == NULL ||
-+ data->tables == NULL ||
- data->tables[ti->i] == NULL) return NULL;
-
- /* printf("store %d\n", ti->i); */
--
-+
- vars = put_index_data;
- snmp_set_var_typed_value(vars, ASN_INTEGER,
- (void*)&(ti->i), sizeof(ti->i));
-
- *my_data_context = data;
--
-+
- return vars;
- }
-
--
- /** returns the first data point within the table data.
-
- Set the my_loop_context variable to the first data point structure
-@@ -259,7 +250,7 @@ get_next_names(void **my_loop_context,
- void **my_data_context,
- netsnmp_variable_list *put_index_data,
- netsnmp_iterator_info *iinfo)
--{
-+{
- struct tables_iter *ti = *my_loop_context;
-
- if (!my_loop_context || !*my_loop_context)
-@@ -270,15 +261,13 @@ get_next_names(void **my_loop_context,
- put_index_data, iinfo);
- }
-
--
--static void free_loop_context_at_end(void *my_loop_context,
-+static void free_loop_context_at_end(void *my_loop_context,
- netsnmp_iterator_info *iinfo)
- {
- if (my_loop_context) free(my_loop_context);
- /* printf("free_loop_context_at_end\n"); */
- }
-
--
- static int
- iptables_names_handler(netsnmp_mib_handler *handler,
- netsnmp_handler_registration *reginfo,
-@@ -290,7 +279,6 @@ iptables_names_handler(netsnmp_mib_handler *handler,
- int index = 0;
- iptables_data *ctx;
-
--
- for (request = requests; request; request = request->next) {
- netsnmp_variable_list *var = request->requestvb;
- table_info = netsnmp_extract_table_info(request);
-@@ -300,7 +288,7 @@ iptables_names_handler(netsnmp_mib_handler *handler,
-
- switch (reqinfo->mode) {
- case MODE_GET:
-- ctx = (iptables_data *) netsnmp_extract_iterator_context(request);
-+ ctx = (iptables_data *) netsnmp_extract_iterator_context(request);
- index = var->name[var->name_length - 1];
-
- switch (table_info->colnum) {
-@@ -311,7 +299,7 @@ iptables_names_handler(netsnmp_mib_handler *handler,
- }
- case 2: {
- snmp_set_var_typed_value(var, ASN_OCTET_STR,
-- (unsigned char *)ctx->tables[index],
-+ (unsigned char *)ctx->tables[index],
- strlen(ctx->tables[index]));
- break;
- }
-@@ -326,7 +314,7 @@ iptables_names_handler(netsnmp_mib_handler *handler,
- default:
- /*
- * We should never get here, getnext already have been
-- * handled by the table_iterator and we're read_only
-+ * handled by the table_iterator and we're read_only
- */
- snmp_log(LOG_ERR,
- "table accessed as mode=%d. We're improperly registered!",
-@@ -340,12 +328,6 @@ iptables_names_handler(netsnmp_mib_handler *handler,
-
- /* chains table */
-
--
--
--
--
--
--
- typedef struct _chains_iter {
- int table;
- int chain;
-@@ -364,7 +346,7 @@ store_chains(void **my_loop_context,
- netsnmp_variable_list *put_index_data,
- netsnmp_iterator_info *iinfo,
- int incr)
--{
-+{
- chains_iter *c = (chains_iter *) *my_loop_context;
- netsnmp_variable_list *var = put_index_data;
-
-@@ -378,7 +360,7 @@ store_chains(void **my_loop_context,
- /* next table */
- c->table++;
- if (c->ctx->tables[c->table] == NULL) return NULL;
--
-+
- c->chainname = iptc_first_chain(c->ctx->t[c->table]);
- c->chain = 0;
- } else {
-@@ -397,7 +379,6 @@ store_chains(void **my_loop_context,
- snmp_set_var_typed_value(var, ASN_INTEGER,
- (void*)&(c->chain), sizeof(c->table));
-
--
- return put_index_data;
- }
-
-@@ -449,18 +430,18 @@ chains_get_next_names(void **my_loop_context,
- void **my_data_context,
- netsnmp_variable_list *put_index_data,
- netsnmp_iterator_info *iinfo)
--{
-+{
- return store_chains(my_loop_context, my_data_context,
- put_index_data, iinfo, 1);
- }
-
--static void chains_free_loop_context_at_end(void *my_loop_context,
-+static void chains_free_loop_context_at_end(void *my_loop_context,
- netsnmp_iterator_info *iinfo)
- {
- if (my_loop_context) free(my_loop_context);
- }
-
--static void chains_free_data_context(void *my_data_context,
-+static void chains_free_data_context(void *my_data_context,
- netsnmp_iterator_info *iinfo)
- {
- if (my_data_context) free(my_data_context);
-@@ -491,18 +472,17 @@ iptables_chains_handler(netsnmp_mib_handler *handler,
-
- data = (chains_data *) netsnmp_extract_iterator_context(request);
-
-- if (data == NULL)
-+ if (data == NULL)
- continue;
-
- ctx = data->ctx;
-
- chain = var->name[var->name_length - 1];
- table = var->name[var->name_length - 2];
--
-+
- /* sprintf(buf, "%d_%d_%d", table, chain, rule); */
- /* snmp_set_var_typed_value(var, ASN_OCTET_STR, buf, strlen(buf)); */
-
--
- switch (reqinfo->mode) {
- case MODE_GET:
- switch (table_info->colnum) {
-@@ -519,10 +499,10 @@ iptables_chains_handler(netsnmp_mib_handler *handler,
- }
- */
- case C_CHAIN_NAME:
-- case C_CHAIN_POLICY:
-- case C_CHAIN_OCTETS:
-+ case C_CHAIN_POLICY:
-+ case C_CHAIN_OCTETS:
- case C_CHAIN_PACKETS: { /* bad style follows ... */
--
-+
- const char *cn;
- int i;
- for (cn = iptc_first_chain(ctx->t[table]), i=0 ; cn ;
-@@ -530,16 +510,16 @@ iptables_chains_handler(netsnmp_mib_handler *handler,
- if (i == chain) {
- if (table_info->colnum == C_CHAIN_NAME) {
- snmp_set_var_typed_value(var, ASN_OCTET_STR,
-- (unsigned char *) cn,
-+ (unsigned char *) cn,
- strlen(cn));
- } else {
- struct counter64 c64;
- struct ipt_counters cnt;
- unsigned int isbuiltin = 1;
--
-- char *pol =
-+
-+ char *pol =
- (char *)iptc_get_policy(cn, &cnt, ctx->t[table]);
--
-+
- if (!pol) {
- isbuiltin = 0;
- }
-@@ -550,7 +530,7 @@ iptables_chains_handler(netsnmp_mib_handler *handler,
- pol = "none";
- }
- snmp_set_var_typed_value(var, ASN_OCTET_STR,
-- (unsigned char *) pol,
-+ (unsigned char *) pol,
- strlen(pol));
- break;
- case C_CHAIN_OCTETS:
-@@ -559,9 +539,9 @@ iptables_chains_handler(netsnmp_mib_handler *handler,
- }
- c64.low = 0xffffffff & cnt.bcnt;
- c64.high = 0xffffffff & (cnt.bcnt >> 32);
-- snmp_set_var_typed_value(var, ASN_COUNTER64,
-- (void*) &(c64),
-- sizeof(c64));
-+ snmp_set_var_typed_value(var, ASN_COUNTER64,
-+ (void*) &(c64),
-+ sizeof(c64));
- break;
- case C_CHAIN_PACKETS:
- if (!isbuiltin) {
-@@ -580,10 +560,10 @@ iptables_chains_handler(netsnmp_mib_handler *handler,
- }
- break;
- }
-- case C_TABLE_NAME:
-+ case C_TABLE_NAME:
- snmp_set_var_typed_value(var, ASN_OCTET_STR,
-- (unsigned char *) ctx->tables[table],
-- strlen(ctx->tables[table]));
-+ (unsigned char *) ctx->tables[table],
-+ strlen(ctx->tables[table]));
- break;
- default:
- /* We shouldn't get here */
-@@ -596,7 +576,7 @@ iptables_chains_handler(netsnmp_mib_handler *handler,
- default:
- /*
- * We should never get here, getnext already have been
-- * handled by the table_iterator and we're read_only
-+ * handled by the table_iterator and we're read_only
- */
- snmp_log(LOG_ERR,
- "table accessed as mode=%d. We're improperly registered!",
-@@ -634,7 +614,7 @@ store_rules(void **my_loop_context,
- netsnmp_variable_list *put_index_data,
- netsnmp_iterator_info *iinfo,
- int incr)
--{
-+{
- rules_iter *c = (rules_iter *) *my_loop_context;
- netsnmp_variable_list *var = put_index_data;
-
-@@ -735,7 +715,7 @@ rules_get_next_names(void **my_loop_context,
- void **my_data_context,
- netsnmp_variable_list *put_index_data,
- netsnmp_iterator_info *iinfo)
--{
-+{
- /* rules_iter *c = (rules_iter *) *my_loop_context; */
-
- /* c->chain++; */
-@@ -749,20 +729,19 @@ rules_get_next_names(void **my_loop_context,
- put_index_data, iinfo, 1);
- }
-
--static void rules_free_loop_context_at_end(void *my_loop_context,
-+static void rules_free_loop_context_at_end(void *my_loop_context,
- netsnmp_iterator_info *iinfo)
- {
- if (my_loop_context) free(my_loop_context);
- }
-
--static void rules_free_data_context(void *my_data_context,
-+static void rules_free_data_context(void *my_data_context,
- netsnmp_iterator_info *iinfo)
- {
- if (my_data_context) free(my_data_context);
- /* printf("free data_context %08lx\n", (long) my_data_context); */
- }
-
--
- static int short_ip(const char *prefix,
- u_int32_t ip, u_int32_t mask,
- int inv,
-@@ -771,7 +750,6 @@ static int short_ip(const char *prefix,
- int n = sz;
- int i;
-
--
- if (!ip && !mask) {
- return 0;
- }
-@@ -780,7 +758,7 @@ static int short_ip(const char *prefix,
- n -= i;
- if (n <= 0) return sz;
- buf += i;
--
-+
- inet_ntop(AF_INET, &ip, buf, n);
- i = strlen(buf);
- n -= i;
-@@ -793,7 +771,7 @@ static int short_ip(const char *prefix,
- mask = ~mask;
- while (mask & 1) {
- b--;
-- mask /= 2;
-+ mask /= 2;
- }
-
- i = snprintf(buf, n, "/%d", b);
-@@ -801,7 +779,7 @@ static int short_ip(const char *prefix,
- if (n <= 0) return sz;
- buf += i;
- }
--
-+
- return sz - n;
- }
-
-@@ -827,21 +805,20 @@ iptables_rules_handler(netsnmp_mib_handler *handler,
-
- if (request->processed != 0)
- continue;
--
-+
- data = (rules_data *) netsnmp_extract_iterator_context(request);
--
-+
- if (data == NULL || data->ctx == NULL) continue;
--
-+
- ctx = data->ctx;
-
- rule = var->name[var->name_length - 1];
- chain = var->name[var->name_length - 2];
- table = var->name[var->name_length - 3];
--
-+
- /* sprintf(buf, "%d_%d_%d\n", table, chain, rule); */
- /* snmp_set_var_typed_value(var, ASN_OCTET_STR, buf, strlen(buf)); */
-
--
- switch (reqinfo->mode) {
- case MODE_GET:
- switch (table_info->colnum) {
-@@ -869,7 +846,7 @@ iptables_rules_handler(netsnmp_mib_handler *handler,
- cn = iptc_next_chain(ctx->t[table]), i++) {
- if (i == chain) {
- snmp_set_var_typed_value(var, ASN_OCTET_STR,
-- (unsigned char *) cn,
-+ (unsigned char *) cn,
- strlen(cn));
- break;
- }
-@@ -878,11 +855,11 @@ iptables_rules_handler(netsnmp_mib_handler *handler,
- }
- case R_TABLE_NAME_INDEX: {
- snmp_set_var_typed_value(var, ASN_OCTET_STR,
-- (unsigned char *) ctx->tables[table],
-+ (unsigned char *) ctx->tables[table],
- strlen(ctx->tables[table]));
- break;
- }
-- case R_OCTETS_INDEX:
-+ case R_OCTETS_INDEX:
- case R_PACKETS_INDEX: {
- const char *cn;
- int i;
-@@ -891,18 +868,17 @@ iptables_rules_handler(netsnmp_mib_handler *handler,
- cn = iptc_next_chain(ctx->t[table]), i++) {
- /* printf("%d %d\n", i, chain); */
- if (i == chain) {
-- struct ipt_counters *cnt =
-+ struct ipt_counters *cnt =
- iptc_read_counter(cn, rule+1, ctx->t[table]);
- struct counter64 c64;
-
--
- /* snmp_set_var_typed_value(var, ASN_INTEGER64, */
- /* (void*) &(cnt->bcnt), */
- /* sizeof(cnt->bcnt)); */
-
- /* cnt->bcnt is a u_int64_t variable, but
- ASN_COUNTER64 awaits a struct counter64: */
--
-+
- if (table_info->colnum == R_OCTETS_INDEX) {
- c64.low = 0xffffffff & cnt->bcnt;
- c64.high = 0xffffffff & (cnt->bcnt >> 32);
-@@ -929,12 +905,11 @@ iptables_rules_handler(netsnmp_mib_handler *handler,
-
- if (data->e->ip.proto) {
- i = snprintf(buf + sizeof(buf) - n, n,
-- ";p=%s%d",
-+ ";p=%s%d",
- data->e->ip.invflags & IPT_INV_PROTO ? "!":"",
- data->e->ip.proto);
- n -= i;
-- }
--
-+ }
-
- i = short_ip("s", e->ip.src.s_addr, e->ip.smsk.s_addr,
- e->ip.invflags & IPT_INV_SRCIP,
-@@ -946,40 +921,37 @@ iptables_rules_handler(netsnmp_mib_handler *handler,
- buf + sizeof(buf) - n, n);
- n -= i;
-
-- /* Print target name */
-+ /* Print target name */
- target_name = iptc_get_target(e, ctx->t[table]);
-
- if (target_name && *target_name) {
- i = snprintf(buf + sizeof(buf) - n, n,
-- ";j=%s", target_name);
-+ ";j=%s", target_name);
- n -= i;
- }
-
--
--
--
- snmp_set_var_typed_value(var, ASN_OCTET_STR,
- (unsigned char *) buf, strlen(buf));
- break;
- }
- case R_SRC_IPADDR_INDEX:
- snmp_set_var_typed_value(var, ASN_IPADDRESS,
-- (void*) &(data->e->ip.src.s_addr),
-+ (void*) &(data->e->ip.src.s_addr),
- sizeof(data->e->ip.src.s_addr));
- break;
- case R_SRC_MASK_INDEX:
- snmp_set_var_typed_value(var, ASN_IPADDRESS,
-- (void*) &(data->e->ip.smsk.s_addr),
-+ (void*) &(data->e->ip.smsk.s_addr),
- sizeof(data->e->ip.smsk.s_addr));
- break;
- case R_DST_IPADDR_INDEX:
- snmp_set_var_typed_value(var, ASN_IPADDRESS,
-- (void*) &(data->e->ip.dst.s_addr),
-+ (void*) &(data->e->ip.dst.s_addr),
- sizeof(data->e->ip.dst.s_addr));
- break;
- case R_DST_MASK_INDEX:
- snmp_set_var_typed_value(var, ASN_IPADDRESS,
-- (void*) &(data->e->ip.dmsk.s_addr),
-+ (void*) &(data->e->ip.dmsk.s_addr),
- sizeof(data->e->ip.dmsk.s_addr));
- break;
- default:
-@@ -993,7 +965,7 @@ iptables_rules_handler(netsnmp_mib_handler *handler,
- default:
- /*
- * We should never get here, getnext already have been
-- * handled by the table_iterator and we're read_only
-+ * handled by the table_iterator and we're read_only
- */
- snmp_log(LOG_ERR,
- "table accessed as mode=%d. We're improperly registered!",
-@@ -1008,14 +980,6 @@ iptables_rules_handler(netsnmp_mib_handler *handler,
- return SNMP_ERR_NOERROR;
- }
-
--
--
--
--
--
--
--
--
- static int
- info_handler(netsnmp_mib_handler *handler,
- netsnmp_handler_registration *reginfo,
-@@ -1036,12 +1000,12 @@ info_handler(netsnmp_mib_handler *handler,
- switch (index) {
- case AGENT_VERSION_INDEX:
- snmp_set_var_typed_value(var, ASN_OCTET_STR,
-- (unsigned char *) AGENT_VERSION,
-+ (unsigned char *) AGENT_VERSION,
- strlen(AGENT_VERSION));
- break;
- case IPTABLES_VERSION_INDEX:
- snmp_set_var_typed_value(var, ASN_OCTET_STR,
-- (unsigned char *) IPTABLES_VERSION,
-+ (unsigned char *) IPTABLES_VERSION,
- strlen(IPTABLES_VERSION));
- break;
- }
-@@ -1049,7 +1013,7 @@ info_handler(netsnmp_mib_handler *handler,
- default:
- /*
- * We should never get here, getnext already have been
-- * handled by the table_iterator and we're read_only
-+ * handled by the table_iterator and we're read_only
- */
- snmp_log(LOG_ERR,
- "variable accessed as mode=%d. We're improperly registered!",
-@@ -1065,13 +1029,13 @@ void
- init_iptables(void)
- {
- /*
-- * here we initialize all the tables we're planning on supporting
-+ * here we initialize all the tables we're planning on supporting
- */
- netsnmp_handler_registration *my_handler;
- netsnmp_table_registration_info *table_info;
- netsnmp_iterator_info *iinfo;
-
-- my_handler =
-+ my_handler =
- netsnmp_create_handler_registration("agent_version",
- info_handler,
- agent_version_oid,
-@@ -1083,7 +1047,7 @@ init_iptables(void)
-
- netsnmp_register_read_only_instance(my_handler);
-
-- my_handler =
-+ my_handler =
- netsnmp_create_handler_registration("agent_version",
- info_handler,
- iptables_version_oid,
-@@ -1095,9 +1059,6 @@ init_iptables(void)
-
- netsnmp_register_read_only_instance(my_handler);
-
--
--
--
- /** */
-
- my_handler = netsnmp_create_handler_registration("iptables_names",
-@@ -1132,13 +1093,13 @@ init_iptables(void)
-
- /** chains table */
-
-- my_handler =
-+ my_handler =
- netsnmp_create_handler_registration("iptables_chains",
- iptables_chains_handler,
- iptables_chains_oid,
- OID_LENGTH(iptables_chains_oid),
- HANDLER_CAN_RONLY);
--
-+
- if (!my_handler)
- return;
-
-@@ -1167,13 +1128,13 @@ init_iptables(void)
-
- /** rules table */
-
-- my_handler =
-+ my_handler =
- netsnmp_create_handler_registration("iptables_rules",
- iptables_rules_handler,
- iptables_rules_oid,
- sizeof(iptables_rules_oid) / sizeof(oid),
- HANDLER_CAN_RONLY);
--
-+
- if (!my_handler)
- return;
-
-diff --git iptables-snmp.h iptables-snmp.h
-index 4746ff2..f2f407a 100644
---- iptables-snmp.h
-+++ iptables-snmp.h
-@@ -1,17 +1,17 @@
--/*
-+/*
- * $Id$
-- *
-+ *
- * This file is part of iptables-snmp - using SNMP to read data from linux
- * iptables
-- *
-- * iptables-snmp is copyrighted software:
-+ *
-+ * iptables-snmp is copyrighted software:
- * (c) 2003 by Peter Stamfest <peter@stamfest.at>
-- *
-+ *
- * iptables-snmp is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
-- *
-+ *
- * iptables-snmp is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-@@ -23,7 +23,7 @@
- *
- * Note: See the file COPYING for the GNU General Public License and some
- * extensions to it designed to protect the OID space of Peter Stamfest from
-- * becoming polluted.
-+ * becoming polluted.
- */
- #ifndef IPTABLES_SNMP_H_INCLUDED
- #define IPTABLES_SNMP_H_INCLUDED
-diff --git mibs/IPTABLES.MIB mibs/IPTABLES.MIB
-index faaabd9..c322145 100644
---- mibs/IPTABLES.MIB
-+++ mibs/IPTABLES.MIB
-@@ -5,7 +5,7 @@ IPTABLES-MIB DEFINITIONS ::= BEGIN
- -- An experimental MIB to describe Linux iptables (tables, chains, rules)
- -- This is work in progress. Use with caution.
- --
---- This is copyrighted software:
-+-- This is copyrighted software:
- -- (c) 2003 by Peter Stamfest <peter@stamfest.at>
- --
- -- This MIB is provided AS-IS. It is distributed in the hope that it
-@@ -76,7 +76,7 @@ iptablesVersion OBJECT-TYPE
- MAX-ACCESS read-only
- STATUS current
- DESCRIPTION
-- "The version of the iptables software the handling SNMP agent
-+ "The version of the iptables software the handling SNMP agent
- is based on."
- ::= { iptablesInformation 2 }
-
-@@ -127,7 +127,6 @@ tableName OBJECT-TYPE
- "The name of the corresponding iptables table"
- ::= { iptableNamesEntry 2 }
-
--
- ----------------------------------------------------------------------
- --
- -- An SNMP table to list the rules of linux iptables chains
-diff --git mibs/STAMFEST.MIB mibs/STAMFEST.MIB
-index 05182c5..b2126a4 100644
---- mibs/STAMFEST.MIB
-+++ mibs/STAMFEST.MIB
-@@ -32,7 +32,7 @@ IMPORTS
- -- enterprises FROM SNMPv2-SMI;
- -- Modified by AG
- enterprises, MODULE-IDENTITY FROM SNMPv2-SMI;
--
-+
- stamfestTOP MODULE-IDENTITY
- -- LAST-UPDATED "200303131352Z"
- LAST-UPDATED "201202231311Z"
-@@ -61,4 +61,3 @@ stamfestTOP MODULE-IDENTITY
- stamfestMIB OBJECT IDENTIFIER ::= { stamfestTOP 6 }
-
- END
--
-diff --git mkinstalldirs mkinstalldirs
-old mode 100755
-new mode 100644
---
-1.8.5.1
-
diff --git a/net-firewall/iptables-snmp/files/0007-MINOR-Remove-dead-code.patch b/net-firewall/iptables-snmp/files/0007-MINOR-Remove-dead-code.patch
deleted file mode 100644
index 694b3e1f..00000000
--- a/net-firewall/iptables-snmp/files/0007-MINOR-Remove-dead-code.patch
+++ /dev/null
@@ -1,214 +0,0 @@
-From 896af1625ab90775e3aa235dcafc1a32ed9a5009 Mon Sep 17 00:00:00 2001
-From: Bertrand Jacquin <bertrand@jacquin.bzh>
-Date: Thu, 12 Dec 2013 23:54:24 +0100
-Subject: [PATCH 7/9] MINOR: Remove dead code
-
-Signed-off-by: Bertrand Jacquin <bertrand@jacquin.bzh>
----
- iptables-snmp.c | 79 ---------------------------------------------------------
- 1 file changed, 79 deletions(-)
-
-diff --git iptables-snmp.c iptables-snmp.c
-index 34f3367..a34d42f 100644
---- iptables-snmp.c
-+++ iptables-snmp.c
-@@ -67,11 +67,7 @@ typedef struct _iptables_data {
- iptc_handle_t *t;
- } iptables_data;
-
--/* char *xx[2] = { "filter", NULL } ; */
--/* iptc_handle_t tt[2] = { NULL, NULL }; */
--
- static iptables_data ipt = { 0, NULL };
--/* static iptables_data ipt = { 0, xx, tt }; */
-
- static void free_data(iptables_data *data) {
- if (!data) return;
-@@ -101,11 +97,6 @@ static iptables_data *get_data() {
- char **c;
- iptc_handle_t *t;
-
--/* if (tt[0]) free(tt[0]); */
--/* tt[0] = iptc_init(xx[0]); */
--
--/* return &ipt; */
--
- if (now - ipt.loaded < MAXTIME && ipt.tables) {
- return &ipt;
- }
-@@ -165,10 +156,6 @@ static iptables_data *get_data() {
- return &ipt;
- }
-
--/* static void get_tables() { */
--
--/* } */
--
- struct tables_iter {
- int i;
- iptables_data *ctx;
-@@ -181,15 +168,12 @@ store_names(void **my_loop_context, void **my_data_context,
- {
- struct tables_iter *ti = (struct tables_iter *) *my_loop_context;
- iptables_data *data = (iptables_data *) ti->ctx;
--/* char **tables = (char**) *my_data_context; */
- netsnmp_variable_list *vars;
-
- if (data == NULL ||
- data->tables == NULL ||
- data->tables[ti->i] == NULL) return NULL;
-
--/* printf("store %d\n", ti->i); */
--
- vars = put_index_data;
- snmp_set_var_typed_value(vars, ASN_INTEGER,
- (void*)&(ti->i), sizeof(ti->i));
-@@ -265,7 +249,6 @@ static void free_loop_context_at_end(void *my_loop_context,
- netsnmp_iterator_info *iinfo)
- {
- if (my_loop_context) free(my_loop_context);
--/* printf("free_loop_context_at_end\n"); */
- }
-
- static int
-@@ -455,11 +438,8 @@ iptables_chains_handler(netsnmp_mib_handler *handler,
- {
- netsnmp_table_request_info *table_info;
- netsnmp_request_info *request;
--/* char **ctx; */
--/* int index; */
-
- int table, chain;
--/* char buf[50]; */
- iptables_data *ctx;
- chains_data *data;
-
-@@ -480,24 +460,9 @@ iptables_chains_handler(netsnmp_mib_handler *handler,
- chain = var->name[var->name_length - 1];
- table = var->name[var->name_length - 2];
-
--/* sprintf(buf, "%d_%d_%d", table, chain, rule); */
--/* snmp_set_var_typed_value(var, ASN_OCTET_STR, buf, strlen(buf)); */
--
- switch (reqinfo->mode) {
- case MODE_GET:
- switch (table_info->colnum) {
--/*
-- case C_CHAIN_INDEX: {
-- snmp_set_var_typed_value(var, ASN_INTEGER,
-- (void*) &chain, sizeof(chain));
-- break;
-- }
-- case C_TABLE_INDEX: {
-- snmp_set_var_typed_value(var, ASN_INTEGER,
-- (void*) &table, sizeof(table));
-- break;
-- }
--*/
- case C_CHAIN_NAME:
- case C_CHAIN_POLICY:
- case C_CHAIN_OCTETS:
-@@ -716,15 +681,6 @@ rules_get_next_names(void **my_loop_context,
- netsnmp_variable_list *put_index_data,
- netsnmp_iterator_info *iinfo)
- {
--/* rules_iter *c = (rules_iter *) *my_loop_context; */
--
--/* c->chain++; */
--/* if (c->chain >= 2 * c->table) { */
--/* c->table++; */
--/* c->chain = 1; */
--/* } */
--/* if (c->table == 4) return NULL; */
--
- return store_rules(my_loop_context, my_data_context,
- put_index_data, iinfo, 1);
- }
-@@ -739,7 +695,6 @@ static void rules_free_data_context(void *my_data_context,
- netsnmp_iterator_info *iinfo)
- {
- if (my_data_context) free(my_data_context);
--/* printf("free data_context %08lx\n", (long) my_data_context); */
- }
-
- static int short_ip(const char *prefix,
-@@ -791,11 +746,8 @@ iptables_rules_handler(netsnmp_mib_handler *handler,
- {
- netsnmp_table_request_info *table_info;
- netsnmp_request_info *request;
--/* char **ctx; */
--/* int index; */
-
- int table, chain, rule;
--/* char buf[50]; */
- iptables_data *ctx;
- rules_data *data;
-
-@@ -816,29 +768,9 @@ iptables_rules_handler(netsnmp_mib_handler *handler,
- chain = var->name[var->name_length - 2];
- table = var->name[var->name_length - 3];
-
--/* sprintf(buf, "%d_%d_%d\n", table, chain, rule); */
--/* snmp_set_var_typed_value(var, ASN_OCTET_STR, buf, strlen(buf)); */
--
- switch (reqinfo->mode) {
- case MODE_GET:
- switch (table_info->colnum) {
--/*
-- case R_RULE_INDEX: {
-- snmp_set_var_typed_value(var, ASN_INTEGER,
-- (void*) &rule, sizeof(rule));
-- break;
-- }
-- case R_CHAIN_INDEX: {
-- snmp_set_var_typed_value(var, ASN_INTEGER,
-- (void*) &chain, sizeof(chain));
-- break;
-- }
-- case R_TABLE_INDEX: {
-- snmp_set_var_typed_value(var, ASN_INTEGER,
-- (void*) &table, sizeof(table));
-- break;
-- }
--*/
- case R_CHAIN_NAME_INDEX: {
- const char *cn;
- int i;
-@@ -866,19 +798,11 @@ iptables_rules_handler(netsnmp_mib_handler *handler,
-
- for (cn = iptc_first_chain(ctx->t[table]), i=0 ; cn ;
- cn = iptc_next_chain(ctx->t[table]), i++) {
--/* printf("%d %d\n", i, chain); */
- if (i == chain) {
- struct ipt_counters *cnt =
- iptc_read_counter(cn, rule+1, ctx->t[table]);
- struct counter64 c64;
-
--/* snmp_set_var_typed_value(var, ASN_INTEGER64, */
--/* (void*) &(cnt->bcnt), */
--/* sizeof(cnt->bcnt)); */
--
-- /* cnt->bcnt is a u_int64_t variable, but
-- ASN_COUNTER64 awaits a struct counter64: */
--
- if (table_info->colnum == R_OCTETS_INDEX) {
- c64.low = 0xffffffff & cnt->bcnt;
- c64.high = 0xffffffff & (cnt->bcnt >> 32);
-@@ -1059,8 +983,6 @@ init_iptables(void)
-
- netsnmp_register_read_only_instance(my_handler);
-
-- /** */
--
- my_handler = netsnmp_create_handler_registration("iptables_names",
- iptables_names_handler,
- iptables_names_oid,
-@@ -1161,5 +1083,4 @@ init_iptables(void)
-
- iinfo->table_reginfo = table_info;
- netsnmp_register_table_iterator(my_handler, iinfo);
--
- }
---
-1.8.5.1
-
diff --git a/net-firewall/iptables-snmp/files/0008-MINOR-Remove-unused-parameters.patch b/net-firewall/iptables-snmp/files/0008-MINOR-Remove-unused-parameters.patch
deleted file mode 100644
index 3797e829..00000000
--- a/net-firewall/iptables-snmp/files/0008-MINOR-Remove-unused-parameters.patch
+++ /dev/null
@@ -1,284 +0,0 @@
-From 8e9e8beae873aab658ec0f64e2065d4dbfb9f0fd Mon Sep 17 00:00:00 2001
-From: Bertrand Jacquin <bertrand@jacquin.bzh>
-Date: Thu, 12 Dec 2013 23:55:12 +0100
-Subject: [PATCH 8/9] MINOR: Remove unused parameters
-
-Signed-off-by: Bertrand Jacquin <bertrand@jacquin.bzh>
----
- iptables-snmp.c | 82 ++++++++++++++++++++++++++-------------------------------
- iptables-snmp.h | 10 +++++++
- 2 files changed, 47 insertions(+), 45 deletions(-)
-
-diff --git iptables-snmp.c iptables-snmp.c
-index a34d42f..918d4c8 100644
---- iptables-snmp.c
-+++ iptables-snmp.c
-@@ -67,7 +67,7 @@ typedef struct _iptables_data {
- iptc_handle_t *t;
- } iptables_data;
-
--static iptables_data ipt = { 0, NULL };
-+static iptables_data ipt = { 0, NULL, NULL };
-
- static void free_data(iptables_data *data) {
- if (!data) return;
-@@ -163,8 +163,7 @@ struct tables_iter {
-
- static netsnmp_variable_list *
- store_names(void **my_loop_context, void **my_data_context,
-- netsnmp_variable_list * put_index_data,
-- netsnmp_iterator_info *iinfo)
-+ netsnmp_variable_list * put_index_data)
- {
- struct tables_iter *ti = (struct tables_iter *) *my_loop_context;
- iptables_data *data = (iptables_data *) ti->ctx;
-@@ -204,7 +203,7 @@ store_names(void **my_loop_context, void **my_data_context,
- static netsnmp_variable_list *
- get_first_names(void **my_loop_context, void **my_data_context,
- netsnmp_variable_list * put_index_data,
-- netsnmp_iterator_info *iinfo)
-+ netsnmp_iterator_info *iinfo __U__)
- {
- struct tables_iter *ti;
-
-@@ -219,7 +218,7 @@ get_first_names(void **my_loop_context, void **my_data_context,
- *my_loop_context = ti;
-
- return store_names(my_loop_context, my_data_context,
-- put_index_data, iinfo);
-+ put_index_data);
- }
-
- /** functionally the same as get_first_data_point, but
-@@ -233,7 +232,7 @@ static netsnmp_variable_list *
- get_next_names(void **my_loop_context,
- void **my_data_context,
- netsnmp_variable_list *put_index_data,
-- netsnmp_iterator_info *iinfo)
-+ netsnmp_iterator_info *iinfo __U__)
- {
- struct tables_iter *ti = *my_loop_context;
-
-@@ -242,18 +241,18 @@ get_next_names(void **my_loop_context,
-
- (ti->i)++;
- return store_names(my_loop_context, my_data_context,
-- put_index_data, iinfo);
-+ put_index_data);
- }
-
- static void free_loop_context_at_end(void *my_loop_context,
-- netsnmp_iterator_info *iinfo)
-+ netsnmp_iterator_info *iinfo __U__)
- {
- if (my_loop_context) free(my_loop_context);
- }
-
- static int
--iptables_names_handler(netsnmp_mib_handler *handler,
-- netsnmp_handler_registration *reginfo,
-+iptables_names_handler(netsnmp_mib_handler *handler __U__,
-+ netsnmp_handler_registration *reginfo __U__,
- netsnmp_agent_request_info *reqinfo,
- netsnmp_request_info *requests)
- {
-@@ -325,10 +324,7 @@ typedef struct _chains_data {
-
- static netsnmp_variable_list *
- store_chains(void **my_loop_context,
-- void **my_data_context,
-- netsnmp_variable_list *put_index_data,
-- netsnmp_iterator_info *iinfo,
-- int incr)
-+ netsnmp_variable_list *put_index_data)
- {
- chains_iter *c = (chains_iter *) *my_loop_context;
- netsnmp_variable_list *var = put_index_data;
-@@ -367,7 +363,7 @@ store_chains(void **my_loop_context,
-
- void *
- chains_make_data_context(void *loop_context,
-- netsnmp_iterator_info *iinfo)
-+ netsnmp_iterator_info *iinfo __U__)
- {
- chains_iter *c = loop_context;
- chains_data *data = SNMP_MALLOC_TYPEDEF(chains_data);
-@@ -382,7 +378,7 @@ chains_make_data_context(void *loop_context,
- static netsnmp_variable_list *
- chains_get_first_names(void **my_loop_context, void **my_data_context,
- netsnmp_variable_list * put_index_data,
-- netsnmp_iterator_info *iinfo)
-+ netsnmp_iterator_info *iinfo __U__)
- {
- chains_iter *c = (chains_iter *) malloc(sizeof(chains_iter));
- if (c == NULL) {
-@@ -397,8 +393,8 @@ chains_get_first_names(void **my_loop_context, void **my_data_context,
- *my_loop_context = c;
- *my_data_context = NULL;
-
-- return store_chains(my_loop_context, my_data_context,
-- put_index_data, iinfo, 0);
-+ return store_chains(my_loop_context,
-+ put_index_data);
- }
-
- /** functionally the same as get_first_data_point, but
-@@ -410,29 +406,29 @@ chains_get_first_names(void **my_loop_context, void **my_data_context,
- updated again. */
- static netsnmp_variable_list *
- chains_get_next_names(void **my_loop_context,
-- void **my_data_context,
-+ void **my_data_context __U__,
- netsnmp_variable_list *put_index_data,
-- netsnmp_iterator_info *iinfo)
-+ netsnmp_iterator_info *iinfo __U__)
- {
-- return store_chains(my_loop_context, my_data_context,
-- put_index_data, iinfo, 1);
-+ return store_chains(my_loop_context,
-+ put_index_data);
- }
-
- static void chains_free_loop_context_at_end(void *my_loop_context,
-- netsnmp_iterator_info *iinfo)
-+ netsnmp_iterator_info *iinfo __U__)
- {
- if (my_loop_context) free(my_loop_context);
- }
-
- static void chains_free_data_context(void *my_data_context,
-- netsnmp_iterator_info *iinfo)
-+ netsnmp_iterator_info *iinfo __U__)
- {
- if (my_data_context) free(my_data_context);
- }
-
- static int
--iptables_chains_handler(netsnmp_mib_handler *handler,
-- netsnmp_handler_registration *reginfo,
-+iptables_chains_handler(netsnmp_mib_handler *handler __U__,
-+ netsnmp_handler_registration *reginfo __U__,
- netsnmp_agent_request_info *reqinfo,
- netsnmp_request_info *requests)
- {
-@@ -575,10 +571,7 @@ typedef struct _rules_data {
-
- static netsnmp_variable_list *
- store_rules(void **my_loop_context,
-- void **my_data_context,
-- netsnmp_variable_list *put_index_data,
-- netsnmp_iterator_info *iinfo,
-- int incr)
-+ netsnmp_variable_list *put_index_data)
- {
- rules_iter *c = (rules_iter *) *my_loop_context;
- netsnmp_variable_list *var = put_index_data;
-@@ -626,12 +619,11 @@ store_rules(void **my_loop_context,
- (void*)&(c->rule), sizeof(c->rule));
-
- return put_index_data;
--
- }
-
- void *
- rules_make_data_context(void *loop_context,
-- netsnmp_iterator_info *iinfo)
-+ netsnmp_iterator_info *iinfo __U__)
- {
- rules_iter *c = loop_context;
- rules_data *data = SNMP_MALLOC_TYPEDEF(rules_data);
-@@ -647,7 +639,7 @@ rules_make_data_context(void *loop_context,
- static netsnmp_variable_list *
- rules_get_first_names(void **my_loop_context, void **my_data_context,
- netsnmp_variable_list * put_index_data,
-- netsnmp_iterator_info *iinfo)
-+ netsnmp_iterator_info *iinfo __U__)
- {
- rules_iter *c = (rules_iter *) malloc(sizeof(rules_iter));
- if (c == NULL) {
-@@ -664,8 +656,8 @@ rules_get_first_names(void **my_loop_context, void **my_data_context,
- *my_loop_context = c;
- *my_data_context = NULL;
-
-- return store_rules(my_loop_context, my_data_context,
-- put_index_data, iinfo, 0);
-+ return store_rules(my_loop_context,
-+ put_index_data);
- }
-
- /** functionally the same as get_first_data_point, but
-@@ -677,22 +669,22 @@ rules_get_first_names(void **my_loop_context, void **my_data_context,
- updated again. */
- static netsnmp_variable_list *
- rules_get_next_names(void **my_loop_context,
-- void **my_data_context,
-+ void **my_data_context __U__,
- netsnmp_variable_list *put_index_data,
-- netsnmp_iterator_info *iinfo)
-+ netsnmp_iterator_info *iinfo __U__)
- {
-- return store_rules(my_loop_context, my_data_context,
-- put_index_data, iinfo, 1);
-+ return store_rules(my_loop_context,
-+ put_index_data);
- }
-
- static void rules_free_loop_context_at_end(void *my_loop_context,
-- netsnmp_iterator_info *iinfo)
-+ netsnmp_iterator_info *iinfo __U__)
- {
- if (my_loop_context) free(my_loop_context);
- }
-
- static void rules_free_data_context(void *my_data_context,
-- netsnmp_iterator_info *iinfo)
-+ netsnmp_iterator_info *iinfo __U__)
- {
- if (my_data_context) free(my_data_context);
- }
-@@ -739,8 +731,8 @@ static int short_ip(const char *prefix,
- }
-
- static int
--iptables_rules_handler(netsnmp_mib_handler *handler,
-- netsnmp_handler_registration *reginfo,
-+iptables_rules_handler(netsnmp_mib_handler *handler __U__,
-+ netsnmp_handler_registration *reginfo __U__,
- netsnmp_agent_request_info *reqinfo,
- netsnmp_request_info *requests)
- {
-@@ -905,8 +897,8 @@ iptables_rules_handler(netsnmp_mib_handler *handler,
- }
-
- static int
--info_handler(netsnmp_mib_handler *handler,
-- netsnmp_handler_registration *reginfo,
-+info_handler(netsnmp_mib_handler *handler __U__,
-+ netsnmp_handler_registration *reginfo __U__,
- netsnmp_agent_request_info *reqinfo,
- netsnmp_request_info *requests)
- {
-diff --git iptables-snmp.h iptables-snmp.h
-index f2f407a..f755028 100644
---- iptables-snmp.h
-+++ iptables-snmp.h
-@@ -28,6 +28,16 @@
- #ifndef IPTABLES_SNMP_H_INCLUDED
- #define IPTABLES_SNMP_H_INCLUDED
-
-+#define HAVE___ATTRIBUTE__ 1
-+
-+#if HAVE___ATTRIBUTE__
-+# define __UNUSED__ __attribute__((unused))
-+# define __U__ __attribute__((unused))
-+#else
-+# define __UNUSED__
-+# define __U__
-+#endif /* HAVE___ATTRIBUTE__ */
-+
- /* init function */
- void init_iptables(void);
-
---
-1.8.5.1
-
diff --git a/net-firewall/iptables-snmp/files/0009-MAJOR-Replace-autotools-with-simple-Makefile.patch b/net-firewall/iptables-snmp/files/0009-MAJOR-Replace-autotools-with-simple-Makefile.patch
deleted file mode 100644
index 6c07ac48..00000000
--- a/net-firewall/iptables-snmp/files/0009-MAJOR-Replace-autotools-with-simple-Makefile.patch
+++ /dev/null
@@ -1,6012 +0,0 @@
-From 224ec706dd220fb1b71d26e6960b3cc1ac9f001f Mon Sep 17 00:00:00 2001
-From: Bertrand Jacquin <bertrand@jacquin.bzh>
-Date: Thu, 12 Dec 2013 23:51:10 +0100
-Subject: [PATCH 9/9] MAJOR: Replace autotools with simple Makefile
-
-Get IPTABLES_VERSION from iptables/internal.h
-
-Signed-off-by: Bertrand Jacquin <bertrand@jacquin.bzh>
----
- .gitignore | 12 +-
- Makefile | 123 ++
- Makefile.in | 120 --
- aclocal.m4 | 832 ----------
- config.h.in | 1 -
- configure | 4739 ------------------------------------------------------
- configure.in | 29 -
- iptables-snmp.c | 6 +-
- mibs/Makefile.in | 4 -
- mkinstalldirs | 40 -
- 10 files changed, 131 insertions(+), 5775 deletions(-)
- create mode 100644 Makefile
- delete mode 100644 Makefile.in
- delete mode 100644 aclocal.m4
- delete mode 100644 config.h.in
- delete mode 100755 configure
- delete mode 100644 configure.in
- delete mode 100644 mibs/Makefile.in
- delete mode 100644 mkinstalldirs
-
-diff --git .gitignore .gitignore
-index ae11007..53ccfaa 100644
---- .gitignore
-+++ .gitignore
-@@ -1,9 +1,7 @@
--config.h
--config.log
--config.status
--configure
--
--Makefile
--
- iptables-snmp.o
- iptables-snmp.so
-+
-+iptables-snmp-*.tar
-+iptables-snmp-*.txz
-+
-+*.patch
-diff --git Makefile Makefile
-new file mode 100644
-index 0000000..7f78f21
---- /dev/null
-+++ Makefile
-@@ -0,0 +1,123 @@
-+#!/usr/bin/make -f
-+#
-+# (c) 2013 - Bertrand Jacquin <bertrand@jacquin.bzh>
-+#
-+
-+NAME = iptables-snmp
-+VERSION = $(shell git describe --tags --dirty=-dev 2> /dev/null)
-+
-+DESTDIR ?=
-+PREFIX ?= /usr/local
-+LIBDIR ?= $(PREFIX)/lib
-+MIBDIR ?= $(PREFIX)/share/snmp/mibs
-+DOCDIR ?= $(PREFIX)/share/doc/$(NAME)
-+
-+SRC = \
-+ iptables-snmp.c
-+
-+MIBS = \
-+ mibs/IPTABLES.MIB \
-+ mibs/STAMFEST.MIB
-+
-+DOCS = \
-+ README
-+
-+NETSNMP_CFLAGS =
-+
-+NETSNMP_LDFLAGS = \
-+ -lnetsnmp \
-+ -lnetsnmpagent \
-+ -lnetsnmphelpers \
-+ -lnetsnmpmibs
-+
-+IPTC_CFLAGS = \
-+ $(shell pkg-config --cflags libiptc)
-+
-+IPTC_LDFLAGS = \
-+ $(shell pkg-config --libs libiptc)
-+
-+CFLAGS ?= \
-+ -W -Wall
-+
-+SPEC_CFLAGS = \
-+ -fPIC \
-+ -DAGENT_VERSION='"$(VERSION)"' \
-+ $(NETSNMP_CFLAGS) \
-+ $(IPTC_CFLAGS)
-+
-+SPEC_LDFLAGS = \
-+ $(NETSNMP_LDFLAGS) \
-+ $(IPTC_LDFLAGS)
-+
-+CC ?= cc
-+
-+INSTALL ?= install
-+
-+RM ?= rm -f
-+
-+TAR ?= tar
-+XZ ?= xz
-+
-+ifeq ($(V),)
-+ Q = @
-+ INSTALL_Q =
-+ quiet_cmd = @printf " %-8s %s\n" "$(1)" "$(2)";
-+else
-+ Q =
-+ INSTALL_Q =
-+ quiet_cmd =
-+endif
-+
-+all: $(NAME).so
-+dist: $(NAME)-$(VERSION).txz
-+
-+%.o: %.c %.h
-+ $(call quiet_cmd,CC,$@)
-+ $(Q)$(CC) -c $(SPEC_CFLAGS) $(CFLAGS) -o $@ $<
-+
-+$(NAME).so: $(SRC:c=o)
-+ $(call quiet_cmd,CC,$@)
-+ $(Q)$(CC) -shared -o $@ $^ $(SPEC_LDFLAGS) $(LDFLAGS)
-+
-+install: install-lib install-mib
-+
-+install-lib: $(DESTDIR)$(LIBDIR)/$(NAME).so
-+install-mib: $(MIBS:mibs/%=$(DESTDIR)$(MIBDIR)/%)
-+install-doc: $(DOCS:%=$(DESTDIR)$(DOCDIR)/%)
-+
-+$(DESTDIR)$(LIBDIR)/%.so: MODE = 644
-+$(DESTDIR)$(LIBDIR)/%: %
-+ $(call quiet_cmd,INSTALL,$<)
-+ $(Q)$(INSTALL) $(INSTALL_Q) -D -m $(MODE) $< $@
-+
-+$(DESTDIR)$(MIBDIR)/%: MODE = 644
-+$(DESTDIR)$(MIBDIR)/%: mibs/%
-+ $(call quiet_cmd,INSTALL,$<)
-+ $(Q)$(INSTALL) $(INSTALL_Q) -D -m $(MODE) $< $@
-+
-+$(DESTDIR)$(DOCDIR)/%: MODE = 644
-+$(DESTDIR)$(DOCDIR)/%: %
-+ $(call quiet_cmd,INSTALL,$<)
-+ $(Q)$(INSTALL) $(INSTALL_Q) -D -m $(MODE) $< $@
-+
-+$(NAME)-$(VERSION).tar: $(SRC) $(SRC:c=h) $(EXTRA_FILES) Makefile $(DOC_FILES)
-+ $(call quiet_cmd,TAR,$@)
-+ $(Q)$(TAR) cf $@ \
-+ --transform "s,^,$(NAME)-$(VERSION)/," \
-+ --force-local --numeric-owner \
-+ $^
-+
-+%.txz: %.tar
-+ $(call quiet_cmd,XZ,$@)
-+ $(Q)$(XZ) -c > $@ < $<
-+clean:
-+ $(call quiet_cmd,RM,$(SRC:c=o))
-+ $(Q)$(RM) $(SRC:c=o)
-+ $(call quiet_cmd,RM,$(NAME).so)
-+ $(Q)$(RM) $(NAME).so
-+
-+dist-clean: clean
-+ $(call quiet_cmd,RM,$(NAME)-$(VERSION).tar)
-+ $(Q)$(RM) $(NAME)-$(VERSION).tar
-+ $(call quiet_cmd,RM,$(NAME)-$(VERSION).txz)
-+ $(Q)$(RM) $(NAME)-$(VERSION).txz
-diff --git Makefile.in Makefile.in
-deleted file mode 100644
-index 7744b82..0000000
---- Makefile.in
-+++ /dev/null
-@@ -1,120 +0,0 @@
--# This file is part of iptables-snmp - using SNMP to read data from linux
--# iptables
--#
--# iptables-snmp is copyrighted software:
--# (c) 2003 by Peter Stamfest <peter@stamfest.at>
--# munged by Nigel Roberts <nigel@nobiscuit.com>
--#
--# iptables-snmp is free software; you can redistribute it and/or modify
--# it under the terms of the GNU General Public License as published by
--# the Free Software Foundation; either version 2 of the License, or
--# (at your option) any later version.
--#
--# iptables-snmp is distributed in the hope that it will be useful,
--# but WITHOUT ANY WARRANTY; without even the implied warranty of
--# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
--# GNU General Public License for more details.
--#
--# You should have received a copy of the GNU General Public License
--# along with iptables-snmp; if not, write to the Free Software
--# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
--#
--# Note: See the file COPYING for the GNU General Public License and some
--# extensions to it designed to protect the OID space of Peter Stamfest from
--# becoming polluted.
--
--SHELL = /bin/sh
--VPATH = @srcdir@
--
--subdirs = @subdirs@
--top_srcdir = @top_srcdir@
--srcdir = @srcdir@
--prefix = @prefix@
--exec_prefix = @exec_prefix@
--libdir = $(prefix)/lib/
--
--CC = @CC@
--CPPFLAGS = @CPPFLAGS@
--CFLAGS = $(CPPFLAGS) @CFLAGS@
--LDFLAGS = @LDFLAGS@
--LIBS = @LIBS@
--INSTALL = @INSTALL@
--INSTALL_PREFIX =
--
--NAME = iptables-snmp
--AGENT_VERSION = 0.1
--
--IPTABLES = 1.3.3
--
--STAMFEST_OID = 1,3,6,1,4,1,12806
--
--SRCS = iptables-snmp.c
--OBJS = $(SRCS:.c=.o)
--L_SNMP_FLAGS = -lnetsnmp -lnetsnmphelpers -lnetsnmpagent -lnetsnmpmibs
--L_LDFLAGS = -lip4tc $(L_SNMP_FLAGS)
--
--NETFILTER = \"$(IPTABLES)\"
--
--LIBIPTC_SRCS = libiptc/libip4tc.c \
-- libiptc/libip6tc.c
--LIBIPTC_OBJS = $(LIBIPTC_SRCS:.c=.o)
--
--DFLAGS = -fPIC
--
--OTHER = -DIPTABLES_VERSION=$(NETFILTER) -DUSE_ENTERPRISE_OID=$(STAMFEST_OID) -DAGENT_VERSION=\"$(AGENT_VERSION)\"
--
--all: iptables-snmp.so
--
--iptables-snmp.so: $(OBJS) Makefile
-- $(CC) $(DFLAGS) -shared -o $@ $(OBJS) $(L_LDFLAGS) $(LDFLAGS)
--
--libiptc.a: $(LIBIPTC_OBJS) Makefile
-- $(AR) rc $@ $(LIBIPTC_OBJS)
--
--$(LIBIPTC_OBJS): libiptc/libiptc.c
--
--.c.o:
-- $(CC) $(CFLAGS) $(OTHER) $(DFLAGS) -c -o $@ $<
--
--iptables-snmp.o: iptables-snmp.h
--
--clean: local-clean
--
--local-clean:
-- rm -f *.o libiptc/*.a libiptc/*.o
-- rm -f *.so
-- rm -f *.a
--
--patch: $(IPTABLES_BASE).patch
--
--dist:
-- rm -rf $(NAME)-$(AGENT_VERSION)
-- mkdir $(NAME)-$(AGENT_VERSION)
-- cpio -pudam $(NAME)-$(AGENT_VERSION) < MANIFEST
-- tar -czf $(NAME)-$(AGENT_VERSION).tar.gz $(NAME)-$(AGENT_VERSION)
-- rm -rf $(NAME)-$(AGENT_VERSION)
--
--install: iptables-snmp.so
-- $(top_srcdir)/mkinstalldirs $(INSTALL_PREFIX)$(libdir)
-- $(INSTALL) -c -m 755 iptables-snmp.so $(INSTALL_PREFIX)$(libdir)
--
--uninstall:
-- -/bin/rm -f $(libdir)/iptables-snmp.so
--
--# automatic re-running of configure if the ocnfigure.in file has changed
--${srcdir}/configure: configure.in aclocal.m4
-- cd ${srcdir} && autoconf
--
--# autoheader might not change config.h.in, so touch a stamp file
--${srcdir}/config.h.in: stamp-h.in
--${srcdir}/stamp-h.in: configure.in aclocal.m4
-- cd ${srcdir} && autoheader
-- echo timestamp > ${srcdir}/stamp-h.in
--
--config.h: stamp-h
--stamp-h: config.h.in config.status
-- ./config.status
--Makefile: Makefile.in config.status
-- ./config.status
--config.status: configure
-- ./config.status --recheck
-diff --git aclocal.m4 aclocal.m4
-deleted file mode 100644
-index 9161320..0000000
---- aclocal.m4
-+++ /dev/null
-@@ -1,832 +0,0 @@
--dnl aclocal.m4 generated automatically by aclocal 1.4-p6
--
--dnl Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
--dnl This file is free software; the Free Software Foundation
--dnl gives unlimited permission to copy and/or distribute it,
--dnl with or without modifications, as long as this notice is preserved.
--
--dnl This program is distributed in the hope that it will be useful,
--dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without
--dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A
--dnl PARTICULAR PURPOSE.
--
--# lib-prefix.m4 serial 3 (gettext-0.13)
--dnl Copyright (C) 2001-2003 Free Software Foundation, Inc.
--dnl This file is free software, distributed under the terms of the GNU
--dnl General Public License. As a special exception to the GNU General
--dnl Public License, this file may be distributed as part of a program
--dnl that contains a configuration script generated by Autoconf, under
--dnl the same distribution terms as the rest of that program.
--
--dnl From Bruno Haible.
--
--dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and
--dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't
--dnl require excessive bracketing.
--ifdef([AC_HELP_STRING],
--[AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])],
--[AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])])
--
--dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed
--dnl to access previously installed libraries. The basic assumption is that
--dnl a user will want packages to use other packages he previously installed
--dnl with the same --prefix option.
--dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate
--dnl libraries, but is otherwise very convenient.
--AC_DEFUN([AC_LIB_PREFIX],
--[
-- AC_BEFORE([$0], [AC_LIB_LINKFLAGS])
-- AC_REQUIRE([AC_PROG_CC])
-- AC_REQUIRE([AC_CANONICAL_HOST])
-- AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
-- dnl By default, look in $includedir and $libdir.
-- use_additional=yes
-- AC_LIB_WITH_FINAL_PREFIX([
-- eval additional_includedir=\"$includedir\"
-- eval additional_libdir=\"$libdir\"
-- ])
-- AC_LIB_ARG_WITH([lib-prefix],
--[ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib
-- --without-lib-prefix don't search for libraries in includedir and libdir],
--[
-- if test "X$withval" = "Xno"; then
-- use_additional=no
-- else
-- if test "X$withval" = "X"; then
-- AC_LIB_WITH_FINAL_PREFIX([
-- eval additional_includedir=\"$includedir\"
-- eval additional_libdir=\"$libdir\"
-- ])
-- else
-- additional_includedir="$withval/include"
-- additional_libdir="$withval/lib"
-- fi
-- fi
--])
-- if test $use_additional = yes; then
-- dnl Potentially add $additional_includedir to $CPPFLAGS.
-- dnl But don't add it
-- dnl 1. if it's the standard /usr/include,
-- dnl 2. if it's already present in $CPPFLAGS,
-- dnl 3. if it's /usr/local/include and we are using GCC on Linux,
-- dnl 4. if it doesn't exist as a directory.
-- if test "X$additional_includedir" != "X/usr/include"; then
-- haveit=
-- for x in $CPPFLAGS; do
-- AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
-- if test "X$x" = "X-I$additional_includedir"; then
-- haveit=yes
-- break
-- fi
-- done
-- if test -z "$haveit"; then
-- if test "X$additional_includedir" = "X/usr/local/include"; then
-- if test -n "$GCC"; then
-- case $host_os in
-- linux*) haveit=yes;;
-- esac
-- fi
-- fi
-- if test -z "$haveit"; then
-- if test -d "$additional_includedir"; then
-- dnl Really add $additional_includedir to $CPPFLAGS.
-- CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir"
-- fi
-- fi
-- fi
-- fi
-- dnl Potentially add $additional_libdir to $LDFLAGS.
-- dnl But don't add it
-- dnl 1. if it's the standard /usr/lib,
-- dnl 2. if it's already present in $LDFLAGS,
-- dnl 3. if it's /usr/local/lib and we are using GCC on Linux,
-- dnl 4. if it doesn't exist as a directory.
-- if test "X$additional_libdir" != "X/usr/lib"; then
-- haveit=
-- for x in $LDFLAGS; do
-- AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
-- if test "X$x" = "X-L$additional_libdir"; then
-- haveit=yes
-- break
-- fi
-- done
-- if test -z "$haveit"; then
-- if test "X$additional_libdir" = "X/usr/local/lib"; then
-- if test -n "$GCC"; then
-- case $host_os in
-- linux*) haveit=yes;;
-- esac
-- fi
-- fi
-- if test -z "$haveit"; then
-- if test -d "$additional_libdir"; then
-- dnl Really add $additional_libdir to $LDFLAGS.
-- LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir"
-- fi
-- fi
-- fi
-- fi
-- fi
--])
--
--dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix,
--dnl acl_final_exec_prefix, containing the values to which $prefix and
--dnl $exec_prefix will expand at the end of the configure script.
--AC_DEFUN([AC_LIB_PREPARE_PREFIX],
--[
-- dnl Unfortunately, prefix and exec_prefix get only finally determined
-- dnl at the end of configure.
-- if test "X$prefix" = "XNONE"; then
-- acl_final_prefix="$ac_default_prefix"
-- else
-- acl_final_prefix="$prefix"
-- fi
-- if test "X$exec_prefix" = "XNONE"; then
-- acl_final_exec_prefix='${prefix}'
-- else
-- acl_final_exec_prefix="$exec_prefix"
-- fi
-- acl_save_prefix="$prefix"
-- prefix="$acl_final_prefix"
-- eval acl_final_exec_prefix=\"$acl_final_exec_prefix\"
-- prefix="$acl_save_prefix"
--])
--
--dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the
--dnl variables prefix and exec_prefix bound to the values they will have
--dnl at the end of the configure script.
--AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX],
--[
-- acl_save_prefix="$prefix"
-- prefix="$acl_final_prefix"
-- acl_save_exec_prefix="$exec_prefix"
-- exec_prefix="$acl_final_exec_prefix"
-- $1
-- exec_prefix="$acl_save_exec_prefix"
-- prefix="$acl_save_prefix"
--])
--
--# lib-link.m4 serial 4 (gettext-0.12)
--dnl Copyright (C) 2001-2003 Free Software Foundation, Inc.
--dnl This file is free software, distributed under the terms of the GNU
--dnl General Public License. As a special exception to the GNU General
--dnl Public License, this file may be distributed as part of a program
--dnl that contains a configuration script generated by Autoconf, under
--dnl the same distribution terms as the rest of that program.
--
--dnl From Bruno Haible.
--
--dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and
--dnl the libraries corresponding to explicit and implicit dependencies.
--dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and
--dnl augments the CPPFLAGS variable.
--AC_DEFUN([AC_LIB_LINKFLAGS],
--[
-- AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
-- AC_REQUIRE([AC_LIB_RPATH])
-- define([Name],[translit([$1],[./-], [___])])
-- define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
-- [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
-- AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [
-- AC_LIB_LINKFLAGS_BODY([$1], [$2])
-- ac_cv_lib[]Name[]_libs="$LIB[]NAME"
-- ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME"
-- ac_cv_lib[]Name[]_cppflags="$INC[]NAME"
-- ])
-- LIB[]NAME="$ac_cv_lib[]Name[]_libs"
-- LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs"
-- INC[]NAME="$ac_cv_lib[]Name[]_cppflags"
-- AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
-- AC_SUBST([LIB]NAME)
-- AC_SUBST([LTLIB]NAME)
-- dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the
-- dnl results of this search when this library appears as a dependency.
-- HAVE_LIB[]NAME=yes
-- undefine([Name])
-- undefine([NAME])
--])
--
--dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode)
--dnl searches for libname and the libraries corresponding to explicit and
--dnl implicit dependencies, together with the specified include files and
--dnl the ability to compile and link the specified testcode. If found, it
--dnl sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} and
--dnl LTLIB${NAME} variables and augments the CPPFLAGS variable, and
--dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs
--dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty.
--AC_DEFUN([AC_LIB_HAVE_LINKFLAGS],
--[
-- AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
-- AC_REQUIRE([AC_LIB_RPATH])
-- define([Name],[translit([$1],[./-], [___])])
-- define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
-- [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
--
-- dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME
-- dnl accordingly.
-- AC_LIB_LINKFLAGS_BODY([$1], [$2])
--
-- dnl Add $INC[]NAME to CPPFLAGS before performing the following checks,
-- dnl because if the user has installed lib[]Name and not disabled its use
-- dnl via --without-lib[]Name-prefix, he wants to use it.
-- ac_save_CPPFLAGS="$CPPFLAGS"
-- AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
--
-- AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [
-- ac_save_LIBS="$LIBS"
-- LIBS="$LIBS $LIB[]NAME"
-- AC_TRY_LINK([$3], [$4], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name=no])
-- LIBS="$ac_save_LIBS"
-- ])
-- if test "$ac_cv_lib[]Name" = yes; then
-- HAVE_LIB[]NAME=yes
-- AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the $1 library.])
-- AC_MSG_CHECKING([how to link with lib[]$1])
-- AC_MSG_RESULT([$LIB[]NAME])
-- else
-- HAVE_LIB[]NAME=no
-- dnl If $LIB[]NAME didn't lead to a usable library, we don't need
-- dnl $INC[]NAME either.
-- CPPFLAGS="$ac_save_CPPFLAGS"
-- LIB[]NAME=
-- LTLIB[]NAME=
-- fi
-- AC_SUBST([HAVE_LIB]NAME)
-- AC_SUBST([LIB]NAME)
-- AC_SUBST([LTLIB]NAME)
-- undefine([Name])
-- undefine([NAME])
--])
--
--dnl Determine the platform dependent parameters needed to use rpath:
--dnl libext, shlibext, hardcode_libdir_flag_spec, hardcode_libdir_separator,
--dnl hardcode_direct, hardcode_minus_L.
--AC_DEFUN([AC_LIB_RPATH],
--[
-- AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS
-- AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld
-- AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host
-- AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir
-- AC_CACHE_CHECK([for shared library run path origin], acl_cv_rpath, [
-- CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
-- ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
-- . ./conftest.sh
-- rm -f ./conftest.sh
-- acl_cv_rpath=done
-- ])
-- wl="$acl_cv_wl"
-- libext="$acl_cv_libext"
-- shlibext="$acl_cv_shlibext"
-- hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
-- hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
-- hardcode_direct="$acl_cv_hardcode_direct"
-- hardcode_minus_L="$acl_cv_hardcode_minus_L"
-- dnl Determine whether the user wants rpath handling at all.
-- AC_ARG_ENABLE(rpath,
-- [ --disable-rpath do not hardcode runtime library paths],
-- :, enable_rpath=yes)
--])
--
--dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and
--dnl the libraries corresponding to explicit and implicit dependencies.
--dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables.
--AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
--[
-- define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
-- [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
-- dnl By default, look in $includedir and $libdir.
-- use_additional=yes
-- AC_LIB_WITH_FINAL_PREFIX([
-- eval additional_includedir=\"$includedir\"
-- eval additional_libdir=\"$libdir\"
-- ])
-- AC_LIB_ARG_WITH([lib$1-prefix],
--[ --with-lib$1-prefix[=DIR] search for lib$1 in DIR/include and DIR/lib
-- --without-lib$1-prefix don't search for lib$1 in includedir and libdir],
--[
-- if test "X$withval" = "Xno"; then
-- use_additional=no
-- else
-- if test "X$withval" = "X"; then
-- AC_LIB_WITH_FINAL_PREFIX([
-- eval additional_includedir=\"$includedir\"
-- eval additional_libdir=\"$libdir\"
-- ])
-- else
-- additional_includedir="$withval/include"
-- additional_libdir="$withval/lib"
-- fi
-- fi
--])
-- dnl Search the library and its dependencies in $additional_libdir and
-- dnl $LDFLAGS. Using breadth-first-seach.
-- LIB[]NAME=
-- LTLIB[]NAME=
-- INC[]NAME=
-- rpathdirs=
-- ltrpathdirs=
-- names_already_handled=
-- names_next_round='$1 $2'
-- while test -n "$names_next_round"; do
-- names_this_round="$names_next_round"
-- names_next_round=
-- for name in $names_this_round; do
-- already_handled=
-- for n in $names_already_handled; do
-- if test "$n" = "$name"; then
-- already_handled=yes
-- break
-- fi
-- done
-- if test -z "$already_handled"; then
-- names_already_handled="$names_already_handled $name"
-- dnl See if it was already located by an earlier AC_LIB_LINKFLAGS
-- dnl or AC_LIB_HAVE_LINKFLAGS call.
-- uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
-- eval value=\"\$HAVE_LIB$uppername\"
-- if test -n "$value"; then
-- if test "$value" = yes; then
-- eval value=\"\$LIB$uppername\"
-- test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value"
-- eval value=\"\$LTLIB$uppername\"
-- test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value"
-- else
-- dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined
-- dnl that this library doesn't exist. So just drop it.
-- :
-- fi
-- else
-- dnl Search the library lib$name in $additional_libdir and $LDFLAGS
-- dnl and the already constructed $LIBNAME/$LTLIBNAME.
-- found_dir=
-- found_la=
-- found_so=
-- found_a=
-- if test $use_additional = yes; then
-- if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then
-- found_dir="$additional_libdir"
-- found_so="$additional_libdir/lib$name.$shlibext"
-- if test -f "$additional_libdir/lib$name.la"; then
-- found_la="$additional_libdir/lib$name.la"
-- fi
-- else
-- if test -f "$additional_libdir/lib$name.$libext"; then
-- found_dir="$additional_libdir"
-- found_a="$additional_libdir/lib$name.$libext"
-- if test -f "$additional_libdir/lib$name.la"; then
-- found_la="$additional_libdir/lib$name.la"
-- fi
-- fi
-- fi
-- fi
-- if test "X$found_dir" = "X"; then
-- for x in $LDFLAGS $LTLIB[]NAME; do
-- AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
-- case "$x" in
-- -L*)
-- dir=`echo "X$x" | sed -e 's/^X-L//'`
-- if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then
-- found_dir="$dir"
-- found_so="$dir/lib$name.$shlibext"
-- if test -f "$dir/lib$name.la"; then
-- found_la="$dir/lib$name.la"
-- fi
-- else
-- if test -f "$dir/lib$name.$libext"; then
-- found_dir="$dir"
-- found_a="$dir/lib$name.$libext"
-- if test -f "$dir/lib$name.la"; then
-- found_la="$dir/lib$name.la"
-- fi
-- fi
-- fi
-- ;;
-- esac
-- if test "X$found_dir" != "X"; then
-- break
-- fi
-- done
-- fi
-- if test "X$found_dir" != "X"; then
-- dnl Found the library.
-- LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name"
-- if test "X$found_so" != "X"; then
-- dnl Linking with a shared library. We attempt to hardcode its
-- dnl directory into the executable's runpath, unless it's the
-- dnl standard /usr/lib.
-- if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then
-- dnl No hardcoding is needed.
-- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
-- else
-- dnl Use an explicit option to hardcode DIR into the resulting
-- dnl binary.
-- dnl Potentially add DIR to ltrpathdirs.
-- dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
-- haveit=
-- for x in $ltrpathdirs; do
-- if test "X$x" = "X$found_dir"; then
-- haveit=yes
-- break
-- fi
-- done
-- if test -z "$haveit"; then
-- ltrpathdirs="$ltrpathdirs $found_dir"
-- fi
-- dnl The hardcoding into $LIBNAME is system dependent.
-- if test "$hardcode_direct" = yes; then
-- dnl Using DIR/libNAME.so during linking hardcodes DIR into the
-- dnl resulting binary.
-- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
-- else
-- if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then
-- dnl Use an explicit option to hardcode DIR into the resulting
-- dnl binary.
-- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
-- dnl Potentially add DIR to rpathdirs.
-- dnl The rpathdirs will be appended to $LIBNAME at the end.
-- haveit=
-- for x in $rpathdirs; do
-- if test "X$x" = "X$found_dir"; then
-- haveit=yes
-- break
-- fi
-- done
-- if test -z "$haveit"; then
-- rpathdirs="$rpathdirs $found_dir"
-- fi
-- else
-- dnl Rely on "-L$found_dir".
-- dnl But don't add it if it's already contained in the LDFLAGS
-- dnl or the already constructed $LIBNAME
-- haveit=
-- for x in $LDFLAGS $LIB[]NAME; do
-- AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
-- if test "X$x" = "X-L$found_dir"; then
-- haveit=yes
-- break
-- fi
-- done
-- if test -z "$haveit"; then
-- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir"
-- fi
-- if test "$hardcode_minus_L" != no; then
-- dnl FIXME: Not sure whether we should use
-- dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
-- dnl here.
-- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
-- else
-- dnl We cannot use $hardcode_runpath_var and LD_RUN_PATH
-- dnl here, because this doesn't fit in flags passed to the
-- dnl compiler. So give up. No hardcoding. This affects only
-- dnl very old systems.
-- dnl FIXME: Not sure whether we should use
-- dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
-- dnl here.
-- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
-- fi
-- fi
-- fi
-- fi
-- else
-- if test "X$found_a" != "X"; then
-- dnl Linking with a static library.
-- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a"
-- else
-- dnl We shouldn't come here, but anyway it's good to have a
-- dnl fallback.
-- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name"
-- fi
-- fi
-- dnl Assume the include files are nearby.
-- additional_includedir=
-- case "$found_dir" in
-- */lib | */lib/)
-- basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'`
-- additional_includedir="$basedir/include"
-- ;;
-- esac
-- if test "X$additional_includedir" != "X"; then
-- dnl Potentially add $additional_includedir to $INCNAME.
-- dnl But don't add it
-- dnl 1. if it's the standard /usr/include,
-- dnl 2. if it's /usr/local/include and we are using GCC on Linux,
-- dnl 3. if it's already present in $CPPFLAGS or the already
-- dnl constructed $INCNAME,
-- dnl 4. if it doesn't exist as a directory.
-- if test "X$additional_includedir" != "X/usr/include"; then
-- haveit=
-- if test "X$additional_includedir" = "X/usr/local/include"; then
-- if test -n "$GCC"; then
-- case $host_os in
-- linux*) haveit=yes;;
-- esac
-- fi
-- fi
-- if test -z "$haveit"; then
-- for x in $CPPFLAGS $INC[]NAME; do
-- AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
-- if test "X$x" = "X-I$additional_includedir"; then
-- haveit=yes
-- break
-- fi
-- done
-- if test -z "$haveit"; then
-- if test -d "$additional_includedir"; then
-- dnl Really add $additional_includedir to $INCNAME.
-- INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir"
-- fi
-- fi
-- fi
-- fi
-- fi
-- dnl Look for dependencies.
-- if test -n "$found_la"; then
-- dnl Read the .la file. It defines the variables
-- dnl dlname, library_names, old_library, dependency_libs, current,
-- dnl age, revision, installed, dlopen, dlpreopen, libdir.
-- save_libdir="$libdir"
-- case "$found_la" in
-- */* | *\\*) . "$found_la" ;;
-- *) . "./$found_la" ;;
-- esac
-- libdir="$save_libdir"
-- dnl We use only dependency_libs.
-- for dep in $dependency_libs; do
-- case "$dep" in
-- -L*)
-- additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
-- dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME.
-- dnl But don't add it
-- dnl 1. if it's the standard /usr/lib,
-- dnl 2. if it's /usr/local/lib and we are using GCC on Linux,
-- dnl 3. if it's already present in $LDFLAGS or the already
-- dnl constructed $LIBNAME,
-- dnl 4. if it doesn't exist as a directory.
-- if test "X$additional_libdir" != "X/usr/lib"; then
-- haveit=
-- if test "X$additional_libdir" = "X/usr/local/lib"; then
-- if test -n "$GCC"; then
-- case $host_os in
-- linux*) haveit=yes;;
-- esac
-- fi
-- fi
-- if test -z "$haveit"; then
-- haveit=
-- for x in $LDFLAGS $LIB[]NAME; do
-- AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
-- if test "X$x" = "X-L$additional_libdir"; then
-- haveit=yes
-- break
-- fi
-- done
-- if test -z "$haveit"; then
-- if test -d "$additional_libdir"; then
-- dnl Really add $additional_libdir to $LIBNAME.
-- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir"
-- fi
-- fi
-- haveit=
-- for x in $LDFLAGS $LTLIB[]NAME; do
-- AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
-- if test "X$x" = "X-L$additional_libdir"; then
-- haveit=yes
-- break
-- fi
-- done
-- if test -z "$haveit"; then
-- if test -d "$additional_libdir"; then
-- dnl Really add $additional_libdir to $LTLIBNAME.
-- LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir"
-- fi
-- fi
-- fi
-- fi
-- ;;
-- -R*)
-- dir=`echo "X$dep" | sed -e 's/^X-R//'`
-- if test "$enable_rpath" != no; then
-- dnl Potentially add DIR to rpathdirs.
-- dnl The rpathdirs will be appended to $LIBNAME at the end.
-- haveit=
-- for x in $rpathdirs; do
-- if test "X$x" = "X$dir"; then
-- haveit=yes
-- break
-- fi
-- done
-- if test -z "$haveit"; then
-- rpathdirs="$rpathdirs $dir"
-- fi
-- dnl Potentially add DIR to ltrpathdirs.
-- dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
-- haveit=
-- for x in $ltrpathdirs; do
-- if test "X$x" = "X$dir"; then
-- haveit=yes
-- break
-- fi
-- done
-- if test -z "$haveit"; then
-- ltrpathdirs="$ltrpathdirs $dir"
-- fi
-- fi
-- ;;
-- -l*)
-- dnl Handle this in the next round.
-- names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
-- ;;
-- *.la)
-- dnl Handle this in the next round. Throw away the .la's
-- dnl directory; it is already contained in a preceding -L
-- dnl option.
-- names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
-- ;;
-- *)
-- dnl Most likely an immediate library name.
-- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep"
-- LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep"
-- ;;
-- esac
-- done
-- fi
-- else
-- dnl Didn't find the library; assume it is in the system directories
-- dnl known to the linker and runtime loader. (All the system
-- dnl directories known to the linker should also be known to the
-- dnl runtime loader, otherwise the system is severely misconfigured.)
-- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
-- LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name"
-- fi
-- fi
-- fi
-- done
-- done
-- if test "X$rpathdirs" != "X"; then
-- if test -n "$hardcode_libdir_separator"; then
-- dnl Weird platform: only the last -rpath option counts, the user must
-- dnl pass all path elements in one option. We can arrange that for a
-- dnl single library, but not when more than one $LIBNAMEs are used.
-- alldirs=
-- for found_dir in $rpathdirs; do
-- alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir"
-- done
-- dnl Note: hardcode_libdir_flag_spec uses $libdir and $wl.
-- acl_save_libdir="$libdir"
-- libdir="$alldirs"
-- eval flag=\"$hardcode_libdir_flag_spec\"
-- libdir="$acl_save_libdir"
-- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
-- else
-- dnl The -rpath options are cumulative.
-- for found_dir in $rpathdirs; do
-- acl_save_libdir="$libdir"
-- libdir="$found_dir"
-- eval flag=\"$hardcode_libdir_flag_spec\"
-- libdir="$acl_save_libdir"
-- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
-- done
-- fi
-- fi
-- if test "X$ltrpathdirs" != "X"; then
-- dnl When using libtool, the option that works for both libraries and
-- dnl executables is -R. The -R options are cumulative.
-- for found_dir in $ltrpathdirs; do
-- LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir"
-- done
-- fi
--])
--
--dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR,
--dnl unless already present in VAR.
--dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes
--dnl contains two or three consecutive elements that belong together.
--AC_DEFUN([AC_LIB_APPENDTOVAR],
--[
-- for element in [$2]; do
-- haveit=
-- for x in $[$1]; do
-- AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
-- if test "X$x" = "X$element"; then
-- haveit=yes
-- break
-- fi
-- done
-- if test -z "$haveit"; then
-- [$1]="${[$1]}${[$1]:+ }$element"
-- fi
-- done
--])
--
--# lib-ld.m4 serial 3 (gettext-0.13)
--dnl Copyright (C) 1996-2003 Free Software Foundation, Inc.
--dnl This file is free software, distributed under the terms of the GNU
--dnl General Public License. As a special exception to the GNU General
--dnl Public License, this file may be distributed as part of a program
--dnl that contains a configuration script generated by Autoconf, under
--dnl the same distribution terms as the rest of that program.
--
--dnl Subroutines of libtool.m4,
--dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision
--dnl with libtool.m4.
--
--dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no.
--AC_DEFUN([AC_LIB_PROG_LD_GNU],
--[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], acl_cv_prog_gnu_ld,
--[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
--case `$LD -v 2>&1 </dev/null` in
--*GNU* | *'with BFD'*)
-- acl_cv_prog_gnu_ld=yes ;;
--*)
-- acl_cv_prog_gnu_ld=no ;;
--esac])
--with_gnu_ld=$acl_cv_prog_gnu_ld
--])
--
--dnl From libtool-1.4. Sets the variable LD.
--AC_DEFUN([AC_LIB_PROG_LD],
--[AC_ARG_WITH(gnu-ld,
--[ --with-gnu-ld assume the C compiler uses GNU ld [default=no]],
--test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
--AC_REQUIRE([AC_PROG_CC])dnl
--AC_REQUIRE([AC_CANONICAL_HOST])dnl
--# Prepare PATH_SEPARATOR.
--# The user is always right.
--if test "${PATH_SEPARATOR+set}" != set; then
-- echo "#! /bin/sh" >conf$$.sh
-- echo "exit 0" >>conf$$.sh
-- chmod +x conf$$.sh
-- if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-- PATH_SEPARATOR=';'
-- else
-- PATH_SEPARATOR=:
-- fi
-- rm -f conf$$.sh
--fi
--ac_prog=ld
--if test "$GCC" = yes; then
-- # Check if gcc -print-prog-name=ld gives a path.
-- AC_MSG_CHECKING([for ld used by GCC])
-- case $host in
-- *-*-mingw*)
-- # gcc leaves a trailing carriage return which upsets mingw
-- ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
-- *)
-- ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
-- esac
-- case $ac_prog in
-- # Accept absolute paths.
-- [[\\/]* | [A-Za-z]:[\\/]*)]
-- [re_direlt='/[^/][^/]*/\.\./']
-- # Canonicalize the path of ld
-- ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
-- while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
-- ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
-- done
-- test -z "$LD" && LD="$ac_prog"
-- ;;
-- "")
-- # If it fails, then pretend we aren't using GCC.
-- ac_prog=ld
-- ;;
-- *)
-- # If it is relative, then search for the first ld in PATH.
-- with_gnu_ld=unknown
-- ;;
-- esac
--elif test "$with_gnu_ld" = yes; then
-- AC_MSG_CHECKING([for GNU ld])
--else
-- AC_MSG_CHECKING([for non-GNU ld])
--fi
--AC_CACHE_VAL(acl_cv_path_LD,
--[if test -z "$LD"; then
-- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
-- for ac_dir in $PATH; do
-- test -z "$ac_dir" && ac_dir=.
-- if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
-- acl_cv_path_LD="$ac_dir/$ac_prog"
-- # Check to see if the program is GNU ld. I'd rather use --version,
-- # but apparently some GNU ld's only accept -v.
-- # Break only if it was the GNU/non-GNU ld that we prefer.
-- case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in
-- *GNU* | *'with BFD'*)
-- test "$with_gnu_ld" != no && break ;;
-- *)
-- test "$with_gnu_ld" != yes && break ;;
-- esac
-- fi
-- done
-- IFS="$ac_save_ifs"
--else
-- acl_cv_path_LD="$LD" # Let the user override the test with a path.
--fi])
--LD="$acl_cv_path_LD"
--if test -n "$LD"; then
-- AC_MSG_RESULT($LD)
--else
-- AC_MSG_RESULT(no)
--fi
--test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
--AC_LIB_PROG_LD_GNU
--])
-diff --git config.h.in config.h.in
-deleted file mode 100644
-index ceeab28..0000000
---- config.h.in
-+++ /dev/null
-@@ -1 +0,0 @@
--/* config.h.in. Generated automatically from configure.in by autoheader 2.13. */
-diff --git configure configure
-deleted file mode 100755
-index 7cc8d0a..0000000
---- configure
-+++ /dev/null
-@@ -1,4739 +0,0 @@
--#! /bin/sh
--# Guess values for system-dependent variables and create Makefiles.
--# Generated by GNU Autoconf 2.59 for FULL-PACKAGE-NAME VERSION.
--#
--# Report bugs to <BUG-REPORT-ADDRESS>.
--#
--# Copyright (C) 2003 Free Software Foundation, Inc.
--# This configure script is free software; the Free Software Foundation
--# gives unlimited permission to copy, distribute and modify it.
--## --------------------- ##
--## M4sh Initialization. ##
--## --------------------- ##
--
--# Be Bourne compatible
--if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
-- emulate sh
-- NULLCMD=:
-- # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
-- # is contrary to our usage. Disable this feature.
-- alias -g '${1+"$@"}'='"$@"'
--elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
-- set -o posix
--fi
--DUALCASE=1; export DUALCASE # for MKS sh
--
--# Support unset when possible.
--if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
-- as_unset=unset
--else
-- as_unset=false
--fi
--
--
--# Work around bugs in pre-3.0 UWIN ksh.
--$as_unset ENV MAIL MAILPATH
--PS1='$ '
--PS2='> '
--PS4='+ '
--
--# NLS nuisances.
--for as_var in \
-- LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
-- LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
-- LC_TELEPHONE LC_TIME
--do
-- if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
-- eval $as_var=C; export $as_var
-- else
-- $as_unset $as_var
-- fi
--done
--
--# Required to use basename.
--if expr a : '\(a\)' >/dev/null 2>&1; then
-- as_expr=expr
--else
-- as_expr=false
--fi
--
--if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
-- as_basename=basename
--else
-- as_basename=false
--fi
--
--
--# Name of the executable.
--as_me=`$as_basename "$0" ||
--$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
-- X"$0" : 'X\(//\)$' \| \
-- X"$0" : 'X\(/\)$' \| \
-- . : '\(.\)' 2>/dev/null ||
--echo X/"$0" |
-- sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
-- /^X\/\(\/\/\)$/{ s//\1/; q; }
-- /^X\/\(\/\).*/{ s//\1/; q; }
-- s/.*/./; q'`
--
--
--# PATH needs CR, and LINENO needs CR and PATH.
--# Avoid depending upon Character Ranges.
--as_cr_letters='abcdefghijklmnopqrstuvwxyz'
--as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
--as_cr_Letters=$as_cr_letters$as_cr_LETTERS
--as_cr_digits='0123456789'
--as_cr_alnum=$as_cr_Letters$as_cr_digits
--
--# The user is always right.
--if test "${PATH_SEPARATOR+set}" != set; then
-- echo "#! /bin/sh" >conf$$.sh
-- echo "exit 0" >>conf$$.sh
-- chmod +x conf$$.sh
-- if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-- PATH_SEPARATOR=';'
-- else
-- PATH_SEPARATOR=:
-- fi
-- rm -f conf$$.sh
--fi
--
--
-- as_lineno_1=$LINENO
-- as_lineno_2=$LINENO
-- as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-- test "x$as_lineno_1" != "x$as_lineno_2" &&
-- test "x$as_lineno_3" = "x$as_lineno_2" || {
-- # Find who we are. Look in the path if we contain no path at all
-- # relative or not.
-- case $0 in
-- *[\\/]* ) as_myself=$0 ;;
-- *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
--for as_dir in $PATH
--do
-- IFS=$as_save_IFS
-- test -z "$as_dir" && as_dir=.
-- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
--done
--
-- ;;
-- esac
-- # We did not find ourselves, most probably we were run as `sh COMMAND'
-- # in which case we are not to be found in the path.
-- if test "x$as_myself" = x; then
-- as_myself=$0
-- fi
-- if test ! -f "$as_myself"; then
-- { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2
-- { (exit 1); exit 1; }; }
-- fi
-- case $CONFIG_SHELL in
-- '')
-- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
--for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
--do
-- IFS=$as_save_IFS
-- test -z "$as_dir" && as_dir=.
-- for as_base in sh bash ksh sh5; do
-- case $as_dir in
-- /*)
-- if ("$as_dir/$as_base" -c '
-- as_lineno_1=$LINENO
-- as_lineno_2=$LINENO
-- as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-- test "x$as_lineno_1" != "x$as_lineno_2" &&
-- test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then
-- $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
-- $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
-- CONFIG_SHELL=$as_dir/$as_base
-- export CONFIG_SHELL
-- exec "$CONFIG_SHELL" "$0" ${1+"$@"}
-- fi;;
-- esac
-- done
--done
--;;
-- esac
--
-- # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
-- # uniformly replaced by the line number. The first 'sed' inserts a
-- # line-number line before each line; the second 'sed' does the real
-- # work. The second script uses 'N' to pair each line-number line
-- # with the numbered line, and appends trailing '-' during
-- # substitution so that $LINENO is not a special case at line end.
-- # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
-- # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-)
-- sed '=' <$as_myself |
-- sed '
-- N
-- s,$,-,
-- : loop
-- s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
-- t loop
-- s,-$,,
-- s,^['$as_cr_digits']*\n,,
-- ' >$as_me.lineno &&
-- chmod +x $as_me.lineno ||
-- { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
-- { (exit 1); exit 1; }; }
--
-- # Don't try to exec as it changes $[0], causing all sort of problems
-- # (the dirname of $[0] is not the place where we might find the
-- # original and so on. Autoconf is especially sensible to this).
-- . ./$as_me.lineno
-- # Exit status is that of the last command.
-- exit
--}
--
--
--case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
-- *c*,-n*) ECHO_N= ECHO_C='
--' ECHO_T=' ' ;;
-- *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
-- *) ECHO_N= ECHO_C='\c' ECHO_T= ;;
--esac
--
--if expr a : '\(a\)' >/dev/null 2>&1; then
-- as_expr=expr
--else
-- as_expr=false
--fi
--
--rm -f conf$$ conf$$.exe conf$$.file
--echo >conf$$.file
--if ln -s conf$$.file conf$$ 2>/dev/null; then
-- # We could just check for DJGPP; but this test a) works b) is more generic
-- # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
-- if test -f conf$$.exe; then
-- # Don't use ln at all; we don't have any links
-- as_ln_s='cp -p'
-- else
-- as_ln_s='ln -s'
-- fi
--elif ln conf$$.file conf$$ 2>/dev/null; then
-- as_ln_s=ln
--else
-- as_ln_s='cp -p'
--fi
--rm -f conf$$ conf$$.exe conf$$.file
--
--if mkdir -p . 2>/dev/null; then
-- as_mkdir_p=:
--else
-- test -d ./-p && rmdir ./-p
-- as_mkdir_p=false
--fi
--
--as_executable_p="test -f"
--
--# Sed expression to map a string onto a valid CPP name.
--as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
--
--# Sed expression to map a string onto a valid variable name.
--as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
--
--
--# IFS
--# We need space, tab and new line, in precisely that order.
--as_nl='
--'
--IFS=" $as_nl"
--
--# CDPATH.
--$as_unset CDPATH
--
--
--# Name of the host.
--# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
--# so uname gets run too.
--ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
--
--exec 6>&1
--
--#
--# Initializations.
--#
--ac_default_prefix=/usr/local
--ac_config_libobj_dir=.
--cross_compiling=no
--subdirs=
--MFLAGS=
--MAKEFLAGS=
--SHELL=${CONFIG_SHELL-/bin/sh}
--
--# Maximum number of lines to put in a shell here document.
--# This variable seems obsolete. It should probably be removed, and
--# only ac_max_sed_lines should be used.
--: ${ac_max_here_lines=38}
--
--# Identity of this package.
--PACKAGE_NAME='FULL-PACKAGE-NAME'
--PACKAGE_TARNAME='full-package-name'
--PACKAGE_VERSION='VERSION'
--PACKAGE_STRING='FULL-PACKAGE-NAME VERSION'
--PACKAGE_BUGREPORT='BUG-REPORT-ADDRESS'
--
--ac_unique_file="iptables-snmp.c"
--# Factoring default headers for most tests.
--ac_includes_default="\
--#include <stdio.h>
--#if HAVE_SYS_TYPES_H
--# include <sys/types.h>
--#endif
--#if HAVE_SYS_STAT_H
--# include <sys/stat.h>
--#endif
--#if STDC_HEADERS
--# include <stdlib.h>
--# include <stddef.h>
--#else
--# if HAVE_STDLIB_H
--# include <stdlib.h>
--# endif
--#endif
--#if HAVE_STRING_H
--# if !STDC_HEADERS && HAVE_MEMORY_H
--# include <memory.h>
--# endif
--# include <string.h>
--#endif
--#if HAVE_STRINGS_H
--# include <strings.h>
--#endif
--#if HAVE_INTTYPES_H
--# include <inttypes.h>
--#else
--# if HAVE_STDINT_H
--# include <stdint.h>
--# endif
--#endif
--#if HAVE_UNISTD_H
--# include <unistd.h>
--#endif"
--
--ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP EGREP LIBOBJS INSTALL ac_ct_INSTALL LTLIBOBJS'
--ac_subst_files=''
--
--# Initialize some variables set by options.
--ac_init_help=
--ac_init_version=false
--# The variables have the same names as the options, with
--# dashes changed to underlines.
--cache_file=/dev/null
--exec_prefix=NONE
--no_create=
--no_recursion=
--prefix=NONE
--program_prefix=NONE
--program_suffix=NONE
--program_transform_name=s,x,x,
--silent=
--site=
--srcdir=
--verbose=
--x_includes=NONE
--x_libraries=NONE
--
--# Installation directory options.
--# These are left unexpanded so users can "make install exec_prefix=/foo"
--# and all the variables that are supposed to be based on exec_prefix
--# by default will actually change.
--# Use braces instead of parens because sh, perl, etc. also accept them.
--bindir='${exec_prefix}/bin'
--sbindir='${exec_prefix}/sbin'
--libexecdir='${exec_prefix}/libexec'
--datadir='${prefix}/share'
--sysconfdir='${prefix}/etc'
--sharedstatedir='${prefix}/com'
--localstatedir='${prefix}/var'
--libdir='${exec_prefix}/lib'
--includedir='${prefix}/include'
--oldincludedir='/usr/include'
--infodir='${prefix}/info'
--mandir='${prefix}/man'
--
--ac_prev=
--for ac_option
--do
-- # If the previous option needs an argument, assign it.
-- if test -n "$ac_prev"; then
-- eval "$ac_prev=\$ac_option"
-- ac_prev=
-- continue
-- fi
--
-- ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
--
-- # Accept the important Cygnus configure options, so we can diagnose typos.
--
-- case $ac_option in
--
-- -bindir | --bindir | --bindi | --bind | --bin | --bi)
-- ac_prev=bindir ;;
-- -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
-- bindir=$ac_optarg ;;
--
-- -build | --build | --buil | --bui | --bu)
-- ac_prev=build_alias ;;
-- -build=* | --build=* | --buil=* | --bui=* | --bu=*)
-- build_alias=$ac_optarg ;;
--
-- -cache-file | --cache-file | --cache-fil | --cache-fi \
-- | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
-- ac_prev=cache_file ;;
-- -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
-- | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
-- cache_file=$ac_optarg ;;
--
-- --config-cache | -C)
-- cache_file=config.cache ;;
--
-- -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
-- ac_prev=datadir ;;
-- -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
-- | --da=*)
-- datadir=$ac_optarg ;;
--
-- -disable-* | --disable-*)
-- ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
-- # Reject names that are not valid shell variable names.
-- expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-- { echo "$as_me: error: invalid feature name: $ac_feature" >&2
-- { (exit 1); exit 1; }; }
-- ac_feature=`echo $ac_feature | sed 's/-/_/g'`
-- eval "enable_$ac_feature=no" ;;
--
-- -enable-* | --enable-*)
-- ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
-- # Reject names that are not valid shell variable names.
-- expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-- { echo "$as_me: error: invalid feature name: $ac_feature" >&2
-- { (exit 1); exit 1; }; }
-- ac_feature=`echo $ac_feature | sed 's/-/_/g'`
-- case $ac_option in
-- *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
-- *) ac_optarg=yes ;;
-- esac
-- eval "enable_$ac_feature='$ac_optarg'" ;;
--
-- -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
-- | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
-- | --exec | --exe | --ex)
-- ac_prev=exec_prefix ;;
-- -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
-- | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
-- | --exec=* | --exe=* | --ex=*)
-- exec_prefix=$ac_optarg ;;
--
-- -gas | --gas | --ga | --g)
-- # Obsolete; use --with-gas.
-- with_gas=yes ;;
--
-- -help | --help | --hel | --he | -h)
-- ac_init_help=long ;;
-- -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
-- ac_init_help=recursive ;;
-- -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
-- ac_init_help=short ;;
--
-- -host | --host | --hos | --ho)
-- ac_prev=host_alias ;;
-- -host=* | --host=* | --hos=* | --ho=*)
-- host_alias=$ac_optarg ;;
--
-- -includedir | --includedir | --includedi | --included | --include \
-- | --includ | --inclu | --incl | --inc)
-- ac_prev=includedir ;;
-- -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
-- | --includ=* | --inclu=* | --incl=* | --inc=*)
-- includedir=$ac_optarg ;;
--
-- -infodir | --infodir | --infodi | --infod | --info | --inf)
-- ac_prev=infodir ;;
-- -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
-- infodir=$ac_optarg ;;
--
-- -libdir | --libdir | --libdi | --libd)
-- ac_prev=libdir ;;
-- -libdir=* | --libdir=* | --libdi=* | --libd=*)
-- libdir=$ac_optarg ;;
--
-- -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
-- | --libexe | --libex | --libe)
-- ac_prev=libexecdir ;;
-- -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
-- | --libexe=* | --libex=* | --libe=*)
-- libexecdir=$ac_optarg ;;
--
-- -localstatedir | --localstatedir | --localstatedi | --localstated \
-- | --localstate | --localstat | --localsta | --localst \
-- | --locals | --local | --loca | --loc | --lo)
-- ac_prev=localstatedir ;;
-- -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
-- | --localstate=* | --localstat=* | --localsta=* | --localst=* \
-- | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
-- localstatedir=$ac_optarg ;;
--
-- -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
-- ac_prev=mandir ;;
-- -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
-- mandir=$ac_optarg ;;
--
-- -nfp | --nfp | --nf)
-- # Obsolete; use --without-fp.
-- with_fp=no ;;
--
-- -no-create | --no-create | --no-creat | --no-crea | --no-cre \
-- | --no-cr | --no-c | -n)
-- no_create=yes ;;
--
-- -no-recursion | --no-recursion | --no-recursio | --no-recursi \
-- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
-- no_recursion=yes ;;
--
-- -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
-- | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
-- | --oldin | --oldi | --old | --ol | --o)
-- ac_prev=oldincludedir ;;
-- -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
-- | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
-- | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
-- oldincludedir=$ac_optarg ;;
--
-- -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
-- ac_prev=prefix ;;
-- -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
-- prefix=$ac_optarg ;;
--
-- -program-prefix | --program-prefix | --program-prefi | --program-pref \
-- | --program-pre | --program-pr | --program-p)
-- ac_prev=program_prefix ;;
-- -program-prefix=* | --program-prefix=* | --program-prefi=* \
-- | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
-- program_prefix=$ac_optarg ;;
--
-- -program-suffix | --program-suffix | --program-suffi | --program-suff \
-- | --program-suf | --program-su | --program-s)
-- ac_prev=program_suffix ;;
-- -program-suffix=* | --program-suffix=* | --program-suffi=* \
-- | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
-- program_suffix=$ac_optarg ;;
--
-- -program-transform-name | --program-transform-name \
-- | --program-transform-nam | --program-transform-na \
-- | --program-transform-n | --program-transform- \
-- | --program-transform | --program-transfor \
-- | --program-transfo | --program-transf \
-- | --program-trans | --program-tran \
-- | --progr-tra | --program-tr | --program-t)
-- ac_prev=program_transform_name ;;
-- -program-transform-name=* | --program-transform-name=* \
-- | --program-transform-nam=* | --program-transform-na=* \
-- | --program-transform-n=* | --program-transform-=* \
-- | --program-transform=* | --program-transfor=* \
-- | --program-transfo=* | --program-transf=* \
-- | --program-trans=* | --program-tran=* \
-- | --progr-tra=* | --program-tr=* | --program-t=*)
-- program_transform_name=$ac_optarg ;;
--
-- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-- | -silent | --silent | --silen | --sile | --sil)
-- silent=yes ;;
--
-- -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
-- ac_prev=sbindir ;;
-- -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
-- | --sbi=* | --sb=*)
-- sbindir=$ac_optarg ;;
--
-- -sharedstatedir | --sharedstatedir | --sharedstatedi \
-- | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
-- | --sharedst | --shareds | --shared | --share | --shar \
-- | --sha | --sh)
-- ac_prev=sharedstatedir ;;
-- -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
-- | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
-- | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
-- | --sha=* | --sh=*)
-- sharedstatedir=$ac_optarg ;;
--
-- -site | --site | --sit)
-- ac_prev=site ;;
-- -site=* | --site=* | --sit=*)
-- site=$ac_optarg ;;
--
-- -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
-- ac_prev=srcdir ;;
-- -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
-- srcdir=$ac_optarg ;;
--
-- -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
-- | --syscon | --sysco | --sysc | --sys | --sy)
-- ac_prev=sysconfdir ;;
-- -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
-- | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
-- sysconfdir=$ac_optarg ;;
--
-- -target | --target | --targe | --targ | --tar | --ta | --t)
-- ac_prev=target_alias ;;
-- -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
-- target_alias=$ac_optarg ;;
--
-- -v | -verbose | --verbose | --verbos | --verbo | --verb)
-- verbose=yes ;;
--
-- -version | --version | --versio | --versi | --vers | -V)
-- ac_init_version=: ;;
--
-- -with-* | --with-*)
-- ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
-- # Reject names that are not valid shell variable names.
-- expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-- { echo "$as_me: error: invalid package name: $ac_package" >&2
-- { (exit 1); exit 1; }; }
-- ac_package=`echo $ac_package| sed 's/-/_/g'`
-- case $ac_option in
-- *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
-- *) ac_optarg=yes ;;
-- esac
-- eval "with_$ac_package='$ac_optarg'" ;;
--
-- -without-* | --without-*)
-- ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
-- # Reject names that are not valid shell variable names.
-- expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-- { echo "$as_me: error: invalid package name: $ac_package" >&2
-- { (exit 1); exit 1; }; }
-- ac_package=`echo $ac_package | sed 's/-/_/g'`
-- eval "with_$ac_package=no" ;;
--
-- --x)
-- # Obsolete; use --with-x.
-- with_x=yes ;;
--
-- -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
-- | --x-incl | --x-inc | --x-in | --x-i)
-- ac_prev=x_includes ;;
-- -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
-- | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
-- x_includes=$ac_optarg ;;
--
-- -x-libraries | --x-libraries | --x-librarie | --x-librari \
-- | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
-- ac_prev=x_libraries ;;
-- -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
-- | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
-- x_libraries=$ac_optarg ;;
--
-- -*) { echo "$as_me: error: unrecognized option: $ac_option
--Try \`$0 --help' for more information." >&2
-- { (exit 1); exit 1; }; }
-- ;;
--
-- *=*)
-- ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
-- # Reject names that are not valid shell variable names.
-- expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
-- { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
-- { (exit 1); exit 1; }; }
-- ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`
-- eval "$ac_envvar='$ac_optarg'"
-- export $ac_envvar ;;
--
-- *)
-- # FIXME: should be removed in autoconf 3.0.
-- echo "$as_me: WARNING: you should use --build, --host, --target" >&2
-- expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
-- echo "$as_me: WARNING: invalid host type: $ac_option" >&2
-- : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
-- ;;
--
-- esac
--done
--
--if test -n "$ac_prev"; then
-- ac_option=--`echo $ac_prev | sed 's/_/-/g'`
-- { echo "$as_me: error: missing argument to $ac_option" >&2
-- { (exit 1); exit 1; }; }
--fi
--
--# Be sure to have absolute paths.
--for ac_var in exec_prefix prefix
--do
-- eval ac_val=$`echo $ac_var`
-- case $ac_val in
-- [\\/$]* | ?:[\\/]* | NONE | '' ) ;;
-- *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
-- { (exit 1); exit 1; }; };;
-- esac
--done
--
--# Be sure to have absolute paths.
--for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
-- localstatedir libdir includedir oldincludedir infodir mandir
--do
-- eval ac_val=$`echo $ac_var`
-- case $ac_val in
-- [\\/$]* | ?:[\\/]* ) ;;
-- *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
-- { (exit 1); exit 1; }; };;
-- esac
--done
--
--# There might be people who depend on the old broken behavior: `$host'
--# used to hold the argument of --host etc.
--# FIXME: To remove some day.
--build=$build_alias
--host=$host_alias
--target=$target_alias
--
--# FIXME: To remove some day.
--if test "x$host_alias" != x; then
-- if test "x$build_alias" = x; then
-- cross_compiling=maybe
-- echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
-- If a cross compiler is detected then cross compile mode will be used." >&2
-- elif test "x$build_alias" != "x$host_alias"; then
-- cross_compiling=yes
-- fi
--fi
--
--ac_tool_prefix=
--test -n "$host_alias" && ac_tool_prefix=$host_alias-
--
--test "$silent" = yes && exec 6>/dev/null
--
--
--# Find the source files, if location was not specified.
--if test -z "$srcdir"; then
-- ac_srcdir_defaulted=yes
-- # Try the directory containing this script, then its parent.
-- ac_confdir=`(dirname "$0") 2>/dev/null ||
--$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-- X"$0" : 'X\(//\)[^/]' \| \
-- X"$0" : 'X\(//\)$' \| \
-- X"$0" : 'X\(/\)' \| \
-- . : '\(.\)' 2>/dev/null ||
--echo X"$0" |
-- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-- /^X\(\/\/\)$/{ s//\1/; q; }
-- /^X\(\/\).*/{ s//\1/; q; }
-- s/.*/./; q'`
-- srcdir=$ac_confdir
-- if test ! -r $srcdir/$ac_unique_file; then
-- srcdir=..
-- fi
--else
-- ac_srcdir_defaulted=no
--fi
--if test ! -r $srcdir/$ac_unique_file; then
-- if test "$ac_srcdir_defaulted" = yes; then
-- { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2
-- { (exit 1); exit 1; }; }
-- else
-- { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
-- { (exit 1); exit 1; }; }
-- fi
--fi
--(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null ||
-- { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2
-- { (exit 1); exit 1; }; }
--srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
--ac_env_build_alias_set=${build_alias+set}
--ac_env_build_alias_value=$build_alias
--ac_cv_env_build_alias_set=${build_alias+set}
--ac_cv_env_build_alias_value=$build_alias
--ac_env_host_alias_set=${host_alias+set}
--ac_env_host_alias_value=$host_alias
--ac_cv_env_host_alias_set=${host_alias+set}
--ac_cv_env_host_alias_value=$host_alias
--ac_env_target_alias_set=${target_alias+set}
--ac_env_target_alias_value=$target_alias
--ac_cv_env_target_alias_set=${target_alias+set}
--ac_cv_env_target_alias_value=$target_alias
--ac_env_CC_set=${CC+set}
--ac_env_CC_value=$CC
--ac_cv_env_CC_set=${CC+set}
--ac_cv_env_CC_value=$CC
--ac_env_CFLAGS_set=${CFLAGS+set}
--ac_env_CFLAGS_value=$CFLAGS
--ac_cv_env_CFLAGS_set=${CFLAGS+set}
--ac_cv_env_CFLAGS_value=$CFLAGS
--ac_env_LDFLAGS_set=${LDFLAGS+set}
--ac_env_LDFLAGS_value=$LDFLAGS
--ac_cv_env_LDFLAGS_set=${LDFLAGS+set}
--ac_cv_env_LDFLAGS_value=$LDFLAGS
--ac_env_CPPFLAGS_set=${CPPFLAGS+set}
--ac_env_CPPFLAGS_value=$CPPFLAGS
--ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set}
--ac_cv_env_CPPFLAGS_value=$CPPFLAGS
--ac_env_CPP_set=${CPP+set}
--ac_env_CPP_value=$CPP
--ac_cv_env_CPP_set=${CPP+set}
--ac_cv_env_CPP_value=$CPP
--
--#
--# Report the --help message.
--#
--if test "$ac_init_help" = "long"; then
-- # Omit some internal or obsolete options to make the list less imposing.
-- # This message is too long to be a string in the A/UX 3.1 sh.
-- cat <<_ACEOF
--\`configure' configures FULL-PACKAGE-NAME VERSION to adapt to many kinds of systems.
--
--Usage: $0 [OPTION]... [VAR=VALUE]...
--
--To assign environment variables (e.g., CC, CFLAGS...), specify them as
--VAR=VALUE. See below for descriptions of some of the useful variables.
--
--Defaults for the options are specified in brackets.
--
--Configuration:
-- -h, --help display this help and exit
-- --help=short display options specific to this package
-- --help=recursive display the short help of all the included packages
-- -V, --version display version information and exit
-- -q, --quiet, --silent do not print \`checking...' messages
-- --cache-file=FILE cache test results in FILE [disabled]
-- -C, --config-cache alias for \`--cache-file=config.cache'
-- -n, --no-create do not create output files
-- --srcdir=DIR find the sources in DIR [configure dir or \`..']
--
--_ACEOF
--
-- cat <<_ACEOF
--Installation directories:
-- --prefix=PREFIX install architecture-independent files in PREFIX
-- [$ac_default_prefix]
-- --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
-- [PREFIX]
--
--By default, \`make install' will install all the files in
--\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
--an installation prefix other than \`$ac_default_prefix' using \`--prefix',
--for instance \`--prefix=\$HOME'.
--
--For better control, use the options below.
--
--Fine tuning of the installation directories:
-- --bindir=DIR user executables [EPREFIX/bin]
-- --sbindir=DIR system admin executables [EPREFIX/sbin]
-- --libexecdir=DIR program executables [EPREFIX/libexec]
-- --datadir=DIR read-only architecture-independent data [PREFIX/share]
-- --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
-- --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
-- --localstatedir=DIR modifiable single-machine data [PREFIX/var]
-- --libdir=DIR object code libraries [EPREFIX/lib]
-- --includedir=DIR C header files [PREFIX/include]
-- --oldincludedir=DIR C header files for non-gcc [/usr/include]
-- --infodir=DIR info documentation [PREFIX/info]
-- --mandir=DIR man documentation [PREFIX/man]
--_ACEOF
--
-- cat <<\_ACEOF
--_ACEOF
--fi
--
--if test -n "$ac_init_help"; then
-- case $ac_init_help in
-- short | recursive ) echo "Configuration of FULL-PACKAGE-NAME VERSION:";;
-- esac
-- cat <<\_ACEOF
--
--Some influential environment variables:
-- CC C compiler command
-- CFLAGS C compiler flags
-- LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
-- nonstandard directory <lib dir>
-- CPPFLAGS C/C++ preprocessor flags, e.g. -I<include dir> if you have
-- headers in a nonstandard directory <include dir>
-- CPP C preprocessor
--
--Use these variables to override the choices made by `configure' or to help
--it to find libraries and programs with nonstandard names/locations.
--
--Report bugs to <BUG-REPORT-ADDRESS>.
--_ACEOF
--fi
--
--if test "$ac_init_help" = "recursive"; then
-- # If there are subdirs, report their specific --help.
-- ac_popdir=`pwd`
-- for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
-- test -d $ac_dir || continue
-- ac_builddir=.
--
--if test "$ac_dir" != .; then
-- ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
-- # A "../" for each directory in $ac_dir_suffix.
-- ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
--else
-- ac_dir_suffix= ac_top_builddir=
--fi
--
--case $srcdir in
-- .) # No --srcdir option. We are building in place.
-- ac_srcdir=.
-- if test -z "$ac_top_builddir"; then
-- ac_top_srcdir=.
-- else
-- ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
-- fi ;;
-- [\\/]* | ?:[\\/]* ) # Absolute path.
-- ac_srcdir=$srcdir$ac_dir_suffix;
-- ac_top_srcdir=$srcdir ;;
-- *) # Relative path.
-- ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
-- ac_top_srcdir=$ac_top_builddir$srcdir ;;
--esac
--
--# Do not use `cd foo && pwd` to compute absolute paths, because
--# the directories may not exist.
--case `pwd` in
--.) ac_abs_builddir="$ac_dir";;
--*)
-- case "$ac_dir" in
-- .) ac_abs_builddir=`pwd`;;
-- [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
-- *) ac_abs_builddir=`pwd`/"$ac_dir";;
-- esac;;
--esac
--case $ac_abs_builddir in
--.) ac_abs_top_builddir=${ac_top_builddir}.;;
--*)
-- case ${ac_top_builddir}. in
-- .) ac_abs_top_builddir=$ac_abs_builddir;;
-- [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
-- *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
-- esac;;
--esac
--case $ac_abs_builddir in
--.) ac_abs_srcdir=$ac_srcdir;;
--*)
-- case $ac_srcdir in
-- .) ac_abs_srcdir=$ac_abs_builddir;;
-- [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
-- *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
-- esac;;
--esac
--case $ac_abs_builddir in
--.) ac_abs_top_srcdir=$ac_top_srcdir;;
--*)
-- case $ac_top_srcdir in
-- .) ac_abs_top_srcdir=$ac_abs_builddir;;
-- [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
-- *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
-- esac;;
--esac
--
-- cd $ac_dir
-- # Check for guested configure; otherwise get Cygnus style configure.
-- if test -f $ac_srcdir/configure.gnu; then
-- echo
-- $SHELL $ac_srcdir/configure.gnu --help=recursive
-- elif test -f $ac_srcdir/configure; then
-- echo
-- $SHELL $ac_srcdir/configure --help=recursive
-- elif test -f $ac_srcdir/configure.ac ||
-- test -f $ac_srcdir/configure.in; then
-- echo
-- $ac_configure --help
-- else
-- echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
-- fi
-- cd "$ac_popdir"
-- done
--fi
--
--test -n "$ac_init_help" && exit 0
--if $ac_init_version; then
-- cat <<\_ACEOF
--FULL-PACKAGE-NAME configure VERSION
--generated by GNU Autoconf 2.59
--
--Copyright (C) 2003 Free Software Foundation, Inc.
--This configure script is free software; the Free Software Foundation
--gives unlimited permission to copy, distribute and modify it.
--_ACEOF
-- exit 0
--fi
--exec 5>config.log
--cat >&5 <<_ACEOF
--This file contains any messages produced by compilers while
--running configure, to aid debugging if configure makes a mistake.
--
--It was created by FULL-PACKAGE-NAME $as_me VERSION, which was
--generated by GNU Autoconf 2.59. Invocation command line was
--
-- $ $0 $@
--
--_ACEOF
--{
--cat <<_ASUNAME
--## --------- ##
--## Platform. ##
--## --------- ##
--
--hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
--uname -m = `(uname -m) 2>/dev/null || echo unknown`
--uname -r = `(uname -r) 2>/dev/null || echo unknown`
--uname -s = `(uname -s) 2>/dev/null || echo unknown`
--uname -v = `(uname -v) 2>/dev/null || echo unknown`
--
--/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
--/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
--
--/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
--/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
--/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
--hostinfo = `(hostinfo) 2>/dev/null || echo unknown`
--/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
--/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
--/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
--
--_ASUNAME
--
--as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
--for as_dir in $PATH
--do
-- IFS=$as_save_IFS
-- test -z "$as_dir" && as_dir=.
-- echo "PATH: $as_dir"
--done
--
--} >&5
--
--cat >&5 <<_ACEOF
--
--
--## ----------- ##
--## Core tests. ##
--## ----------- ##
--
--_ACEOF
--
--
--# Keep a trace of the command line.
--# Strip out --no-create and --no-recursion so they do not pile up.
--# Strip out --silent because we don't want to record it for future runs.
--# Also quote any args containing shell meta-characters.
--# Make two passes to allow for proper duplicate-argument suppression.
--ac_configure_args=
--ac_configure_args0=
--ac_configure_args1=
--ac_sep=
--ac_must_keep_next=false
--for ac_pass in 1 2
--do
-- for ac_arg
-- do
-- case $ac_arg in
-- -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
-- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-- | -silent | --silent | --silen | --sile | --sil)
-- continue ;;
-- *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
-- ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
-- esac
-- case $ac_pass in
-- 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
-- 2)
-- ac_configure_args1="$ac_configure_args1 '$ac_arg'"
-- if test $ac_must_keep_next = true; then
-- ac_must_keep_next=false # Got value, back to normal.
-- else
-- case $ac_arg in
-- *=* | --config-cache | -C | -disable-* | --disable-* \
-- | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
-- | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
-- | -with-* | --with-* | -without-* | --without-* | --x)
-- case "$ac_configure_args0 " in
-- "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
-- esac
-- ;;
-- -* ) ac_must_keep_next=true ;;
-- esac
-- fi
-- ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
-- # Get rid of the leading space.
-- ac_sep=" "
-- ;;
-- esac
-- done
--done
--$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
--$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
--
--# When interrupted or exit'd, cleanup temporary files, and complete
--# config.log. We remove comments because anyway the quotes in there
--# would cause problems or look ugly.
--# WARNING: Be sure not to use single quotes in there, as some shells,
--# such as our DU 5.0 friend, will then `close' the trap.
--trap 'exit_status=$?
-- # Save into config.log some information that might help in debugging.
-- {
-- echo
--
-- cat <<\_ASBOX
--## ---------------- ##
--## Cache variables. ##
--## ---------------- ##
--_ASBOX
-- echo
-- # The following way of writing the cache mishandles newlines in values,
--{
-- (set) 2>&1 |
-- case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
-- *ac_space=\ *)
-- sed -n \
-- "s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
-- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
-- ;;
-- *)
-- sed -n \
-- "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
-- ;;
-- esac;
--}
-- echo
--
-- cat <<\_ASBOX
--## ----------------- ##
--## Output variables. ##
--## ----------------- ##
--_ASBOX
-- echo
-- for ac_var in $ac_subst_vars
-- do
-- eval ac_val=$`echo $ac_var`
-- echo "$ac_var='"'"'$ac_val'"'"'"
-- done | sort
-- echo
--
-- if test -n "$ac_subst_files"; then
-- cat <<\_ASBOX
--## ------------- ##
--## Output files. ##
--## ------------- ##
--_ASBOX
-- echo
-- for ac_var in $ac_subst_files
-- do
-- eval ac_val=$`echo $ac_var`
-- echo "$ac_var='"'"'$ac_val'"'"'"
-- done | sort
-- echo
-- fi
--
-- if test -s confdefs.h; then
-- cat <<\_ASBOX
--## ----------- ##
--## confdefs.h. ##
--## ----------- ##
--_ASBOX
-- echo
-- sed "/^$/d" confdefs.h | sort
-- echo
-- fi
-- test "$ac_signal" != 0 &&
-- echo "$as_me: caught signal $ac_signal"
-- echo "$as_me: exit $exit_status"
-- } >&5
-- rm -f core *.core &&
-- rm -rf conftest* confdefs* conf$$* $ac_clean_files &&
-- exit $exit_status
-- ' 0
--for ac_signal in 1 2 13 15; do
-- trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
--done
--ac_signal=0
--
--# confdefs.h avoids OS command line length limits that DEFS can exceed.
--rm -rf conftest* confdefs.h
--# AIX cpp loses on an empty file, so make sure it contains at least a newline.
--echo >confdefs.h
--
--# Predefined preprocessor variables.
--
--cat >>confdefs.h <<_ACEOF
--#define PACKAGE_NAME "$PACKAGE_NAME"
--_ACEOF
--
--
--cat >>confdefs.h <<_ACEOF
--#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
--_ACEOF
--
--
--cat >>confdefs.h <<_ACEOF
--#define PACKAGE_VERSION "$PACKAGE_VERSION"
--_ACEOF
--
--
--cat >>confdefs.h <<_ACEOF
--#define PACKAGE_STRING "$PACKAGE_STRING"
--_ACEOF
--
--
--cat >>confdefs.h <<_ACEOF
--#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
--_ACEOF
--
--
--# Let the site file select an alternate cache file if it wants to.
--# Prefer explicitly selected file to automatically selected ones.
--if test -z "$CONFIG_SITE"; then
-- if test "x$prefix" != xNONE; then
-- CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
-- else
-- CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
-- fi
--fi
--for ac_site_file in $CONFIG_SITE; do
-- if test -r "$ac_site_file"; then
-- { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
--echo "$as_me: loading site script $ac_site_file" >&6;}
-- sed 's/^/| /' "$ac_site_file" >&5
-- . "$ac_site_file"
-- fi
--done
--
--if test -r "$cache_file"; then
-- # Some versions of bash will fail to source /dev/null (special
-- # files actually), so we avoid doing that.
-- if test -f "$cache_file"; then
-- { echo "$as_me:$LINENO: loading cache $cache_file" >&5
--echo "$as_me: loading cache $cache_file" >&6;}
-- case $cache_file in
-- [\\/]* | ?:[\\/]* ) . $cache_file;;
-- *) . ./$cache_file;;
-- esac
-- fi
--else
-- { echo "$as_me:$LINENO: creating cache $cache_file" >&5
--echo "$as_me: creating cache $cache_file" >&6;}
-- >$cache_file
--fi
--
--# Check that the precious variables saved in the cache have kept the same
--# value.
--ac_cache_corrupted=false
--for ac_var in `(set) 2>&1 |
-- sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
-- eval ac_old_set=\$ac_cv_env_${ac_var}_set
-- eval ac_new_set=\$ac_env_${ac_var}_set
-- eval ac_old_val="\$ac_cv_env_${ac_var}_value"
-- eval ac_new_val="\$ac_env_${ac_var}_value"
-- case $ac_old_set,$ac_new_set in
-- set,)
-- { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
--echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
-- ac_cache_corrupted=: ;;
-- ,set)
-- { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
--echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
-- ac_cache_corrupted=: ;;
-- ,);;
-- *)
-- if test "x$ac_old_val" != "x$ac_new_val"; then
-- { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
--echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
-- { echo "$as_me:$LINENO: former value: $ac_old_val" >&5
--echo "$as_me: former value: $ac_old_val" >&2;}
-- { echo "$as_me:$LINENO: current value: $ac_new_val" >&5
--echo "$as_me: current value: $ac_new_val" >&2;}
-- ac_cache_corrupted=:
-- fi;;
-- esac
-- # Pass precious variables to config.status.
-- if test "$ac_new_set" = set; then
-- case $ac_new_val in
-- *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
-- ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
-- *) ac_arg=$ac_var=$ac_new_val ;;
-- esac
-- case " $ac_configure_args " in
-- *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
-- *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
-- esac
-- fi
--done
--if $ac_cache_corrupted; then
-- { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
--echo "$as_me: error: changes in the environment can compromise the build" >&2;}
-- { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
--echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
-- { (exit 1); exit 1; }; }
--fi
--
--ac_ext=c
--ac_cpp='$CPP $CPPFLAGS'
--ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
--ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
--ac_compiler_gnu=$ac_cv_c_compiler_gnu
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ac_config_headers="$ac_config_headers config.h"
--
--
--# Checks for programs.
--ac_ext=c
--ac_cpp='$CPP $CPPFLAGS'
--ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
--ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
--ac_compiler_gnu=$ac_cv_c_compiler_gnu
--if test -n "$ac_tool_prefix"; then
-- # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
--set dummy ${ac_tool_prefix}gcc; ac_word=$2
--echo "$as_me:$LINENO: checking for $ac_word" >&5
--echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
--if test "${ac_cv_prog_CC+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-- if test -n "$CC"; then
-- ac_cv_prog_CC="$CC" # Let the user override the test.
--else
--as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
--for as_dir in $PATH
--do
-- IFS=$as_save_IFS
-- test -z "$as_dir" && as_dir=.
-- for ac_exec_ext in '' $ac_executable_extensions; do
-- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-- ac_cv_prog_CC="${ac_tool_prefix}gcc"
-- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-- break 2
-- fi
--done
--done
--
--fi
--fi
--CC=$ac_cv_prog_CC
--if test -n "$CC"; then
-- echo "$as_me:$LINENO: result: $CC" >&5
--echo "${ECHO_T}$CC" >&6
--else
-- echo "$as_me:$LINENO: result: no" >&5
--echo "${ECHO_T}no" >&6
--fi
--
--fi
--if test -z "$ac_cv_prog_CC"; then
-- ac_ct_CC=$CC
-- # Extract the first word of "gcc", so it can be a program name with args.
--set dummy gcc; ac_word=$2
--echo "$as_me:$LINENO: checking for $ac_word" >&5
--echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
--if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-- if test -n "$ac_ct_CC"; then
-- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
--else
--as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
--for as_dir in $PATH
--do
-- IFS=$as_save_IFS
-- test -z "$as_dir" && as_dir=.
-- for ac_exec_ext in '' $ac_executable_extensions; do
-- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-- ac_cv_prog_ac_ct_CC="gcc"
-- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-- break 2
-- fi
--done
--done
--
--fi
--fi
--ac_ct_CC=$ac_cv_prog_ac_ct_CC
--if test -n "$ac_ct_CC"; then
-- echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
--echo "${ECHO_T}$ac_ct_CC" >&6
--else
-- echo "$as_me:$LINENO: result: no" >&5
--echo "${ECHO_T}no" >&6
--fi
--
-- CC=$ac_ct_CC
--else
-- CC="$ac_cv_prog_CC"
--fi
--
--if test -z "$CC"; then
-- if test -n "$ac_tool_prefix"; then
-- # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
--set dummy ${ac_tool_prefix}cc; ac_word=$2
--echo "$as_me:$LINENO: checking for $ac_word" >&5
--echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
--if test "${ac_cv_prog_CC+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-- if test -n "$CC"; then
-- ac_cv_prog_CC="$CC" # Let the user override the test.
--else
--as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
--for as_dir in $PATH
--do
-- IFS=$as_save_IFS
-- test -z "$as_dir" && as_dir=.
-- for ac_exec_ext in '' $ac_executable_extensions; do
-- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-- ac_cv_prog_CC="${ac_tool_prefix}cc"
-- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-- break 2
-- fi
--done
--done
--
--fi
--fi
--CC=$ac_cv_prog_CC
--if test -n "$CC"; then
-- echo "$as_me:$LINENO: result: $CC" >&5
--echo "${ECHO_T}$CC" >&6
--else
-- echo "$as_me:$LINENO: result: no" >&5
--echo "${ECHO_T}no" >&6
--fi
--
--fi
--if test -z "$ac_cv_prog_CC"; then
-- ac_ct_CC=$CC
-- # Extract the first word of "cc", so it can be a program name with args.
--set dummy cc; ac_word=$2
--echo "$as_me:$LINENO: checking for $ac_word" >&5
--echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
--if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-- if test -n "$ac_ct_CC"; then
-- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
--else
--as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
--for as_dir in $PATH
--do
-- IFS=$as_save_IFS
-- test -z "$as_dir" && as_dir=.
-- for ac_exec_ext in '' $ac_executable_extensions; do
-- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-- ac_cv_prog_ac_ct_CC="cc"
-- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-- break 2
-- fi
--done
--done
--
--fi
--fi
--ac_ct_CC=$ac_cv_prog_ac_ct_CC
--if test -n "$ac_ct_CC"; then
-- echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
--echo "${ECHO_T}$ac_ct_CC" >&6
--else
-- echo "$as_me:$LINENO: result: no" >&5
--echo "${ECHO_T}no" >&6
--fi
--
-- CC=$ac_ct_CC
--else
-- CC="$ac_cv_prog_CC"
--fi
--
--fi
--if test -z "$CC"; then
-- # Extract the first word of "cc", so it can be a program name with args.
--set dummy cc; ac_word=$2
--echo "$as_me:$LINENO: checking for $ac_word" >&5
--echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
--if test "${ac_cv_prog_CC+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-- if test -n "$CC"; then
-- ac_cv_prog_CC="$CC" # Let the user override the test.
--else
-- ac_prog_rejected=no
--as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
--for as_dir in $PATH
--do
-- IFS=$as_save_IFS
-- test -z "$as_dir" && as_dir=.
-- for ac_exec_ext in '' $ac_executable_extensions; do
-- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-- if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
-- ac_prog_rejected=yes
-- continue
-- fi
-- ac_cv_prog_CC="cc"
-- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-- break 2
-- fi
--done
--done
--
--if test $ac_prog_rejected = yes; then
-- # We found a bogon in the path, so make sure we never use it.
-- set dummy $ac_cv_prog_CC
-- shift
-- if test $# != 0; then
-- # We chose a different compiler from the bogus one.
-- # However, it has the same basename, so the bogon will be chosen
-- # first if we set CC to just the basename; use the full file name.
-- shift
-- ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
-- fi
--fi
--fi
--fi
--CC=$ac_cv_prog_CC
--if test -n "$CC"; then
-- echo "$as_me:$LINENO: result: $CC" >&5
--echo "${ECHO_T}$CC" >&6
--else
-- echo "$as_me:$LINENO: result: no" >&5
--echo "${ECHO_T}no" >&6
--fi
--
--fi
--if test -z "$CC"; then
-- if test -n "$ac_tool_prefix"; then
-- for ac_prog in cl
-- do
-- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
--set dummy $ac_tool_prefix$ac_prog; ac_word=$2
--echo "$as_me:$LINENO: checking for $ac_word" >&5
--echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
--if test "${ac_cv_prog_CC+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-- if test -n "$CC"; then
-- ac_cv_prog_CC="$CC" # Let the user override the test.
--else
--as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
--for as_dir in $PATH
--do
-- IFS=$as_save_IFS
-- test -z "$as_dir" && as_dir=.
-- for ac_exec_ext in '' $ac_executable_extensions; do
-- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-- ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
-- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-- break 2
-- fi
--done
--done
--
--fi
--fi
--CC=$ac_cv_prog_CC
--if test -n "$CC"; then
-- echo "$as_me:$LINENO: result: $CC" >&5
--echo "${ECHO_T}$CC" >&6
--else
-- echo "$as_me:$LINENO: result: no" >&5
--echo "${ECHO_T}no" >&6
--fi
--
-- test -n "$CC" && break
-- done
--fi
--if test -z "$CC"; then
-- ac_ct_CC=$CC
-- for ac_prog in cl
--do
-- # Extract the first word of "$ac_prog", so it can be a program name with args.
--set dummy $ac_prog; ac_word=$2
--echo "$as_me:$LINENO: checking for $ac_word" >&5
--echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
--if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-- if test -n "$ac_ct_CC"; then
-- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
--else
--as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
--for as_dir in $PATH
--do
-- IFS=$as_save_IFS
-- test -z "$as_dir" && as_dir=.
-- for ac_exec_ext in '' $ac_executable_extensions; do
-- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-- ac_cv_prog_ac_ct_CC="$ac_prog"
-- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-- break 2
-- fi
--done
--done
--
--fi
--fi
--ac_ct_CC=$ac_cv_prog_ac_ct_CC
--if test -n "$ac_ct_CC"; then
-- echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
--echo "${ECHO_T}$ac_ct_CC" >&6
--else
-- echo "$as_me:$LINENO: result: no" >&5
--echo "${ECHO_T}no" >&6
--fi
--
-- test -n "$ac_ct_CC" && break
--done
--
-- CC=$ac_ct_CC
--fi
--
--fi
--
--
--test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
--See \`config.log' for more details." >&5
--echo "$as_me: error: no acceptable C compiler found in \$PATH
--See \`config.log' for more details." >&2;}
-- { (exit 1); exit 1; }; }
--
--# Provide some information about the compiler.
--echo "$as_me:$LINENO:" \
-- "checking for C compiler version" >&5
--ac_compiler=`set X $ac_compile; echo $2`
--{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
-- (eval $ac_compiler --version </dev/null >&5) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }
--{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
-- (eval $ac_compiler -v </dev/null >&5) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }
--{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
-- (eval $ac_compiler -V </dev/null >&5) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }
--
--cat >conftest.$ac_ext <<_ACEOF
--/* confdefs.h. */
--_ACEOF
--cat confdefs.h >>conftest.$ac_ext
--cat >>conftest.$ac_ext <<_ACEOF
--/* end confdefs.h. */
--
--int
--main ()
--{
--
-- ;
-- return 0;
--}
--_ACEOF
--ac_clean_files_save=$ac_clean_files
--ac_clean_files="$ac_clean_files a.out a.exe b.out"
--# Try to create an executable without -o first, disregard a.out.
--# It will help us diagnose broken compilers, and finding out an intuition
--# of exeext.
--echo "$as_me:$LINENO: checking for C compiler default output file name" >&5
--echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6
--ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
--if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5
-- (eval $ac_link_default) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; then
-- # Find the output, starting from the most likely. This scheme is
--# not robust to junk in `.', hence go to wildcards (a.*) only as a last
--# resort.
--
--# Be careful to initialize this variable, since it used to be cached.
--# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile.
--ac_cv_exeext=
--# b.out is created by i960 compilers.
--for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out
--do
-- test -f "$ac_file" || continue
-- case $ac_file in
-- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj )
-- ;;
-- conftest.$ac_ext )
-- # This is the source file.
-- ;;
-- [ab].out )
-- # We found the default executable, but exeext='' is most
-- # certainly right.
-- break;;
-- *.* )
-- ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
-- # FIXME: I believe we export ac_cv_exeext for Libtool,
-- # but it would be cool to find out if it's true. Does anybody
-- # maintain Libtool? --akim.
-- export ac_cv_exeext
-- break;;
-- * )
-- break;;
-- esac
--done
--else
-- echo "$as_me: failed program was:" >&5
--sed 's/^/| /' conftest.$ac_ext >&5
--
--{ { echo "$as_me:$LINENO: error: C compiler cannot create executables
--See \`config.log' for more details." >&5
--echo "$as_me: error: C compiler cannot create executables
--See \`config.log' for more details." >&2;}
-- { (exit 77); exit 77; }; }
--fi
--
--ac_exeext=$ac_cv_exeext
--echo "$as_me:$LINENO: result: $ac_file" >&5
--echo "${ECHO_T}$ac_file" >&6
--
--# Check the compiler produces executables we can run. If not, either
--# the compiler is broken, or we cross compile.
--echo "$as_me:$LINENO: checking whether the C compiler works" >&5
--echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6
--# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
--# If not cross compiling, check that we can run a simple program.
--if test "$cross_compiling" != yes; then
-- if { ac_try='./$ac_file'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-- cross_compiling=no
-- else
-- if test "$cross_compiling" = maybe; then
-- cross_compiling=yes
-- else
-- { { echo "$as_me:$LINENO: error: cannot run C compiled programs.
--If you meant to cross compile, use \`--host'.
--See \`config.log' for more details." >&5
--echo "$as_me: error: cannot run C compiled programs.
--If you meant to cross compile, use \`--host'.
--See \`config.log' for more details." >&2;}
-- { (exit 1); exit 1; }; }
-- fi
-- fi
--fi
--echo "$as_me:$LINENO: result: yes" >&5
--echo "${ECHO_T}yes" >&6
--
--rm -f a.out a.exe conftest$ac_cv_exeext b.out
--ac_clean_files=$ac_clean_files_save
--# Check the compiler produces executables we can run. If not, either
--# the compiler is broken, or we cross compile.
--echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
--echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
--echo "$as_me:$LINENO: result: $cross_compiling" >&5
--echo "${ECHO_T}$cross_compiling" >&6
--
--echo "$as_me:$LINENO: checking for suffix of executables" >&5
--echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6
--if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-- (eval $ac_link) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; then
-- # If both `conftest.exe' and `conftest' are `present' (well, observable)
--# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
--# work properly (i.e., refer to `conftest.exe'), while it won't with
--# `rm'.
--for ac_file in conftest.exe conftest conftest.*; do
-- test -f "$ac_file" || continue
-- case $ac_file in
-- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;;
-- *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
-- export ac_cv_exeext
-- break;;
-- * ) break;;
-- esac
--done
--else
-- { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
--See \`config.log' for more details." >&5
--echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
--See \`config.log' for more details." >&2;}
-- { (exit 1); exit 1; }; }
--fi
--
--rm -f conftest$ac_cv_exeext
--echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
--echo "${ECHO_T}$ac_cv_exeext" >&6
--
--rm -f conftest.$ac_ext
--EXEEXT=$ac_cv_exeext
--ac_exeext=$EXEEXT
--echo "$as_me:$LINENO: checking for suffix of object files" >&5
--echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6
--if test "${ac_cv_objext+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-- cat >conftest.$ac_ext <<_ACEOF
--/* confdefs.h. */
--_ACEOF
--cat confdefs.h >>conftest.$ac_ext
--cat >>conftest.$ac_ext <<_ACEOF
--/* end confdefs.h. */
--
--int
--main ()
--{
--
-- ;
-- return 0;
--}
--_ACEOF
--rm -f conftest.o conftest.obj
--if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-- (eval $ac_compile) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; then
-- for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
-- case $ac_file in
-- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;;
-- *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
-- break;;
-- esac
--done
--else
-- echo "$as_me: failed program was:" >&5
--sed 's/^/| /' conftest.$ac_ext >&5
--
--{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile
--See \`config.log' for more details." >&5
--echo "$as_me: error: cannot compute suffix of object files: cannot compile
--See \`config.log' for more details." >&2;}
-- { (exit 1); exit 1; }; }
--fi
--
--rm -f conftest.$ac_cv_objext conftest.$ac_ext
--fi
--echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
--echo "${ECHO_T}$ac_cv_objext" >&6
--OBJEXT=$ac_cv_objext
--ac_objext=$OBJEXT
--echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
--echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
--if test "${ac_cv_c_compiler_gnu+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-- cat >conftest.$ac_ext <<_ACEOF
--/* confdefs.h. */
--_ACEOF
--cat confdefs.h >>conftest.$ac_ext
--cat >>conftest.$ac_ext <<_ACEOF
--/* end confdefs.h. */
--
--int
--main ()
--{
--#ifndef __GNUC__
-- choke me
--#endif
--
-- ;
-- return 0;
--}
--_ACEOF
--rm -f conftest.$ac_objext
--if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-- (eval $ac_compile) 2>conftest.er1
-- ac_status=$?
-- grep -v '^ *+' conftest.er1 >conftest.err
-- rm -f conftest.er1
-- cat conftest.err >&5
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; } &&
-- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-- ac_compiler_gnu=yes
--else
-- echo "$as_me: failed program was:" >&5
--sed 's/^/| /' conftest.$ac_ext >&5
--
--ac_compiler_gnu=no
--fi
--rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
--ac_cv_c_compiler_gnu=$ac_compiler_gnu
--
--fi
--echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
--echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
--GCC=`test $ac_compiler_gnu = yes && echo yes`
--ac_test_CFLAGS=${CFLAGS+set}
--ac_save_CFLAGS=$CFLAGS
--CFLAGS="-g"
--echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
--echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
--if test "${ac_cv_prog_cc_g+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-- cat >conftest.$ac_ext <<_ACEOF
--/* confdefs.h. */
--_ACEOF
--cat confdefs.h >>conftest.$ac_ext
--cat >>conftest.$ac_ext <<_ACEOF
--/* end confdefs.h. */
--
--int
--main ()
--{
--
-- ;
-- return 0;
--}
--_ACEOF
--rm -f conftest.$ac_objext
--if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-- (eval $ac_compile) 2>conftest.er1
-- ac_status=$?
-- grep -v '^ *+' conftest.er1 >conftest.err
-- rm -f conftest.er1
-- cat conftest.err >&5
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; } &&
-- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-- ac_cv_prog_cc_g=yes
--else
-- echo "$as_me: failed program was:" >&5
--sed 's/^/| /' conftest.$ac_ext >&5
--
--ac_cv_prog_cc_g=no
--fi
--rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
--fi
--echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
--echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
--if test "$ac_test_CFLAGS" = set; then
-- CFLAGS=$ac_save_CFLAGS
--elif test $ac_cv_prog_cc_g = yes; then
-- if test "$GCC" = yes; then
-- CFLAGS="-g -O2"
-- else
-- CFLAGS="-g"
-- fi
--else
-- if test "$GCC" = yes; then
-- CFLAGS="-O2"
-- else
-- CFLAGS=
-- fi
--fi
--echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5
--echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
--if test "${ac_cv_prog_cc_stdc+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-- ac_cv_prog_cc_stdc=no
--ac_save_CC=$CC
--cat >conftest.$ac_ext <<_ACEOF
--/* confdefs.h. */
--_ACEOF
--cat confdefs.h >>conftest.$ac_ext
--cat >>conftest.$ac_ext <<_ACEOF
--/* end confdefs.h. */
--#include <stdarg.h>
--#include <stdio.h>
--#include <sys/types.h>
--#include <sys/stat.h>
--/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
--struct buf { int x; };
--FILE * (*rcsopen) (struct buf *, struct stat *, int);
--static char *e (p, i)
-- char **p;
-- int i;
--{
-- return p[i];
--}
--static char *f (char * (*g) (char **, int), char **p, ...)
--{
-- char *s;
-- va_list v;
-- va_start (v,p);
-- s = g (p, va_arg (v,int));
-- va_end (v);
-- return s;
--}
--
--/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
-- function prototypes and stuff, but not '\xHH' hex character constants.
-- These don't provoke an error unfortunately, instead are silently treated
-- as 'x'. The following induces an error, until -std1 is added to get
-- proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
-- array size at least. It's necessary to write '\x00'==0 to get something
-- that's true only with -std1. */
--int osf4_cc_array ['\x00' == 0 ? 1 : -1];
--
--int test (int i, double x);
--struct s1 {int (*f) (int a);};
--struct s2 {int (*f) (double a);};
--int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
--int argc;
--char **argv;
--int
--main ()
--{
--return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
-- ;
-- return 0;
--}
--_ACEOF
--# Don't try gcc -ansi; that turns off useful extensions and
--# breaks some systems' header files.
--# AIX -qlanglvl=ansi
--# Ultrix and OSF/1 -std1
--# HP-UX 10.20 and later -Ae
--# HP-UX older versions -Aa -D_HPUX_SOURCE
--# SVR4 -Xc -D__EXTENSIONS__
--for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
--do
-- CC="$ac_save_CC $ac_arg"
-- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-- (eval $ac_compile) 2>conftest.er1
-- ac_status=$?
-- grep -v '^ *+' conftest.er1 >conftest.err
-- rm -f conftest.er1
-- cat conftest.err >&5
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; } &&
-- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-- ac_cv_prog_cc_stdc=$ac_arg
--break
--else
-- echo "$as_me: failed program was:" >&5
--sed 's/^/| /' conftest.$ac_ext >&5
--
--fi
--rm -f conftest.err conftest.$ac_objext
--done
--rm -f conftest.$ac_ext conftest.$ac_objext
--CC=$ac_save_CC
--
--fi
--
--case "x$ac_cv_prog_cc_stdc" in
-- x|xno)
-- echo "$as_me:$LINENO: result: none needed" >&5
--echo "${ECHO_T}none needed" >&6 ;;
-- *)
-- echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5
--echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
-- CC="$CC $ac_cv_prog_cc_stdc" ;;
--esac
--
--# Some people use a C++ compiler to compile C. Since we use `exit',
--# in C++ we need to declare it. In case someone uses the same compiler
--# for both compiling C and C++ we need to have the C++ compiler decide
--# the declaration of exit, since it's the most demanding environment.
--cat >conftest.$ac_ext <<_ACEOF
--#ifndef __cplusplus
-- choke me
--#endif
--_ACEOF
--rm -f conftest.$ac_objext
--if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-- (eval $ac_compile) 2>conftest.er1
-- ac_status=$?
-- grep -v '^ *+' conftest.er1 >conftest.err
-- rm -f conftest.er1
-- cat conftest.err >&5
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; } &&
-- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-- for ac_declaration in \
-- '' \
-- 'extern "C" void std::exit (int) throw (); using std::exit;' \
-- 'extern "C" void std::exit (int); using std::exit;' \
-- 'extern "C" void exit (int) throw ();' \
-- 'extern "C" void exit (int);' \
-- 'void exit (int);'
--do
-- cat >conftest.$ac_ext <<_ACEOF
--/* confdefs.h. */
--_ACEOF
--cat confdefs.h >>conftest.$ac_ext
--cat >>conftest.$ac_ext <<_ACEOF
--/* end confdefs.h. */
--$ac_declaration
--#include <stdlib.h>
--int
--main ()
--{
--exit (42);
-- ;
-- return 0;
--}
--_ACEOF
--rm -f conftest.$ac_objext
--if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-- (eval $ac_compile) 2>conftest.er1
-- ac_status=$?
-- grep -v '^ *+' conftest.er1 >conftest.err
-- rm -f conftest.er1
-- cat conftest.err >&5
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; } &&
-- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-- :
--else
-- echo "$as_me: failed program was:" >&5
--sed 's/^/| /' conftest.$ac_ext >&5
--
--continue
--fi
--rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-- cat >conftest.$ac_ext <<_ACEOF
--/* confdefs.h. */
--_ACEOF
--cat confdefs.h >>conftest.$ac_ext
--cat >>conftest.$ac_ext <<_ACEOF
--/* end confdefs.h. */
--$ac_declaration
--int
--main ()
--{
--exit (42);
-- ;
-- return 0;
--}
--_ACEOF
--rm -f conftest.$ac_objext
--if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-- (eval $ac_compile) 2>conftest.er1
-- ac_status=$?
-- grep -v '^ *+' conftest.er1 >conftest.err
-- rm -f conftest.er1
-- cat conftest.err >&5
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; } &&
-- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-- break
--else
-- echo "$as_me: failed program was:" >&5
--sed 's/^/| /' conftest.$ac_ext >&5
--
--fi
--rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
--done
--rm -f conftest*
--if test -n "$ac_declaration"; then
-- echo '#ifdef __cplusplus' >>confdefs.h
-- echo $ac_declaration >>confdefs.h
-- echo '#endif' >>confdefs.h
--fi
--
--else
-- echo "$as_me: failed program was:" >&5
--sed 's/^/| /' conftest.$ac_ext >&5
--
--fi
--rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
--ac_ext=c
--ac_cpp='$CPP $CPPFLAGS'
--ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
--ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
--ac_compiler_gnu=$ac_cv_c_compiler_gnu
--
--
--# Checks for libraries.
--
--# Checks for header files.
--
--ac_ext=c
--ac_cpp='$CPP $CPPFLAGS'
--ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
--ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
--ac_compiler_gnu=$ac_cv_c_compiler_gnu
--echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
--echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
--# On Suns, sometimes $CPP names a directory.
--if test -n "$CPP" && test -d "$CPP"; then
-- CPP=
--fi
--if test -z "$CPP"; then
-- if test "${ac_cv_prog_CPP+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-- # Double quotes because CPP needs to be expanded
-- for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
-- do
-- ac_preproc_ok=false
--for ac_c_preproc_warn_flag in '' yes
--do
-- # Use a header file that comes with gcc, so configuring glibc
-- # with a fresh cross-compiler works.
-- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-- # <limits.h> exists even on freestanding compilers.
-- # On the NeXT, cc -E runs the code through the compiler's parser,
-- # not just through cpp. "Syntax error" is here to catch this case.
-- cat >conftest.$ac_ext <<_ACEOF
--/* confdefs.h. */
--_ACEOF
--cat confdefs.h >>conftest.$ac_ext
--cat >>conftest.$ac_ext <<_ACEOF
--/* end confdefs.h. */
--#ifdef __STDC__
--# include <limits.h>
--#else
--# include <assert.h>
--#endif
-- Syntax error
--_ACEOF
--if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-- ac_status=$?
-- grep -v '^ *+' conftest.er1 >conftest.err
-- rm -f conftest.er1
-- cat conftest.err >&5
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); } >/dev/null; then
-- if test -s conftest.err; then
-- ac_cpp_err=$ac_c_preproc_warn_flag
-- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-- else
-- ac_cpp_err=
-- fi
--else
-- ac_cpp_err=yes
--fi
--if test -z "$ac_cpp_err"; then
-- :
--else
-- echo "$as_me: failed program was:" >&5
--sed 's/^/| /' conftest.$ac_ext >&5
--
-- # Broken: fails on valid input.
--continue
--fi
--rm -f conftest.err conftest.$ac_ext
--
-- # OK, works on sane cases. Now check whether non-existent headers
-- # can be detected and how.
-- cat >conftest.$ac_ext <<_ACEOF
--/* confdefs.h. */
--_ACEOF
--cat confdefs.h >>conftest.$ac_ext
--cat >>conftest.$ac_ext <<_ACEOF
--/* end confdefs.h. */
--#include <ac_nonexistent.h>
--_ACEOF
--if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-- ac_status=$?
-- grep -v '^ *+' conftest.er1 >conftest.err
-- rm -f conftest.er1
-- cat conftest.err >&5
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); } >/dev/null; then
-- if test -s conftest.err; then
-- ac_cpp_err=$ac_c_preproc_warn_flag
-- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-- else
-- ac_cpp_err=
-- fi
--else
-- ac_cpp_err=yes
--fi
--if test -z "$ac_cpp_err"; then
-- # Broken: success on invalid input.
--continue
--else
-- echo "$as_me: failed program was:" >&5
--sed 's/^/| /' conftest.$ac_ext >&5
--
-- # Passes both tests.
--ac_preproc_ok=:
--break
--fi
--rm -f conftest.err conftest.$ac_ext
--
--done
--# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
--rm -f conftest.err conftest.$ac_ext
--if $ac_preproc_ok; then
-- break
--fi
--
-- done
-- ac_cv_prog_CPP=$CPP
--
--fi
-- CPP=$ac_cv_prog_CPP
--else
-- ac_cv_prog_CPP=$CPP
--fi
--echo "$as_me:$LINENO: result: $CPP" >&5
--echo "${ECHO_T}$CPP" >&6
--ac_preproc_ok=false
--for ac_c_preproc_warn_flag in '' yes
--do
-- # Use a header file that comes with gcc, so configuring glibc
-- # with a fresh cross-compiler works.
-- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-- # <limits.h> exists even on freestanding compilers.
-- # On the NeXT, cc -E runs the code through the compiler's parser,
-- # not just through cpp. "Syntax error" is here to catch this case.
-- cat >conftest.$ac_ext <<_ACEOF
--/* confdefs.h. */
--_ACEOF
--cat confdefs.h >>conftest.$ac_ext
--cat >>conftest.$ac_ext <<_ACEOF
--/* end confdefs.h. */
--#ifdef __STDC__
--# include <limits.h>
--#else
--# include <assert.h>
--#endif
-- Syntax error
--_ACEOF
--if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-- ac_status=$?
-- grep -v '^ *+' conftest.er1 >conftest.err
-- rm -f conftest.er1
-- cat conftest.err >&5
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); } >/dev/null; then
-- if test -s conftest.err; then
-- ac_cpp_err=$ac_c_preproc_warn_flag
-- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-- else
-- ac_cpp_err=
-- fi
--else
-- ac_cpp_err=yes
--fi
--if test -z "$ac_cpp_err"; then
-- :
--else
-- echo "$as_me: failed program was:" >&5
--sed 's/^/| /' conftest.$ac_ext >&5
--
-- # Broken: fails on valid input.
--continue
--fi
--rm -f conftest.err conftest.$ac_ext
--
-- # OK, works on sane cases. Now check whether non-existent headers
-- # can be detected and how.
-- cat >conftest.$ac_ext <<_ACEOF
--/* confdefs.h. */
--_ACEOF
--cat confdefs.h >>conftest.$ac_ext
--cat >>conftest.$ac_ext <<_ACEOF
--/* end confdefs.h. */
--#include <ac_nonexistent.h>
--_ACEOF
--if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-- ac_status=$?
-- grep -v '^ *+' conftest.er1 >conftest.err
-- rm -f conftest.er1
-- cat conftest.err >&5
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); } >/dev/null; then
-- if test -s conftest.err; then
-- ac_cpp_err=$ac_c_preproc_warn_flag
-- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-- else
-- ac_cpp_err=
-- fi
--else
-- ac_cpp_err=yes
--fi
--if test -z "$ac_cpp_err"; then
-- # Broken: success on invalid input.
--continue
--else
-- echo "$as_me: failed program was:" >&5
--sed 's/^/| /' conftest.$ac_ext >&5
--
-- # Passes both tests.
--ac_preproc_ok=:
--break
--fi
--rm -f conftest.err conftest.$ac_ext
--
--done
--# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
--rm -f conftest.err conftest.$ac_ext
--if $ac_preproc_ok; then
-- :
--else
-- { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
--See \`config.log' for more details." >&5
--echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
--See \`config.log' for more details." >&2;}
-- { (exit 1); exit 1; }; }
--fi
--
--ac_ext=c
--ac_cpp='$CPP $CPPFLAGS'
--ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
--ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
--ac_compiler_gnu=$ac_cv_c_compiler_gnu
--
--
--echo "$as_me:$LINENO: checking for egrep" >&5
--echo $ECHO_N "checking for egrep... $ECHO_C" >&6
--if test "${ac_cv_prog_egrep+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-- if echo a | (grep -E '(a|b)') >/dev/null 2>&1
-- then ac_cv_prog_egrep='grep -E'
-- else ac_cv_prog_egrep='egrep'
-- fi
--fi
--echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5
--echo "${ECHO_T}$ac_cv_prog_egrep" >&6
-- EGREP=$ac_cv_prog_egrep
--
--
--echo "$as_me:$LINENO: checking for ANSI C header files" >&5
--echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
--if test "${ac_cv_header_stdc+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-- cat >conftest.$ac_ext <<_ACEOF
--/* confdefs.h. */
--_ACEOF
--cat confdefs.h >>conftest.$ac_ext
--cat >>conftest.$ac_ext <<_ACEOF
--/* end confdefs.h. */
--#include <stdlib.h>
--#include <stdarg.h>
--#include <string.h>
--#include <float.h>
--
--int
--main ()
--{
--
-- ;
-- return 0;
--}
--_ACEOF
--rm -f conftest.$ac_objext
--if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-- (eval $ac_compile) 2>conftest.er1
-- ac_status=$?
-- grep -v '^ *+' conftest.er1 >conftest.err
-- rm -f conftest.er1
-- cat conftest.err >&5
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; } &&
-- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-- ac_cv_header_stdc=yes
--else
-- echo "$as_me: failed program was:" >&5
--sed 's/^/| /' conftest.$ac_ext >&5
--
--ac_cv_header_stdc=no
--fi
--rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
--
--if test $ac_cv_header_stdc = yes; then
-- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
-- cat >conftest.$ac_ext <<_ACEOF
--/* confdefs.h. */
--_ACEOF
--cat confdefs.h >>conftest.$ac_ext
--cat >>conftest.$ac_ext <<_ACEOF
--/* end confdefs.h. */
--#include <string.h>
--
--_ACEOF
--if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-- $EGREP "memchr" >/dev/null 2>&1; then
-- :
--else
-- ac_cv_header_stdc=no
--fi
--rm -f conftest*
--
--fi
--
--if test $ac_cv_header_stdc = yes; then
-- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
-- cat >conftest.$ac_ext <<_ACEOF
--/* confdefs.h. */
--_ACEOF
--cat confdefs.h >>conftest.$ac_ext
--cat >>conftest.$ac_ext <<_ACEOF
--/* end confdefs.h. */
--#include <stdlib.h>
--
--_ACEOF
--if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-- $EGREP "free" >/dev/null 2>&1; then
-- :
--else
-- ac_cv_header_stdc=no
--fi
--rm -f conftest*
--
--fi
--
--if test $ac_cv_header_stdc = yes; then
-- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
-- if test "$cross_compiling" = yes; then
-- :
--else
-- cat >conftest.$ac_ext <<_ACEOF
--/* confdefs.h. */
--_ACEOF
--cat confdefs.h >>conftest.$ac_ext
--cat >>conftest.$ac_ext <<_ACEOF
--/* end confdefs.h. */
--#include <ctype.h>
--#if ((' ' & 0x0FF) == 0x020)
--# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
--# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
--#else
--# define ISLOWER(c) \
-- (('a' <= (c) && (c) <= 'i') \
-- || ('j' <= (c) && (c) <= 'r') \
-- || ('s' <= (c) && (c) <= 'z'))
--# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
--#endif
--
--#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
--int
--main ()
--{
-- int i;
-- for (i = 0; i < 256; i++)
-- if (XOR (islower (i), ISLOWER (i))
-- || toupper (i) != TOUPPER (i))
-- exit(2);
-- exit (0);
--}
--_ACEOF
--rm -f conftest$ac_exeext
--if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-- (eval $ac_link) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-- :
--else
-- echo "$as_me: program exited with status $ac_status" >&5
--echo "$as_me: failed program was:" >&5
--sed 's/^/| /' conftest.$ac_ext >&5
--
--( exit $ac_status )
--ac_cv_header_stdc=no
--fi
--rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
--fi
--fi
--fi
--echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
--echo "${ECHO_T}$ac_cv_header_stdc" >&6
--if test $ac_cv_header_stdc = yes; then
--
--cat >>confdefs.h <<\_ACEOF
--#define STDC_HEADERS 1
--_ACEOF
--
--fi
--
--# On IRIX 5.3, sys/types and inttypes.h are conflicting.
--
--
--
--
--
--
--
--
--
--for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
-- inttypes.h stdint.h unistd.h
--do
--as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
--echo "$as_me:$LINENO: checking for $ac_header" >&5
--echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
--if eval "test \"\${$as_ac_Header+set}\" = set"; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-- cat >conftest.$ac_ext <<_ACEOF
--/* confdefs.h. */
--_ACEOF
--cat confdefs.h >>conftest.$ac_ext
--cat >>conftest.$ac_ext <<_ACEOF
--/* end confdefs.h. */
--$ac_includes_default
--
--#include <$ac_header>
--_ACEOF
--rm -f conftest.$ac_objext
--if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-- (eval $ac_compile) 2>conftest.er1
-- ac_status=$?
-- grep -v '^ *+' conftest.er1 >conftest.err
-- rm -f conftest.er1
-- cat conftest.err >&5
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; } &&
-- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-- eval "$as_ac_Header=yes"
--else
-- echo "$as_me: failed program was:" >&5
--sed 's/^/| /' conftest.$ac_ext >&5
--
--eval "$as_ac_Header=no"
--fi
--rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
--fi
--echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
--echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
--if test `eval echo '${'$as_ac_Header'}'` = yes; then
-- cat >>confdefs.h <<_ACEOF
--#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
--_ACEOF
--
--fi
--
--done
--
--
--
--for ac_header in arpa/inet.h
--do
--as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
--if eval "test \"\${$as_ac_Header+set}\" = set"; then
-- echo "$as_me:$LINENO: checking for $ac_header" >&5
--echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
--if eval "test \"\${$as_ac_Header+set}\" = set"; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--fi
--echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
--echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
--else
-- # Is the header compilable?
--echo "$as_me:$LINENO: checking $ac_header usability" >&5
--echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
--cat >conftest.$ac_ext <<_ACEOF
--/* confdefs.h. */
--_ACEOF
--cat confdefs.h >>conftest.$ac_ext
--cat >>conftest.$ac_ext <<_ACEOF
--/* end confdefs.h. */
--$ac_includes_default
--#include <$ac_header>
--_ACEOF
--rm -f conftest.$ac_objext
--if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-- (eval $ac_compile) 2>conftest.er1
-- ac_status=$?
-- grep -v '^ *+' conftest.er1 >conftest.err
-- rm -f conftest.er1
-- cat conftest.err >&5
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; } &&
-- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-- ac_header_compiler=yes
--else
-- echo "$as_me: failed program was:" >&5
--sed 's/^/| /' conftest.$ac_ext >&5
--
--ac_header_compiler=no
--fi
--rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
--echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
--echo "${ECHO_T}$ac_header_compiler" >&6
--
--# Is the header present?
--echo "$as_me:$LINENO: checking $ac_header presence" >&5
--echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
--cat >conftest.$ac_ext <<_ACEOF
--/* confdefs.h. */
--_ACEOF
--cat confdefs.h >>conftest.$ac_ext
--cat >>conftest.$ac_ext <<_ACEOF
--/* end confdefs.h. */
--#include <$ac_header>
--_ACEOF
--if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-- ac_status=$?
-- grep -v '^ *+' conftest.er1 >conftest.err
-- rm -f conftest.er1
-- cat conftest.err >&5
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); } >/dev/null; then
-- if test -s conftest.err; then
-- ac_cpp_err=$ac_c_preproc_warn_flag
-- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-- else
-- ac_cpp_err=
-- fi
--else
-- ac_cpp_err=yes
--fi
--if test -z "$ac_cpp_err"; then
-- ac_header_preproc=yes
--else
-- echo "$as_me: failed program was:" >&5
--sed 's/^/| /' conftest.$ac_ext >&5
--
-- ac_header_preproc=no
--fi
--rm -f conftest.err conftest.$ac_ext
--echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
--echo "${ECHO_T}$ac_header_preproc" >&6
--
--# So? What about this header?
--case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-- yes:no: )
-- { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
--echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
--echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-- ac_header_preproc=yes
-- ;;
-- no:yes:* )
-- { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
--echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
--echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
-- { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
--echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-- { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
--echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
-- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
--echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-- { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
--echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-- (
-- cat <<\_ASBOX
--## --------------------------------- ##
--## Report this to BUG-REPORT-ADDRESS ##
--## --------------------------------- ##
--_ASBOX
-- ) |
-- sed "s/^/$as_me: WARNING: /" >&2
-- ;;
--esac
--echo "$as_me:$LINENO: checking for $ac_header" >&5
--echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
--if eval "test \"\${$as_ac_Header+set}\" = set"; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-- eval "$as_ac_Header=\$ac_header_preproc"
--fi
--echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
--echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
--
--fi
--if test `eval echo '${'$as_ac_Header'}'` = yes; then
-- cat >>confdefs.h <<_ACEOF
--#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
--_ACEOF
--
--fi
--
--done
--
--
--# Checks for typedefs, structures, and compiler characteristics.
--echo "$as_me:$LINENO: checking for an ANSI C-conforming const" >&5
--echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6
--if test "${ac_cv_c_const+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-- cat >conftest.$ac_ext <<_ACEOF
--/* confdefs.h. */
--_ACEOF
--cat confdefs.h >>conftest.$ac_ext
--cat >>conftest.$ac_ext <<_ACEOF
--/* end confdefs.h. */
--
--int
--main ()
--{
--/* FIXME: Include the comments suggested by Paul. */
--#ifndef __cplusplus
-- /* Ultrix mips cc rejects this. */
-- typedef int charset[2];
-- const charset x;
-- /* SunOS 4.1.1 cc rejects this. */
-- char const *const *ccp;
-- char **p;
-- /* NEC SVR4.0.2 mips cc rejects this. */
-- struct point {int x, y;};
-- static struct point const zero = {0,0};
-- /* AIX XL C 1.02.0.0 rejects this.
-- It does not let you subtract one const X* pointer from another in
-- an arm of an if-expression whose if-part is not a constant
-- expression */
-- const char *g = "string";
-- ccp = &g + (g ? g-g : 0);
-- /* HPUX 7.0 cc rejects these. */
-- ++ccp;
-- p = (char**) ccp;
-- ccp = (char const *const *) p;
-- { /* SCO 3.2v4 cc rejects this. */
-- char *t;
-- char const *s = 0 ? (char *) 0 : (char const *) 0;
--
-- *t++ = 0;
-- }
-- { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */
-- int x[] = {25, 17};
-- const int *foo = &x[0];
-- ++foo;
-- }
-- { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
-- typedef const int *iptr;
-- iptr p = 0;
-- ++p;
-- }
-- { /* AIX XL C 1.02.0.0 rejects this saying
-- "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
-- struct s { int j; const int *ap[3]; };
-- struct s *b; b->j = 5;
-- }
-- { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
-- const int foo = 10;
-- }
--#endif
--
-- ;
-- return 0;
--}
--_ACEOF
--rm -f conftest.$ac_objext
--if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-- (eval $ac_compile) 2>conftest.er1
-- ac_status=$?
-- grep -v '^ *+' conftest.er1 >conftest.err
-- rm -f conftest.er1
-- cat conftest.err >&5
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; } &&
-- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-- ac_cv_c_const=yes
--else
-- echo "$as_me: failed program was:" >&5
--sed 's/^/| /' conftest.$ac_ext >&5
--
--ac_cv_c_const=no
--fi
--rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
--fi
--echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5
--echo "${ECHO_T}$ac_cv_c_const" >&6
--if test $ac_cv_c_const = no; then
--
--cat >>confdefs.h <<\_ACEOF
--#define const
--_ACEOF
--
--fi
--
--
--# Checks for library functions.
--
--for ac_header in stdlib.h
--do
--as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
--if eval "test \"\${$as_ac_Header+set}\" = set"; then
-- echo "$as_me:$LINENO: checking for $ac_header" >&5
--echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
--if eval "test \"\${$as_ac_Header+set}\" = set"; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--fi
--echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
--echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
--else
-- # Is the header compilable?
--echo "$as_me:$LINENO: checking $ac_header usability" >&5
--echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
--cat >conftest.$ac_ext <<_ACEOF
--/* confdefs.h. */
--_ACEOF
--cat confdefs.h >>conftest.$ac_ext
--cat >>conftest.$ac_ext <<_ACEOF
--/* end confdefs.h. */
--$ac_includes_default
--#include <$ac_header>
--_ACEOF
--rm -f conftest.$ac_objext
--if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-- (eval $ac_compile) 2>conftest.er1
-- ac_status=$?
-- grep -v '^ *+' conftest.er1 >conftest.err
-- rm -f conftest.er1
-- cat conftest.err >&5
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; } &&
-- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-- ac_header_compiler=yes
--else
-- echo "$as_me: failed program was:" >&5
--sed 's/^/| /' conftest.$ac_ext >&5
--
--ac_header_compiler=no
--fi
--rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
--echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
--echo "${ECHO_T}$ac_header_compiler" >&6
--
--# Is the header present?
--echo "$as_me:$LINENO: checking $ac_header presence" >&5
--echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
--cat >conftest.$ac_ext <<_ACEOF
--/* confdefs.h. */
--_ACEOF
--cat confdefs.h >>conftest.$ac_ext
--cat >>conftest.$ac_ext <<_ACEOF
--/* end confdefs.h. */
--#include <$ac_header>
--_ACEOF
--if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-- ac_status=$?
-- grep -v '^ *+' conftest.er1 >conftest.err
-- rm -f conftest.er1
-- cat conftest.err >&5
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); } >/dev/null; then
-- if test -s conftest.err; then
-- ac_cpp_err=$ac_c_preproc_warn_flag
-- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-- else
-- ac_cpp_err=
-- fi
--else
-- ac_cpp_err=yes
--fi
--if test -z "$ac_cpp_err"; then
-- ac_header_preproc=yes
--else
-- echo "$as_me: failed program was:" >&5
--sed 's/^/| /' conftest.$ac_ext >&5
--
-- ac_header_preproc=no
--fi
--rm -f conftest.err conftest.$ac_ext
--echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
--echo "${ECHO_T}$ac_header_preproc" >&6
--
--# So? What about this header?
--case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-- yes:no: )
-- { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
--echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
--echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-- ac_header_preproc=yes
-- ;;
-- no:yes:* )
-- { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
--echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
--echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
-- { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
--echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-- { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
--echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
-- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
--echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-- { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
--echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-- (
-- cat <<\_ASBOX
--## --------------------------------- ##
--## Report this to BUG-REPORT-ADDRESS ##
--## --------------------------------- ##
--_ASBOX
-- ) |
-- sed "s/^/$as_me: WARNING: /" >&2
-- ;;
--esac
--echo "$as_me:$LINENO: checking for $ac_header" >&5
--echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
--if eval "test \"\${$as_ac_Header+set}\" = set"; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-- eval "$as_ac_Header=\$ac_header_preproc"
--fi
--echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
--echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
--
--fi
--if test `eval echo '${'$as_ac_Header'}'` = yes; then
-- cat >>confdefs.h <<_ACEOF
--#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
--_ACEOF
--
--fi
--
--done
--
--echo "$as_me:$LINENO: checking for GNU libc compatible malloc" >&5
--echo $ECHO_N "checking for GNU libc compatible malloc... $ECHO_C" >&6
--if test "${ac_cv_func_malloc_0_nonnull+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-- if test "$cross_compiling" = yes; then
-- ac_cv_func_malloc_0_nonnull=no
--else
-- cat >conftest.$ac_ext <<_ACEOF
--/* confdefs.h. */
--_ACEOF
--cat confdefs.h >>conftest.$ac_ext
--cat >>conftest.$ac_ext <<_ACEOF
--/* end confdefs.h. */
--#if STDC_HEADERS || HAVE_STDLIB_H
--# include <stdlib.h>
--#else
--char *malloc ();
--#endif
--
--int
--main ()
--{
--exit (malloc (0) ? 0 : 1);
-- ;
-- return 0;
--}
--_ACEOF
--rm -f conftest$ac_exeext
--if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-- (eval $ac_link) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-- ac_cv_func_malloc_0_nonnull=yes
--else
-- echo "$as_me: program exited with status $ac_status" >&5
--echo "$as_me: failed program was:" >&5
--sed 's/^/| /' conftest.$ac_ext >&5
--
--( exit $ac_status )
--ac_cv_func_malloc_0_nonnull=no
--fi
--rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
--fi
--fi
--echo "$as_me:$LINENO: result: $ac_cv_func_malloc_0_nonnull" >&5
--echo "${ECHO_T}$ac_cv_func_malloc_0_nonnull" >&6
--if test $ac_cv_func_malloc_0_nonnull = yes; then
--
--cat >>confdefs.h <<\_ACEOF
--#define HAVE_MALLOC 1
--_ACEOF
--
--else
-- cat >>confdefs.h <<\_ACEOF
--#define HAVE_MALLOC 0
--_ACEOF
--
-- case $LIBOBJS in
-- "malloc.$ac_objext" | \
-- *" malloc.$ac_objext" | \
-- "malloc.$ac_objext "* | \
-- *" malloc.$ac_objext "* ) ;;
-- *) LIBOBJS="$LIBOBJS malloc.$ac_objext" ;;
--esac
--
--
--cat >>confdefs.h <<\_ACEOF
--#define malloc rpl_malloc
--_ACEOF
--
--fi
--
--
--
--
--for ac_header in stdlib.h
--do
--as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
--if eval "test \"\${$as_ac_Header+set}\" = set"; then
-- echo "$as_me:$LINENO: checking for $ac_header" >&5
--echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
--if eval "test \"\${$as_ac_Header+set}\" = set"; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--fi
--echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
--echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
--else
-- # Is the header compilable?
--echo "$as_me:$LINENO: checking $ac_header usability" >&5
--echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
--cat >conftest.$ac_ext <<_ACEOF
--/* confdefs.h. */
--_ACEOF
--cat confdefs.h >>conftest.$ac_ext
--cat >>conftest.$ac_ext <<_ACEOF
--/* end confdefs.h. */
--$ac_includes_default
--#include <$ac_header>
--_ACEOF
--rm -f conftest.$ac_objext
--if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-- (eval $ac_compile) 2>conftest.er1
-- ac_status=$?
-- grep -v '^ *+' conftest.er1 >conftest.err
-- rm -f conftest.er1
-- cat conftest.err >&5
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; } &&
-- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-- ac_header_compiler=yes
--else
-- echo "$as_me: failed program was:" >&5
--sed 's/^/| /' conftest.$ac_ext >&5
--
--ac_header_compiler=no
--fi
--rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
--echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
--echo "${ECHO_T}$ac_header_compiler" >&6
--
--# Is the header present?
--echo "$as_me:$LINENO: checking $ac_header presence" >&5
--echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
--cat >conftest.$ac_ext <<_ACEOF
--/* confdefs.h. */
--_ACEOF
--cat confdefs.h >>conftest.$ac_ext
--cat >>conftest.$ac_ext <<_ACEOF
--/* end confdefs.h. */
--#include <$ac_header>
--_ACEOF
--if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-- ac_status=$?
-- grep -v '^ *+' conftest.er1 >conftest.err
-- rm -f conftest.er1
-- cat conftest.err >&5
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); } >/dev/null; then
-- if test -s conftest.err; then
-- ac_cpp_err=$ac_c_preproc_warn_flag
-- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-- else
-- ac_cpp_err=
-- fi
--else
-- ac_cpp_err=yes
--fi
--if test -z "$ac_cpp_err"; then
-- ac_header_preproc=yes
--else
-- echo "$as_me: failed program was:" >&5
--sed 's/^/| /' conftest.$ac_ext >&5
--
-- ac_header_preproc=no
--fi
--rm -f conftest.err conftest.$ac_ext
--echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
--echo "${ECHO_T}$ac_header_preproc" >&6
--
--# So? What about this header?
--case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-- yes:no: )
-- { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
--echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
--echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-- ac_header_preproc=yes
-- ;;
-- no:yes:* )
-- { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
--echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
--echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
-- { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
--echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-- { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
--echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
-- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
--echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-- { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
--echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-- (
-- cat <<\_ASBOX
--## --------------------------------- ##
--## Report this to BUG-REPORT-ADDRESS ##
--## --------------------------------- ##
--_ASBOX
-- ) |
-- sed "s/^/$as_me: WARNING: /" >&2
-- ;;
--esac
--echo "$as_me:$LINENO: checking for $ac_header" >&5
--echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
--if eval "test \"\${$as_ac_Header+set}\" = set"; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-- eval "$as_ac_Header=\$ac_header_preproc"
--fi
--echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
--echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
--
--fi
--if test `eval echo '${'$as_ac_Header'}'` = yes; then
-- cat >>confdefs.h <<_ACEOF
--#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
--_ACEOF
--
--fi
--
--done
--
--echo "$as_me:$LINENO: checking for GNU libc compatible realloc" >&5
--echo $ECHO_N "checking for GNU libc compatible realloc... $ECHO_C" >&6
--if test "${ac_cv_func_realloc_0_nonnull+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-- if test "$cross_compiling" = yes; then
-- ac_cv_func_realloc_0_nonnull=no
--else
-- cat >conftest.$ac_ext <<_ACEOF
--/* confdefs.h. */
--_ACEOF
--cat confdefs.h >>conftest.$ac_ext
--cat >>conftest.$ac_ext <<_ACEOF
--/* end confdefs.h. */
--#if STDC_HEADERS || HAVE_STDLIB_H
--# include <stdlib.h>
--#else
--char *realloc ();
--#endif
--
--int
--main ()
--{
--exit (realloc (0, 0) ? 0 : 1);
-- ;
-- return 0;
--}
--_ACEOF
--rm -f conftest$ac_exeext
--if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-- (eval $ac_link) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-- ac_cv_func_realloc_0_nonnull=yes
--else
-- echo "$as_me: program exited with status $ac_status" >&5
--echo "$as_me: failed program was:" >&5
--sed 's/^/| /' conftest.$ac_ext >&5
--
--( exit $ac_status )
--ac_cv_func_realloc_0_nonnull=no
--fi
--rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
--fi
--fi
--echo "$as_me:$LINENO: result: $ac_cv_func_realloc_0_nonnull" >&5
--echo "${ECHO_T}$ac_cv_func_realloc_0_nonnull" >&6
--if test $ac_cv_func_realloc_0_nonnull = yes; then
--
--cat >>confdefs.h <<\_ACEOF
--#define HAVE_REALLOC 1
--_ACEOF
--
--else
-- cat >>confdefs.h <<\_ACEOF
--#define HAVE_REALLOC 0
--_ACEOF
--
-- case $LIBOBJS in
-- "realloc.$ac_objext" | \
-- *" realloc.$ac_objext" | \
-- "realloc.$ac_objext "* | \
-- *" realloc.$ac_objext "* ) ;;
-- *) LIBOBJS="$LIBOBJS realloc.$ac_objext" ;;
--esac
--
--
--cat >>confdefs.h <<\_ACEOF
--#define realloc rpl_realloc
--_ACEOF
--
--fi
--
--
--
--
--
--for ac_func in strdup strerror
--do
--as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
--echo "$as_me:$LINENO: checking for $ac_func" >&5
--echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
--if eval "test \"\${$as_ac_var+set}\" = set"; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-- cat >conftest.$ac_ext <<_ACEOF
--/* confdefs.h. */
--_ACEOF
--cat confdefs.h >>conftest.$ac_ext
--cat >>conftest.$ac_ext <<_ACEOF
--/* end confdefs.h. */
--/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-- For example, HP-UX 11i <limits.h> declares gettimeofday. */
--#define $ac_func innocuous_$ac_func
--
--/* System header to define __stub macros and hopefully few prototypes,
-- which can conflict with char $ac_func (); below.
-- Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-- <limits.h> exists even on freestanding compilers. */
--
--#ifdef __STDC__
--# include <limits.h>
--#else
--# include <assert.h>
--#endif
--
--#undef $ac_func
--
--/* Override any gcc2 internal prototype to avoid an error. */
--#ifdef __cplusplus
--extern "C"
--{
--#endif
--/* We use char because int might match the return type of a gcc2
-- builtin and then its argument prototype would still apply. */
--char $ac_func ();
--/* The GNU C library defines this for functions which it implements
-- to always fail with ENOSYS. Some functions are actually named
-- something starting with __ and the normal name is an alias. */
--#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
--choke me
--#else
--char (*f) () = $ac_func;
--#endif
--#ifdef __cplusplus
--}
--#endif
--
--int
--main ()
--{
--return f != $ac_func;
-- ;
-- return 0;
--}
--_ACEOF
--rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-- (eval $ac_link) 2>conftest.er1
-- ac_status=$?
-- grep -v '^ *+' conftest.er1 >conftest.err
-- rm -f conftest.er1
-- cat conftest.err >&5
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; } &&
-- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-- eval "$as_ac_var=yes"
--else
-- echo "$as_me: failed program was:" >&5
--sed 's/^/| /' conftest.$ac_ext >&5
--
--eval "$as_ac_var=no"
--fi
--rm -f conftest.err conftest.$ac_objext \
-- conftest$ac_exeext conftest.$ac_ext
--fi
--echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
--echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
--if test `eval echo '${'$as_ac_var'}'` = yes; then
-- cat >>confdefs.h <<_ACEOF
--#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
--_ACEOF
--
--fi
--done
--
--
--if test -n "$ac_tool_prefix"; then
-- # Extract the first word of "${ac_tool_prefix}install", so it can be a program name with args.
--set dummy ${ac_tool_prefix}install; ac_word=$2
--echo "$as_me:$LINENO: checking for $ac_word" >&5
--echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
--if test "${ac_cv_prog_INSTALL+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-- if test -n "$INSTALL"; then
-- ac_cv_prog_INSTALL="$INSTALL" # Let the user override the test.
--else
--as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
--for as_dir in $PATH
--do
-- IFS=$as_save_IFS
-- test -z "$as_dir" && as_dir=.
-- for ac_exec_ext in '' $ac_executable_extensions; do
-- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-- ac_cv_prog_INSTALL="${ac_tool_prefix}install"
-- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-- break 2
-- fi
--done
--done
--
--fi
--fi
--INSTALL=$ac_cv_prog_INSTALL
--if test -n "$INSTALL"; then
-- echo "$as_me:$LINENO: result: $INSTALL" >&5
--echo "${ECHO_T}$INSTALL" >&6
--else
-- echo "$as_me:$LINENO: result: no" >&5
--echo "${ECHO_T}no" >&6
--fi
--
--fi
--if test -z "$ac_cv_prog_INSTALL"; then
-- ac_ct_INSTALL=$INSTALL
-- # Extract the first word of "install", so it can be a program name with args.
--set dummy install; ac_word=$2
--echo "$as_me:$LINENO: checking for $ac_word" >&5
--echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
--if test "${ac_cv_prog_ac_ct_INSTALL+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-- if test -n "$ac_ct_INSTALL"; then
-- ac_cv_prog_ac_ct_INSTALL="$ac_ct_INSTALL" # Let the user override the test.
--else
--as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
--for as_dir in $PATH
--do
-- IFS=$as_save_IFS
-- test -z "$as_dir" && as_dir=.
-- for ac_exec_ext in '' $ac_executable_extensions; do
-- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-- ac_cv_prog_ac_ct_INSTALL="install"
-- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-- break 2
-- fi
--done
--done
--
-- test -z "$ac_cv_prog_ac_ct_INSTALL" && ac_cv_prog_ac_ct_INSTALL=":"
--fi
--fi
--ac_ct_INSTALL=$ac_cv_prog_ac_ct_INSTALL
--if test -n "$ac_ct_INSTALL"; then
-- echo "$as_me:$LINENO: result: $ac_ct_INSTALL" >&5
--echo "${ECHO_T}$ac_ct_INSTALL" >&6
--else
-- echo "$as_me:$LINENO: result: no" >&5
--echo "${ECHO_T}no" >&6
--fi
--
-- INSTALL=$ac_ct_INSTALL
--else
-- INSTALL="$ac_cv_prog_INSTALL"
--fi
--
--
-- ac_config_files="$ac_config_files mibs/Makefile"
--
-- ac_config_files="$ac_config_files Makefile"
--
--cat >confcache <<\_ACEOF
--# This file is a shell script that caches the results of configure
--# tests run on this system so they can be shared between configure
--# scripts and configure runs, see configure's option --config-cache.
--# It is not useful on other systems. If it contains results you don't
--# want to keep, you may remove or edit it.
--#
--# config.status only pays attention to the cache file if you give it
--# the --recheck option to rerun configure.
--#
--# `ac_cv_env_foo' variables (set or unset) will be overridden when
--# loading this file, other *unset* `ac_cv_foo' will be assigned the
--# following values.
--
--_ACEOF
--
--# The following way of writing the cache mishandles newlines in values,
--# but we know of no workaround that is simple, portable, and efficient.
--# So, don't put newlines in cache variables' values.
--# Ultrix sh set writes to stderr and can't be redirected directly,
--# and sets the high bit in the cache file unless we assign to the vars.
--{
-- (set) 2>&1 |
-- case `(ac_space=' '; set | grep ac_space) 2>&1` in
-- *ac_space=\ *)
-- # `set' does not quote correctly, so add quotes (double-quote
-- # substitution turns \\\\ into \\, and sed turns \\ into \).
-- sed -n \
-- "s/'/'\\\\''/g;
-- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
-- ;;
-- *)
-- # `set' quotes correctly as required by POSIX, so do not add quotes.
-- sed -n \
-- "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
-- ;;
-- esac;
--} |
-- sed '
-- t clear
-- : clear
-- s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
-- t end
-- /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
-- : end' >>confcache
--if diff $cache_file confcache >/dev/null 2>&1; then :; else
-- if test -w $cache_file; then
-- test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
-- cat confcache >$cache_file
-- else
-- echo "not updating unwritable cache $cache_file"
-- fi
--fi
--rm -f confcache
--
--test "x$prefix" = xNONE && prefix=$ac_default_prefix
--# Let make expand exec_prefix.
--test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
--
--# VPATH may cause trouble with some makes, so we remove $(srcdir),
--# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
--# trailing colons and then remove the whole line if VPATH becomes empty
--# (actually we leave an empty line to preserve line numbers).
--if test "x$srcdir" = x.; then
-- ac_vpsub='/^[ ]*VPATH[ ]*=/{
--s/:*\$(srcdir):*/:/;
--s/:*\${srcdir}:*/:/;
--s/:*@srcdir@:*/:/;
--s/^\([^=]*=[ ]*\):*/\1/;
--s/:*$//;
--s/^[^=]*=[ ]*$//;
--}'
--fi
--
--DEFS=-DHAVE_CONFIG_H
--
--ac_libobjs=
--ac_ltlibobjs=
--for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
-- # 1. Remove the extension, and $U if already installed.
-- ac_i=`echo "$ac_i" |
-- sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
-- # 2. Add them.
-- ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext"
-- ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo'
--done
--LIBOBJS=$ac_libobjs
--
--LTLIBOBJS=$ac_ltlibobjs
--
--
--
--: ${CONFIG_STATUS=./config.status}
--ac_clean_files_save=$ac_clean_files
--ac_clean_files="$ac_clean_files $CONFIG_STATUS"
--{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
--echo "$as_me: creating $CONFIG_STATUS" >&6;}
--cat >$CONFIG_STATUS <<_ACEOF
--#! $SHELL
--# Generated by $as_me.
--# Run this file to recreate the current configuration.
--# Compiler output produced by configure, useful for debugging
--# configure, is in config.log if it exists.
--
--debug=false
--ac_cs_recheck=false
--ac_cs_silent=false
--SHELL=\${CONFIG_SHELL-$SHELL}
--_ACEOF
--
--cat >>$CONFIG_STATUS <<\_ACEOF
--## --------------------- ##
--## M4sh Initialization. ##
--## --------------------- ##
--
--# Be Bourne compatible
--if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
-- emulate sh
-- NULLCMD=:
-- # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
-- # is contrary to our usage. Disable this feature.
-- alias -g '${1+"$@"}'='"$@"'
--elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
-- set -o posix
--fi
--DUALCASE=1; export DUALCASE # for MKS sh
--
--# Support unset when possible.
--if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
-- as_unset=unset
--else
-- as_unset=false
--fi
--
--
--# Work around bugs in pre-3.0 UWIN ksh.
--$as_unset ENV MAIL MAILPATH
--PS1='$ '
--PS2='> '
--PS4='+ '
--
--# NLS nuisances.
--for as_var in \
-- LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
-- LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
-- LC_TELEPHONE LC_TIME
--do
-- if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
-- eval $as_var=C; export $as_var
-- else
-- $as_unset $as_var
-- fi
--done
--
--# Required to use basename.
--if expr a : '\(a\)' >/dev/null 2>&1; then
-- as_expr=expr
--else
-- as_expr=false
--fi
--
--if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
-- as_basename=basename
--else
-- as_basename=false
--fi
--
--
--# Name of the executable.
--as_me=`$as_basename "$0" ||
--$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
-- X"$0" : 'X\(//\)$' \| \
-- X"$0" : 'X\(/\)$' \| \
-- . : '\(.\)' 2>/dev/null ||
--echo X/"$0" |
-- sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
-- /^X\/\(\/\/\)$/{ s//\1/; q; }
-- /^X\/\(\/\).*/{ s//\1/; q; }
-- s/.*/./; q'`
--
--
--# PATH needs CR, and LINENO needs CR and PATH.
--# Avoid depending upon Character Ranges.
--as_cr_letters='abcdefghijklmnopqrstuvwxyz'
--as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
--as_cr_Letters=$as_cr_letters$as_cr_LETTERS
--as_cr_digits='0123456789'
--as_cr_alnum=$as_cr_Letters$as_cr_digits
--
--# The user is always right.
--if test "${PATH_SEPARATOR+set}" != set; then
-- echo "#! /bin/sh" >conf$$.sh
-- echo "exit 0" >>conf$$.sh
-- chmod +x conf$$.sh
-- if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-- PATH_SEPARATOR=';'
-- else
-- PATH_SEPARATOR=:
-- fi
-- rm -f conf$$.sh
--fi
--
--
-- as_lineno_1=$LINENO
-- as_lineno_2=$LINENO
-- as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-- test "x$as_lineno_1" != "x$as_lineno_2" &&
-- test "x$as_lineno_3" = "x$as_lineno_2" || {
-- # Find who we are. Look in the path if we contain no path at all
-- # relative or not.
-- case $0 in
-- *[\\/]* ) as_myself=$0 ;;
-- *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
--for as_dir in $PATH
--do
-- IFS=$as_save_IFS
-- test -z "$as_dir" && as_dir=.
-- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
--done
--
-- ;;
-- esac
-- # We did not find ourselves, most probably we were run as `sh COMMAND'
-- # in which case we are not to be found in the path.
-- if test "x$as_myself" = x; then
-- as_myself=$0
-- fi
-- if test ! -f "$as_myself"; then
-- { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
--echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
-- { (exit 1); exit 1; }; }
-- fi
-- case $CONFIG_SHELL in
-- '')
-- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
--for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
--do
-- IFS=$as_save_IFS
-- test -z "$as_dir" && as_dir=.
-- for as_base in sh bash ksh sh5; do
-- case $as_dir in
-- /*)
-- if ("$as_dir/$as_base" -c '
-- as_lineno_1=$LINENO
-- as_lineno_2=$LINENO
-- as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-- test "x$as_lineno_1" != "x$as_lineno_2" &&
-- test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then
-- $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
-- $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
-- CONFIG_SHELL=$as_dir/$as_base
-- export CONFIG_SHELL
-- exec "$CONFIG_SHELL" "$0" ${1+"$@"}
-- fi;;
-- esac
-- done
--done
--;;
-- esac
--
-- # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
-- # uniformly replaced by the line number. The first 'sed' inserts a
-- # line-number line before each line; the second 'sed' does the real
-- # work. The second script uses 'N' to pair each line-number line
-- # with the numbered line, and appends trailing '-' during
-- # substitution so that $LINENO is not a special case at line end.
-- # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
-- # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-)
-- sed '=' <$as_myself |
-- sed '
-- N
-- s,$,-,
-- : loop
-- s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
-- t loop
-- s,-$,,
-- s,^['$as_cr_digits']*\n,,
-- ' >$as_me.lineno &&
-- chmod +x $as_me.lineno ||
-- { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
--echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
-- { (exit 1); exit 1; }; }
--
-- # Don't try to exec as it changes $[0], causing all sort of problems
-- # (the dirname of $[0] is not the place where we might find the
-- # original and so on. Autoconf is especially sensible to this).
-- . ./$as_me.lineno
-- # Exit status is that of the last command.
-- exit
--}
--
--
--case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
-- *c*,-n*) ECHO_N= ECHO_C='
--' ECHO_T=' ' ;;
-- *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
-- *) ECHO_N= ECHO_C='\c' ECHO_T= ;;
--esac
--
--if expr a : '\(a\)' >/dev/null 2>&1; then
-- as_expr=expr
--else
-- as_expr=false
--fi
--
--rm -f conf$$ conf$$.exe conf$$.file
--echo >conf$$.file
--if ln -s conf$$.file conf$$ 2>/dev/null; then
-- # We could just check for DJGPP; but this test a) works b) is more generic
-- # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
-- if test -f conf$$.exe; then
-- # Don't use ln at all; we don't have any links
-- as_ln_s='cp -p'
-- else
-- as_ln_s='ln -s'
-- fi
--elif ln conf$$.file conf$$ 2>/dev/null; then
-- as_ln_s=ln
--else
-- as_ln_s='cp -p'
--fi
--rm -f conf$$ conf$$.exe conf$$.file
--
--if mkdir -p . 2>/dev/null; then
-- as_mkdir_p=:
--else
-- test -d ./-p && rmdir ./-p
-- as_mkdir_p=false
--fi
--
--as_executable_p="test -f"
--
--# Sed expression to map a string onto a valid CPP name.
--as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
--
--# Sed expression to map a string onto a valid variable name.
--as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
--
--
--# IFS
--# We need space, tab and new line, in precisely that order.
--as_nl='
--'
--IFS=" $as_nl"
--
--# CDPATH.
--$as_unset CDPATH
--
--exec 6>&1
--
--# Open the log real soon, to keep \$[0] and so on meaningful, and to
--# report actual input values of CONFIG_FILES etc. instead of their
--# values after options handling. Logging --version etc. is OK.
--exec 5>>config.log
--{
-- echo
-- sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
--## Running $as_me. ##
--_ASBOX
--} >&5
--cat >&5 <<_CSEOF
--
--This file was extended by FULL-PACKAGE-NAME $as_me VERSION, which was
--generated by GNU Autoconf 2.59. Invocation command line was
--
-- CONFIG_FILES = $CONFIG_FILES
-- CONFIG_HEADERS = $CONFIG_HEADERS
-- CONFIG_LINKS = $CONFIG_LINKS
-- CONFIG_COMMANDS = $CONFIG_COMMANDS
-- $ $0 $@
--
--_CSEOF
--echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
--echo >&5
--_ACEOF
--
--# Files that config.status was made for.
--if test -n "$ac_config_files"; then
-- echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS
--fi
--
--if test -n "$ac_config_headers"; then
-- echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS
--fi
--
--if test -n "$ac_config_links"; then
-- echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS
--fi
--
--if test -n "$ac_config_commands"; then
-- echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS
--fi
--
--cat >>$CONFIG_STATUS <<\_ACEOF
--
--ac_cs_usage="\
--\`$as_me' instantiates files from templates according to the
--current configuration.
--
--Usage: $0 [OPTIONS] [FILE]...
--
-- -h, --help print this help, then exit
-- -V, --version print version number, then exit
-- -q, --quiet do not print progress messages
-- -d, --debug don't remove temporary files
-- --recheck update $as_me by reconfiguring in the same conditions
-- --file=FILE[:TEMPLATE]
-- instantiate the configuration file FILE
-- --header=FILE[:TEMPLATE]
-- instantiate the configuration header FILE
--
--Configuration files:
--$config_files
--
--Configuration headers:
--$config_headers
--
--Report bugs to <bug-autoconf@gnu.org>."
--_ACEOF
--
--cat >>$CONFIG_STATUS <<_ACEOF
--ac_cs_version="\\
--FULL-PACKAGE-NAME config.status VERSION
--configured by $0, generated by GNU Autoconf 2.59,
-- with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
--
--Copyright (C) 2003 Free Software Foundation, Inc.
--This config.status script is free software; the Free Software Foundation
--gives unlimited permission to copy, distribute and modify it."
--srcdir=$srcdir
--_ACEOF
--
--cat >>$CONFIG_STATUS <<\_ACEOF
--# If no file are specified by the user, then we need to provide default
--# value. By we need to know if files were specified by the user.
--ac_need_defaults=:
--while test $# != 0
--do
-- case $1 in
-- --*=*)
-- ac_option=`expr "x$1" : 'x\([^=]*\)='`
-- ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
-- ac_shift=:
-- ;;
-- -*)
-- ac_option=$1
-- ac_optarg=$2
-- ac_shift=shift
-- ;;
-- *) # This is not an option, so the user has probably given explicit
-- # arguments.
-- ac_option=$1
-- ac_need_defaults=false;;
-- esac
--
-- case $ac_option in
-- # Handling of the options.
--_ACEOF
--cat >>$CONFIG_STATUS <<\_ACEOF
-- -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
-- ac_cs_recheck=: ;;
-- --version | --vers* | -V )
-- echo "$ac_cs_version"; exit 0 ;;
-- --he | --h)
-- # Conflict between --help and --header
-- { { echo "$as_me:$LINENO: error: ambiguous option: $1
--Try \`$0 --help' for more information." >&5
--echo "$as_me: error: ambiguous option: $1
--Try \`$0 --help' for more information." >&2;}
-- { (exit 1); exit 1; }; };;
-- --help | --hel | -h )
-- echo "$ac_cs_usage"; exit 0 ;;
-- --debug | --d* | -d )
-- debug=: ;;
-- --file | --fil | --fi | --f )
-- $ac_shift
-- CONFIG_FILES="$CONFIG_FILES $ac_optarg"
-- ac_need_defaults=false;;
-- --header | --heade | --head | --hea )
-- $ac_shift
-- CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
-- ac_need_defaults=false;;
-- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-- | -silent | --silent | --silen | --sile | --sil | --si | --s)
-- ac_cs_silent=: ;;
--
-- # This is an error.
-- -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
--Try \`$0 --help' for more information." >&5
--echo "$as_me: error: unrecognized option: $1
--Try \`$0 --help' for more information." >&2;}
-- { (exit 1); exit 1; }; } ;;
--
-- *) ac_config_targets="$ac_config_targets $1" ;;
--
-- esac
-- shift
--done
--
--ac_configure_extra_args=
--
--if $ac_cs_silent; then
-- exec 6>/dev/null
-- ac_configure_extra_args="$ac_configure_extra_args --silent"
--fi
--
--_ACEOF
--cat >>$CONFIG_STATUS <<_ACEOF
--if \$ac_cs_recheck; then
-- echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
-- exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
--fi
--
--_ACEOF
--
--
--
--
--
--cat >>$CONFIG_STATUS <<\_ACEOF
--for ac_config_target in $ac_config_targets
--do
-- case "$ac_config_target" in
-- # Handling of arguments.
-- "mibs/Makefile" ) CONFIG_FILES="$CONFIG_FILES mibs/Makefile" ;;
-- "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
-- "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
-- *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
--echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
-- { (exit 1); exit 1; }; };;
-- esac
--done
--
--# If the user did not use the arguments to specify the items to instantiate,
--# then the envvar interface is used. Set only those that are not.
--# We use the long form for the default assignment because of an extremely
--# bizarre bug on SunOS 4.1.3.
--if $ac_need_defaults; then
-- test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
-- test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
--fi
--
--# Have a temporary directory for convenience. Make it in the build tree
--# simply because there is no reason to put it here, and in addition,
--# creating and moving files from /tmp can sometimes cause problems.
--# Create a temporary directory, and hook for its removal unless debugging.
--$debug ||
--{
-- trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
-- trap '{ (exit 1); exit 1; }' 1 2 13 15
--}
--
--# Create a (secure) tmp directory for tmp files.
--
--{
-- tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` &&
-- test -n "$tmp" && test -d "$tmp"
--} ||
--{
-- tmp=./confstat$$-$RANDOM
-- (umask 077 && mkdir $tmp)
--} ||
--{
-- echo "$me: cannot create a temporary directory in ." >&2
-- { (exit 1); exit 1; }
--}
--
--_ACEOF
--
--cat >>$CONFIG_STATUS <<_ACEOF
--
--#
--# CONFIG_FILES section.
--#
--
--# No need to generate the scripts if there are no CONFIG_FILES.
--# This happens for instance when ./config.status config.h
--if test -n "\$CONFIG_FILES"; then
-- # Protect against being on the right side of a sed subst in config.status.
-- sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
-- s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
--s,@SHELL@,$SHELL,;t t
--s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
--s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t
--s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
--s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
--s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t
--s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
--s,@exec_prefix@,$exec_prefix,;t t
--s,@prefix@,$prefix,;t t
--s,@program_transform_name@,$program_transform_name,;t t
--s,@bindir@,$bindir,;t t
--s,@sbindir@,$sbindir,;t t
--s,@libexecdir@,$libexecdir,;t t
--s,@datadir@,$datadir,;t t
--s,@sysconfdir@,$sysconfdir,;t t
--s,@sharedstatedir@,$sharedstatedir,;t t
--s,@localstatedir@,$localstatedir,;t t
--s,@libdir@,$libdir,;t t
--s,@includedir@,$includedir,;t t
--s,@oldincludedir@,$oldincludedir,;t t
--s,@infodir@,$infodir,;t t
--s,@mandir@,$mandir,;t t
--s,@build_alias@,$build_alias,;t t
--s,@host_alias@,$host_alias,;t t
--s,@target_alias@,$target_alias,;t t
--s,@DEFS@,$DEFS,;t t
--s,@ECHO_C@,$ECHO_C,;t t
--s,@ECHO_N@,$ECHO_N,;t t
--s,@ECHO_T@,$ECHO_T,;t t
--s,@LIBS@,$LIBS,;t t
--s,@CC@,$CC,;t t
--s,@CFLAGS@,$CFLAGS,;t t
--s,@LDFLAGS@,$LDFLAGS,;t t
--s,@CPPFLAGS@,$CPPFLAGS,;t t
--s,@ac_ct_CC@,$ac_ct_CC,;t t
--s,@EXEEXT@,$EXEEXT,;t t
--s,@OBJEXT@,$OBJEXT,;t t
--s,@CPP@,$CPP,;t t
--s,@EGREP@,$EGREP,;t t
--s,@LIBOBJS@,$LIBOBJS,;t t
--s,@INSTALL@,$INSTALL,;t t
--s,@ac_ct_INSTALL@,$ac_ct_INSTALL,;t t
--s,@LTLIBOBJS@,$LTLIBOBJS,;t t
--CEOF
--
--_ACEOF
--
-- cat >>$CONFIG_STATUS <<\_ACEOF
-- # Split the substitutions into bite-sized pieces for seds with
-- # small command number limits, like on Digital OSF/1 and HP-UX.
-- ac_max_sed_lines=48
-- ac_sed_frag=1 # Number of current file.
-- ac_beg=1 # First line for current file.
-- ac_end=$ac_max_sed_lines # Line after last line for current file.
-- ac_more_lines=:
-- ac_sed_cmds=
-- while $ac_more_lines; do
-- if test $ac_beg -gt 1; then
-- sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
-- else
-- sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
-- fi
-- if test ! -s $tmp/subs.frag; then
-- ac_more_lines=false
-- else
-- # The purpose of the label and of the branching condition is to
-- # speed up the sed processing (if there are no `@' at all, there
-- # is no need to browse any of the substitutions).
-- # These are the two extra sed commands mentioned above.
-- (echo ':t
-- /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
-- if test -z "$ac_sed_cmds"; then
-- ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
-- else
-- ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
-- fi
-- ac_sed_frag=`expr $ac_sed_frag + 1`
-- ac_beg=$ac_end
-- ac_end=`expr $ac_end + $ac_max_sed_lines`
-- fi
-- done
-- if test -z "$ac_sed_cmds"; then
-- ac_sed_cmds=cat
-- fi
--fi # test -n "$CONFIG_FILES"
--
--_ACEOF
--cat >>$CONFIG_STATUS <<\_ACEOF
--for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
-- # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
-- case $ac_file in
-- - | *:- | *:-:* ) # input from stdin
-- cat >$tmp/stdin
-- ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
-- *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
-- * ) ac_file_in=$ac_file.in ;;
-- esac
--
-- # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
-- ac_dir=`(dirname "$ac_file") 2>/dev/null ||
--$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-- X"$ac_file" : 'X\(//\)[^/]' \| \
-- X"$ac_file" : 'X\(//\)$' \| \
-- X"$ac_file" : 'X\(/\)' \| \
-- . : '\(.\)' 2>/dev/null ||
--echo X"$ac_file" |
-- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-- /^X\(\/\/\)$/{ s//\1/; q; }
-- /^X\(\/\).*/{ s//\1/; q; }
-- s/.*/./; q'`
-- { if $as_mkdir_p; then
-- mkdir -p "$ac_dir"
-- else
-- as_dir="$ac_dir"
-- as_dirs=
-- while test ! -d "$as_dir"; do
-- as_dirs="$as_dir $as_dirs"
-- as_dir=`(dirname "$as_dir") 2>/dev/null ||
--$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-- X"$as_dir" : 'X\(//\)[^/]' \| \
-- X"$as_dir" : 'X\(//\)$' \| \
-- X"$as_dir" : 'X\(/\)' \| \
-- . : '\(.\)' 2>/dev/null ||
--echo X"$as_dir" |
-- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-- /^X\(\/\/\)$/{ s//\1/; q; }
-- /^X\(\/\).*/{ s//\1/; q; }
-- s/.*/./; q'`
-- done
-- test ! -n "$as_dirs" || mkdir $as_dirs
-- fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
--echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
-- { (exit 1); exit 1; }; }; }
--
-- ac_builddir=.
--
--if test "$ac_dir" != .; then
-- ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
-- # A "../" for each directory in $ac_dir_suffix.
-- ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
--else
-- ac_dir_suffix= ac_top_builddir=
--fi
--
--case $srcdir in
-- .) # No --srcdir option. We are building in place.
-- ac_srcdir=.
-- if test -z "$ac_top_builddir"; then
-- ac_top_srcdir=.
-- else
-- ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
-- fi ;;
-- [\\/]* | ?:[\\/]* ) # Absolute path.
-- ac_srcdir=$srcdir$ac_dir_suffix;
-- ac_top_srcdir=$srcdir ;;
-- *) # Relative path.
-- ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
-- ac_top_srcdir=$ac_top_builddir$srcdir ;;
--esac
--
--# Do not use `cd foo && pwd` to compute absolute paths, because
--# the directories may not exist.
--case `pwd` in
--.) ac_abs_builddir="$ac_dir";;
--*)
-- case "$ac_dir" in
-- .) ac_abs_builddir=`pwd`;;
-- [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
-- *) ac_abs_builddir=`pwd`/"$ac_dir";;
-- esac;;
--esac
--case $ac_abs_builddir in
--.) ac_abs_top_builddir=${ac_top_builddir}.;;
--*)
-- case ${ac_top_builddir}. in
-- .) ac_abs_top_builddir=$ac_abs_builddir;;
-- [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
-- *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
-- esac;;
--esac
--case $ac_abs_builddir in
--.) ac_abs_srcdir=$ac_srcdir;;
--*)
-- case $ac_srcdir in
-- .) ac_abs_srcdir=$ac_abs_builddir;;
-- [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
-- *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
-- esac;;
--esac
--case $ac_abs_builddir in
--.) ac_abs_top_srcdir=$ac_top_srcdir;;
--*)
-- case $ac_top_srcdir in
-- .) ac_abs_top_srcdir=$ac_abs_builddir;;
-- [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
-- *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
-- esac;;
--esac
--
--
--
-- # Let's still pretend it is `configure' which instantiates (i.e., don't
-- # use $as_me), people would be surprised to read:
-- # /* config.h. Generated by config.status. */
-- if test x"$ac_file" = x-; then
-- configure_input=
-- else
-- configure_input="$ac_file. "
-- fi
-- configure_input=$configure_input"Generated from `echo $ac_file_in |
-- sed 's,.*/,,'` by configure."
--
-- # First look for the input files in the build tree, otherwise in the
-- # src tree.
-- ac_file_inputs=`IFS=:
-- for f in $ac_file_in; do
-- case $f in
-- -) echo $tmp/stdin ;;
-- [\\/$]*)
-- # Absolute (can't be DOS-style, as IFS=:)
-- test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
--echo "$as_me: error: cannot find input file: $f" >&2;}
-- { (exit 1); exit 1; }; }
-- echo "$f";;
-- *) # Relative
-- if test -f "$f"; then
-- # Build tree
-- echo "$f"
-- elif test -f "$srcdir/$f"; then
-- # Source tree
-- echo "$srcdir/$f"
-- else
-- # /dev/null tree
-- { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
--echo "$as_me: error: cannot find input file: $f" >&2;}
-- { (exit 1); exit 1; }; }
-- fi;;
-- esac
-- done` || { (exit 1); exit 1; }
--
-- if test x"$ac_file" != x-; then
-- { echo "$as_me:$LINENO: creating $ac_file" >&5
--echo "$as_me: creating $ac_file" >&6;}
-- rm -f "$ac_file"
-- fi
--_ACEOF
--cat >>$CONFIG_STATUS <<_ACEOF
-- sed "$ac_vpsub
--$extrasub
--_ACEOF
--cat >>$CONFIG_STATUS <<\_ACEOF
--:t
--/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
--s,@configure_input@,$configure_input,;t t
--s,@srcdir@,$ac_srcdir,;t t
--s,@abs_srcdir@,$ac_abs_srcdir,;t t
--s,@top_srcdir@,$ac_top_srcdir,;t t
--s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t
--s,@builddir@,$ac_builddir,;t t
--s,@abs_builddir@,$ac_abs_builddir,;t t
--s,@top_builddir@,$ac_top_builddir,;t t
--s,@abs_top_builddir@,$ac_abs_top_builddir,;t t
--" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
-- rm -f $tmp/stdin
-- if test x"$ac_file" != x-; then
-- mv $tmp/out $ac_file
-- else
-- cat $tmp/out
-- rm -f $tmp/out
-- fi
--
--done
--_ACEOF
--cat >>$CONFIG_STATUS <<\_ACEOF
--
--#
--# CONFIG_HEADER section.
--#
--
--# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
--# NAME is the cpp macro being defined and VALUE is the value it is being given.
--#
--# ac_d sets the value in "#define NAME VALUE" lines.
--ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)'
--ac_dB='[ ].*$,\1#\2'
--ac_dC=' '
--ac_dD=',;t'
--# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
--ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
--ac_uB='$,\1#\2define\3'
--ac_uC=' '
--ac_uD=',;t'
--
--for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue
-- # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
-- case $ac_file in
-- - | *:- | *:-:* ) # input from stdin
-- cat >$tmp/stdin
-- ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
-- *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
-- * ) ac_file_in=$ac_file.in ;;
-- esac
--
-- test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5
--echo "$as_me: creating $ac_file" >&6;}
--
-- # First look for the input files in the build tree, otherwise in the
-- # src tree.
-- ac_file_inputs=`IFS=:
-- for f in $ac_file_in; do
-- case $f in
-- -) echo $tmp/stdin ;;
-- [\\/$]*)
-- # Absolute (can't be DOS-style, as IFS=:)
-- test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
--echo "$as_me: error: cannot find input file: $f" >&2;}
-- { (exit 1); exit 1; }; }
-- # Do quote $f, to prevent DOS paths from being IFS'd.
-- echo "$f";;
-- *) # Relative
-- if test -f "$f"; then
-- # Build tree
-- echo "$f"
-- elif test -f "$srcdir/$f"; then
-- # Source tree
-- echo "$srcdir/$f"
-- else
-- # /dev/null tree
-- { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
--echo "$as_me: error: cannot find input file: $f" >&2;}
-- { (exit 1); exit 1; }; }
-- fi;;
-- esac
-- done` || { (exit 1); exit 1; }
-- # Remove the trailing spaces.
-- sed 's/[ ]*$//' $ac_file_inputs >$tmp/in
--
--_ACEOF
--
--# Transform confdefs.h into two sed scripts, `conftest.defines' and
--# `conftest.undefs', that substitutes the proper values into
--# config.h.in to produce config.h. The first handles `#define'
--# templates, and the second `#undef' templates.
--# And first: Protect against being on the right side of a sed subst in
--# config.status. Protect against being in an unquoted here document
--# in config.status.
--rm -f conftest.defines conftest.undefs
--# Using a here document instead of a string reduces the quoting nightmare.
--# Putting comments in sed scripts is not portable.
--#
--# `end' is used to avoid that the second main sed command (meant for
--# 0-ary CPP macros) applies to n-ary macro definitions.
--# See the Autoconf documentation for `clear'.
--cat >confdef2sed.sed <<\_ACEOF
--s/[\\&,]/\\&/g
--s,[\\$`],\\&,g
--t clear
--: clear
--s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp
--t end
--s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp
--: end
--_ACEOF
--# If some macros were called several times there might be several times
--# the same #defines, which is useless. Nevertheless, we may not want to
--# sort them, since we want the *last* AC-DEFINE to be honored.
--uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines
--sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs
--rm -f confdef2sed.sed
--
--# This sed command replaces #undef with comments. This is necessary, for
--# example, in the case of _POSIX_SOURCE, which is predefined and required
--# on some systems where configure will not decide to define it.
--cat >>conftest.undefs <<\_ACEOF
--s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */,
--_ACEOF
--
--# Break up conftest.defines because some shells have a limit on the size
--# of here documents, and old seds have small limits too (100 cmds).
--echo ' # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS
--echo ' if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS
--echo ' # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS
--echo ' :' >>$CONFIG_STATUS
--rm -f conftest.tail
--while grep . conftest.defines >/dev/null
--do
-- # Write a limited-size here document to $tmp/defines.sed.
-- echo ' cat >$tmp/defines.sed <<CEOF' >>$CONFIG_STATUS
-- # Speed up: don't consider the non `#define' lines.
-- echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS
-- # Work around the forget-to-reset-the-flag bug.
-- echo 't clr' >>$CONFIG_STATUS
-- echo ': clr' >>$CONFIG_STATUS
-- sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS
-- echo 'CEOF
-- sed -f $tmp/defines.sed $tmp/in >$tmp/out
-- rm -f $tmp/in
-- mv $tmp/out $tmp/in
--' >>$CONFIG_STATUS
-- sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail
-- rm -f conftest.defines
-- mv conftest.tail conftest.defines
--done
--rm -f conftest.defines
--echo ' fi # grep' >>$CONFIG_STATUS
--echo >>$CONFIG_STATUS
--
--# Break up conftest.undefs because some shells have a limit on the size
--# of here documents, and old seds have small limits too (100 cmds).
--echo ' # Handle all the #undef templates' >>$CONFIG_STATUS
--rm -f conftest.tail
--while grep . conftest.undefs >/dev/null
--do
-- # Write a limited-size here document to $tmp/undefs.sed.
-- echo ' cat >$tmp/undefs.sed <<CEOF' >>$CONFIG_STATUS
-- # Speed up: don't consider the non `#undef'
-- echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS
-- # Work around the forget-to-reset-the-flag bug.
-- echo 't clr' >>$CONFIG_STATUS
-- echo ': clr' >>$CONFIG_STATUS
-- sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS
-- echo 'CEOF
-- sed -f $tmp/undefs.sed $tmp/in >$tmp/out
-- rm -f $tmp/in
-- mv $tmp/out $tmp/in
--' >>$CONFIG_STATUS
-- sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail
-- rm -f conftest.undefs
-- mv conftest.tail conftest.undefs
--done
--rm -f conftest.undefs
--
--cat >>$CONFIG_STATUS <<\_ACEOF
-- # Let's still pretend it is `configure' which instantiates (i.e., don't
-- # use $as_me), people would be surprised to read:
-- # /* config.h. Generated by config.status. */
-- if test x"$ac_file" = x-; then
-- echo "/* Generated by configure. */" >$tmp/config.h
-- else
-- echo "/* $ac_file. Generated by configure. */" >$tmp/config.h
-- fi
-- cat $tmp/in >>$tmp/config.h
-- rm -f $tmp/in
-- if test x"$ac_file" != x-; then
-- if diff $ac_file $tmp/config.h >/dev/null 2>&1; then
-- { echo "$as_me:$LINENO: $ac_file is unchanged" >&5
--echo "$as_me: $ac_file is unchanged" >&6;}
-- else
-- ac_dir=`(dirname "$ac_file") 2>/dev/null ||
--$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-- X"$ac_file" : 'X\(//\)[^/]' \| \
-- X"$ac_file" : 'X\(//\)$' \| \
-- X"$ac_file" : 'X\(/\)' \| \
-- . : '\(.\)' 2>/dev/null ||
--echo X"$ac_file" |
-- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-- /^X\(\/\/\)$/{ s//\1/; q; }
-- /^X\(\/\).*/{ s//\1/; q; }
-- s/.*/./; q'`
-- { if $as_mkdir_p; then
-- mkdir -p "$ac_dir"
-- else
-- as_dir="$ac_dir"
-- as_dirs=
-- while test ! -d "$as_dir"; do
-- as_dirs="$as_dir $as_dirs"
-- as_dir=`(dirname "$as_dir") 2>/dev/null ||
--$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-- X"$as_dir" : 'X\(//\)[^/]' \| \
-- X"$as_dir" : 'X\(//\)$' \| \
-- X"$as_dir" : 'X\(/\)' \| \
-- . : '\(.\)' 2>/dev/null ||
--echo X"$as_dir" |
-- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-- /^X\(\/\/\)$/{ s//\1/; q; }
-- /^X\(\/\).*/{ s//\1/; q; }
-- s/.*/./; q'`
-- done
-- test ! -n "$as_dirs" || mkdir $as_dirs
-- fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
--echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
-- { (exit 1); exit 1; }; }; }
--
-- rm -f $ac_file
-- mv $tmp/config.h $ac_file
-- fi
-- else
-- cat $tmp/config.h
-- rm -f $tmp/config.h
-- fi
--done
--_ACEOF
--
--cat >>$CONFIG_STATUS <<\_ACEOF
--
--{ (exit 0); exit 0; }
--_ACEOF
--chmod +x $CONFIG_STATUS
--ac_clean_files=$ac_clean_files_save
--
--
--# configure is writing to config.log, and then calls config.status.
--# config.status does its own redirection, appending to config.log.
--# Unfortunately, on DOS this fails, as config.log is still kept open
--# by configure, so config.status won't be able to write to it; its
--# output is simply discarded. So we exec the FD to /dev/null,
--# effectively closing config.log, so it can be properly (re)opened and
--# appended to by config.status. When coming back to configure, we
--# need to make the FD available again.
--if test "$no_create" != yes; then
-- ac_cs_success=:
-- ac_config_status_args=
-- test "$silent" = yes &&
-- ac_config_status_args="$ac_config_status_args --quiet"
-- exec 5>/dev/null
-- $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
-- exec 5>>config.log
-- # Use ||, not &&, to avoid exiting from the if with $? = 1, which
-- # would make configure fail if this is the last instruction.
-- $ac_cs_success || { (exit 1); exit 1; }
--fi
--
-diff --git configure.in configure.in
-deleted file mode 100644
-index 8625241..0000000
---- configure.in
-+++ /dev/null
-@@ -1,29 +0,0 @@
--# -*- Autoconf -*-
--# Process this file with autoconf to produce a configure script.
--
--AC_PREREQ(2.59)
--AC_INIT(FULL-PACKAGE-NAME, VERSION, BUG-REPORT-ADDRESS)
--AC_CONFIG_SRCDIR([iptables-snmp.c])
--AC_CONFIG_HEADER([config.h])
--
--# Checks for programs.
--AC_PROG_CC
--
--# Checks for libraries.
--
--# Checks for header files.
--AC_CHECK_HEADERS([arpa/inet.h])
--
--# Checks for typedefs, structures, and compiler characteristics.
--AC_C_CONST
--
--# Checks for library functions.
--AC_FUNC_MALLOC
--AC_FUNC_REALLOC
--AC_CHECK_FUNCS([strdup strerror])
--
--AC_CHECK_TOOL(INSTALL, install, :)
--
--AC_CONFIG_FILES([mibs/Makefile])
--AC_CONFIG_FILES([Makefile])
--AC_OUTPUT
-diff --git iptables-snmp.c iptables-snmp.c
-index 918d4c8..f845cc1 100644
---- iptables-snmp.c
-+++ iptables-snmp.c
-@@ -1,6 +1,4 @@
- /*
-- * $Id$
-- *
- * This file is part of iptables-snmp - using SNMP to read data from linux
- * iptables
- *
-@@ -33,10 +31,12 @@
- #include <net-snmp/net-snmp-config.h>
- #include <net-snmp/net-snmp-includes.h>
- #include <net-snmp/agent/net-snmp-agent-includes.h>
--#include "iptables-snmp.h"
-
-+#include <iptables/internal.h>
- #include <libiptc/libiptc.h>
-
-+#include "iptables-snmp.h"
-+
- /* For backward compatibility */
- typedef struct iptc_handle *iptc_handle_t;
-
-diff --git mibs/Makefile.in mibs/Makefile.in
-deleted file mode 100644
-index fa434cb..0000000
---- mibs/Makefile.in
-+++ /dev/null
-@@ -1,4 +0,0 @@
--all:
--
--clean:
-- rm -f .index *.MIB~
-diff --git mkinstalldirs mkinstalldirs
-deleted file mode 100644
-index 4f58503..0000000
---- mkinstalldirs
-+++ /dev/null
-@@ -1,40 +0,0 @@
--#! /bin/sh
--# mkinstalldirs --- make directory hierarchy
--# Author: Noah Friedman <friedman@prep.ai.mit.edu>
--# Created: 1993-05-16
--# Public domain
--
--# $Id: mkinstalldirs,v 1.13 1999/01/05 03:18:55 bje Exp $
--
--errstatus=0
--
--for file
--do
-- set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
-- shift
--
-- pathcomp=
-- for d
-- do
-- pathcomp="$pathcomp$d"
-- case "$pathcomp" in
-- -* ) pathcomp=./$pathcomp ;;
-- esac
--
-- if test ! -d "$pathcomp"; then
-- echo "mkdir $pathcomp"
--
-- mkdir "$pathcomp" || lasterr=$?
--
-- if test ! -d "$pathcomp"; then
-- errstatus=$lasterr
-- fi
-- fi
--
-- pathcomp="$pathcomp/"
-- done
--done
--
--exit $errstatus
--
--# mkinstalldirs ends here
---
-1.8.5.1
-
diff --git a/net-firewall/iptables-snmp/iptables-snmp-0.1.ebuild b/net-firewall/iptables-snmp/iptables-snmp-0.1.ebuild
index dfb09256..4a870e59 100644
--- a/net-firewall/iptables-snmp/iptables-snmp-0.1.ebuild
+++ b/net-firewall/iptables-snmp/iptables-snmp-0.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2013 Gentoo Foundation
+# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
@@ -21,7 +21,7 @@ DEPEND="net-firewall/iptables
RDEPEND="${DEPEND}"
src_prepare() {
- epatch "${FILESDIR}"/*.patch
+ epatch_user
tc-export CC
}