From: Krzysztof Oledzki Date: Mon, 15 Oct 2007 08:05:11 +0000 (+0200) Subject: [MINOR] report haproxy's version by default on the stats page X-Git-Tag: v1.3.13~19 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d9db9274fe475b7100333a1a58e7b3540db75f1b;p=thirdparty%2Fhaproxy.git [MINOR] report haproxy's version by default on the stats page For people who manage many haproxies, it is sometimes convenient to be informed of their version. This patch adds this, with the option to disable this report by specifying "stats hide-version". Also, the feature may be permanently disabled by setting the STATS_VERSION_STRING to "" (empty string), or the format can simply be adjusted. --- diff --git a/doc/configuration.txt b/doc/configuration.txt index 994df07e2c..97c427c86a 100644 --- a/doc/configuration.txt +++ b/doc/configuration.txt @@ -2,9 +2,9 @@ HAProxy Configuration Manual ---------------------- - version 1.3.12.3 + version 1.3.13 willy tarreau - 2007/09/11 + 2007/10/15 This document covers the configuration language as implemented in the version @@ -299,6 +299,7 @@ stats realm X - X X stats refresh X - X X stats scope X - X X stats uri X - X X +stats hide-version X - X X transparent X X X - use_backend - X X - usesrc X - X X diff --git a/include/common/defaults.h b/include/common/defaults.h index 2c757d2f58..5b18767ca5 100644 --- a/include/common/defaults.h +++ b/include/common/defaults.h @@ -125,4 +125,12 @@ #define SRV_CHK_INTER_THRES 1000 #endif +/* Specifies the string used to report the version and release date on the + * statistics page. May be defined to the empty string ("") to permanently + * disable the feature. + */ +#ifndef STATS_VERSION_STRING +#define STATS_VERSION_STRING " version " HAPROXY_VERSION ", released " HAPROXY_DATE +#endif + #endif /* _COMMON_DEFAULTS_H */ diff --git a/include/common/uri_auth.h b/include/common/uri_auth.h index 9f675db6a8..fbbe7df816 100644 --- a/include/common/uri_auth.h +++ b/include/common/uri_auth.h @@ -31,12 +31,15 @@ struct stat_scope { char *px_id; /* proxy id */ }; +#define ST_HIDEVER 0x00000001 /* do not report the version and reldate */ + /* later we may link them to support multiple URI matching */ struct uri_auth { int uri_len; /* the prefix length */ char *uri_prefix; /* the prefix we want to match */ char *auth_realm; /* the realm reported to the client */ int refresh; /* refresh interval for the browser (in seconds) */ + int flags; /* some flags describing the statistics page */ struct user_auth *users; /* linked list of valid user:passwd couples */ struct stat_scope *scope; /* linked list of authorized proxies */ }; @@ -67,6 +70,7 @@ struct uri_auth *stats_check_init_uri_auth(struct uri_auth **root); struct uri_auth *stats_set_uri(struct uri_auth **root, char *uri); struct uri_auth *stats_set_realm(struct uri_auth **root, char *realm); struct uri_auth *stats_set_refresh(struct uri_auth **root, int interval); +struct uri_auth *stats_set_flag(struct uri_auth **root, int flag); struct uri_auth *stats_add_auth(struct uri_auth **root, char *user); struct uri_auth *stats_add_scope(struct uri_auth **root, char *scope); diff --git a/src/cfgparse.c b/src/cfgparse.c index 43ed8aa810..53c900a697 100644 --- a/src/cfgparse.c +++ b/src/cfgparse.c @@ -1089,8 +1089,13 @@ int cfg_parse_listen(const char *file, int linenum, char **args) Alert("parsing [%s:%d] : out of memory.\n", file, linenum); return -1; } + } else if (!strcmp(args[1], "hide-version")) { + if (!stats_set_flag(&curproxy->uri_auth, ST_HIDEVER)) { + Alert("parsing [%s:%d] : out of memory.\n", file, linenum); + return -1; + } } else { - Alert("parsing [%s:%d] : unknown stats parameter '%s' (expects 'uri', 'realm', 'auth' or 'enable').\n", + Alert("parsing [%s:%d] : unknown stats parameter '%s' (expects 'hide-version', 'uri', 'realm', 'auth' or 'enable').\n", file, linenum, args[0]); return -1; } diff --git a/src/proto_http.c b/src/proto_http.c index 3cd97fe823..c218e6bb96 100644 --- a/src/proto_http.c +++ b/src/proto_http.c @@ -3579,7 +3579,7 @@ int produce_content_stats(struct session *s) */ chunk_printf(&msg, sizeof(trash), "

" - PRODUCT_NAME "

\n" + PRODUCT_NAME "%s\n" "

Statistics Report for pid %d

\n" "
\n" "

> General process information

\n" @@ -3607,6 +3607,7 @@ int produce_content_stats(struct session *s) "" "Display option: