From c387170f903a976922de970042f8fdb6ec93a0f8 Mon Sep 17 00:00:00 2001 From: Jozsef Kadlecsik Date: Mon, 22 Oct 2018 19:12:14 +0200 Subject: Fix warning message handling Warning messages were not printed and handled properly, the patch fixes the issue. --- include/libipset/args.h | 2 +- include/libipset/parse.h | 10 +++++----- include/libipset/session.h | 14 ++++++++++---- 3 files changed, 16 insertions(+), 10 deletions(-) (limited to 'include/libipset') diff --git a/include/libipset/args.h b/include/libipset/args.h index cdec180..dce4190 100644 --- a/include/libipset/args.h +++ b/include/libipset/args.h @@ -63,7 +63,7 @@ extern "C" { #endif extern const struct ipset_arg * ipset_keyword(enum ipset_keywords i); - +extern const char * ipset_ignored_optname(int opt); #ifdef __cplusplus } #endif diff --git a/include/libipset/parse.h b/include/libipset/parse.h index 4bd5df5..8b68618 100644 --- a/include/libipset/parse.h +++ b/include/libipset/parse.h @@ -51,7 +51,7 @@ extern int ipset_parse_icmpv6(struct ipset_session *session, extern int ipset_parse_proto_port(struct ipset_session *session, enum ipset_opt opt, const char *str); extern int ipset_parse_tcp_udp_port(struct ipset_session *session, - enum ipset_opt opt, const char *str); + enum ipset_opt opt, const char *str); extern int ipset_parse_family(struct ipset_session *session, enum ipset_opt opt, const char *str); extern int ipset_parse_ip(struct ipset_session *session, @@ -69,7 +69,7 @@ extern int ipset_parse_iprange(struct ipset_session *session, extern int ipset_parse_ipnet(struct ipset_session *session, enum ipset_opt opt, const char *str); extern int ipset_parse_ip4_single6(struct ipset_session *session, - enum ipset_opt opt, const char *str); + enum ipset_opt opt, const char *str); extern int ipset_parse_ip4_net6(struct ipset_session *session, enum ipset_opt opt, const char *str); extern int ipset_parse_name(struct ipset_session *session, @@ -99,11 +99,11 @@ extern int ipset_parse_typename(struct ipset_session *session, extern int ipset_parse_iface(struct ipset_session *session, enum ipset_opt opt, const char *str); extern int ipset_parse_comment(struct ipset_session *session, - enum ipset_opt opt, const char *str); + enum ipset_opt opt, const char *str); extern int ipset_parse_skbmark(struct ipset_session *session, - enum ipset_opt opt, const char *str); + enum ipset_opt opt, const char *str); extern int ipset_parse_skbprio(struct ipset_session *session, - enum ipset_opt opt, const char *str); + enum ipset_opt opt, const char *str); extern int ipset_parse_ignored(struct ipset_session *session, enum ipset_opt opt, const char *str); extern int ipset_parse_elem(struct ipset_session *session, diff --git a/include/libipset/session.h b/include/libipset/session.h index 825d2c8..8618402 100644 --- a/include/libipset/session.h +++ b/include/libipset/session.h @@ -35,8 +35,10 @@ extern void ipset_session_lineno(struct ipset_session *session, extern void * ipset_session_printf_private(struct ipset_session *session); enum ipset_err_type { - IPSET_ERROR, - IPSET_WARNING, + IPSET_NO_ERROR, + IPSET_WARNING, /* Success code when exit */ + IPSET_NOTICE, /* Error code and exit in non interactive mode */ + IPSET_ERROR, /* Error code and exit */ }; extern int ipset_session_report(struct ipset_session *session, @@ -50,14 +52,18 @@ extern int ipset_session_warning_as_error(struct ipset_session *session); #define ipset_warn(session, fmt, args...) \ ipset_session_report(session, IPSET_WARNING, fmt , ## args) +#define ipset_notice(session, fmt, args...) \ + ipset_session_report(session, IPSET_NOTICE, fmt , ## args) + #define ipset_errptr(session, fmt, args...) ({ \ ipset_session_report(session, IPSET_ERROR, fmt , ## args); \ NULL; \ }) extern void ipset_session_report_reset(struct ipset_session *session); -extern const char *ipset_session_error(const struct ipset_session *session); -extern const char *ipset_session_warning(const struct ipset_session *session); +extern const char *ipset_session_report_msg(const struct ipset_session *session); +extern enum ipset_err_type ipset_session_report_type( + const struct ipset_session *session); #define ipset_session_data_set(session, opt, value) \ ipset_data_set(ipset_session_data(session), opt, value) -- cgit v1.2.3