aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--NEWS19
-rw-r--r--README16
m---------acvmod0
-rw-r--r--configure.ac8
-rw-r--r--src/variable.c39
-rw-r--r--src/variable.vcc4
-rw-r--r--src/vmod-variable.38
7 files changed, 74 insertions, 20 deletions
diff --git a/NEWS b/NEWS
index f2fbb38..7bec66d 100644
--- a/NEWS
+++ b/NEWS
@@ -1,9 +1,22 @@
-vmod-variable -- history of user-visible changes. 2017-08-10
-Copyright (C) 2015-2017 Sergey Poznyakoff
+vmod-variable -- history of user-visible changes. 2022-08-21
See the end of file for copying conditions.
Please send vmod-variable bug reports to <gray@gnu.org>
+Version 1.5, 2022-08-21
+
+* Support for Varnish 7.1
+
+
+Version 1.4, 2020-04-09
+
+* Drop support for Varnish versions prior to 6.0.0.
+
+
+Version 1.3, 2018-12-10
+
+* Support for Varnish 6.0.2
+
Version 1.2, 2017-08-10
* Support for Varnish 5.1
@@ -26,7 +39,7 @@ Initial release
=========================================================================
Copyright information:
-Copyright (C) 2015-2017 Sergey Poznyakoff
+Copyright (C) 2015-2018 Sergey Poznyakoff
Permission is granted to anyone to make or distribute verbatim copies
of this document as received, in any medium, provided that the
diff --git a/README b/README
index 05510c6..3cdf65e 100644
--- a/README
+++ b/README
@@ -1,5 +1,4 @@
Vmod-variable README
-Copyright (C) 2015 Sergey Poznyakoff
See the end of file for copying conditions.
* Introduction
@@ -16,7 +15,7 @@ the section "vmod_variable vs. vmod_var".
* Overview
This module provides enhanced variable support for VCL scripts.
-It compiles for Varnish versions 3 and 4.
+It compiles for Varnish versions 6.0.0 - 6.4.0.
There are two kinds of variables: session-specific, which have the
lifespan of one HTTP session (connection) and cease to exist when
@@ -219,7 +218,20 @@ http://www.gnu.org.ua/software/vmod-variable.
* Bug reporting
Send bug reports and suggestions to <gray@gnu.org>
+
+* Copyright information:
+
+Copyright (C) 2013-2018 Sergey Poznyakoff
+
+ Permission is granted to anyone to make or distribute verbatim copies
+ of this document as received, in any medium, provided that the
+ copyright notice and this permission notice are preserved,
+ thus giving the recipient permission to redistribute in turn.
+ Permission is granted to distribute modified versions
+ of this document, or of portions of it,
+ under the above conditions, provided also that they
+ carry prominent notices stating who last changed them.
Local Variables:
mode: outline
diff --git a/acvmod b/acvmod
-Subproject 5f6dce2f7dd35a154333bb42d134a018b981f81
+Subproject 0516e2461e8f2e3b33a7fffa13705cdb1de77c5
diff --git a/configure.ac b/configure.ac
index e80461a..f573452 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,5 +1,5 @@
# This file is part of vmod-variable -*- autoconf -*-
-# Copyright (C) 2015-2017 Sergey Poznyakoff
+# Copyright (C) 2015-2022 Sergey Poznyakoff
#
# Vmod-variable is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
# You should have received a copy of the GNU General Public License
# along with vmod-variable. If not, see <http://www.gnu.org/licenses/>.
AC_PREREQ(2.69)
-AC_INIT([vmod-variable], [1.2], [gray@gnu.org])
+AC_INIT([vmod-variable], [1.5], [gray@gnu.org])
AC_CONFIG_AUX_DIR([build-aux])
AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_SRCDIR(src/variable.vcc)
@@ -50,7 +50,9 @@ AC_CHECK_FUNCS(sysinfo getloadavg)
AC_CHECK_LIB(pcre, pcre_compile,,
AC_MSG_ERROR([required library libpcre not found]))
-AM_VARNISHAPI([4.1],[5.1])
+AM_VARNISHAPI([6.0.0],[7.1.0])
+AC_DEFINE_UNQUOTED([VARNISHAPI_MAJOR],[$VARNISHAPI_MAJOR],
+ [Varnish API major version number])
AC_CONFIG_TESTDIR(tests)
AC_CONFIG_FILES([tests/Makefile tests/atlocal])
diff --git a/src/variable.c b/src/variable.c
index feaaa21..05aa13b 100644
--- a/src/variable.c
+++ b/src/variable.c
@@ -1,5 +1,5 @@
/* This file is part of vmod-variable
- Copyright (C) 2013-2017 Sergey Poznyakoff
+ Copyright (C) 2013-2018 Sergey Poznyakoff
Vmod-variable is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -19,13 +19,21 @@
#include <stdarg.h>
#include <syslog.h>
#include <errno.h>
+#include <string.h>
#include <ctype.h>
#include <pcre.h>
-#include "vrt.h"
-#include "vcc_if.h"
-#include "pthread.h"
-#include "cache/cache.h"
-
+#include <pthread.h>
+#include <limits.h>
+#if VARNISHAPI_MAJOR > 5
+# include "cache/cache.h"
+# include "vcl.h"
+# include "vcc_if.h"
+#else
+# include "vcl.h"
+# include "vrt.h"
+# include "vcc_if.h"
+# include "cache/cache.h"
+#endif
#define WSPTR(s) ((s)->ws)
/* |hash_size| defines a sequence of symbol table sizes. These are prime
@@ -370,18 +378,37 @@ vmod_global_unset(VRT_CTX, VCL_STRING name)
AZ(pthread_mutex_unlock(&global_mtx));
}
+#if (VARNISHAPI_MAJOR == 6 && VARNISHAPI_MINOR >= 6) || VARNISHAPI_MAJOR > 6
+static void
+fini_priv_data(VRT_CTX, void *p)
+{
+ symtab_free(p);
+}
+
+static const struct vmod_priv_methods free_priv_data_methods[1] = {{
+ .magic = VMOD_PRIV_METHODS_MAGIC,
+ .type = "vmod_variable",
+ .fini = fini_priv_data
+}};
+#else
static void
priv_symtab_free(void *p)
{
symtab_free(p);
}
+#endif
+
static struct symtab *
get_symtab(struct vmod_priv *priv)
{
if (!priv->priv) {
priv->priv = symtab_create();
+#if (VARNISHAPI_MAJOR == 6 && VARNISHAPI_MINOR >= 6) || VARNISHAPI_MAJOR > 6
+ priv->methods = free_priv_data_methods;
+#else
priv->free = priv_symtab_free;
+#endif
}
return priv->priv;
}
diff --git a/src/variable.vcc b/src/variable.vcc
index c309218..7cf27ff 100644
--- a/src/variable.vcc
+++ b/src/variable.vcc
@@ -1,5 +1,5 @@
# This file is part of vmod-variable
-# Copyright (C) 2015-2017 Sergey Poznyakoff
+# Copyright (C) 2015-2020 Sergey Poznyakoff
#
# Vmod-variable is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
# You should have received a copy of the GNU General Public License
# along with vmod-variable. If not, see <http://www.gnu.org/licenses/>.
-$Module variable 3 Variable Support for Varnish
+$Module variable 3 "Enhanced Variable Support for Varnish"
COLOPHON
========
diff --git a/src/vmod-variable.3 b/src/vmod-variable.3
index f249ad3..8e7d8df 100644
--- a/src/vmod-variable.3
+++ b/src/vmod-variable.3
@@ -1,5 +1,5 @@
.\" This file is part of Vmod-variable -*- nroff -*-
-.\" Copyright (C) 2015 Sergey Poznyakoff
+.\" Copyright (C) 2015-2022 Sergey Poznyakoff
.\"
.\" Vmod-variable is free software; you can redistribute it and/or modify
.\" it under the terms of the GNU General Public License as published by
@@ -13,7 +13,7 @@
.\"
.\" You should have received a copy of the GNU General Public License
.\" along with vmod-variable. If not, see <http://www.gnu.org/licenses/>.
-.TH VMOD-VARIABLE 1 "February 16, 2015" "VMOD-VARIABLE" "User Reference"
+.TH VMOD-VARIABLE 3 "August 21, 2022" "VMOD-VARIABLE" "User Reference"
.SH NAME
vmod-variable \- variable support for Varnish Cache
.SH SYNOPSIS
@@ -221,7 +221,7 @@ if (req.request == "GET") {
.\" for man-based doc pages.
.if "\V[MANCGI]"WEBDOC" \{\
. ds package vmod-variable
-. ds version 1.0
+. ds version 1.5
. so download.inc
\}
.SH "SEE ALSO"
@@ -232,7 +232,7 @@ Sergey Poznyakoff
.SH "BUG REPORTS"
Report bugs to <gray@gnu.org>.
.SH COPYRIGHT
-Copyright \(co 2015 Sergey Poznyakoff
+Copyright \(co 2015-2022 Sergey Poznyakoff
.br
.na
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

Return to:

Send suggestions and report system problems to the System administrator.