Skip to content

Support for dynamic ACLs from VMODs and other related topics #3904

Open
@nigoroll

Description

@nigoroll
Member

This ticket is to ask for comments, feedback and suggestions before starting a PR:

I could not help but write a vmod to support dynamic ACLs because of a stackoverflow post which triggered my buttons.
Doing so I noticed that we lack support in Varnish-Cache to do this properly:

  • typedef acl_match_f and struct vrt_acl could probably be moved to vrt.h
  • vss.h could probably be added to the installed headers?
  • To properly support anything but vcc-compiled acls, struct vrt_acl should gain a void *priv pointer member to be passed as an argument to acl_match_f - or we could pass to acl_match_f all of the struct vrt_acl *.
  • Maybe for later: As with other types, we have a scope/lifetime issue here in particular. For example, how could a vmod prolong the lifetime of a VCL_ACL from task to vcl scope? As the acl implementation is arbitraty, I guess we might want to move the name and match members of struct vrt_acl to a struct vrt_acl_methods, which could also gain something like a struct vrt_acl *extend(struct vrt_acl *, enum scope) callback which to return a clone with an extended lifetime.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @nigoroll

        Issue actions

          Support for dynamic ACLs from VMODs and other related topics · Issue #3904 · varnishcache/varnish-cache