MINOR: connection: add a new flag CO_FL_PRIVATE

This flag is set on an outgoing connection when this connection gets
some properties that must not be shared with other connections, such
as dynamic transparent source binding, SNI or a proxy protocol header,
or an authentication challenge from the server. This will be needed
later to implement connection reuse.
diff --git a/src/backend.c b/src/backend.c
index bbe9573..3c00acf 100644
--- a/src/backend.c
+++ b/src/backend.c
@@ -1087,6 +1087,7 @@
 		/* 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)
@@ -1152,6 +1153,7 @@
 					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 */
diff --git a/src/proto_http.c b/src/proto_http.c
index d1acf30..fb831b9 100644
--- a/src/proto_http.c
+++ b/src/proto_http.c
@@ -5155,6 +5155,7 @@
 		 * 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)
diff --git a/src/proto_tcp.c b/src/proto_tcp.c
index 734d469..e6da5d1 100644
--- a/src/proto_tcp.c
+++ b/src/proto_tcp.c
@@ -474,12 +474,15 @@
 
 		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;
 			}