mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2024-12-13 15:04:42 +00:00
MINOR: stream-int: make si_idle_conn() only accept valid connections
This function is now dedicated to idle connections only, which means that it must not be used without any endpoint nor anything not a connection. The connection remains attached to the stream interface.
This commit is contained in:
parent
323a2d925c
commit
4320eaac62
@ -167,17 +167,15 @@ static inline void si_release_endpoint(struct stream_interface *si)
|
||||
si_detach_endpoint(si);
|
||||
}
|
||||
|
||||
/* Turn a possibly existing connection endpoint of stream interface <si> to
|
||||
* idle mode, which means that the connection will be polled for incoming events
|
||||
* and might be killed by the underlying I/O handler. If <pool> is not null, the
|
||||
* connection will also be added at the head of this list.
|
||||
/* Turn an existing connection endpoint of stream interface <si> to idle mode,
|
||||
* which means that the connection will be polled for incoming events and might
|
||||
* be killed by the underlying I/O handler. If <pool> is not null, the
|
||||
* connection will also be added at the head of this list. This connection
|
||||
* remains assigned to the stream interface it is currently attached to.
|
||||
*/
|
||||
static inline void si_idle_conn(struct stream_interface *si, struct list *pool)
|
||||
{
|
||||
struct connection *conn = objt_conn(si->end);
|
||||
|
||||
if (!conn)
|
||||
return;
|
||||
struct connection *conn = __objt_conn(si->end);
|
||||
|
||||
if (pool)
|
||||
LIST_ADD(pool, &conn->list);
|
||||
|
@ -5186,11 +5186,10 @@ void http_end_txn_clean_session(struct stream *s)
|
||||
channel_auto_close(&s->res);
|
||||
|
||||
/* we're in keep-alive with an idle connection, monitor it */
|
||||
srv = NULL;
|
||||
if (srv_conn)
|
||||
if (srv_conn) {
|
||||
srv = objt_server(srv_conn->target);
|
||||
|
||||
si_idle_conn(&s->si[1], srv ? &srv->priv_conns : NULL);
|
||||
si_idle_conn(&s->si[1], srv ? &srv->priv_conns : NULL);
|
||||
}
|
||||
|
||||
s->req.analysers = strm_li(s)->analysers;
|
||||
s->res.analysers = 0;
|
||||
|
Loading…
Reference in New Issue
Block a user