You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by zw...@apache.org on 2013/06/06 06:13:38 UTC
[03/14] git commit: lighttpd module to generate dynamic responses
lighttpd module to generate dynamic responses
Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/218cccb1
Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/218cccb1
Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/218cccb1
Branch: refs/heads/3.3.x
Commit: 218cccb183650a6b0486d804dcc60a3182a29287
Parents: 779ddfa
Author: Bryan Call <bc...@apache.org>
Authored: Tue Jun 4 12:58:18 2013 -0700
Committer: Bryan Call <bc...@apache.org>
Committed: Tue Jun 4 12:58:18 2013 -0700
----------------------------------------------------------------------
tools/lighttpd_mod_generator/README | 11 +
.../lighttpd_mod_generator/ats_lighttpd_benchmark | 4 +
tools/lighttpd_mod_generator/conf/lighttpd.conf | 19 +
tools/lighttpd_mod_generator/conf/lighttpd_1.conf | 15 +
tools/lighttpd_mod_generator/conf/lighttpd_10.conf | 16 +
tools/lighttpd_mod_generator/conf/lighttpd_11.conf | 16 +
tools/lighttpd_mod_generator/conf/lighttpd_12.conf | 16 +
tools/lighttpd_mod_generator/conf/lighttpd_13.conf | 16 +
tools/lighttpd_mod_generator/conf/lighttpd_14.conf | 16 +
tools/lighttpd_mod_generator/conf/lighttpd_15.conf | 16 +
tools/lighttpd_mod_generator/conf/lighttpd_16.conf | 16 +
tools/lighttpd_mod_generator/conf/lighttpd_17.conf | 16 +
tools/lighttpd_mod_generator/conf/lighttpd_18.conf | 16 +
tools/lighttpd_mod_generator/conf/lighttpd_19.conf | 16 +
tools/lighttpd_mod_generator/conf/lighttpd_2.conf | 16 +
tools/lighttpd_mod_generator/conf/lighttpd_20.conf | 16 +
tools/lighttpd_mod_generator/conf/lighttpd_21.conf | 16 +
tools/lighttpd_mod_generator/conf/lighttpd_22.conf | 16 +
tools/lighttpd_mod_generator/conf/lighttpd_23.conf | 16 +
tools/lighttpd_mod_generator/conf/lighttpd_24.conf | 16 +
tools/lighttpd_mod_generator/conf/lighttpd_3.conf | 16 +
tools/lighttpd_mod_generator/conf/lighttpd_4.conf | 16 +
tools/lighttpd_mod_generator/conf/lighttpd_5.conf | 16 +
tools/lighttpd_mod_generator/conf/lighttpd_6.conf | 16 +
tools/lighttpd_mod_generator/conf/lighttpd_7.conf | 16 +
tools/lighttpd_mod_generator/conf/lighttpd_8.conf | 16 +
tools/lighttpd_mod_generator/conf/lighttpd_9.conf | 16 +
tools/lighttpd_mod_generator/mod_generator.c | 337 +++++++++++++++
28 files changed, 754 insertions(+), 0 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/218cccb1/tools/lighttpd_mod_generator/README
----------------------------------------------------------------------
diff --git a/tools/lighttpd_mod_generator/README b/tools/lighttpd_mod_generator/README
new file mode 100644
index 0000000..434c6ea
--- /dev/null
+++ b/tools/lighttpd_mod_generator/README
@@ -0,0 +1,11 @@
+ATS (Apache Traffic Server) version of lighttpd
+lighttpd is use as an origin server for testing.
+
+Version 1.4.30_1 (3/28/12, bcall)
+ - Updated version of lighttpd
+
+Version 1.4.21_1 (5/9/11, bcall)
+ - Updated version of lighttpd
+
+Version 1.4.21 (2/19/09, bcall)
+ - First version of lighttpd for YTS.
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/218cccb1/tools/lighttpd_mod_generator/ats_lighttpd_benchmark
----------------------------------------------------------------------
diff --git a/tools/lighttpd_mod_generator/ats_lighttpd_benchmark b/tools/lighttpd_mod_generator/ats_lighttpd_benchmark
new file mode 100755
index 0000000..6f58250
--- /dev/null
+++ b/tools/lighttpd_mod_generator/ats_lighttpd_benchmark
@@ -0,0 +1,4 @@
+#!/bin/bash
+PREFIX=/usr/local
+
+for i in {1..24}; do echo $i; sudo $PREFIX/bin/lighttpd -f $PREFIX/etc/lighttpd/lighttpd_$i.conf; done
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/218cccb1/tools/lighttpd_mod_generator/conf/lighttpd.conf
----------------------------------------------------------------------
diff --git a/tools/lighttpd_mod_generator/conf/lighttpd.conf b/tools/lighttpd_mod_generator/conf/lighttpd.conf
new file mode 100644
index 0000000..2bc3483
--- /dev/null
+++ b/tools/lighttpd_mod_generator/conf/lighttpd.conf
@@ -0,0 +1,19 @@
+server.document-root = "/usr/local/share/lighttpd"
+server.modules += ( "mod_redirect", "mod_accesslog", "mod_generator")
+
+url.redirect = (
+ "^/bcall" => "http://test.example.com/1k.html"
+)
+
+mimetype.assign = (
+ ".html" => "text/html",
+ ".txt" => "text/plain",
+ ".jpg" => "image/jpeg",
+ ".png" => "image/png"
+)
+index-file.names = ( "index.html" )
+
+accesslog.filename = "/usr/local/var/log/access.log"
+server.errorlog = "/usr/local/var/log/error.log"
+
+server.port = 8080
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/218cccb1/tools/lighttpd_mod_generator/conf/lighttpd_1.conf
----------------------------------------------------------------------
diff --git a/tools/lighttpd_mod_generator/conf/lighttpd_1.conf b/tools/lighttpd_mod_generator/conf/lighttpd_1.conf
new file mode 100644
index 0000000..d72f1ec
--- /dev/null
+++ b/tools/lighttpd_mod_generator/conf/lighttpd_1.conf
@@ -0,0 +1,15 @@
+server.document-root = "/usr/local/share/lighttpd"
+server.modules += ( "mod_redirect", "mod_accesslog", "mod_generator")
+
+url.redirect = (
+ "^/bcall" => "http://test.example.com/1k.html"
+)
+
+mimetype.assign = (
+ ".html" => "text/html",
+ ".txt" => "text/plain",
+ ".jpg" => "image/jpeg",
+ ".png" => "image/png"
+)
+index-file.names = ( "index.html" )
+
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/218cccb1/tools/lighttpd_mod_generator/conf/lighttpd_10.conf
----------------------------------------------------------------------
diff --git a/tools/lighttpd_mod_generator/conf/lighttpd_10.conf b/tools/lighttpd_mod_generator/conf/lighttpd_10.conf
new file mode 100644
index 0000000..94a7982
--- /dev/null
+++ b/tools/lighttpd_mod_generator/conf/lighttpd_10.conf
@@ -0,0 +1,16 @@
+server.document-root = "/usr/local/share/lighttpd"
+server.modules += ( "mod_redirect", "mod_accesslog", "mod_generator")
+
+url.redirect = (
+ "^/bcall" => "http://test.example.com/1k.html"
+)
+
+mimetype.assign = (
+ ".html" => "text/html",
+ ".txt" => "text/plain",
+ ".jpg" => "image/jpeg",
+ ".png" => "image/png"
+)
+index-file.names = ( "index.html" )
+
+server.port = 81010
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/218cccb1/tools/lighttpd_mod_generator/conf/lighttpd_11.conf
----------------------------------------------------------------------
diff --git a/tools/lighttpd_mod_generator/conf/lighttpd_11.conf b/tools/lighttpd_mod_generator/conf/lighttpd_11.conf
new file mode 100644
index 0000000..d28daf8
--- /dev/null
+++ b/tools/lighttpd_mod_generator/conf/lighttpd_11.conf
@@ -0,0 +1,16 @@
+server.document-root = "/usr/local/share/lighttpd"
+server.modules += ( "mod_redirect", "mod_accesslog", "mod_generator")
+
+url.redirect = (
+ "^/bcall" => "http://test.example.com/1k.html"
+)
+
+mimetype.assign = (
+ ".html" => "text/html",
+ ".txt" => "text/plain",
+ ".jpg" => "image/jpeg",
+ ".png" => "image/png"
+)
+index-file.names = ( "index.html" )
+
+server.port = 81011
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/218cccb1/tools/lighttpd_mod_generator/conf/lighttpd_12.conf
----------------------------------------------------------------------
diff --git a/tools/lighttpd_mod_generator/conf/lighttpd_12.conf b/tools/lighttpd_mod_generator/conf/lighttpd_12.conf
new file mode 100644
index 0000000..c0a2e9f
--- /dev/null
+++ b/tools/lighttpd_mod_generator/conf/lighttpd_12.conf
@@ -0,0 +1,16 @@
+server.document-root = "/usr/local/share/lighttpd"
+server.modules += ( "mod_redirect", "mod_accesslog", "mod_generator")
+
+url.redirect = (
+ "^/bcall" => "http://test.example.com/1k.html"
+)
+
+mimetype.assign = (
+ ".html" => "text/html",
+ ".txt" => "text/plain",
+ ".jpg" => "image/jpeg",
+ ".png" => "image/png"
+)
+index-file.names = ( "index.html" )
+
+server.port = 81012
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/218cccb1/tools/lighttpd_mod_generator/conf/lighttpd_13.conf
----------------------------------------------------------------------
diff --git a/tools/lighttpd_mod_generator/conf/lighttpd_13.conf b/tools/lighttpd_mod_generator/conf/lighttpd_13.conf
new file mode 100644
index 0000000..8a168a7
--- /dev/null
+++ b/tools/lighttpd_mod_generator/conf/lighttpd_13.conf
@@ -0,0 +1,16 @@
+server.document-root = "/usr/local/share/lighttpd"
+server.modules += ( "mod_redirect", "mod_accesslog", "mod_generator")
+
+url.redirect = (
+ "^/bcall" => "http://test.example.com/1k.html"
+)
+
+mimetype.assign = (
+ ".html" => "text/html",
+ ".txt" => "text/plain",
+ ".jpg" => "image/jpeg",
+ ".png" => "image/png"
+)
+index-file.names = ( "index.html" )
+
+server.port = 81013
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/218cccb1/tools/lighttpd_mod_generator/conf/lighttpd_14.conf
----------------------------------------------------------------------
diff --git a/tools/lighttpd_mod_generator/conf/lighttpd_14.conf b/tools/lighttpd_mod_generator/conf/lighttpd_14.conf
new file mode 100644
index 0000000..81401d7
--- /dev/null
+++ b/tools/lighttpd_mod_generator/conf/lighttpd_14.conf
@@ -0,0 +1,16 @@
+server.document-root = "/usr/local/share/lighttpd"
+server.modules += ( "mod_redirect", "mod_accesslog", "mod_generator")
+
+url.redirect = (
+ "^/bcall" => "http://test.example.com/1k.html"
+)
+
+mimetype.assign = (
+ ".html" => "text/html",
+ ".txt" => "text/plain",
+ ".jpg" => "image/jpeg",
+ ".png" => "image/png"
+)
+index-file.names = ( "index.html" )
+
+server.port = 81014
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/218cccb1/tools/lighttpd_mod_generator/conf/lighttpd_15.conf
----------------------------------------------------------------------
diff --git a/tools/lighttpd_mod_generator/conf/lighttpd_15.conf b/tools/lighttpd_mod_generator/conf/lighttpd_15.conf
new file mode 100644
index 0000000..6765acc
--- /dev/null
+++ b/tools/lighttpd_mod_generator/conf/lighttpd_15.conf
@@ -0,0 +1,16 @@
+server.document-root = "/usr/local/share/lighttpd"
+server.modules += ( "mod_redirect", "mod_accesslog", "mod_generator")
+
+url.redirect = (
+ "^/bcall" => "http://test.example.com/1k.html"
+)
+
+mimetype.assign = (
+ ".html" => "text/html",
+ ".txt" => "text/plain",
+ ".jpg" => "image/jpeg",
+ ".png" => "image/png"
+)
+index-file.names = ( "index.html" )
+
+server.port = 81015
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/218cccb1/tools/lighttpd_mod_generator/conf/lighttpd_16.conf
----------------------------------------------------------------------
diff --git a/tools/lighttpd_mod_generator/conf/lighttpd_16.conf b/tools/lighttpd_mod_generator/conf/lighttpd_16.conf
new file mode 100644
index 0000000..9d4a3f5
--- /dev/null
+++ b/tools/lighttpd_mod_generator/conf/lighttpd_16.conf
@@ -0,0 +1,16 @@
+server.document-root = "/usr/local/share/lighttpd"
+server.modules += ( "mod_redirect", "mod_accesslog", "mod_generator")
+
+url.redirect = (
+ "^/bcall" => "http://test.example.com/1k.html"
+)
+
+mimetype.assign = (
+ ".html" => "text/html",
+ ".txt" => "text/plain",
+ ".jpg" => "image/jpeg",
+ ".png" => "image/png"
+)
+index-file.names = ( "index.html" )
+
+server.port = 81016
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/218cccb1/tools/lighttpd_mod_generator/conf/lighttpd_17.conf
----------------------------------------------------------------------
diff --git a/tools/lighttpd_mod_generator/conf/lighttpd_17.conf b/tools/lighttpd_mod_generator/conf/lighttpd_17.conf
new file mode 100644
index 0000000..0a93742
--- /dev/null
+++ b/tools/lighttpd_mod_generator/conf/lighttpd_17.conf
@@ -0,0 +1,16 @@
+server.document-root = "/usr/local/share/lighttpd"
+server.modules += ( "mod_redirect", "mod_accesslog", "mod_generator")
+
+url.redirect = (
+ "^/bcall" => "http://test.example.com/1k.html"
+)
+
+mimetype.assign = (
+ ".html" => "text/html",
+ ".txt" => "text/plain",
+ ".jpg" => "image/jpeg",
+ ".png" => "image/png"
+)
+index-file.names = ( "index.html" )
+
+server.port = 81017
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/218cccb1/tools/lighttpd_mod_generator/conf/lighttpd_18.conf
----------------------------------------------------------------------
diff --git a/tools/lighttpd_mod_generator/conf/lighttpd_18.conf b/tools/lighttpd_mod_generator/conf/lighttpd_18.conf
new file mode 100644
index 0000000..795415a
--- /dev/null
+++ b/tools/lighttpd_mod_generator/conf/lighttpd_18.conf
@@ -0,0 +1,16 @@
+server.document-root = "/usr/local/share/lighttpd"
+server.modules += ( "mod_redirect", "mod_accesslog", "mod_generator")
+
+url.redirect = (
+ "^/bcall" => "http://test.example.com/1k.html"
+)
+
+mimetype.assign = (
+ ".html" => "text/html",
+ ".txt" => "text/plain",
+ ".jpg" => "image/jpeg",
+ ".png" => "image/png"
+)
+index-file.names = ( "index.html" )
+
+server.port = 81018
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/218cccb1/tools/lighttpd_mod_generator/conf/lighttpd_19.conf
----------------------------------------------------------------------
diff --git a/tools/lighttpd_mod_generator/conf/lighttpd_19.conf b/tools/lighttpd_mod_generator/conf/lighttpd_19.conf
new file mode 100644
index 0000000..c009998
--- /dev/null
+++ b/tools/lighttpd_mod_generator/conf/lighttpd_19.conf
@@ -0,0 +1,16 @@
+server.document-root = "/usr/local/share/lighttpd"
+server.modules += ( "mod_redirect", "mod_accesslog", "mod_generator")
+
+url.redirect = (
+ "^/bcall" => "http://test.example.com/1k.html"
+)
+
+mimetype.assign = (
+ ".html" => "text/html",
+ ".txt" => "text/plain",
+ ".jpg" => "image/jpeg",
+ ".png" => "image/png"
+)
+index-file.names = ( "index.html" )
+
+server.port = 81019
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/218cccb1/tools/lighttpd_mod_generator/conf/lighttpd_2.conf
----------------------------------------------------------------------
diff --git a/tools/lighttpd_mod_generator/conf/lighttpd_2.conf b/tools/lighttpd_mod_generator/conf/lighttpd_2.conf
new file mode 100644
index 0000000..995255a
--- /dev/null
+++ b/tools/lighttpd_mod_generator/conf/lighttpd_2.conf
@@ -0,0 +1,16 @@
+server.document-root = "/usr/local/share/lighttpd"
+server.modules += ( "mod_redirect", "mod_accesslog", "mod_generator")
+
+url.redirect = (
+ "^/bcall" => "http://test.example.com/1k.html"
+)
+
+mimetype.assign = (
+ ".html" => "text/html",
+ ".txt" => "text/plain",
+ ".jpg" => "image/jpeg",
+ ".png" => "image/png"
+)
+index-file.names = ( "index.html" )
+
+server.port = 8102
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/218cccb1/tools/lighttpd_mod_generator/conf/lighttpd_20.conf
----------------------------------------------------------------------
diff --git a/tools/lighttpd_mod_generator/conf/lighttpd_20.conf b/tools/lighttpd_mod_generator/conf/lighttpd_20.conf
new file mode 100644
index 0000000..a509628
--- /dev/null
+++ b/tools/lighttpd_mod_generator/conf/lighttpd_20.conf
@@ -0,0 +1,16 @@
+server.document-root = "/usr/local/share/lighttpd"
+server.modules += ( "mod_redirect", "mod_accesslog", "mod_generator")
+
+url.redirect = (
+ "^/bcall" => "http://test.example.com/1k.html"
+)
+
+mimetype.assign = (
+ ".html" => "text/html",
+ ".txt" => "text/plain",
+ ".jpg" => "image/jpeg",
+ ".png" => "image/png"
+)
+index-file.names = ( "index.html" )
+
+server.port = 81020
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/218cccb1/tools/lighttpd_mod_generator/conf/lighttpd_21.conf
----------------------------------------------------------------------
diff --git a/tools/lighttpd_mod_generator/conf/lighttpd_21.conf b/tools/lighttpd_mod_generator/conf/lighttpd_21.conf
new file mode 100644
index 0000000..580ee46
--- /dev/null
+++ b/tools/lighttpd_mod_generator/conf/lighttpd_21.conf
@@ -0,0 +1,16 @@
+server.document-root = "/usr/local/share/lighttpd"
+server.modules += ( "mod_redirect", "mod_accesslog", "mod_generator")
+
+url.redirect = (
+ "^/bcall" => "http://test.example.com/1k.html"
+)
+
+mimetype.assign = (
+ ".html" => "text/html",
+ ".txt" => "text/plain",
+ ".jpg" => "image/jpeg",
+ ".png" => "image/png"
+)
+index-file.names = ( "index.html" )
+
+server.port = 81021
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/218cccb1/tools/lighttpd_mod_generator/conf/lighttpd_22.conf
----------------------------------------------------------------------
diff --git a/tools/lighttpd_mod_generator/conf/lighttpd_22.conf b/tools/lighttpd_mod_generator/conf/lighttpd_22.conf
new file mode 100644
index 0000000..4ac554f
--- /dev/null
+++ b/tools/lighttpd_mod_generator/conf/lighttpd_22.conf
@@ -0,0 +1,16 @@
+server.document-root = "/usr/local/share/lighttpd"
+server.modules += ( "mod_redirect", "mod_accesslog", "mod_generator")
+
+url.redirect = (
+ "^/bcall" => "http://test.example.com/1k.html"
+)
+
+mimetype.assign = (
+ ".html" => "text/html",
+ ".txt" => "text/plain",
+ ".jpg" => "image/jpeg",
+ ".png" => "image/png"
+)
+index-file.names = ( "index.html" )
+
+server.port = 81022
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/218cccb1/tools/lighttpd_mod_generator/conf/lighttpd_23.conf
----------------------------------------------------------------------
diff --git a/tools/lighttpd_mod_generator/conf/lighttpd_23.conf b/tools/lighttpd_mod_generator/conf/lighttpd_23.conf
new file mode 100644
index 0000000..8086c72
--- /dev/null
+++ b/tools/lighttpd_mod_generator/conf/lighttpd_23.conf
@@ -0,0 +1,16 @@
+server.document-root = "/usr/local/share/lighttpd"
+server.modules += ( "mod_redirect", "mod_accesslog", "mod_generator")
+
+url.redirect = (
+ "^/bcall" => "http://test.example.com/1k.html"
+)
+
+mimetype.assign = (
+ ".html" => "text/html",
+ ".txt" => "text/plain",
+ ".jpg" => "image/jpeg",
+ ".png" => "image/png"
+)
+index-file.names = ( "index.html" )
+
+server.port = 81023
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/218cccb1/tools/lighttpd_mod_generator/conf/lighttpd_24.conf
----------------------------------------------------------------------
diff --git a/tools/lighttpd_mod_generator/conf/lighttpd_24.conf b/tools/lighttpd_mod_generator/conf/lighttpd_24.conf
new file mode 100644
index 0000000..11d9188
--- /dev/null
+++ b/tools/lighttpd_mod_generator/conf/lighttpd_24.conf
@@ -0,0 +1,16 @@
+server.document-root = "/usr/local/share/lighttpd"
+server.modules += ( "mod_redirect", "mod_accesslog", "mod_generator")
+
+url.redirect = (
+ "^/bcall" => "http://test.example.com/1k.html"
+)
+
+mimetype.assign = (
+ ".html" => "text/html",
+ ".txt" => "text/plain",
+ ".jpg" => "image/jpeg",
+ ".png" => "image/png"
+)
+index-file.names = ( "index.html" )
+
+server.port = 81024
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/218cccb1/tools/lighttpd_mod_generator/conf/lighttpd_3.conf
----------------------------------------------------------------------
diff --git a/tools/lighttpd_mod_generator/conf/lighttpd_3.conf b/tools/lighttpd_mod_generator/conf/lighttpd_3.conf
new file mode 100644
index 0000000..0901ed8
--- /dev/null
+++ b/tools/lighttpd_mod_generator/conf/lighttpd_3.conf
@@ -0,0 +1,16 @@
+server.document-root = "/usr/local/share/lighttpd"
+server.modules += ( "mod_redirect", "mod_accesslog", "mod_generator")
+
+url.redirect = (
+ "^/bcall" => "http://test.example.com/1k.html"
+)
+
+mimetype.assign = (
+ ".html" => "text/html",
+ ".txt" => "text/plain",
+ ".jpg" => "image/jpeg",
+ ".png" => "image/png"
+)
+index-file.names = ( "index.html" )
+
+server.port = 8103
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/218cccb1/tools/lighttpd_mod_generator/conf/lighttpd_4.conf
----------------------------------------------------------------------
diff --git a/tools/lighttpd_mod_generator/conf/lighttpd_4.conf b/tools/lighttpd_mod_generator/conf/lighttpd_4.conf
new file mode 100644
index 0000000..69c58dc
--- /dev/null
+++ b/tools/lighttpd_mod_generator/conf/lighttpd_4.conf
@@ -0,0 +1,16 @@
+server.document-root = "/usr/local/share/lighttpd"
+server.modules += ( "mod_redirect", "mod_accesslog", "mod_generator")
+
+url.redirect = (
+ "^/bcall" => "http://test.example.com/1k.html"
+)
+
+mimetype.assign = (
+ ".html" => "text/html",
+ ".txt" => "text/plain",
+ ".jpg" => "image/jpeg",
+ ".png" => "image/png"
+)
+index-file.names = ( "index.html" )
+
+server.port = 8104
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/218cccb1/tools/lighttpd_mod_generator/conf/lighttpd_5.conf
----------------------------------------------------------------------
diff --git a/tools/lighttpd_mod_generator/conf/lighttpd_5.conf b/tools/lighttpd_mod_generator/conf/lighttpd_5.conf
new file mode 100644
index 0000000..6b85bf4
--- /dev/null
+++ b/tools/lighttpd_mod_generator/conf/lighttpd_5.conf
@@ -0,0 +1,16 @@
+server.document-root = "/usr/local/share/lighttpd"
+server.modules += ( "mod_redirect", "mod_accesslog", "mod_generator")
+
+url.redirect = (
+ "^/bcall" => "http://test.example.com/1k.html"
+)
+
+mimetype.assign = (
+ ".html" => "text/html",
+ ".txt" => "text/plain",
+ ".jpg" => "image/jpeg",
+ ".png" => "image/png"
+)
+index-file.names = ( "index.html" )
+
+server.port = 8105
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/218cccb1/tools/lighttpd_mod_generator/conf/lighttpd_6.conf
----------------------------------------------------------------------
diff --git a/tools/lighttpd_mod_generator/conf/lighttpd_6.conf b/tools/lighttpd_mod_generator/conf/lighttpd_6.conf
new file mode 100644
index 0000000..f8beb38
--- /dev/null
+++ b/tools/lighttpd_mod_generator/conf/lighttpd_6.conf
@@ -0,0 +1,16 @@
+server.document-root = "/usr/local/share/lighttpd"
+server.modules += ( "mod_redirect", "mod_accesslog", "mod_generator")
+
+url.redirect = (
+ "^/bcall" => "http://test.example.com/1k.html"
+)
+
+mimetype.assign = (
+ ".html" => "text/html",
+ ".txt" => "text/plain",
+ ".jpg" => "image/jpeg",
+ ".png" => "image/png"
+)
+index-file.names = ( "index.html" )
+
+server.port = 8106
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/218cccb1/tools/lighttpd_mod_generator/conf/lighttpd_7.conf
----------------------------------------------------------------------
diff --git a/tools/lighttpd_mod_generator/conf/lighttpd_7.conf b/tools/lighttpd_mod_generator/conf/lighttpd_7.conf
new file mode 100644
index 0000000..5b00234
--- /dev/null
+++ b/tools/lighttpd_mod_generator/conf/lighttpd_7.conf
@@ -0,0 +1,16 @@
+server.document-root = "/usr/local/share/lighttpd"
+server.modules += ( "mod_redirect", "mod_accesslog", "mod_generator")
+
+url.redirect = (
+ "^/bcall" => "http://test.example.com/1k.html"
+)
+
+mimetype.assign = (
+ ".html" => "text/html",
+ ".txt" => "text/plain",
+ ".jpg" => "image/jpeg",
+ ".png" => "image/png"
+)
+index-file.names = ( "index.html" )
+
+server.port = 8107
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/218cccb1/tools/lighttpd_mod_generator/conf/lighttpd_8.conf
----------------------------------------------------------------------
diff --git a/tools/lighttpd_mod_generator/conf/lighttpd_8.conf b/tools/lighttpd_mod_generator/conf/lighttpd_8.conf
new file mode 100644
index 0000000..7631223
--- /dev/null
+++ b/tools/lighttpd_mod_generator/conf/lighttpd_8.conf
@@ -0,0 +1,16 @@
+server.document-root = "/usr/local/share/lighttpd"
+server.modules += ( "mod_redirect", "mod_accesslog", "mod_generator")
+
+url.redirect = (
+ "^/bcall" => "http://test.example.com/1k.html"
+)
+
+mimetype.assign = (
+ ".html" => "text/html",
+ ".txt" => "text/plain",
+ ".jpg" => "image/jpeg",
+ ".png" => "image/png"
+)
+index-file.names = ( "index.html" )
+
+server.port = 8108
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/218cccb1/tools/lighttpd_mod_generator/conf/lighttpd_9.conf
----------------------------------------------------------------------
diff --git a/tools/lighttpd_mod_generator/conf/lighttpd_9.conf b/tools/lighttpd_mod_generator/conf/lighttpd_9.conf
new file mode 100644
index 0000000..373117d
--- /dev/null
+++ b/tools/lighttpd_mod_generator/conf/lighttpd_9.conf
@@ -0,0 +1,16 @@
+server.document-root = "/usr/local/share/lighttpd"
+server.modules += ( "mod_redirect", "mod_accesslog", "mod_generator")
+
+url.redirect = (
+ "^/bcall" => "http://test.example.com/1k.html"
+)
+
+mimetype.assign = (
+ ".html" => "text/html",
+ ".txt" => "text/plain",
+ ".jpg" => "image/jpeg",
+ ".png" => "image/png"
+)
+index-file.names = ( "index.html" )
+
+server.port = 8109
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/218cccb1/tools/lighttpd_mod_generator/mod_generator.c
----------------------------------------------------------------------
diff --git a/tools/lighttpd_mod_generator/mod_generator.c b/tools/lighttpd_mod_generator/mod_generator.c
new file mode 100644
index 0000000..e8e3410
--- /dev/null
+++ b/tools/lighttpd_mod_generator/mod_generator.c
@@ -0,0 +1,337 @@
+/** @file
+
+ Main file for the tstop application.
+
+ @section license License
+
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+#include <ctype.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "base.h"
+#include "log.h"
+#include "buffer.h"
+
+#include "plugin.h"
+
+#include "response.h"
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <stdio.h>
+
+/**
+ * this is a generator for a lighttpd plugin
+ *
+ * just replaces every occurance of 'generator' by your plugin name
+ *
+ * e.g. in vim:
+ *
+ * :%s/generator/myhandler/
+ *
+ */
+
+static char static_data[8192];
+
+/* plugin config for all request/connections */
+
+typedef struct {
+ array *match;
+} plugin_config;
+
+typedef struct {
+ PLUGIN_DATA;
+
+ buffer *match_buf;
+
+ plugin_config **config_storage;
+
+ plugin_config conf;
+
+} plugin_data;
+
+typedef struct {
+ size_t foo;
+} handler_ctx;
+
+// static handler_ctx * handler_ctx_init() {
+// handler_ctx * hctx;
+
+// hctx = calloc(1, sizeof(*hctx));
+
+// return hctx;
+// }
+
+// static void handler_ctx_free(handler_ctx *hctx) {
+
+// free(hctx);
+// }
+
+/* init the plugin data */
+INIT_FUNC(mod_generator_init) {
+ plugin_data *p;
+
+ p = calloc(1, sizeof(*p));
+
+ p->match_buf = buffer_init();
+
+ return p;
+}
+
+/* detroy the plugin data */
+FREE_FUNC(mod_generator_free) {
+ plugin_data *p = p_d;
+
+ UNUSED(srv);
+
+ if (!p) return HANDLER_GO_ON;
+
+ if (p->config_storage) {
+ size_t i;
+
+ for (i = 0; i < srv->config_context->used; i++) {
+ plugin_config *s = p->config_storage[i];
+
+ if (!s) continue;
+
+ array_free(s->match);
+
+ free(s);
+ }
+ free(p->config_storage);
+ }
+
+ buffer_free(p->match_buf);
+
+ free(p);
+
+ return HANDLER_GO_ON;
+}
+
+/* handle plugin config and check values */
+
+SETDEFAULTS_FUNC(mod_generator_set_defaults) {
+ plugin_data *p = p_d;
+ size_t i = 0;
+
+ config_values_t cv[] = {
+ { "generator.array", NULL, T_CONFIG_ARRAY, T_CONFIG_SCOPE_CONNECTION }, /* 0 */
+ { NULL, NULL, T_CONFIG_UNSET, T_CONFIG_SCOPE_UNSET }
+ };
+
+ if (!p) return HANDLER_ERROR;
+
+ p->config_storage = calloc(1, srv->config_context->used * sizeof(specific_config *));
+
+ for (i = 0; i < srv->config_context->used; i++) {
+ plugin_config *s;
+
+ s = calloc(1, sizeof(plugin_config));
+ s->match = array_init();
+
+ cv[0].destination = s->match;
+
+ p->config_storage[i] = s;
+
+ if (0 != config_insert_values_global(srv, ((data_config *)srv->config_context->data[i])->value, cv)) {
+ return HANDLER_ERROR;
+ }
+ }
+
+ return HANDLER_GO_ON;
+}
+
+#define PATCH(x) \
+ p->conf.x = s->x;
+static int mod_generator_patch_connection(server *srv, connection *con, plugin_data *p) {
+ size_t i, j;
+ plugin_config *s = p->config_storage[0];
+
+ PATCH(match);
+
+ /* skip the first, the global context */
+ for (i = 1; i < srv->config_context->used; i++) {
+ data_config *dc = (data_config *)srv->config_context->data[i];
+ s = p->config_storage[i];
+
+ /* condition didn't match */
+ if (!config_check_cond(srv, con, dc)) continue;
+
+ /* merge config */
+ for (j = 0; j < dc->value->used; j++) {
+ data_unset *du = dc->value->data[j];
+
+ if (buffer_is_equal_string(du->key, CONST_STR_LEN("generator.array"))) {
+ PATCH(match);
+ }
+ }
+ }
+
+ return 0;
+}
+#undef PATCH
+
+URIHANDLER_FUNC(mod_generator_uri_handler) {
+ plugin_data *p = p_d;
+ int s_len;
+ size_t k;
+
+ UNUSED(srv);
+
+ if (con->mode != DIRECT) return HANDLER_GO_ON;
+
+ if (con->uri.path->used == 0) return HANDLER_GO_ON;
+
+ mod_generator_patch_connection(srv, con, p);
+
+ s_len = con->uri.path->used - 1;
+
+ for (k = 0; k < p->conf.match->used; k++) {
+ data_string *ds = (data_string *)p->conf.match->data[k];
+ int ct_len = ds->value->used - 1;
+
+ if (ct_len > s_len) continue;
+ if (ds->value->used == 0) continue;
+
+ if (0 == strncmp(con->uri.path->ptr + s_len - ct_len, ds->value->ptr, ct_len)) {
+ con->http_status = 403;
+
+ return HANDLER_FINISHED;
+ }
+ }
+
+ /* not found */
+ return HANDLER_GO_ON;
+}
+
+
+URIHANDLER_FUNC(mod_generator_subrequest_handler) {
+ (void) p_d;
+ //plugin_data *p = p_d;
+ buffer *b;
+ b = chunkqueue_get_append_buffer(con->write_queue);
+
+
+ // get the url information
+ //int length = strlen(con->uri.path->ptr);
+ char *start = con->uri.path->ptr;
+ char *end;
+ // char *end = start + length;
+ if (*start != '/') {
+ log_error_write(srv, __FILE__, __LINE__, "s", "url doesn't start with a slash");
+ return HANDLER_GO_ON;
+ }
+ ++start;
+
+ // get the size in bytes form the url
+ int64_t bytes = strtoll(start, &end, 10);
+
+ if (start == end && bytes <= 0 && *start != '-') {
+ log_error_write(srv, __FILE__, __LINE__, "s", "can't find size in bytes");
+ return HANDLER_GO_ON;
+ }
+ start = end + 1;
+
+ // get the id from the url
+ int64_t id = strtoll(start, &end, 10);
+
+ if (start == end && id < 0 && *start != '-') {
+ log_error_write(srv, __FILE__, __LINE__, "s", "problems finding the id");
+ return HANDLER_GO_ON;
+ }
+ start = end + 1;
+
+ // get the id from the url
+ int64_t sleepval = strtoll(start, &end, 10);
+
+ if (start == end && id < 0 && *start != '-') {
+ log_error_write(srv, __FILE__, __LINE__, "s", "problems finding the id");
+ return HANDLER_GO_ON;
+ }
+ start = end + 1;
+ if (sleepval > 0) {
+ usleep(1000 * sleepval);
+ }
+
+ // check to see if we are going to set cacheable headers
+ int cache = -1;
+ if (strcmp(start, "cache") == 0) {
+ cache = 1;
+ } else if (strcmp(start, "no_cache") == 0) {
+ cache = 0;
+ } else {
+ log_error_write(srv, __FILE__, __LINE__, "s", "didn't see cache or no_cache in the url");
+ return HANDLER_GO_ON;
+ }
+
+ // print the body of the message
+ uint64_t to_write = 0;
+ --bytes; // leave a char left over for \n
+ while (bytes > 0) {
+ if ((uint64_t)bytes > sizeof(static_data)) {
+ // biger then the static buffer, so write the entire buffer
+ to_write = sizeof(static_data);
+ } else {
+ to_write = bytes;
+ }
+
+ buffer_append_string_len(b, static_data, to_write);
+ bytes -= to_write;
+ }
+
+ if (bytes == 0) {
+ buffer_append_string_len(b, "\n", 1); // add a \n to the end of the body
+ }
+
+ // write the headers if it is cacheable or not
+ if (cache == 0) {
+ response_header_insert(srv, con, CONST_STR_LEN("Cache-Control"), CONST_STR_LEN("private"));
+ } else {
+ response_header_insert(srv, con, CONST_STR_LEN("Last-Modified"), CONST_STR_LEN("Thu, 12 Feb 2009 23:00:00 GMT"));
+ response_header_insert(srv, con, CONST_STR_LEN("Cache-Control"), CONST_STR_LEN("max-age=86400, public"));
+ }
+
+ con->http_status = 200;
+ con->file_finished = 1;
+ return HANDLER_FINISHED;
+}
+
+/* this function is called at dlopen() time and inits the callbacks */
+
+int mod_generator_plugin_init(plugin *p) {
+
+ p->version = LIGHTTPD_VERSION_ID;
+ p->name = buffer_init_string("generator");
+
+ p->init = mod_generator_init;
+ p->handle_uri_clean = mod_generator_uri_handler;
+ p->handle_physical = mod_generator_subrequest_handler;
+ p->set_defaults = mod_generator_set_defaults;
+ p->cleanup = mod_generator_free;
+
+ p->data = NULL;
+
+ // set the static data used in the response;
+ memset(static_data, 'x', sizeof(static_data));
+
+ return 0;
+}