Updated Branches:
  refs/heads/master 779ddfaf3 -> 218cccb18

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/master
Commit: 218cccb183650a6b0486d804dcc60a3182a29287
Parents: 779ddfa
Author: Bryan Call <[email protected]>
Authored: Tue Jun 4 12:58:18 2013 -0700
Committer: Bryan Call <[email protected]>
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;
+}

Reply via email to