* iptables: missing connlabel.conf causes unnecessary error messages
@ 2014-09-05 8:06 Thomas De Schampheleire
2014-09-05 9:13 ` Florian Westphal
0 siblings, 1 reply; 5+ messages in thread
From: Thomas De Schampheleire @ 2014-09-05 8:06 UTC (permalink / raw)
To: netfilter-devel, Florian Westphal
Hi,
Commit http://git.netfilter.org/iptables/commit/?id=51340f7b6a1103b12d86ef488f7140406d80401e
removed the default /etc/xtables/connlabel.conf file distributed with netfilter.
>From this commit onwards, every call to iptables will show the message:
cannot open connlabel.conf, not registering 'connlabel' match: No
such file or directory
Creating an empty connlabel.conf file does not really help, the
message now becomes:
cannot open connlabel.conf, not registering 'connlabel' match: Success
In order to remove the message, we have to specify at least one label,
for example '0 foo'.
I don't think this is correct behavior: even when not using connlabel
at all, iptables will print an error/warning in its default
installation. The only way to remove this warning is to create a dummy
rule.
Moreover, I do not understand the reasoning of the mentioned commit:
what is the problem in respecting sysconfdir? There are so many
applications and libraries that use autoconf and can have
configuration files in a place respecting sysconfdir.
Finally, even if you do not want to provide a default file with the
iptables installation, an empty file (created by the user) should hide
the error message.
What is your view on this?
Thanks,
Thomas
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: iptables: missing connlabel.conf causes unnecessary error messages 2014-09-05 8:06 iptables: missing connlabel.conf causes unnecessary error messages Thomas De Schampheleire @ 2014-09-05 9:13 ` Florian Westphal 2014-09-05 9:47 ` Thomas De Schampheleire 0 siblings, 1 reply; 5+ messages in thread From: Florian Westphal @ 2014-09-05 9:13 UTC (permalink / raw) To: Thomas De Schampheleire; +Cc: netfilter-devel, Florian Westphal Thomas De Schampheleire <patrickdepinguin@gmail.com> wrote: > Commit http://git.netfilter.org/iptables/commit/?id=51340f7b6a1103b12d86ef488f7140406d80401e > removed the default /etc/xtables/connlabel.conf file distributed with netfilter. > > From this commit onwards, every call to iptables will show the message: > cannot open connlabel.conf, not registering 'connlabel' match: No > such file or directory Right, this happens for static builds. > Creating an empty connlabel.conf file does not really help, the > message now becomes: > cannot open connlabel.conf, not registering 'connlabel' match: Success Thats a bug. > Moreover, I do not understand the reasoning of the mentioned commit: > what is the problem in respecting sysconfdir? There are so many > applications and libraries that use autoconf and can have > configuration files in a place respecting sysconfdir. Because then every libnetfiler_conntrack mapping call in non-iptables software has to 'guess' where iptables' sysconfdir is. > Finally, even if you do not want to provide a default file with the > iptables installation, an empty file (created by the user) should hide > the error message. > > What is your view on this? Agreed. If there are no other comments, I will push following patch later today: connlabel: do not open config file from _init hook else, static builds will print this for every iptables invocation, even 'iptables -L'. Delay opening until we need to translate a mapping. diff --git a/extensions/libxt_connlabel.c b/extensions/libxt_connlabel.c --- a/extensions/libxt_connlabel.c +++ b/extensions/libxt_connlabel.c @@ -29,11 +29,26 @@ static const struct xt_option_entry connlabel_mt_opts[] = { XTOPT_TABLEEND, }; +/* cannot do this via _init, else static builds might spew error message + * for every iptables invocation. + */ +static void connlabel_open(void) +{ + if (map) + return; + + map = nfct_labelmap_new(NULL); + if (!map && errno) + xtables_error(RESOURCE_PROBLEM, "cannot open connlabel.conf: %s\n", + strerror(errno)); +} + static void connlabel_mt_parse(struct xt_option_call *cb) { struct xt_connlabel_mtinfo *info = cb->data; int tmp; + connlabel_open(); xtables_option_parse(cb); switch (cb->entry->id) { @@ -54,7 +69,11 @@ static void connlabel_mt_parse(struct xt_option_call *cb) static const char *connlabel_get_name(int b) { - const char *name = nfct_labelmap_get_name(map, b); + const char *name; + + connlabel_open(); + + name = nfct_labelmap_get_name(map, b); if (name && strcmp(name, "")) return name; return NULL; @@ -114,11 +133,5 @@ static struct xtables_match connlabel_mt_reg = { void _init(void) { - map = nfct_labelmap_new(NULL); - if (!map) { - fprintf(stderr, "cannot open connlabel.conf, not registering '%s' match: %s\n", - connlabel_mt_reg.name, strerror(errno)); - return; - } xtables_register_match(&connlabel_mt_reg); } ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: iptables: missing connlabel.conf causes unnecessary error messages 2014-09-05 9:13 ` Florian Westphal @ 2014-09-05 9:47 ` Thomas De Schampheleire 2014-09-05 9:51 ` Florian Westphal 0 siblings, 1 reply; 5+ messages in thread From: Thomas De Schampheleire @ 2014-09-05 9:47 UTC (permalink / raw) To: Florian Westphal; +Cc: netfilter-devel Hi Florian, On Fri, Sep 5, 2014 at 11:13 AM, Florian Westphal <fw@strlen.de> wrote: > Thomas De Schampheleire <patrickdepinguin@gmail.com> wrote: >> Commit http://git.netfilter.org/iptables/commit/?id=51340f7b6a1103b12d86ef488f7140406d80401e >> removed the default /etc/xtables/connlabel.conf file distributed with netfilter. >> >> From this commit onwards, every call to iptables will show the message: >> cannot open connlabel.conf, not registering 'connlabel' match: No >> such file or directory > > Right, this happens for static builds. If with 'static' you mean 'statically linked', then this is not correct. My iptables application is dynamically linked: ~ # LD_TRACE_LOADED_OBJECTS=1 iptables libip4tc.so.0 => /usr/lib32/libip4tc.so.0 (0x006f1000) libip6tc.so.0 => /usr/lib32/libip6tc.so.0 (0x00707000) libxtables.so.10 => /usr/lib32/libxtables.so.10 (0x0071d000) libnetfilter_conntrack.so.3 => /usr/lib32/libnetfilter_conntrack.so.3 (0x00737000) libmnl.so.0 => /usr/lib32/libmnl.so.0 (0x0075c000) libnfnetlink.so.0 => /usr/lib32/libnfnetlink.so.0 (0x00770000) libdl.so.2 => /lib32/libdl.so.2 (0x00785000) libm.so.6 => /lib32/libm.so.6 (0x00798000) libc.so.6 => /lib32/libc.so.6 (0x00883000) /lib32/ld.so.1 (0x006c2000) A prerequisite to seeing this message does seem to be the presence of libnetfilter_conntrack (during the compilation of iptables). > >> Creating an empty connlabel.conf file does not really help, the >> message now becomes: >> cannot open connlabel.conf, not registering 'connlabel' match: Success > > Thats a bug. > >> Moreover, I do not understand the reasoning of the mentioned commit: >> what is the problem in respecting sysconfdir? There are so many >> applications and libraries that use autoconf and can have >> configuration files in a place respecting sysconfdir. > > Because then every libnetfiler_conntrack mapping call in > non-iptables software has to 'guess' where iptables' sysconfdir is. Ok, understood. > >> Finally, even if you do not want to provide a default file with the >> iptables installation, an empty file (created by the user) should hide >> the error message. >> >> What is your view on this? > > Agreed. > If there are no other comments, I will push following patch later today: Deferring the opening of the file until you really need it seems a good solution indeed. However, the 'static' mentions in your proposed patch may need adaptation based on the discussion above. Thanks, Thomas ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: iptables: missing connlabel.conf causes unnecessary error messages 2014-09-05 9:47 ` Thomas De Schampheleire @ 2014-09-05 9:51 ` Florian Westphal 2014-09-05 10:11 ` Thomas De Schampheleire 0 siblings, 1 reply; 5+ messages in thread From: Florian Westphal @ 2014-09-05 9:51 UTC (permalink / raw) To: Thomas De Schampheleire; +Cc: Florian Westphal, netfilter-devel Thomas De Schampheleire <patrickdepinguin@gmail.com> wrote: > On Fri, Sep 5, 2014 at 11:13 AM, Florian Westphal <fw@strlen.de> wrote: > > Thomas De Schampheleire <patrickdepinguin@gmail.com> wrote: > >> Commit http://git.netfilter.org/iptables/commit/?id=51340f7b6a1103b12d86ef488f7140406d80401e > >> removed the default /etc/xtables/connlabel.conf file distributed with netfilter. > >> > >> From this commit onwards, every call to iptables will show the message: > >> cannot open connlabel.conf, not registering 'connlabel' match: No > >> such file or directory > > > > Right, this happens for static builds. > > If with 'static' you mean 'statically linked', then this is not correct. > My iptables application is dynamically linked: I meant --enable-static during configure stage. ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: iptables: missing connlabel.conf causes unnecessary error messages 2014-09-05 9:51 ` Florian Westphal @ 2014-09-05 10:11 ` Thomas De Schampheleire 0 siblings, 0 replies; 5+ messages in thread From: Thomas De Schampheleire @ 2014-09-05 10:11 UTC (permalink / raw) To: Florian Westphal; +Cc: netfilter-devel On Fri, Sep 5, 2014 at 11:51 AM, Florian Westphal <fw@strlen.de> wrote: > Thomas De Schampheleire <patrickdepinguin@gmail.com> wrote: >> On Fri, Sep 5, 2014 at 11:13 AM, Florian Westphal <fw@strlen.de> wrote: >> > Thomas De Schampheleire <patrickdepinguin@gmail.com> wrote: >> >> Commit http://git.netfilter.org/iptables/commit/?id=51340f7b6a1103b12d86ef488f7140406d80401e >> >> removed the default /etc/xtables/connlabel.conf file distributed with netfilter. >> >> >> >> From this commit onwards, every call to iptables will show the message: >> >> cannot open connlabel.conf, not registering 'connlabel' match: No >> >> such file or directory >> > >> > Right, this happens for static builds. >> >> If with 'static' you mean 'statically linked', then this is not correct. >> My iptables application is dynamically linked: > > I meant --enable-static during configure stage. Ok, I see, this is indeed a flag passed in my configure step. Thanks, Thomas ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2014-09-05 10:11 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2014-09-05 8:06 iptables: missing connlabel.conf causes unnecessary error messages Thomas De Schampheleire 2014-09-05 9:13 ` Florian Westphal 2014-09-05 9:47 ` Thomas De Schampheleire 2014-09-05 9:51 ` Florian Westphal 2014-09-05 10:11 ` Thomas De Schampheleire
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).