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; +}
