mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-09-21 05:41:26 +02:00
[MINOR] slightly rebalance stats_dump_{raw,http}
Both should process the response buffer equally. They now both clear the hijack bit once done, and both receive a pointer to the response buffer in their arguments.
This commit is contained in:
parent
01bf8675ed
commit
0a46489228
@ -44,9 +44,9 @@
|
||||
#define STATS_ST_REP 2
|
||||
#define STATS_ST_CLOSE 3
|
||||
|
||||
int stats_dump_raw(struct session *s, struct uri_auth *uri);
|
||||
int stats_dump_raw(struct session *s, struct buffer *rep, struct uri_auth *uri);
|
||||
void stats_dump_raw_to_buffer(struct session *s, struct buffer *req);
|
||||
int stats_dump_http(struct session *s, struct uri_auth *uri);
|
||||
int stats_dump_http(struct session *s, struct buffer *rep, struct uri_auth *uri);
|
||||
int stats_dump_proxy(struct session *s, struct proxy *px, struct uri_auth *uri);
|
||||
|
||||
|
||||
|
@ -182,10 +182,10 @@ int print_csv_header(struct chunk *msg, int size)
|
||||
* <uri>. s->data_ctx must have been zeroed first, and the flags properly set.
|
||||
* It returns 0 if it had to stop writing data and an I/O is needed, 1 if the
|
||||
* dump is finished and the session must be closed, or -1 in case of any error.
|
||||
* It automatically clears the HIJACK bit from the response buffer.
|
||||
*/
|
||||
int stats_dump_raw(struct session *s, struct uri_auth *uri)
|
||||
int stats_dump_raw(struct session *s, struct buffer *rep, struct uri_auth *uri)
|
||||
{
|
||||
struct buffer *rep = s->rep;
|
||||
struct proxy *px;
|
||||
struct chunk msg;
|
||||
unsigned int up;
|
||||
@ -276,13 +276,15 @@ int stats_dump_raw(struct session *s, struct uri_auth *uri)
|
||||
|
||||
case DATA_ST_END:
|
||||
s->data_state = DATA_ST_FIN;
|
||||
return 1;
|
||||
/* fall through */
|
||||
|
||||
case DATA_ST_FIN:
|
||||
buffer_stop_hijack(rep);
|
||||
return 1;
|
||||
|
||||
default:
|
||||
/* unknown state ! */
|
||||
buffer_stop_hijack(rep);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
@ -292,15 +294,13 @@ int stats_dump_raw(struct session *s, struct uri_auth *uri)
|
||||
* calls stats_dump_raw(), and releases the buffer's hijack bit when the dump
|
||||
* is finished.
|
||||
*/
|
||||
void stats_dump_raw_to_buffer(struct session *s, struct buffer *req)
|
||||
void stats_dump_raw_to_buffer(struct session *s, struct buffer *rep)
|
||||
{
|
||||
if (s->ana_state != STATS_ST_REP)
|
||||
return;
|
||||
|
||||
if (stats_dump_raw(s, NULL) != 0) {
|
||||
buffer_stop_hijack(s->rep);
|
||||
if (stats_dump_raw(s, rep, NULL) != 0)
|
||||
s->ana_state = STATS_ST_CLOSE;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
@ -315,9 +315,8 @@ void stats_dump_raw_to_buffer(struct session *s, struct buffer *req)
|
||||
* 1 if the dump is finished and the session must be closed, or -1 in case of
|
||||
* any error.
|
||||
*/
|
||||
int stats_dump_http(struct session *s, struct uri_auth *uri)
|
||||
int stats_dump_http(struct session *s, struct buffer *rep, struct uri_auth *uri)
|
||||
{
|
||||
struct buffer *rep = s->rep;
|
||||
struct proxy *px;
|
||||
struct chunk msg;
|
||||
unsigned int up;
|
||||
|
@ -2999,7 +2999,7 @@ void produce_content(struct session *s, struct buffer *rep)
|
||||
}
|
||||
else if (s->data_source == DATA_SRC_STATS) {
|
||||
/* dump server statistics */
|
||||
int ret = stats_dump_http(s, s->be->uri_auth);
|
||||
int ret = stats_dump_http(s, rep, s->be->uri_auth);
|
||||
if (ret >= 0)
|
||||
return;
|
||||
/* -1 indicates an error */
|
||||
|
Loading…
x
Reference in New Issue
Block a user