diff options
author | Illes Marci <marci@balabit.hu> | 2003-03-03 08:08:37 +0000 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2003-03-03 08:08:37 +0000 |
commit | 63e9063a660809385fd17edb94da044c7c884e02 (patch) | |
tree | 4d7f9291c2ab6db9be14f83886a233361d83c381 | |
parent | 26100fa186b9df8585a690e7efb3b13863efbe1f (diff) |
make iptables-restore print the line number in case of an error
(Illes Marci <marci@balabit.hu>)
-rw-r--r-- | include/iptables.h | 2 | ||||
-rw-r--r-- | iptables-restore.c | 4 | ||||
-rw-r--r-- | iptables.c | 8 |
3 files changed, 12 insertions, 2 deletions
diff --git a/include/iptables.h b/include/iptables.h index 858bbdc7..205984eb 100644 --- a/include/iptables.h +++ b/include/iptables.h @@ -106,6 +106,8 @@ struct iptables_target #endif }; +extern int line; + /* Your shared library should call one of these. */ extern void register_match(struct iptables_match *me); extern void register_target(struct iptables_target *me); diff --git a/iptables-restore.c b/iptables-restore.c index 13dcd259..8e193899 100644 --- a/iptables-restore.c +++ b/iptables-restore.c @@ -4,7 +4,7 @@ * * This code is distributed under the terms of GNU GPL v2 * - * $Id: iptables-restore.c,v 1.22 2002/08/07 09:07:41 laforge Exp $ + * $Id: iptables-restore.c,v 1.23 2003/03/03 08:05:07 laforge Exp $ */ #include <getopt.h> @@ -101,7 +101,6 @@ int main(int argc, char *argv[]) { iptc_handle_t handle; char buffer[10240]; - unsigned int line = 0; int c; char curtable[IPT_TABLE_MAXNAMELEN + 1]; FILE *in; @@ -110,6 +109,7 @@ int main(int argc, char *argv[]) program_name = "iptables-restore"; program_version = IPTABLES_VERSION; + line = 0; #ifdef NO_SHARED_LIBS init_extensions(); @@ -141,6 +141,12 @@ static struct option original_opts[] = { { 0 } }; +/* we need this for iptables-restore. iptables-restore.c sets line to the + * current line of the input file, in order to give a more precise error + * message. iptables itself doesn't need this, so it is initialized to the + * magic number of -1 */ +int line = -1; + #ifndef __OPTIMIZE__ struct ipt_entry_target * ipt_get_target(struct ipt_entry *e) @@ -330,6 +336,8 @@ exit_error(enum exittype status, char *msg, ...) void exit_tryhelp(int status) { + if (line =! -1) + fprintf(stderr, "Error occured at line: %d\n", line); fprintf(stderr, "Try `%s -h' or '%s --help' for more information.\n", program_name, program_name ); exit(status); |