[master] 953da35 Also decorate listensock's with a protocol name we can use.

Poul-Henning Kamp phk at FreeBSD.org
Mon Mar 23 08:46:40 CET 2015


commit 953da35369e781f987d34898a1a44f51cdc5c9d5
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date:   Thu Mar 19 15:15:04 2015 +0000

    Also decorate listensock's with a protocol name we can use.

diff --git a/bin/varnishd/cache/cache_acceptor.c b/bin/varnishd/cache/cache_acceptor.c
index 6d7c9c2..c8ef147 100644
--- a/bin/varnishd/cache/cache_acceptor.c
+++ b/bin/varnishd/cache/cache_acceptor.c
@@ -296,6 +296,8 @@ vca_make_session(struct worker *wrk, void *arg)
 	struct wrk_accept *wa;
 	struct sockaddr_storage ss;
 	struct suckaddr *sa;
+	enum sess_step first_step;
+	const char *proto_name;
 	socklen_t sl;
 	char laddr[VTCP_ADDRBUFSIZE];
 	char lport[VTCP_PORTBUFSIZE];
@@ -305,6 +307,8 @@ vca_make_session(struct worker *wrk, void *arg)
 	CHECK_OBJ_NOTNULL(wrk, WORKER_MAGIC);
 	CAST_OBJ_NOTNULL(wa, arg, WRK_ACCEPT_MAGIC);
 	pp = wa->sesspool;
+	first_step = wa->acceptlsock->first_step;
+	proto_name = wa->acceptlsock->proto_name;
 
 	/* Turn accepted socket into a session */
 	AN(wrk->aws->r);
@@ -348,7 +352,7 @@ vca_make_session(struct worker *wrk, void *arg)
 
 	VTCP_name(sa, laddr, sizeof laddr, lport, sizeof lport);
 
-	VSL(SLT_Begin, sp->vxid, "sess 0 HTTP/1");
+	VSL(SLT_Begin, sp->vxid, "sess 0 %s", proto_name);
 	VSL(SLT_SessOpen, sp->vxid, "%s %s %s %s %s %.6f %d",
 	    raddr, rport, wa->acceptlsock->name, laddr, lport,
 	    sp->t_open, sp->fd);
@@ -363,6 +367,8 @@ vca_make_session(struct worker *wrk, void *arg)
 		need_test = 0;
 	}
 	vca_tcp_opt_set(sp->fd, 0);
+
+	assert(first_step == S_STP_H1NEWSESS);
 	/* SES_sess_pool_task() must be sceduled with reserved WS */
 	assert(8 == WS_Reserve(sp->ws, 8));
 	wrk->task.func = SES_sess_pool_task;
diff --git a/bin/varnishd/common/heritage.h b/bin/varnishd/common/heritage.h
index c8f857b..05f340a 100644
--- a/bin/varnishd/common/heritage.h
+++ b/bin/varnishd/common/heritage.h
@@ -40,6 +40,7 @@ struct listen_sock {
 	const char			*name;
 	const struct suckaddr		*addr;
 	enum sess_step			first_step;
+	const char			*proto_name;
 };
 
 VTAILQ_HEAD(listen_sock_head, listen_sock);
diff --git a/bin/varnishd/mgt/mgt_acceptor.c b/bin/varnishd/mgt/mgt_acceptor.c
index 318d215..238d351 100644
--- a/bin/varnishd/mgt/mgt_acceptor.c
+++ b/bin/varnishd/mgt/mgt_acceptor.c
@@ -133,6 +133,7 @@ mac_callback(void *priv, const struct suckaddr *sa)
 	ls->sock = -1;
 	ls->addr = sa;
 	ls->first_step = S_STP_H1NEWSESS;
+	ls->proto_name = "HTTP/1";
 	fail = mac_opensocket(ls, NULL);
 	if (ls->sock < 0) {
 		*(mh->err) = strerror(fail);



More information about the varnish-commit mailing list