mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-09-21 22:01:31 +02:00
[MEDIUM] make the unix stats sockets use the generic session handler
process_session() is now ready to handle unix stats sockets. This first step works and old code has not been removed. A cleanup is required. The stats handler is not unix socket-centric anymore and should move to dumpstats.c.
This commit is contained in:
parent
7320122655
commit
104eb36f26
@ -29,6 +29,7 @@
|
|||||||
int uxst_event_accept(int fd);
|
int uxst_event_accept(int fd);
|
||||||
void uxst_add_listener(struct listener *listener);
|
void uxst_add_listener(struct listener *listener);
|
||||||
struct task *uxst_process_session(struct task *t);
|
struct task *uxst_process_session(struct task *t);
|
||||||
|
int uxst_req_analyser_stats(struct session *s, struct buffer *req, int an_bit);
|
||||||
|
|
||||||
#endif /* _PROTO_PROTO_UXST_H */
|
#endif /* _PROTO_PROTO_UXST_H */
|
||||||
|
|
||||||
|
@ -106,7 +106,7 @@ static int stats_parse_global(char **args, int section_type, struct proxy *curpx
|
|||||||
global.stats_sock.state = LI_INIT;
|
global.stats_sock.state = LI_INIT;
|
||||||
global.stats_sock.options = LI_O_NONE;
|
global.stats_sock.options = LI_O_NONE;
|
||||||
global.stats_sock.accept = uxst_event_accept;
|
global.stats_sock.accept = uxst_event_accept;
|
||||||
global.stats_sock.handler = uxst_process_session;
|
global.stats_sock.handler = process_session;
|
||||||
global.stats_sock.analysers = AN_REQ_UNIX_STATS;
|
global.stats_sock.analysers = AN_REQ_UNIX_STATS;
|
||||||
global.stats_sock.private = global.stats_fe; /* must point to the frontend */
|
global.stats_sock.private = global.stats_fe; /* must point to the frontend */
|
||||||
|
|
||||||
|
@ -664,7 +664,6 @@ int uxst_req_analyser_stats(struct session *s, struct buffer *req, int an_bit)
|
|||||||
s->data_source = DATA_SRC_STATS;
|
s->data_source = DATA_SRC_STATS;
|
||||||
s->ana_state = STATS_ST_REQ;
|
s->ana_state = STATS_ST_REQ;
|
||||||
buffer_write_dis(s->req);
|
buffer_write_dis(s->req);
|
||||||
buffer_shutw_now(s->req);
|
|
||||||
/* fall through */
|
/* fall through */
|
||||||
|
|
||||||
case STATS_ST_REQ:
|
case STATS_ST_REQ:
|
||||||
|
@ -28,6 +28,7 @@
|
|||||||
#include <proto/pipe.h>
|
#include <proto/pipe.h>
|
||||||
#include <proto/proto_http.h>
|
#include <proto/proto_http.h>
|
||||||
#include <proto/proto_tcp.h>
|
#include <proto/proto_tcp.h>
|
||||||
|
#include <proto/proto_uxst.h>
|
||||||
#include <proto/proxy.h>
|
#include <proto/proxy.h>
|
||||||
#include <proto/queue.h>
|
#include <proto/queue.h>
|
||||||
#include <proto/server.h>
|
#include <proto/server.h>
|
||||||
@ -840,6 +841,12 @@ resync_stream_interface:
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (s->req->analysers & AN_REQ_UNIX_STATS) {
|
||||||
|
last_ana |= AN_REQ_UNIX_STATS;
|
||||||
|
if (!uxst_req_analyser_stats(s, s->req, AN_REQ_UNIX_STATS))
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
if (s->req->analysers & AN_REQ_PRST_RDP_COOKIE) {
|
if (s->req->analysers & AN_REQ_PRST_RDP_COOKIE) {
|
||||||
last_ana |= AN_REQ_PRST_RDP_COOKIE;
|
last_ana |= AN_REQ_PRST_RDP_COOKIE;
|
||||||
if (!tcp_persist_rdp_cookie(s, s->req, AN_REQ_PRST_RDP_COOKIE))
|
if (!tcp_persist_rdp_cookie(s, s->req, AN_REQ_PRST_RDP_COOKIE))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user