MEDIUM: stream: move the listener's pointer to the session

The listener is session-specific, move it there.
diff --git a/src/frontend.c b/src/frontend.c
index b793ff8..a64ff4f 100644
--- a/src/frontend.c
+++ b/src/frontend.c
@@ -55,6 +55,8 @@
 int frontend_accept(struct stream *s)
 {
 	struct connection *conn = __objt_conn(s->si[0].end);
+	struct listener *l = strm_sess(s)->listener;
+
 	int cfd = conn->t.sock.fd;
 
 	tv_zero(&s->logs.tv_request);
@@ -75,7 +77,7 @@
 	s->srv_error = default_srv_error;
 
 	/* Adjust some socket options */
-	if (s->listener->addr.ss_family == AF_INET || s->listener->addr.ss_family == AF_INET6) {
+	if (l->addr.ss_family == AF_INET || l->addr.ss_family == AF_INET6) {
 		if (setsockopt(cfd, IPPROTO_TCP, TCP_NODELAY,
 			       (char *) &one, sizeof(one)) == -1)
 			goto out_return;
@@ -88,12 +90,12 @@
 			fdtab[cfd].linger_risk = 1;
 
 #if defined(TCP_MAXSEG)
-		if (s->listener->maxseg < 0) {
+		if (l->maxseg < 0) {
 			/* we just want to reduce the current MSS by that value */
 			int mss;
 			socklen_t mss_len = sizeof(mss);
 			if (getsockopt(cfd, IPPROTO_TCP, TCP_MAXSEG, &mss, &mss_len) == 0) {
-				mss += s->listener->maxseg; /* remember, it's < 0 */
+				mss += l->maxseg; /* remember, it's < 0 */
 				setsockopt(cfd, IPPROTO_TCP, TCP_MAXSEG, &mss, sizeof(mss));
 			}
 		}
@@ -158,7 +160,7 @@
 			case AF_UNIX:
 				/* UNIX socket, only the destination is known */
 				send_log(s->fe, LOG_INFO, "Connect to unix:%d (%s/%s)\n",
-					 s->listener->luid,
+					 l->luid,
 					 s->fe->id, (s->fe->mode == PR_MODE_HTTP) ? "HTTP" : "TCP");
 				break;
 			}
@@ -174,14 +176,14 @@
 		case AF_INET:
 		case AF_INET6:
 			chunk_printf(&trash, "%08x:%s.accept(%04x)=%04x from [%s:%d]\n",
-			             s->uniq_id, s->fe->id, (unsigned short)s->listener->fd, (unsigned short)cfd,
+			             s->uniq_id, s->fe->id, (unsigned short)l->fd, (unsigned short)cfd,
 			             pn, get_host_port(&conn->addr.from));
 			break;
 		case AF_UNIX:
 			/* UNIX socket, only the destination is known */
 			chunk_printf(&trash, "%08x:%s.accept(%04x)=%04x from [unix:%d]\n",
-			             s->uniq_id, s->fe->id, (unsigned short)s->listener->fd, (unsigned short)cfd,
-			             s->listener->luid);
+			             s->uniq_id, s->fe->id, (unsigned short)l->fd, (unsigned short)cfd,
+			             l->luid);
 			break;
 		}