add vmod_pesi_debug and use it in all tests

This vmod provides additional sanity checks which we do not want to see
in production use of this vmod, but which we do want for our test suite.

Conflicts:
	configure.ac
	src/Makefile.am
parent 4428a4f4
......@@ -55,7 +55,7 @@ m4_ifndef([VARNISH_PREREQ], AC_MSG_ERROR([Need varnish.m4 -- see README.rst]))
# 6.5.99 is a placeholder for "last 6.5"
VARNISH_PREREQ([6.5.0], [6.5.99])
VARNISH_VMODS([pesi])
VARNISH_VMODS([pesi pesi_debug])
VARNISH_COUNTERS([pesi])
VMOD_TESTS="$(cd $srcdir/src && echo tests/*.vtc)"
......
......@@ -5,7 +5,7 @@ AM_CFLAGS = $(VARNISHAPI_CFLAGS) -I$(VARNISHSRC)/include \
-Wall -Werror -Wextra -std=c99
AM_LDFLAGS = $(VARNISHAPI_LIBS) $(VMOD_LDFLAGS) -ldl
vmod_LTLIBRARIES = libvmod_pesi.la
vmod_LTLIBRARIES = libvmod_pesi.la libvmod_pesi_debug.la
libvmod_pesi_la_SOURCES = \
misc.h \
......@@ -34,10 +34,19 @@ nodist_libvmod_pesi_la_SOURCES = \
VSC_pesi.c \
VSC_pesi.h
libvmod_pesi_debug_la_SOURCES = \
vmod_pesi_debug.c
nodist_libvmod_pesi_debug_la_SOURCES = \
vcc_pesi_debug_if.c \
vcc_pesi_debug_if.h
dist_man_MANS = vdp_pesi.3
@BUILD_VSC_PESI@
# -- pesi
vmod_pesi.lo: vcc_pesi_if.h VSC_pesi.c VSC_pesi.h misc.h node_mempool.h \
pesi_flags.h vdp_pesi.h tbl_set_parameter.h
......@@ -58,14 +67,22 @@ vcc_pesi_if.c: vdp_pesi.vcc
vdp_pesi.3: vmod_pesi.man.rst
$(AM_V_GEN) $(RST2MAN) vmod_pesi.man.rst vdp_pesi.3
# -- pesi_debug
vcc_pesi_debug_if.h vmod_pesi_debug.rst vmod_pesi_debug.man.rst: vcc_pesi_debug_if.c
vcc_pesi_debug_if.c: vmod_pesi_debug.vcc
$(AM_V_VMODTOOL) $(PYTHON) $(VMODTOOL) -o vcc_pesi_debug_if $(srcdir)/vmod_pesi_debug.vcc
AM_TESTS_ENVIRONMENT = \
PATH="$(VMOD_TEST_PATH)" \
LD_LIBRARY_PATH="$(VARNISH_LIBRARY_PATH)"
TEST_EXTENSIONS = .vtc
TESTFLAGS = -v -t 20
VTC_LOG_COMPILER = varnishtest ${TESTFLAGS}
AM_VTC_LOG_FLAGS = -Dvmod_pesi="$(VMOD_PESI)"
AM_VTC_LOG_FLAGS = -Dvmod_pesi="$(VMOD_PESI)" \
-Dvmod_pesi_debug="$(VMOD_PESI_DEBUG)" \
-p vcl_path=$(abs_srcdir)/tests
# To test an individual VTC test named test.vtc:
# $ make check TESTS=tests/test.vtc
......
......@@ -4,6 +4,8 @@ varnishtest "vcl.use and .discard, and version string"
varnish v1 -vcl {
import ${vmod_pesi};
import ${vmod_pesi_debug};
include "debug.inc.vcl";
backend b { .host = "${bad_ip}"; }
} -start
......@@ -81,6 +83,8 @@ varnish v1 -cli "vcl.list"
varnish v1 -vcl {
import ${vmod_pesi};
import ${vmod_pesi_debug};
include "debug.inc.vcl";
backend b { .host = "${bad_ip}"; }
sub vcl_recv {
......
......@@ -25,6 +25,8 @@ server s2 {
varnish v1 -vcl+backend {
import ${vmod_pesi};
import ${vmod_pesi_debug};
include "debug.inc.vcl";
sub vcl_recv {
if (req.esi_level > 0) {
......
......@@ -24,6 +24,8 @@ server s2 {
varnish v1 -arg "-p debug=+syncvsl" -vcl+backend {
import ${vmod_pesi};
import ${vmod_pesi_debug};
include "debug.inc.vcl";
sub vcl_recv {
if (req.esi_level > 0) {
......
sub vcl_recv {
pesi_debug.register_privs();
}
sub vcl_deliver {
pesi_debug.check_privs();
}
......@@ -13,6 +13,8 @@ server s2 {
varnish v1 -vcl+backend {
import ${vmod_pesi};
import ${vmod_pesi_debug};
include "debug.inc.vcl";
sub vcl_backend_fetch {
if (bereq.url == "/") {
......@@ -49,6 +51,8 @@ client c1 {
varnish v1 -syntax 4.0 -vcl {
import ${vmod_pesi};
import ${vmod_pesi_debug};
include "debug.inc.vcl";
backend b { .host = "${bad_ip}"; }
sub vcl_deliver {
......
......@@ -10,6 +10,8 @@ server s1 {
varnish v1 -vcl+backend {
import ${vmod_pesi};
import ${vmod_pesi_debug};
include "debug.inc.vcl";
sub vcl_backend_response {
set beresp.do_esi = true;
......
......@@ -15,6 +15,8 @@ server s1 {
varnish v1 -vcl+backend {
import ${vmod_pesi};
import ${vmod_pesi_debug};
include "debug.inc.vcl";
sub vcl_backend_response {
set beresp.do_esi = true;
......
......@@ -14,6 +14,8 @@ server s1 {
varnish v1 -vcl+backend {
import ${vmod_pesi};
import ${vmod_pesi_debug};
include "debug.inc.vcl";
sub vcl_backend_response {
set beresp.do_esi = true;
......
......@@ -24,6 +24,8 @@ server s2 {
varnish v1 -arg "-p debug=+syncvsl" -vcl+backend {
import ${vmod_pesi};
import ${vmod_pesi_debug};
include "debug.inc.vcl";
sub vcl_recv {
if (req.esi_level > 0) {
......
......@@ -18,6 +18,8 @@ server s1 {
varnish v1 -vcl+backend {
import ${vmod_pesi};
import ${vmod_pesi_debug};
include "debug.inc.vcl";
sub vcl_backend_response {
if (bereq.url != "/body") {
......
......@@ -19,6 +19,8 @@ server s1 {
varnish v1 -vcl+backend {
import ${vmod_pesi};
import ${vmod_pesi_debug};
include "debug.inc.vcl";
sub vcl_backend_response {
if (bereq.url != "/foo/body") {
......
......@@ -23,6 +23,8 @@ server s2 {
varnish v1 -vcl+backend {
import ${vmod_pesi};
import ${vmod_pesi_debug};
include "debug.inc.vcl";
sub vcl_backend_fetch {
if (bereq.http.host == "bozz") {
......
......@@ -33,6 +33,8 @@ server s1 {
varnish v1 -arg "-sdefault,2m" -vcl+backend {
import ${vmod_pesi};
import ${vmod_pesi_debug};
include "debug.inc.vcl";
sub vcl_backend_response {
set beresp.do_esi = true;
......
......@@ -67,6 +67,8 @@ server s3 {
varnish v1 -vcl+backend {
import ${vmod_pesi};
import ${vmod_pesi_debug};
include "debug.inc.vcl";
sub vcl_backend_response {
set beresp.do_esi = true;
......
......@@ -14,6 +14,8 @@ server s1 {
varnish v1 -vcl+backend {
import ${vmod_pesi};
import ${vmod_pesi_debug};
include "debug.inc.vcl";
sub vcl_backend_response {
set beresp.do_esi = true;
......
......@@ -13,6 +13,8 @@ server s1 {
varnish v1 -vcl+backend {
import ${vmod_pesi};
import ${vmod_pesi_debug};
include "debug.inc.vcl";
sub vcl_backend_response {
set beresp.do_esi = true;
......
......@@ -19,6 +19,8 @@ server s1 {
varnish v1 -vcl+backend {
import ${vmod_pesi};
import ${vmod_pesi_debug};
include "debug.inc.vcl";
sub vcl_backend_response {
set beresp.uncacheable = true;
......
......@@ -18,6 +18,8 @@ server s1 {
varnish v1 -vcl+backend {
import ${vmod_pesi};
import ${vmod_pesi_debug};
include "debug.inc.vcl";
sub vcl_backend_response {
if (bereq.url != "/foo/body") {
......
......@@ -12,6 +12,8 @@ server s1 {
varnish v1 -vcl+backend {
import ${vmod_pesi};
import ${vmod_pesi_debug};
include "debug.inc.vcl";
sub vcl_backend_response {
set beresp.do_esi = true;
......
......@@ -11,6 +11,8 @@ server s1 {
varnish v1 -vcl+backend {
import ${vmod_pesi};
import ${vmod_pesi_debug};
include "debug.inc.vcl";
sub vcl_backend_response {
set beresp.do_esi = true;
......
......@@ -25,6 +25,8 @@ server s1 {
varnish v1 -syntax 4.0 -vcl+backend {
import ${vmod_pesi};
import ${vmod_pesi_debug};
include "debug.inc.vcl";
sub vcl_recv {
if (req.url == "/") {
......@@ -67,6 +69,8 @@ server s1 {
varnish v1 -syntax 4.1 -vcl+backend {
import ${vmod_pesi};
import ${vmod_pesi_debug};
include "debug.inc.vcl";
sub vcl_deliver {
set resp.http.was = resp.do_esi;
......
......@@ -40,6 +40,8 @@ varnish v1 \
-arg "-p feature=+esi_disable_xml_check" \
-vcl+backend {
import ${vmod_pesi};
import ${vmod_pesi_debug};
include "debug.inc.vcl";
sub vcl_backend_response {
set beresp.do_esi = true;
......
......@@ -132,6 +132,8 @@ server s21 {
varnish v1 -arg "-p thread_pool_min=100" -vcl+backend {
import ${vmod_pesi};
import ${vmod_pesi_debug};
include "debug.inc.vcl";
sub vcl_backend_response {
set beresp.do_esi = true;
......
......@@ -61,6 +61,8 @@ server s6 {
varnish v1 -vcl+backend {
import ${vmod_pesi};
import ${vmod_pesi_debug};
include "debug.inc.vcl";
sub vcl_recv {
return (pass);
......
......@@ -40,6 +40,8 @@ server s2 {
varnish v1 -vcl+backend {
import ${vmod_pesi};
import ${vmod_pesi_debug};
include "debug.inc.vcl";
sub vcl_backend_fetch {
if (bereq.url != "bar") {
......
......@@ -15,6 +15,8 @@ server s1 {
varnish v1 -vcl+backend {
import ${vmod_pesi};
import ${vmod_pesi_debug};
include "debug.inc.vcl";
sub vcl_backend_response {
set beresp.do_esi = true;
......
......@@ -15,6 +15,8 @@ server s1 {
varnish v1 -syntax 4.0 -vcl+backend {
import ${vmod_pesi};
import ${vmod_pesi_debug};
include "debug.inc.vcl";
sub vcl_recv {
set req.esi = true;
......
......@@ -16,6 +16,8 @@ server s1 {
varnish v1 -syntax 4.0 -arg "-p thread_pool_stack=262144" -vcl+backend {
import ${vmod_pesi};
import ${vmod_pesi_debug};
include "debug.inc.vcl";
sub vcl_recv {
set req.esi = true;
......
......@@ -45,6 +45,8 @@ server s5 {
varnish v1 -vcl+backend {
import ${vmod_pesi};
import ${vmod_pesi_debug};
include "debug.inc.vcl";
sub vcl_backend_response {
set beresp.http.filter1 = beresp.filters;
......
......@@ -76,6 +76,8 @@ server s9 {
varnish v1 -arg "-p thread_pool_min=100" -vcl+backend {
import ${vmod_pesi};
import ${vmod_pesi_debug};
include "debug.inc.vcl";
sub vcl_backend_response {
if (bereq.url == "/") {
......
......@@ -8,6 +8,8 @@ server s1 {
varnish v1 -vcl+backend {
import ${vmod_pesi};
import ${vmod_pesi_debug};
include "debug.inc.vcl";
sub vcl_deliver {
pesi.activate();
......
......@@ -29,6 +29,8 @@ server s1 {
varnish v1 -vcl+backend {
import ${vmod_pesi};
import ${vmod_pesi_debug};
include "debug.inc.vcl";
sub vcl_backend_response {
if (bereq.url != "/foo") {
......
......@@ -9,6 +9,8 @@ server s1 {
varnish v1 -vcl+backend {
import ${vmod_pesi};
import ${vmod_pesi_debug};
include "debug.inc.vcl";
sub vcl_backend_response {
set beresp.do_esi = true;
......
......@@ -36,6 +36,8 @@ server s1 {
varnish v1 -arg "-p feature=+esi_disable_xml_check" -vcl+backend {
import ${vmod_pesi};
import ${vmod_pesi_debug};
include "debug.inc.vcl";
sub vcl_backend_response {
set beresp.http.filters1 = beresp.filters;
......
......@@ -58,6 +58,8 @@ server s4 {
varnish v1 -vcl+backend {
import ${vmod_pesi};
import ${vmod_pesi_debug};
include "debug.inc.vcl";
sub vcl_recv {
if (req.esi_level > 0) {
......
......@@ -9,6 +9,8 @@ server s1 {
varnish v1 -arg "-p http_gzip_support=off -p debug=+processors" -vcl+backend {
import ${vmod_pesi};
import ${vmod_pesi_debug};
include "debug.inc.vcl";
sub vcl_backend_response {
set beresp.do_esi = true;
......
......@@ -11,6 +11,8 @@ server s1 {
varnish v1 -vcl+backend {
import ${vmod_pesi};
import ${vmod_pesi_debug};
include "debug.inc.vcl";
sub vcl_recv {
return (pass);
......
......@@ -48,6 +48,8 @@ server s7 {
varnish v1 -arg "-l 100m" -vcl+backend {
import ${vmod_pesi};
import ${vmod_pesi_debug};
include "debug.inc.vcl";
sub vcl_recv {
return (pass);
......
......@@ -15,6 +15,8 @@ server s1 {
varnish v1 -arg "-p debug=+waitinglist" -vcl+backend {
import ${vmod_pesi};
import ${vmod_pesi_debug};
include "debug.inc.vcl";
sub vcl_backend_response {
set beresp.do_esi = true;
......@@ -69,6 +71,8 @@ server s4 {
varnish v2 -arg "-p debug=+waitinglist -p feature=+http2" -vcl+backend {
import ${vmod_pesi};
import ${vmod_pesi_debug};
include "debug.inc.vcl";
sub vcl_backend_fetch {
if (bereq.url == "/") {
......
......@@ -70,6 +70,8 @@ server s7 {
varnish v1 -vcl+backend {
import ${vmod_pesi};
import ${vmod_pesi_debug};
include "debug.inc.vcl";
sub vcl_backend_fetch {
if (bereq.url == "/") {
......
......@@ -70,6 +70,8 @@ server s7 {
varnish v1 -vcl+backend {
import ${vmod_pesi};
import ${vmod_pesi_debug};
include "debug.inc.vcl";
sub vcl_backend_fetch {
if (bereq.url == "/") {
......
......@@ -70,6 +70,8 @@ server s7 {
varnish v1 -vcl+backend {
import ${vmod_pesi};
import ${vmod_pesi_debug};
include "debug.inc.vcl";
sub vcl_backend_fetch {
if (bereq.url == "/") {
......
......@@ -21,6 +21,8 @@ server s2 {
varnish v1 -vcl+backend {
import ${vmod_pesi};
import ${vmod_pesi_debug};
include "debug.inc.vcl";
sub vcl_backend_fetch {
if (bereq.url == "/") {
......
......@@ -133,6 +133,8 @@ server s21 {
varnish v1 -arg "-p thread_pools=1 -p thread_pool_min=5 -p thread_pool_max=5 -p vcc_err_unref=off" -vcl+backend {
import ${vmod_pesi};
import ${vmod_pesi_debug};
include "debug.inc.vcl";
sub vcl_backend_response {
set beresp.do_esi = true;
......@@ -340,6 +342,8 @@ server s9 {
varnish v1 -vcl+backend {
import ${vmod_pesi};
import ${vmod_pesi_debug};
include "debug.inc.vcl";
sub vcl_backend_response {
if (bereq.url == "/e24") {
......
......@@ -44,6 +44,8 @@ varnish v1 -arg "-a 127.0.0.1:0 -a self=${tmpdir}/v1.sock" \
-arg "-p thread_pool_min=128" \
-vcl+backend {
import ${vmod_pesi};
import ${vmod_pesi_debug};
include "debug.inc.vcl";
import vtc;
import std;
......
......@@ -44,6 +44,8 @@ varnish v1 -arg "-a 127.0.0.1:0 -a self=${tmpdir}/v1.sock" \
-arg "-p thread_pool_min=128" \
-vcl+backend {
import ${vmod_pesi};
import ${vmod_pesi_debug};
include "debug.inc.vcl";
backend self {
.path = "${tmpdir}/v1.sock";
......
......@@ -70,6 +70,8 @@ server s7 {
varnish v1 -vcl+backend {
import ${vmod_pesi};
import ${vmod_pesi_debug};
include "debug.inc.vcl";
sub vcl_backend_fetch {
if (bereq.url == "/") {
......
......@@ -12,6 +12,8 @@ server s2 {
varnish v1 -vcl+backend {
import ${vmod_pesi};
import ${vmod_pesi_debug};
include "debug.inc.vcl";
sub vcl_recv {
if (req.url ~ "^/pool") {
......@@ -107,6 +109,8 @@ varnish v1 -expect MEMPOOL.pesi.pool <= 8
varnish v1 -vcl {
import ${vmod_pesi};
import ${vmod_pesi_debug};
include "debug.inc.vcl";
backend b { .host = "${bad_ip}"; }
sub vcl_init {
......@@ -134,6 +138,8 @@ varnish v1 -expect MEMPOOL.pesi.pool <= 20
varnish v1 -errvcl "vdp pesi failure: min (0) must be > 0 in pool()" {
import ${vmod_pesi};
import ${vmod_pesi_debug};
include "debug.inc.vcl";
backend b { .host = "${bad_ip}"; }
sub vcl_init {
......@@ -143,6 +149,8 @@ varnish v1 -errvcl "vdp pesi failure: min (0) must be > 0 in pool()" {
varnish v1 -errvcl "vdp pesi failure: max (-1) must be > 0 in pool()" {
import ${vmod_pesi};
import ${vmod_pesi_debug};
include "debug.inc.vcl";
backend b { .host = "${bad_ip}"; }
sub vcl_init {
......@@ -152,6 +160,8 @@ varnish v1 -errvcl "vdp pesi failure: max (-1) must be > 0 in pool()" {
varnish v1 -errvcl "vdp pesi failure: max (1) < min (2) in pool()" {
import ${vmod_pesi};
import ${vmod_pesi_debug};
include "debug.inc.vcl";
backend b { .host = "${bad_ip}"; }
sub vcl_init {
......@@ -161,6 +171,8 @@ varnish v1 -errvcl "vdp pesi failure: max (1) < min (2) in pool()" {
varnish v1 -errvcl "vdp pesi failure: max_age (-1s) < 0s in pool()" {
import ${vmod_pesi};
import ${vmod_pesi_debug};
include "debug.inc.vcl";
backend b { .host = "${bad_ip}"; }
sub vcl_init {
......@@ -170,6 +182,8 @@ varnish v1 -errvcl "vdp pesi failure: max_age (-1s) < 0s in pool()" {
varnish v1 -errvcl "vdp pesi failure: max_age (1000001s) out of range in pool() (max 10^6s)" {
import ${vmod_pesi};
import ${vmod_pesi_debug};
include "debug.inc.vcl";
backend b { .host = "${bad_ip}"; }
sub vcl_init {
......
......@@ -2,6 +2,8 @@ varnishtest "workspace_prealloc()"
varnish v1 -vcl {
import ${vmod_pesi};
import ${vmod_pesi_debug};
include "debug.inc.vcl";
backend b { .host = "${bad_ip}"; }
sub vcl_recv {
......@@ -54,6 +56,8 @@ server s2 {
varnish v1 -vcl+backend {
import ${vmod_pesi};
import ${vmod_pesi_debug};
include "debug.inc.vcl";
sub vcl_init {
pesi.workspace_prealloc(max_nodes=0);
......@@ -92,6 +96,8 @@ varnish v1 -expect MEMPOOL.pesi.allocs >= 0
varnish v1 -errvcl "vdp pesi failure: max_nodes (-1) < 0 in workspace_prealloc()" {
import ${vmod_pesi};
import ${vmod_pesi_debug};
include "debug.inc.vcl";
backend b { .host = "${bad_ip}"; }
sub vcl_init {
......
......@@ -23,6 +23,8 @@ server s2 {
varnish v1 -arg "-p debug=+syncvsl" -vcl+backend {
import ${vmod_pesi};
import ${vmod_pesi_debug};
include "debug.inc.vcl";
sub vcl_recv {
if (req.esi_level > 0) {
......@@ -231,6 +233,8 @@ server s7 {
varnish v1 -vcl+backend {
import ${vmod_pesi};
import ${vmod_pesi_debug};
include "debug.inc.vcl";
import std;
sub vcl_backend_fetch {
......
......@@ -58,6 +58,8 @@ server s7 {
varnish v1 -arg "-l 100m" -vcl+backend {
import ${vmod_pesi};
import ${vmod_pesi_debug};
include "debug.inc.vcl";
sub vcl_backend_response {
set beresp.do_esi = true;
......
......@@ -15,6 +15,8 @@ server s1 {
varnish v1 -arg "-p debug=+waitinglist" -vcl+backend {
import ${vmod_pesi};
import ${vmod_pesi_debug};
include "debug.inc.vcl";
sub vcl_backend_response {
set beresp.do_esi = true;
......
#include "config.h"
#include <string.h> // INIT_OBJ
#include <cache/cache.h>
#include "vcc_pesi_debug_if.h"
/*
* locking: because we require the PRIV_TOP to be created exactly once and
* varnish-cache takes care of serializing access to the PRIV_TOP tree itself,
* we do not need to lock here.
*
* BUT: For any real-world vmod for which a PRIV_TOP max only be created at esi
* level > 0, a static mutex is required for access to the priv_top priv (a lock
* _in_ the priv is not sufficient because also access to the private pointer
* can race)
*/
struct pedbg_top {
unsigned magic;
#define PEDBG_TOP_MAGIC 0x94e33a13
const struct ws *ws;
const struct req *req;
};
struct pedbg_task {
unsigned magic;
#define PEDBG_TASK_MAGIC 0x42a71fb0
const struct ws *ws;
const struct req *req;
};
#define PEDBG_SETUP(ctx, ptop, ptask, r, tr) \
CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC); \
AN(ptop); \
AN(ptask); \
r = ctx->req; \
CHECK_OBJ_NOTNULL(r, REQ_MAGIC); \
CHECK_OBJ_NOTNULL(req->top, REQTOP_MAGIC); \
assert((r)->ws == (ctx)->ws); \
tr = req->top->topreq; \
CHECK_OBJ_NOTNULL(tr, REQ_MAGIC)
/*
* must be called exactly once
* restarts check done in vmod for simplicty
*/
VCL_VOID
pedbg_register_privs(VRT_CTX,
struct vmod_priv *priv_top, struct vmod_priv *priv_task)
{
struct req *req, *topreq;
struct pedbg_top *top;
struct pedbg_task *task;
PEDBG_SETUP(ctx, priv_top, priv_task, req, topreq);
if (req->restarts > 0) {
pedbg_check_privs(ctx, priv_top, priv_task);
return;
}
if (req->esi_level == 0) {
AZ(priv_top->priv);
top = WS_Alloc(ctx->ws, sizeof *top);
AN(top);
INIT_OBJ(top, PEDBG_TOP_MAGIC);
top->ws = ctx->ws;
top->req = req;
priv_top->priv = top;
}
AZ(priv_task->priv);
task = WS_Alloc(ctx->ws, sizeof *task);
AN(task);
INIT_OBJ(task, PEDBG_TASK_MAGIC);
task->ws = ctx->ws;
task->req = req;
priv_task->priv = task;
pedbg_check_privs(ctx, priv_top, priv_task);
}
#define A(x) assert(x)
VCL_VOID
pedbg_check_privs(VRT_CTX,
struct vmod_priv *priv_top, struct vmod_priv *priv_task)
{
struct req *req, *topreq;
struct pedbg_top *top;
struct pedbg_task *task;
PEDBG_SETUP(ctx, priv_top, priv_task, req, topreq);
CAST_OBJ_NOTNULL(top, priv_top->priv, PEDBG_TOP_MAGIC);
CAST_OBJ_NOTNULL(task, priv_task->priv, PEDBG_TASK_MAGIC);
A(task->ws == ctx->ws);
A(task->req == ctx->req);
A(top->req == topreq);
A(top->ws == topreq->ws);
if (req->esi_level == 0) {
A(req == topreq);
A(top->ws == ctx->ws);
A(top->req == req);
return;
}
A(top->ws != ctx->ws);
A(top->req != req);
A(top->req->ws == top->ws);
A(top->req->ws != ctx->ws);
}
#-
# Copyright (c) 2021 UPLEX Nils Goroll Systemoptimierung
# All rights reserved
#
# Author: Nils Goroll <nils.goroll@uplex.de>
#
# See LICENSE
#
$Module pesi_debug 3 "Debug and test functions for vmod_pesi"
$Prefix pedbg
$Function VOID register_privs(PRIV_TOP, PRIV_TASK)
$Function VOID check_privs(PRIV_TOP, PRIV_TASK)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment