aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2014-11-13 11:50:00 +0200
committerSergey Poznyakoff <gray@gnu.org.ua>2014-11-13 11:50:00 +0200
commit67731a160cc7c3e090236316af459f695593fc55 (patch)
tree2388e9b8c7820b5d36bf945989f58d7254241ae6
parent5bf995011f95b10ae03281119249f8ccb95e8496 (diff)
downloadvmod-tbf-release-2.0.tar.gz
vmod-tbf-release-2.0.tar.bz2
Version 2.0release-2.0
-rw-r--r--NEWS4
-rw-r--r--configure.ac2
-rw-r--r--src/vmod-tbf.315
3 files changed, 15 insertions, 6 deletions
diff --git a/NEWS b/NEWS
index f5bcc13..b87dafa 100644
--- a/NEWS
+++ b/NEWS
@@ -1,14 +1,14 @@
-vmod-tbf -- history of user-visible changes. 2014-10-31
+vmod-tbf -- history of user-visible changes. 2014-11-13
Copyright (C) 2013-2014 Sergey Poznyakoff
See the end of file for copying conditions.
Please send vmod-tbf bug reports to <gray@gnu.org>
-Version 1.0.90 (git)
+Version 2.0, 2014-11-13
Support for VCL 4.0
Version 1.0, 2013-10-19
diff --git a/configure.ac b/configure.ac
index 12790b6..f8e19de 100644
--- a/configure.ac
+++ b/configure.ac
@@ -11,13 +11,13 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with vmod-tbf. If not, see <http://www.gnu.org/licenses/>.
AC_PREREQ(2.69)
-AC_INIT([vmod-tbf], 1.0.90, [gray@gnu.org])
+AC_INIT([vmod-tbf], 2.0, [gray@gnu.org])
AC_CONFIG_AUX_DIR([build-aux])
AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_SRCDIR(src/vmod_tbf.vcc)
AM_CONFIG_HEADER(config.h)
AC_CANONICAL_SYSTEM
diff --git a/src/vmod-tbf.3 b/src/vmod-tbf.3
index 6ab2f63..03d7daf 100644
--- a/src/vmod-tbf.3
+++ b/src/vmod-tbf.3
@@ -10,13 +10,13 @@
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
.\" GNU General Public License for more details.
.\"
.\" You should have received a copy of the GNU General Public License
.\" along with vmod-tbf. If not, see <http://www.gnu.org/licenses/>.
-.TH VMOD-TBF 1 "November 1, 2014" "VMOD-TBF" "User Reference"
+.TH VMOD-TBF 1 "November 13, 2014" "VMOD-TBF" "User Reference"
.SH NAME
vmod-tbf \- token bucket filtering for Varnish
.SH SYNOPSIS
.B import tbf;
.BI "VOID tbf.open(STRING " dbdir ", STRING " params ");"
@@ -75,21 +75,30 @@ the above description. The \fBkey\fR argument identifies the bucket.
The function returns \fBTRUE\fR if the data are accepted and
\fBFALSE\fR otherwise. The sample usage is:
.PP
.EX
sub vcl_recv {
if (!tbf.rate("ip:" + client.ip, 1, 0.1s, 20)) {
- error 429 "Request rate exceeded."
+ error(429, "Request rate exceeded");
}
}
.EE
.PP
This example will keep the incoming requests at the rate of 10 requests
per second, allowing for bursts of up to 20 requests after each 2
second (or longer) period of inactivity.
.PP
+For VCL 4.0, replace
+.EX
+ error(429, "Request rate exceeded");
+.EE
+with
+.EX
+ return(synth(429, "Request rate exceeded"));
+.EE
+.PP
The \fBtbf.check\fR function provides a higher-level interface. Its
first argument identifies the bucket. The \fIrate\fR argument is a
textual rate specification in the form:
.PP
.BI "" N req/ K "" U
.PP
@@ -101,13 +110,13 @@ rate specification can be separated by any amount of whitespace.
For example, the following statement will limit the request rate to
ten and a half requests per second:
.PP
.EX
sub vcl_recv {
if (!tbf.check(client.ip, "10.5 req/1s")) {
- error 429 "Request rate exceeded."
+ error(429, "Request rate exceeded");
}
}
.EE
.SS Storage
.PP
Buckets are kept in a Berkeley database file. The \fBtbf.open\fR function

Return to:

Send suggestions and report system problems to the System administrator.