summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorJozsef Kadlecsik <kadlec@blackhole.kfki.hu>2011-01-18 17:17:46 +0100
committerJozsef Kadlecsik <kadlec@blackhole.kfki.hu>2011-01-18 17:17:46 +0100
commitcac607bd8850e00356e4d97b05e7c8adfb3fa640 (patch)
treebefa146e2c99f2557ee385865070c5853eb887b7 /lib
parent1d4c46ed1088f40315695bc2de12bddc35b536a1 (diff)
downloadipset-cac607bd8850e00356e4d97b05e7c8adfb3fa640.tar.gz
Show correct line numbers in restore output for parser errors
Parser errors are reported by a wrong lineno at restore, bug reported by Holger Eitzenberger: create foo6 hash:ip hashsize 64 family inet6 add foo6 20a1:1234:5678::/64 add foo6 20a1:1234:5679::/64 you get: ipset v5.2: Error in line 1: Syntax error: plain IP address must be supplied: 20a1:1234:5678::/64 Should be line 2 though. The solution is to set the session lineno before parsing.
Diffstat (limited to 'lib')
-rw-r--r--lib/session.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/lib/session.c b/lib/session.c
index 311e5df..a193143 100644
--- a/lib/session.c
+++ b/lib/session.c
@@ -98,6 +98,19 @@ ipset_saved_type(const struct ipset_session *session)
return session->saved_type;
}
+/**
+ * ipset_session_lineno - set session lineno
+ * @session: session structure
+ *
+ * Set session lineno to report parser errors correctly.
+ */
+void
+ipset_session_lineno(struct ipset_session *session, uint32_t lineno)
+{
+ assert(session);
+ session->lineno = lineno;
+}
+
/*
* Environment options
*/