MEDIUM: session: use the pointer to the origin instead of s->si[0].end

When s->si[0].end was dereferenced as a connection or anything in
order to retrieve information about the originating session, we'll
now use sess->origin instead so that when we have to chain multiple
streams in HTTP/2, we'll keep accessing the same origin.
diff --git a/src/proto_tcp.c b/src/proto_tcp.c
index 67404cf..6a67785 100644
--- a/src/proto_tcp.c
+++ b/src/proto_tcp.c
@@ -1366,7 +1366,7 @@
 	struct tcp_rule *rule;
 	struct stksess *ts;
 	struct stktable *t = NULL;
-	struct connection *conn = objt_conn(s->si[0].end);
+	struct connection *conn = objt_conn(sess->origin);
 	int result = 1;
 	enum acl_test_res ret;
 
@@ -1968,7 +1968,8 @@
 smp_fetch_src(struct proxy *px, struct stream *l4, void *l7, unsigned int opt,
               const struct arg *args, struct sample *smp, const char *kw, void *private)
 {
-	struct connection *cli_conn = objt_conn(l4->si[0].end);
+	struct session *sess = strm_sess(l4);
+	struct connection *cli_conn = objt_conn(sess->origin);
 
 	if (!cli_conn)
 		return 0;
@@ -1995,7 +1996,8 @@
 smp_fetch_sport(struct proxy *px, struct stream *l4, void *l7, unsigned int opt,
                 const struct arg *args, struct sample *smp, const char *k, void *private)
 {
-	struct connection *cli_conn = objt_conn(l4->si[0].end);
+	struct session *sess = strm_sess(l4);
+	struct connection *cli_conn = objt_conn(sess->origin);
 
 	if (!cli_conn)
 		return 0;
@@ -2013,7 +2015,8 @@
 smp_fetch_dst(struct proxy *px, struct stream *l4, void *l7, unsigned int opt,
               const struct arg *args, struct sample *smp, const char *kw, void *private)
 {
-	struct connection *cli_conn = objt_conn(l4->si[0].end);
+	struct session *sess = strm_sess(l4);
+	struct connection *cli_conn = objt_conn(sess->origin);
 
 	if (!cli_conn)
 		return 0;
@@ -2042,7 +2045,8 @@
 smp_fetch_dport(struct proxy *px, struct stream *l4, void *l7, unsigned int opt,
                 const struct arg *args, struct sample *smp, const char *kw, void *private)
 {
-	struct connection *cli_conn = objt_conn(l4->si[0].end);
+	struct session *sess = strm_sess(l4);
+	struct connection *cli_conn = objt_conn(sess->origin);
 
 	if (!cli_conn)
 		return 0;