[master] 6e3e2f39c cache_ban: refactor: split out ban_add_duration / ban_add_number

Nils Goroll nils.goroll at uplex.de
Wed Feb 26 09:47:11 UTC 2025


commit 6e3e2f39c182ef62a22a17153218471abcae0850
Author: Nils Goroll <nils.goroll at uplex.de>
Date:   Wed Feb 26 10:34:59 2025 +0100

    cache_ban: refactor: split out ban_add_duration / ban_add_number
    
    Just moving code, no change
    
    Now guess which change is going to be proposed...

diff --git a/bin/varnishd/cache/cache_ban_build.c b/bin/varnishd/cache/cache_ban_build.c
index 302898da5..c9af918f7 100644
--- a/bin/varnishd/cache/cache_ban_build.c
+++ b/bin/varnishd/cache/cache_ban_build.c
@@ -240,14 +240,42 @@ ban_add_spec(struct ban_proto *bp, const struct pvar *pv, int op, const char *a3
 	return (ban_parse_regexp(bp, a3));
 }
 
+static const char *
+ban_add_double(struct ban_proto *bp, const struct pvar *pv, int op, double darg)
+{
+	uint64_t dtmp;
+	uint8_t denc[sizeof darg];
+
+	assert(BANS_HAS_ARG2_DOUBLE(pv->tag));
+	assert(sizeof darg == sizeof dtmp);
+	assert(sizeof dtmp == sizeof denc);
+	memcpy(&dtmp, &darg, sizeof dtmp);
+	vbe64enc(denc, dtmp);
+
+	ban_add_lump(bp, denc, sizeof denc);
+	VSB_putc(bp->vsb, op);
+	return (NULL);
+}
+
+static const char *
+ban_add_duration(struct ban_proto *bp, const struct pvar *pv, int op, const char *a3)
+{
+	double darg;
+
+	assert(pv->flag & BANS_FLAG_DURATION);
+	darg = VNUM_duration(a3);
+	if (isnan(darg)) {
+		return (ban_error(bp,
+		    "expected duration <n.nn>[ms|s|m|h|d|w|y] got \"%s\"", a3));
+	}
+	return (ban_add_double(bp, pv, op, darg));
+}
+
 const char *
 BAN_AddTest(struct ban_proto *bp,
     const char *a1, const char *a2, const char *a3)
 {
 	const struct pvar *pv;
-	double darg;
-	uint64_t dtmp;
-	uint8_t denc[sizeof darg];
 	int op;
 
 	CHECK_OBJ_NOTNULL(bp, BAN_PROTO_MAGIC);
@@ -290,23 +318,8 @@ BAN_AddTest(struct ban_proto *bp,
 
 	if ((pv->flag & BANS_FLAG_DURATION) == 0)
 		return (ban_add_spec(bp, pv, op, a3));
-
-	assert(pv->flag & BANS_FLAG_DURATION);
-	assert(BANS_HAS_ARG2_DOUBLE(pv->tag));
-	darg = VNUM_duration(a3);
-	if (isnan(darg)) {
-		return (ban_error(bp,
-		    "expected duration <n.nn>[ms|s|m|h|d|w|y] got \"%s\"", a3));
-	}
-
-	assert(sizeof darg == sizeof dtmp);
-	assert(sizeof dtmp == sizeof denc);
-	memcpy(&dtmp, &darg, sizeof dtmp);
-	vbe64enc(denc, dtmp);
-
-	ban_add_lump(bp, denc, sizeof denc);
-	VSB_putc(bp->vsb, op);
-	return (NULL);
+	else
+		return (ban_add_duration(bp, pv, op, a3));
 }
 
 /*--------------------------------------------------------------------


More information about the varnish-commit mailing list