Mailing List Archive

[master] 656416a16 req: Centralize SLT_ReqStart logic
commit 656416a16d6a19669eefae2edd5be17dc53fa578
Author: Dridi Boukelmoune <dridi.boukelmoune@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);
_______________________________________________
varnish-commit mailing list
varnish-commit@varnish-cache.org
https://www.varnish-cache.org/lists/mailman/listinfo/varnish-commit