Mailing List Archive

[master] 245c768fa Split out vcc_acl_insert_entry() again
commit 245c768fa4e509d19bdf5bd308f0fbfc71d280fb
Author: Nils Goroll <nils.goroll@uplex.de>
Date: Mon May 10 17:05:07 2021 +0200

Split out vcc_acl_insert_entry() again

Reverts d89674d129ef0ed1c495e1169f83ec3203db1b42
Reinstantiates bbb5db47e02f431598e5a7ff7106a8ac316db8be

diff --git a/lib/libvcc/vcc_acl.c b/lib/libvcc/vcc_acl.c
index dffd9013c..c8219dcc8 100644
--- a/lib/libvcc/vcc_acl.c
+++ b/lib/libvcc/vcc_acl.c
@@ -208,11 +208,30 @@ vcc_acl_chk(struct vcc *tl, const struct acl_e *ae, const int l,
return (r);
}

+static void
+vcc_acl_insert_entry(struct vcc *tl, struct acl_e **aenp)
+{
+ struct acl_e *ae2;
+
+ CHECK_OBJ_NOTNULL(*aenp, VCC_ACL_E_MAGIC);
+ ae2 = VRBT_INSERT(acl_tree, &tl->acl->acl_tree, *aenp);
+ if (ae2 != NULL) {
+ if (ae2->not != (*aenp)->not) {
+ VSB_cat(tl->sb, "Conflicting ACL entries:\n");
+ vcc_ErrWhere(tl, ae2->t_addr);
+ VSB_cat(tl->sb, "vs:\n");
+ vcc_ErrWhere(tl, (*aenp)->t_addr);
+ }
+ return;
+ }
+ *aenp = NULL;
+}
+
static void
vcc_acl_add_entry(struct vcc *tl, const struct acl_e *ae, int l,
unsigned char *u, int fam)
{
- struct acl_e *aen, *ae2;
+ struct acl_e *aen;

if (fam == PF_INET && ae->mask > 32) {
VSB_printf(tl->sb,
@@ -247,14 +266,9 @@ vcc_acl_add_entry(struct vcc *tl, const struct acl_e *ae, int l,
assert(l + 1UL <= sizeof aen->data);
memcpy(aen->data + 1L, u, l);

- ae2 = VRBT_INSERT(acl_tree, &tl->acl->acl_tree, aen);
- if (ae2 != NULL && ae2->not != aen->not) {
- VSB_cat(tl->sb, "Conflicting ACL entries:\n");
- vcc_ErrWhere(tl, ae2->t_addr);
- VSB_cat(tl->sb, "vs:\n");
- vcc_ErrWhere(tl, aen->t_addr);
+ vcc_acl_insert_entry(tl, &aen);
+ if (aen != NULL)
vcl_acl_free(&aen);
- }
}

static void
_______________________________________________
varnish-commit mailing list
varnish-commit@varnish-cache.org
https://www.varnish-cache.org/lists/mailman/listinfo/varnish-commit