mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-04-11 03:31:36 +00:00
MINOR: mux-fcgi: make sure any stream always has an endpoint
The principle that each mux stream should have an endpoint is not guaranteed for closed streams that map to the dummy static streams. Let's have a dummy endpoint for use with such streams. It only has the DETACHED flag and a NULL conn_stream, and is referenced by all the closed streams so that we can afford not to test strm->endp when trying to access the flags or the CS.
This commit is contained in:
parent
cd6bb1a5e5
commit
c84610c2ac
@ -371,9 +371,16 @@ static void fcgi_strm_notify_send(struct fcgi_strm *fstrm);
|
||||
static void fcgi_strm_alert(struct fcgi_strm *fstrm);
|
||||
static int fcgi_strm_send_abort(struct fcgi_conn *fconn, struct fcgi_strm *fstrm);
|
||||
|
||||
/* a dummy closed endpoint */
|
||||
static const struct cs_endpoint closed_ep = {
|
||||
. cs = NULL,
|
||||
.flags = CS_EP_DETACHED,
|
||||
};
|
||||
|
||||
/* a dmumy management stream */
|
||||
static const struct fcgi_strm *fcgi_mgmt_stream = &(const struct fcgi_strm){
|
||||
.cs = NULL,
|
||||
.endp = (struct cs_endpoint*)&closed_ep,
|
||||
.fconn = NULL,
|
||||
.state = FCGI_SS_CLOSED,
|
||||
.flags = FCGI_SF_NONE,
|
||||
@ -383,6 +390,7 @@ static const struct fcgi_strm *fcgi_mgmt_stream = &(const struct fcgi_strm){
|
||||
/* and a dummy idle stream for use with any unknown stream */
|
||||
static const struct fcgi_strm *fcgi_unknown_stream = &(const struct fcgi_strm){
|
||||
.cs = NULL,
|
||||
.endp = (struct cs_endpoint*)&closed_ep,
|
||||
.fconn = NULL,
|
||||
.state = FCGI_SS_IDLE,
|
||||
.flags = FCGI_SF_NONE,
|
||||
|
Loading…
Reference in New Issue
Block a user