]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
CLEANUP: http-htx: Remove unused storage of error messages in buffers
authorChristopher Faulet <cfaulet@haproxy.com>
Fri, 15 May 2020 12:30:32 +0000 (14:30 +0200)
committerChristopher Faulet <cfaulet@haproxy.com>
Wed, 20 May 2020 16:27:14 +0000 (18:27 +0200)
Now, error messages are all stored in http replies. So the storage as a buffer
can safely be removed.

include/types/http_ana.h
include/types/http_htx.h
include/types/proxy.h
src/http_ana.c
src/http_htx.c

index 1b9891c41921f35c74a33854c77f9e3d637d61f5..c17dc18cc729132a01d9054ea7ae1ad93ff243d5 100644 (file)
@@ -175,7 +175,6 @@ struct http_txn {
        enum http_meth_t meth;          /* HTTP method */
        /* 1 unused byte here */
        short status;                   /* HTTP status from the server, negative if from proxy */
-       struct buffer *errmsg;          /* custom HTTP error message to use as reply */
        struct http_reply *http_reply;  /* The HTTP reply to use as reply */
 
        char cache_hash[20];               /* Store the cache hash  */
index c32394392f8e73deaf47efc2e0911fd25f13b008..42b3c39ed5fe0cd738faccf7aee98eb904250b21 100644 (file)
@@ -88,7 +88,6 @@ struct http_errors {
                int   line;                   /* line where the section appears */
        } conf;                               /* config information */
 
-       struct buffer *errmsg[HTTP_ERR_SIZE]; /* customized error messages for known errors */
        struct http_reply *replies[HTTP_ERR_SIZE]; /* HTTP replies for known errors */
        struct list list;                     /* http-errors list */
 };
index 62fc435f31cc6b06881b921943fc935fb18997c6..81a5a44861403b181a2d093d637bb4ed62bcbcfd 100644 (file)
@@ -408,7 +408,6 @@ struct proxy {
        int grace;                              /* grace time after stop request */
        char *check_command;                    /* Command to use for external agent checks */
        char *check_path;                       /* PATH environment to use for external agent checks */
-       struct buffer *errmsg[HTTP_ERR_SIZE];   /* default or customized error messages for known errors */
        struct http_reply *replies[HTTP_ERR_SIZE]; /* HTTP replies for known errors */
        int uuid;                               /* universally unique proxy ID, used for SNMP */
        unsigned int backlog;                   /* force the frontend's listen backlog */
index 35ea8e9976874533616e34e47aac4b7d18e98f41..138c0291c3d6e50476675e097e18179d8d76bedc 100644 (file)
@@ -5188,7 +5188,6 @@ void http_init_txn(struct stream *s)
                      ? (TX_NOT_FIRST|TX_WAIT_NEXT_RQ)
                      : 0);
        txn->status = -1;
-       txn->errmsg = NULL;
        txn->http_reply = NULL;
        write_u32(txn->cache_hash, 0);
 
index cefd8f6a716b1932081b9b9ee89f89f37c8ca95c..78a5553d6d9bf2e054e6ff9f49e8831af40271e2 100644 (file)
@@ -42,7 +42,6 @@ struct conf_errors {
        union {
                struct {
                        int status;                 /* the status code associated to this error */
-                       struct buffer *msg;         /* the HTX error message */
                        struct http_reply *reply;   /* the http reply for the errorfile */
                } errorfile;                        /* describe an "errorfile" directive */
                struct {
@@ -1702,7 +1701,6 @@ static int proxy_parse_errorloc(char **args, int section, struct proxy *curpx,
        }
        conf_err->type = 1;
        conf_err->info.errorfile.status = status;
-       conf_err->info.errorfile.msg = msg;
        conf_err->info.errorfile.reply = reply;
 
        conf_err->file = strdup(file);
@@ -1766,7 +1764,6 @@ static int proxy_parse_errorfile(char **args, int section, struct proxy *curpx,
        }
        conf_err->type = 1;
        conf_err->info.errorfile.status = status;
-       conf_err->info.errorfile.msg = msg;
        conf_err->info.errorfile.reply = reply;
        conf_err->file = strdup(file);
        conf_err->line = line;
@@ -1851,7 +1848,6 @@ static int proxy_check_errors(struct proxy *px)
                if (conf_err->type == 1) {
                        /* errorfile */
                        rc = http_get_status_idx(conf_err->info.errorfile.status);
-                       px->errmsg[rc] = conf_err->info.errorfile.msg;
                        px->replies[rc] = conf_err->info.errorfile.reply;
                }
                else {
@@ -1873,10 +1869,8 @@ static int proxy_check_errors(struct proxy *px)
                        free(conf_err->info.errorfiles.name);
                        for (rc = 0; rc < HTTP_ERR_SIZE; rc++) {
                                if (conf_err->info.errorfiles.status[rc] > 0) {
-                                       if (http_errs->errmsg[rc]) {
-                                               px->errmsg[rc] = http_errs->errmsg[rc];
+                                       if (http_errs->replies[rc])
                                                px->replies[rc] = http_errs->replies[rc];
-                                       }
                                        else if (conf_err->info.errorfiles.status[rc] == 2)
                                                ha_warning("config: proxy '%s' : status '%d' not declared in"
                                                           " http-errors section '%s' (at %s:%d).\n",
@@ -1936,7 +1930,6 @@ int proxy_dup_default_conf_errors(struct proxy *curpx, struct proxy *defpx, char
                new_conf_err->type = conf_err->type;
                if (conf_err->type == 1) {
                        new_conf_err->info.errorfile.status = conf_err->info.errorfile.status;
-                       new_conf_err->info.errorfile.msg    = conf_err->info.errorfile.msg;
                        new_conf_err->info.errorfile.reply  = conf_err->info.errorfile.reply;
                }
                else {
@@ -2057,7 +2050,6 @@ static int cfg_parse_http_errors(const char *file, int linenum, char **args, int
                reply->body.errmsg = msg;
 
                rc = http_get_status_idx(status);
-               curr_errs->errmsg[rc] = msg;
                curr_errs->replies[rc] = reply;
        }
        else if (*args[0] != 0) {