• Nils Goroll's avatar
    Add a bitmask tracking SUB calls to detect recursions · fa3168ae
    Nils Goroll authored
    To allow dynamic SUB calls, we need to check for recursions at
    runtime, reflecting the compile time recursion check.
    
    We create a bitmask to note each dynamically called SUB by its unique
    number. To check for recursions, we only need to test if the
    respective bit for the sub number is already set.
    
    We only conduct this check if the track_call argument of
    vcl_call_method() is true. By setting this argument to the number of
    SUB references, we enable call tracking only for VCLs with dynamic SUB
    references (when (struct VCL_conf).nsub is non-zero).
    
    VCC already guarantees that static calls are loop free - so loops can
    only be introduced through dynamic SUB references.
    
    Call tracking with a bitmask was suggested by phk
    fa3168ae
Name
Last commit
Last update
.circleci Loading commit data...
.github Loading commit data...
bin Loading commit data...
doc Loading commit data...
etc Loading commit data...
include Loading commit data...
lib Loading commit data...
m4 Loading commit data...
man Loading commit data...
tools Loading commit data...
vmod Loading commit data...
.dir-locals.el Loading commit data...
.gitignore Loading commit data...
.lgtm.yml Loading commit data...
.syntastic_c_config Loading commit data...
.travis.yml Loading commit data...
CONTRIBUTING Loading commit data...
ChangeLog Loading commit data...
INSTALL Loading commit data...
LICENSE Loading commit data...
Makefile.am Loading commit data...
README.Packaging Loading commit data...
README.rst Loading commit data...
autogen.des Loading commit data...
autogen.sh Loading commit data...
configure.ac Loading commit data...
flint.lnt Loading commit data...
varnish-legacy.m4 Loading commit data...
varnish.m4 Loading commit data...
varnishapi-uninstalled.pc.in Loading commit data...
varnishapi.pc.in Loading commit data...
vtc.am Loading commit data...