From 36979d9ad54d82715307dc7c4771044e766c82e8 Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Fri, 5 Jun 2020 17:27:29 +0200 Subject: [PATCH] REORG: include: move the error reporting functions to from log.h to errors.h Most of the files dealing with error reports have to include log.h in order to access ha_alert(), ha_warning() etc. But while these functions don't depend on anything, log.h depends on a lot of stuff because it deals with log-formats and samples. As a result it's impossible not to embark long dependencies when using ha_warning() or qfprintf(). This patch moves these low-level functions to errors.h, which already defines the error codes used at the same places. About half of the users of log.h could be adjusted, sometimes revealing other issues such as missing tools.h. Interestingly the total preprocessed size shrunk by 4%. --- contrib/modsecurity/modsec_wrapper.c | 2 +- .../prometheus-exporter/service-prometheus.c | 3 +- include/haproxy/cfgparse.h | 2 +- include/haproxy/errors.h | 30 +++++++++++++++++++ include/haproxy/log.h | 25 ---------------- src/51d.c | 2 +- src/acl.c | 2 +- src/action.c | 2 +- src/auth.c | 2 +- src/cache.c | 2 +- src/cfgparse-global.c | 2 ++ src/cfgparse-listen.c | 1 + src/cli.c | 1 + src/connection.c | 1 + src/da.c | 2 +- src/extcheck.c | 2 +- src/flt_trace.c | 2 +- src/h1_htx.c | 1 + src/hlua.c | 1 + src/hlua_fcn.c | 2 +- src/http_act.c | 1 + src/http_ana.c | 1 + src/http_htx.c | 1 + src/http_rules.c | 1 + src/mailers.c | 2 +- src/mux_fcgi.c | 1 + src/mux_h2.c | 1 + src/mworker-prog.c | 1 - src/mworker.c | 2 +- src/namespace.c | 2 +- src/peers.c | 2 +- src/pool.c | 2 +- src/proto_sockpair.c | 1 - src/raw_sock.c | 2 +- src/regex.c | 2 +- src/sample.c | 2 +- src/server.c | 1 + src/signal.c | 4 +-- src/sink.c | 3 +- src/stats.c | 3 +- src/stick_table.c | 1 + src/tcpcheck.c | 1 + src/trace.c | 1 + src/uri_auth.c | 3 +- src/vars.c | 1 + src/wdt.c | 2 +- 46 files changed, 78 insertions(+), 53 deletions(-) diff --git a/contrib/modsecurity/modsec_wrapper.c b/contrib/modsecurity/modsec_wrapper.c index 17fe461edf..3a55ab2bbb 100644 --- a/contrib/modsecurity/modsec_wrapper.c +++ b/contrib/modsecurity/modsec_wrapper.c @@ -17,9 +17,9 @@ #include #include +#include #include #include -#include #include #include #include diff --git a/contrib/prometheus-exporter/service-prometheus.c b/contrib/prometheus-exporter/service-prometheus.c index 9375f0a31c..7615698473 100644 --- a/contrib/prometheus-exporter/service-prometheus.c +++ b/contrib/prometheus-exporter/service-prometheus.c @@ -23,9 +23,10 @@ #include #include #include +#include #include +#include #include -#include #include #include diff --git a/include/haproxy/cfgparse.h b/include/haproxy/cfgparse.h index 447c057b93..646384e318 100644 --- a/include/haproxy/cfgparse.h +++ b/include/haproxy/cfgparse.h @@ -23,8 +23,8 @@ #define _HAPROXY_CFGPARSE_H #include +#include #include -#include #include /* configuration sections */ diff --git a/include/haproxy/errors.h b/include/haproxy/errors.h index 6277701dec..521876f74e 100644 --- a/include/haproxy/errors.h +++ b/include/haproxy/errors.h @@ -22,6 +22,8 @@ #ifndef _HAPROXY_ERRORS_H #define _HAPROXY_ERRORS_H +#include + /* These flags may be used in various functions which are called from within * loops (eg: to start all listeners from all proxies). They provide enough * information to let the caller decide what to do. ERR_WARN and ERR_ALERT @@ -56,6 +58,34 @@ enum { PE_ARG_NOT_FOUND, /* argument references something not found */ }; + +/************ Error reporting functions from log.c ***********/ + +/* + * Displays the message on stderr with the date and pid. Overrides the quiet + * mode during startup. + */ +void ha_alert(const char *fmt, ...) + __attribute__ ((format(printf, 1, 2))); + +/* + * Displays the message on stderr with the date and pid. + */ +void ha_warning(const char *fmt, ...) + __attribute__ ((format(printf, 1, 2))); + +/* + * Displays the message on stderr with the date and pid. + */ +void ha_notice(const char *fmt, ...) + __attribute__ ((format(printf, 1, 2))); + +/* + * Displays the message on only if quiet mode is not set. + */ +void qfprintf(FILE *out, const char *fmt, ...) + __attribute__ ((format(printf, 2, 3))); + #endif /* _HAPROXY_ERRORS_H */ /* diff --git a/include/haproxy/log.h b/include/haproxy/log.h index 8eab64faaa..5346ce467a 100644 --- a/include/haproxy/log.h +++ b/include/haproxy/log.h @@ -83,31 +83,6 @@ int parse_logformat_string(const char *str, struct proxy *curproxy, struct list /* Parse "log" keyword and update the linked list. */ int parse_logsrv(char **args, struct list *logsrvs, int do_del, char **err); -/* - * Displays the message on stderr with the date and pid. Overrides the quiet - * mode during startup. - */ -void ha_alert(const char *fmt, ...) - __attribute__ ((format(printf, 1, 2))); - -/* - * Displays the message on stderr with the date and pid. - */ -void ha_warning(const char *fmt, ...) - __attribute__ ((format(printf, 1, 2))); - -/* - * Displays the message on stderr with the date and pid. - */ -void ha_notice(const char *fmt, ...) - __attribute__ ((format(printf, 1, 2))); - -/* - * Displays the message on only if quiet mode is not set. - */ -void qfprintf(FILE *out, const char *fmt, ...) - __attribute__ ((format(printf, 2, 3))); - /* * This function adds a header to the message and sends the syslog message * using a printf format string diff --git a/src/51d.c b/src/51d.c index 68195cd293..54e9a1ea0b 100644 --- a/src/51d.c +++ b/src/51d.c @@ -8,11 +8,11 @@ #include #include #include -#include #include #include #include #include +#include #include #include #include <51Degrees.h> diff --git a/src/acl.c b/src/acl.c index 77440edbed..b1409bd55e 100644 --- a/src/acl.c +++ b/src/acl.c @@ -17,8 +17,8 @@ #include #include #include +#include #include -#include #include #include #include diff --git a/src/action.c b/src/action.c index d715379baf..16e96dd26e 100644 --- a/src/action.c +++ b/src/action.c @@ -12,10 +12,10 @@ #include #include +#include #include #include #include -#include #include #include #include diff --git a/src/auth.c b/src/auth.c index 646c0109eb..a84e89167e 100644 --- a/src/auth.c +++ b/src/auth.c @@ -29,8 +29,8 @@ #include #include #include -#include #include +#include #include struct userlist *userlist = NULL; /* list of all existing userlists */ diff --git a/src/cache.c b/src/cache.c index 56368f3cc1..6e8d8d2fb6 100644 --- a/src/cache.c +++ b/src/cache.c @@ -15,11 +15,11 @@ #include #include #include +#include #include #include #include #include -#include #include #include #include diff --git a/src/cfgparse-global.c b/src/cfgparse-global.c index d6d7243089..a4fed04464 100644 --- a/src/cfgparse-global.c +++ b/src/cfgparse-global.c @@ -14,6 +14,8 @@ #include #include #include +#include +#include /* * parse a line in a section. Returns the error code, 0 if OK, or diff --git a/src/cfgparse-listen.c b/src/cfgparse-listen.c index f0c52a8e6a..45ac8c3e17 100644 --- a/src/cfgparse-listen.c +++ b/src/cfgparse-listen.c @@ -23,6 +23,7 @@ #include #include #include +#include #include #include #include diff --git a/src/cli.c b/src/cli.c index b6249ddeea..6ca0a1fdd4 100644 --- a/src/cli.c +++ b/src/cli.c @@ -33,6 +33,7 @@ #include #include #include +#include #include #include #include diff --git a/src/connection.c b/src/connection.c index e27ba74387..f9741ef554 100644 --- a/src/connection.c +++ b/src/connection.c @@ -16,6 +16,7 @@ #include #include #include +#include #include #include #include diff --git a/src/da.c b/src/da.c index a47fc300ef..9b12cc5a39 100644 --- a/src/da.c +++ b/src/da.c @@ -8,10 +8,10 @@ #include #include #include -#include #include #include #include +#include #include static struct { diff --git a/src/extcheck.c b/src/extcheck.c index 2a577b1654..721e49d42c 100644 --- a/src/extcheck.c +++ b/src/extcheck.c @@ -30,9 +30,9 @@ #include #include #include +#include #include #include -#include #include #include #include diff --git a/src/flt_trace.c b/src/flt_trace.c index b0e448a366..910f5c4861 100644 --- a/src/flt_trace.c +++ b/src/flt_trace.c @@ -14,12 +14,12 @@ #include #include +#include #include #include #include #include #include -#include #include #include #include diff --git a/src/h1_htx.c b/src/h1_htx.c index e32d845296..9388680b4f 100644 --- a/src/h1_htx.c +++ b/src/h1_htx.c @@ -17,6 +17,7 @@ #include #include #include +#include /* Estimate the size of the HTX headers after the parsing, including the EOH. */ static size_t h1_eval_htx_hdrs_size(const struct http_hdr *hdrs) diff --git a/src/hlua.c b/src/hlua.c index fd5ba062ea..f2d471de69 100644 --- a/src/hlua.c +++ b/src/hlua.c @@ -40,6 +40,7 @@ #include #include #include +#include #include #include #include diff --git a/src/hlua_fcn.c b/src/hlua_fcn.c index cfcbcead90..78b9495cc3 100644 --- a/src/hlua_fcn.c +++ b/src/hlua_fcn.c @@ -19,9 +19,9 @@ #include #include +#include #include #include -#include #include #include #include diff --git a/src/http_act.c b/src/http_act.c index f83b32bfe3..9db12de7b7 100644 --- a/src/http_act.c +++ b/src/http_act.c @@ -26,6 +26,7 @@ #include #include #include +#include #include #include #include diff --git a/src/http_ana.c b/src/http_ana.c index c4973e8ed5..a95f07928f 100644 --- a/src/http_ana.c +++ b/src/http_ana.c @@ -19,6 +19,7 @@ #include #include #include +#include #include #include #include diff --git a/src/http_htx.c b/src/http_htx.c index e3e21d772b..8b615627a1 100644 --- a/src/http_htx.c +++ b/src/http_htx.c @@ -17,6 +17,7 @@ #include #include #include +#include #include #include diff --git a/src/http_rules.c b/src/http_rules.c index d2bb4f29dd..79aa39c4c3 100644 --- a/src/http_rules.c +++ b/src/http_rules.c @@ -24,6 +24,7 @@ #include #include #include +#include #include #include #include diff --git a/src/mailers.c b/src/mailers.c index 16ee60a287..94ed5b4fa2 100644 --- a/src/mailers.c +++ b/src/mailers.c @@ -16,13 +16,13 @@ #include #include #include +#include #include #include #include #include #include #include -#include #include #include #include diff --git a/src/mux_fcgi.c b/src/mux_fcgi.c index b03210f7ae..03e5b9c872 100644 --- a/src/mux_fcgi.c +++ b/src/mux_fcgi.c @@ -13,6 +13,7 @@ #include #include #include +#include #include #include #include diff --git a/src/mux_h2.c b/src/mux_h2.c index 102e74ee72..1a318110d9 100644 --- a/src/mux_h2.c +++ b/src/mux_h2.c @@ -22,6 +22,7 @@ #include #include #include +#include #include #include #include diff --git a/src/mworker-prog.c b/src/mworker-prog.c index d0b9446e6b..e77317f448 100644 --- a/src/mworker-prog.c +++ b/src/mworker-prog.c @@ -24,7 +24,6 @@ #include #include #include -#include #include #include diff --git a/src/mworker.c b/src/mworker.c index e2b154e5d3..14c0e57171 100644 --- a/src/mworker.c +++ b/src/mworker.c @@ -20,11 +20,11 @@ #include #include #include +#include #include #include #include #include -#include #include #include #include diff --git a/src/namespace.c b/src/namespace.c index 59d03c2b4d..1fc843906b 100644 --- a/src/namespace.c +++ b/src/namespace.c @@ -11,10 +11,10 @@ #include #include +#include #include #include #include -#include #include #include diff --git a/src/peers.c b/src/peers.c index dca5619a60..fa444a901b 100644 --- a/src/peers.c +++ b/src/peers.c @@ -25,9 +25,9 @@ #include #include #include +#include #include #include -#include #include #include #include diff --git a/src/pool.c b/src/pool.c index 82ca79a743..c1850697b6 100644 --- a/src/pool.c +++ b/src/pool.c @@ -16,12 +16,12 @@ #include #include #include +#include #include #include #include #include -#include #include #include #include diff --git a/src/proto_sockpair.c b/src/proto_sockpair.c index c72c6ac20c..7d5a5078e2 100644 --- a/src/proto_sockpair.c +++ b/src/proto_sockpair.c @@ -32,7 +32,6 @@ #include #include #include -#include #include #include #include diff --git a/src/raw_sock.c b/src/raw_sock.c index 099f50341e..9e7f0c523a 100644 --- a/src/raw_sock.c +++ b/src/raw_sock.c @@ -25,8 +25,8 @@ #include #include #include +#include #include -#include #include #include #include diff --git a/src/regex.c b/src/regex.c index 1c3c55f404..e23e311521 100644 --- a/src/regex.c +++ b/src/regex.c @@ -15,8 +15,8 @@ #include #include +#include #include -#include #include #include diff --git a/src/sample.c b/src/sample.c index f7ecb65646..4ee44cf493 100644 --- a/src/sample.c +++ b/src/sample.c @@ -21,10 +21,10 @@ #include #include #include +#include #include #include #include -#include #include #include #include diff --git a/src/server.c b/src/server.c index 3c83b638ba..a0fd10f7df 100644 --- a/src/server.c +++ b/src/server.c @@ -27,6 +27,7 @@ #include #include #include +#include #include #include #include diff --git a/src/signal.c b/src/signal.c index 1f8ec834c1..946157e01f 100644 --- a/src/signal.c +++ b/src/signal.c @@ -13,9 +13,9 @@ #include #include -#include -#include +#include #include +#include /* Principle : we keep an in-order list of the first occurrence of all received * signals. All occurrences of a same signal are grouped though. The signal diff --git a/src/sink.c b/src/sink.c index 5a4980b61a..8128775da2 100644 --- a/src/sink.c +++ b/src/sink.c @@ -18,10 +18,11 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ +#include #include #include #include -#include +#include #include #include #include diff --git a/src/stats.c b/src/stats.c index b42ae7adf7..bb70884c4e 100644 --- a/src/stats.c +++ b/src/stats.c @@ -34,6 +34,7 @@ #include #include #include +#include #include #include #include @@ -41,8 +42,8 @@ #include #include #include -#include #include +#include #include #include #include diff --git a/src/stick_table.c b/src/stick_table.c index 0bdc62dbcf..c5ddd0beb2 100644 --- a/src/stick_table.c +++ b/src/stick_table.c @@ -17,6 +17,7 @@ #include #include #include +#include #include #include #include diff --git a/src/tcpcheck.c b/src/tcpcheck.c index ec1feded21..8808a0cd66 100644 --- a/src/tcpcheck.c +++ b/src/tcpcheck.c @@ -39,6 +39,7 @@ #include #include #include +#include #include #include #include diff --git a/src/trace.c b/src/trace.c index 997a994fd4..b4bd90babc 100644 --- a/src/trace.c +++ b/src/trace.c @@ -22,6 +22,7 @@ #include #include #include +#include #include #include #include diff --git a/src/uri_auth.c b/src/uri_auth.c index 248431cd7b..57dbadbf64 100644 --- a/src/uri_auth.c +++ b/src/uri_auth.c @@ -15,7 +15,8 @@ #include #include -#include +#include +#include #include #include diff --git a/src/vars.c b/src/vars.c index 2e3258300e..9ba1720e46 100644 --- a/src/vars.c +++ b/src/vars.c @@ -8,6 +8,7 @@ #include #include #include +#include #include #include #include diff --git a/src/wdt.c b/src/wdt.c index c17d67c3cf..d6a3e56a93 100644 --- a/src/wdt.c +++ b/src/wdt.c @@ -14,8 +14,8 @@ #include #include +#include #include -#include #include #include -- 2.47.2