*/
CO_FL_POLL_SOCK = CO_FL_HANDSHAKE | CO_FL_WAIT_L4_CONN | CO_FL_WAIT_L6_CONN,
- /* unused : 0x10000000, 0x20000000, 0x40000000 */
+ /* This connection may not be shared between clients */
+ CO_FL_PRIVATE = 0x10000000,
+
+ /* unused : 0x20000000, 0x40000000 */
/* This last flag indicates that the transport layer is used (for instance
* by logs) and must not be cleared yet. The last call to conn_xprt_close()
/* process the case where the server requires the PROXY protocol to be sent */
srv_conn->send_proxy_ofs = 0;
if (srv && srv->pp_opts) {
+ srv_conn->flags |= CO_FL_PRIVATE;
srv_conn->send_proxy_ofs = 1; /* must compute size */
cli_conn = objt_conn(strm_orig(s));
if (cli_conn)
smp->data.str.len = smp->data.str.size - 1;
smp->data.str.str[smp->data.str.len] = 0;
ssl_sock_set_servername(srv_conn, smp->data.str.str);
+ srv_conn->flags |= CO_FL_PRIVATE;
}
}
#endif /* USE_OPENSSL */
* it's better to do it (at least it helps with debugging).
*/
s->txn->flags |= TX_PREFER_LAST;
+ srv_conn->flags |= CO_FL_PRIVATE;
}
if (fe->options2 & PR_O2_INDEPSTR)
if (is_inet_addr(&conn->addr.from)) {
switch (src->opts & CO_SRC_TPROXY_MASK) {
- case CO_SRC_TPROXY_ADDR:
case CO_SRC_TPROXY_CLI:
+ conn->flags |= CO_FL_PRIVATE;
+ /* 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;
flags = 1;
break;
}