conn->destroy_cb = cb;
}
+
+/* Mark the connection <conn> as private and remove it from the available connection list */
+static inline void conn_set_private(struct connection *conn)
+{
+ conn->flags |= CO_FL_PRIVATE;
+
+ /* Be sure to remove the connection from the available_conns list */
+ if (!MT_LIST_ISEMPTY(&conn->list))
+ MT_LIST_DEL(&conn->list);
+}
+
/* Allocates a struct sockaddr from the pool if needed, assigns it to *sap and
* returns it. If <sap> is NULL, the address is always allocated and returned.
* if <sap> is non-null, an address will only be allocated if it points to a
srv_cs = NULL;
if ((s->be->options & PR_O_REUSE_MASK) == PR_O_REUSE_NEVR)
- conn->flags |= CO_FL_PRIVATE;
+ conn_set_private(srv_conn);
}
if (srv_conn && srv && was_unused) {
srv_conn->send_proxy_ofs = 0;
if (srv && srv->pp_opts) {
- srv_conn->flags |= CO_FL_PRIVATE;
+ conn_set_private(srv_conn);
srv_conn->flags |= CO_FL_SEND_PROXY;
srv_conn->send_proxy_ofs = 1; /* must compute size */
if (cli_conn)
srv->ssl_ctx.sni, SMP_T_STR);
if (smp_make_safe(smp)) {
ssl_sock_set_servername(srv_conn, smp->data.u.str.area);
- srv_conn->flags |= CO_FL_PRIVATE;
+ conn_set_private(srv_conn);
}
}
#endif /* USE_OPENSSL */
if ((ctx.value.len >= 4 && strncasecmp(ctx.value.ptr, "Nego", 4) == 0) ||
(ctx.value.len >= 4 && strncasecmp(ctx.value.ptr, "NTLM", 4) == 0)) {
sess->flags |= SESS_FL_PREFER_LAST;
- srv_conn->flags |= CO_FL_PRIVATE;
+ conn_set_private(srv_conn);
break;
}
}
return;
}
}
-
- /* Be sure to remove the connection from the available_conns list */
- if (!MT_LIST_ISEMPTY(&fconn->conn->list))
- MT_LIST_DEL(&fconn->conn->list);
}
else {
if (eb_is_empty(&fconn->streams_by_id)) {
return;
}
}
-
- /* Be sure to remove the connection from the available_conns list */
- if (!MT_LIST_ISEMPTY(&h2c->conn->list))
- MT_LIST_DEL(&h2c->conn->list);
}
else {
if (eb_is_empty(&h2c->streams_by_id)) {
if (conn->src && is_inet_addr(conn->src)) {
switch (src->opts & CO_SRC_TPROXY_MASK) {
case CO_SRC_TPROXY_CLI:
- conn->flags |= CO_FL_PRIVATE;
+ conn_set_private(conn);
/* fall through */
case CO_SRC_TPROXY_ADDR:
flags = 3;
break;
case CO_SRC_TPROXY_CIP:
case CO_SRC_TPROXY_DYN:
- conn->flags |= CO_FL_PRIVATE;
+ conn_set_private(conn);
flags = 1;
break;
}
if (status != SF_ERR_NONE)
goto fail_check;
- conn->flags |= CO_FL_PRIVATE;
+ conn_set_private(conn);
conn->ctx = cs;
/* The mux may be initialized now if there isn't server attached to the