[master] 656416a16 req: Centralize SLT_ReqStart logic

Dridi Boukelmoune dridi.boukelmoune at gmail.com
Mon Dec 5 10:45:07 UTC 2022


commit 656416a16d6a19669eefae2edd5be17dc53fa578
Author: Dridi Boukelmoune <dridi.boukelmoune at gmail.com>
Date:   Mon Dec 5 11:09:36 2022 +0100

    req: Centralize SLT_ReqStart logic

diff --git a/bin/varnishd/cache/cache_req.c b/bin/varnishd/cache/cache_req.c
index 46166956d..46b183140 100644
--- a/bin/varnishd/cache/cache_req.c
+++ b/bin/varnishd/cache/cache_req.c
@@ -34,15 +34,15 @@
 
 #include "config.h"
 
-#include "cache_varnishd.h"
-#include "cache_filter.h"
-
 #include <stdio.h>
 #include <stdlib.h>
 
+#include "cache_varnishd.h"
+#include "cache_filter.h"
 #include "cache_pool.h"
 #include "cache_transport.h"
 
+#include "common/heritage.h"
 #include "vtim.h"
 
 void
@@ -99,6 +99,25 @@ Req_LogHit(struct worker *wrk, struct req *req, struct objcore *oc,
 	}
 }
 
+const char *
+Req_LogStart(struct worker *wrk, struct req *req)
+{
+	const char *ci, *cp, *endpname;
+
+	CHECK_OBJ_NOTNULL(wrk, WORKER_MAGIC);
+	CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
+	CHECK_OBJ_NOTNULL(req->sp, SESS_MAGIC);
+
+	ci = SES_Get_String_Attr(req->sp, SA_CLIENT_IP);
+	cp = SES_Get_String_Attr(req->sp, SA_CLIENT_PORT);
+	CHECK_OBJ_NOTNULL(req->sp->listen_sock, LISTEN_SOCK_MAGIC);
+	endpname = req->sp->listen_sock->name;
+	AN(endpname);
+	VSLb(req->vsl, SLT_ReqStart, "%s %s %s", ci, cp, endpname);
+
+	return (ci);
+}
+
 /*--------------------------------------------------------------------
  * Alloc/Free a request
  */
diff --git a/bin/varnishd/cache/cache_req_fsm.c b/bin/varnishd/cache/cache_req_fsm.c
index c3dbe311f..ac1a66a5d 100644
--- a/bin/varnishd/cache/cache_req_fsm.c
+++ b/bin/varnishd/cache/cache_req_fsm.c
@@ -49,7 +49,6 @@
 #include "hash/hash_slinger.h"
 #include "http1/cache_http1.h"
 #include "storage/storage.h"
-#include "common/heritage.h"
 #include "vcl.h"
 #include "vct.h"
 #include "vsha256.h"
@@ -909,7 +908,7 @@ cnt_recv(struct worker *wrk, struct req *req)
 {
 	unsigned recv_handling;
 	struct VSHA256Context sha256ctx;
-	const char *ci, *cp, *endpname;
+	const char *ci;
 
 	CHECK_OBJ_NOTNULL(wrk, WORKER_MAGIC);
 	CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
@@ -922,13 +921,7 @@ cnt_recv(struct worker *wrk, struct req *req)
 	AZ(isnan(req->t_prev));
 	AZ(isnan(req->t_req));
 
-	ci = SES_Get_String_Attr(req->sp, SA_CLIENT_IP);
-	cp = SES_Get_String_Attr(req->sp, SA_CLIENT_PORT);
-	CHECK_OBJ_NOTNULL(req->sp->listen_sock, LISTEN_SOCK_MAGIC);
-	endpname = req->sp->listen_sock->name;
-	AN(endpname);
-	VSLb(req->vsl, SLT_ReqStart, "%s %s %s", ci, cp, endpname);
-
+	ci = Req_LogStart(wrk, req);
 	http_VSL_log(req->http);
 
 	if (http_CountHdr(req->http0, H_Host) > 1) {
diff --git a/bin/varnishd/cache/cache_varnishd.h b/bin/varnishd/cache/cache_varnishd.h
index b90affc6a..cf397dd81 100644
--- a/bin/varnishd/cache/cache_varnishd.h
+++ b/bin/varnishd/cache/cache_varnishd.h
@@ -404,6 +404,7 @@ void Req_Cleanup(struct sess *sp, struct worker *wrk, struct req *req);
 void Req_Fail(struct req *req, stream_close_t reason);
 void Req_AcctLogCharge(struct VSC_main_wrk *, struct req *);
 void Req_LogHit(struct worker *, struct req *, struct objcore *, intmax_t);
+const char *Req_LogStart(struct worker *, struct req *);
 
 /* cache_req_body.c */
 int VRB_Ignore(struct req *);
diff --git a/bin/varnishd/http1/cache_http1_fsm.c b/bin/varnishd/http1/cache_http1_fsm.c
index 4a3012551..cc3420362 100644
--- a/bin/varnishd/http1/cache_http1_fsm.c
+++ b/bin/varnishd/http1/cache_http1_fsm.c
@@ -35,16 +35,14 @@
 
 #include "config.h"
 
-#include "cache/cache_varnishd.h"
-
 #include <stdio.h>
 #include <stdlib.h>
 
+#include "cache/cache_varnishd.h"
 #include "cache/cache_objhead.h"
 #include "cache/cache_transport.h"
 #include "cache_http1.h"
 
-#include "common/heritage.h"
 #include "vtcp.h"
 
 static const char H1NEWREQ[] = "HTTP1::NewReq";
@@ -246,7 +244,6 @@ http1_abort(struct req *req, uint16_t status)
 static int
 http1_dissect(struct worker *wrk, struct req *req)
 {
-	const char *ci, *cp, *endpname;
 
 	CHECK_OBJ_NOTNULL(wrk, WORKER_MAGIC);
 	CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
@@ -274,13 +271,7 @@ http1_dissect(struct worker *wrk, struct req *req)
 		    req->htc->rxbuf_b);
 		wrk->stats->client_req_400++;
 
-		ci = SES_Get_String_Attr(req->sp, SA_CLIENT_IP);
-		cp = SES_Get_String_Attr(req->sp, SA_CLIENT_PORT);
-		CHECK_OBJ_NOTNULL(req->sp->listen_sock, LISTEN_SOCK_MAGIC);
-		endpname = req->sp->listen_sock->name;
-		AN(endpname);
-
-		VSLb(req->vsl, SLT_ReqStart, "%s %s %s", ci, cp, endpname);
+		(void)Req_LogStart(wrk, req);
 
 		req->doclose = SC_RX_JUNK;
 		http1_abort(req, 400);


More information about the varnish-commit mailing list