mongrel 0.3.12.4 → 0.3.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Rakefile +44 -33
- data/bin/mongrel_rails +67 -34
- data/doc/rdoc/classes/IO.html +10 -10
- data/doc/rdoc/classes/IO.src/{M000005.html → M000001.html} +5 -5
- data/doc/rdoc/classes/IO.src/{M000006.html → M000002.html} +5 -5
- data/doc/rdoc/classes/Kernel.html +10 -10
- data/doc/rdoc/classes/Kernel.src/{M000025.html → M000020.html} +5 -5
- data/doc/rdoc/classes/Kernel.src/M000021.html +23 -0
- data/doc/rdoc/classes/Mongrel.html +25 -4
- data/doc/rdoc/classes/Mongrel/CGIWrapper.html +383 -0
- data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000096.html +11 -5
- data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000097.html +34 -5
- data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000098.html +21 -6
- data/doc/rdoc/classes/Mongrel/CGIWrapper.src/{M000093.html → M000099.html} +13 -13
- data/doc/rdoc/classes/Mongrel/CGIWrapper.src/{M000094.html → M000100.html} +11 -11
- data/doc/rdoc/classes/Mongrel/CGIWrapper.src/{M000095.html → M000101.html} +4 -4
- data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000102.html +18 -0
- data/doc/rdoc/classes/Mongrel/{URIClassifier.src/M000084.html → CGIWrapper.src/M000103.html} +5 -5
- data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000104.html +19 -0
- data/doc/rdoc/classes/Mongrel/Camping.html +5 -5
- data/doc/rdoc/classes/Mongrel/Camping.src/M000046.html +22 -0
- data/doc/rdoc/classes/Mongrel/Camping/CampingHandler.html +10 -10
- data/doc/rdoc/classes/Mongrel/Camping/CampingHandler.src/{M000049.html → M000047.html} +4 -4
- data/doc/rdoc/classes/Mongrel/Camping/CampingHandler.src/M000048.html +51 -0
- data/doc/rdoc/classes/Mongrel/Command.html +13 -0
- data/doc/rdoc/classes/Mongrel/Command/Base.html +95 -50
- data/doc/rdoc/classes/Mongrel/Command/Base.src/M000024.html +24 -0
- data/doc/rdoc/classes/Mongrel/Command/Base.src/M000025.html +42 -0
- data/doc/rdoc/classes/Mongrel/Command/Base.src/M000026.html +18 -0
- data/doc/rdoc/classes/Mongrel/Command/Base.src/M000027.html +18 -0
- data/doc/rdoc/classes/Mongrel/Command/Base.src/M000028.html +18 -0
- data/doc/rdoc/classes/Mongrel/Command/Base.src/M000029.html +5 -11
- data/doc/rdoc/classes/Mongrel/Command/Base.src/M000030.html +9 -28
- data/doc/rdoc/classes/Mongrel/Command/Base.src/M000031.html +5 -5
- data/doc/rdoc/classes/Mongrel/Command/Base.src/M000032.html +5 -5
- data/doc/rdoc/classes/Mongrel/Command/Base.src/M000033.html +5 -5
- data/doc/rdoc/classes/Mongrel/Command/Base.src/M000034.html +11 -9
- data/doc/rdoc/classes/Mongrel/Command/Base.src/M000035.html +11 -5
- data/doc/rdoc/classes/Mongrel/Command/Base.src/M000036.html +5 -5
- data/doc/rdoc/classes/Mongrel/Command/Registry.html +15 -15
- data/doc/rdoc/classes/Mongrel/Command/Registry.src/M000037.html +20 -0
- data/doc/rdoc/classes/Mongrel/Command/Registry.src/{M000040.html → M000038.html} +11 -11
- data/doc/rdoc/classes/Mongrel/Command/Registry.src/M000039.html +37 -7
- data/doc/rdoc/classes/Mongrel/Configurator.html +651 -0
- data/doc/rdoc/classes/Mongrel/Configurator.src/M000105.html +16 -20
- data/doc/rdoc/classes/Mongrel/Configurator.src/M000106.html +18 -5
- data/doc/rdoc/classes/Mongrel/Configurator.src/M000107.html +7 -11
- data/doc/rdoc/classes/Mongrel/Configurator.src/M000108.html +7 -6
- data/doc/rdoc/classes/Mongrel/Configurator.src/M000109.html +10 -9
- data/doc/rdoc/classes/Mongrel/Configurator.src/M000110.html +5 -8
- data/doc/rdoc/classes/Mongrel/Configurator.src/M000111.html +21 -5
- data/doc/rdoc/classes/Mongrel/Configurator.src/M000112.html +6 -15
- data/doc/rdoc/classes/Mongrel/Configurator.src/M000113.html +17 -5
- data/doc/rdoc/classes/Mongrel/Configurator.src/M000114.html +20 -33
- data/doc/rdoc/classes/Mongrel/Configurator.src/M000115.html +5 -5
- data/doc/rdoc/classes/Mongrel/Configurator.src/M000116.html +24 -0
- data/doc/rdoc/classes/Mongrel/Configurator.src/M000117.html +19 -0
- data/doc/rdoc/classes/Mongrel/Configurator.src/M000118.html +22 -0
- data/doc/rdoc/classes/Mongrel/Configurator.src/M000119.html +25 -0
- data/doc/rdoc/classes/Mongrel/Configurator.src/M000120.html +18 -0
- data/doc/rdoc/classes/Mongrel/Configurator.src/M000121.html +35 -0
- data/doc/rdoc/classes/Mongrel/Configurator.src/M000122.html +18 -0
- data/doc/rdoc/classes/Mongrel/Configurator.src/M000123.html +33 -0
- data/doc/rdoc/classes/Mongrel/Configurator.src/M000124.html +18 -0
- data/doc/rdoc/classes/Mongrel/Const.html +39 -7
- data/doc/rdoc/classes/Mongrel/DeflateFilter.html +181 -0
- data/doc/rdoc/classes/Mongrel/DeflateFilter.src/M000094.html +19 -0
- data/doc/rdoc/classes/Mongrel/DeflateFilter.src/M000095.html +28 -0
- data/doc/rdoc/classes/Mongrel/DirHandler.html +48 -33
- data/doc/rdoc/classes/Mongrel/DirHandler.src/M000056.html +21 -0
- data/doc/rdoc/classes/Mongrel/DirHandler.src/M000057.html +43 -0
- data/doc/rdoc/classes/Mongrel/DirHandler.src/M000058.html +29 -7
- data/doc/rdoc/classes/Mongrel/DirHandler.src/M000059.html +50 -29
- data/doc/rdoc/classes/Mongrel/DirHandler.src/M000060.html +26 -27
- data/doc/rdoc/classes/Mongrel/DirHandler.src/M000061.html +5 -38
- data/doc/rdoc/classes/Mongrel/Error404Handler.html +171 -0
- data/doc/rdoc/classes/Mongrel/Error404Handler.src/{M000116.html → M000125.html} +4 -4
- data/doc/rdoc/classes/Mongrel/Error404Handler.src/{M000117.html → M000126.html} +4 -4
- data/doc/rdoc/classes/Mongrel/HeaderOut.html +185 -0
- data/doc/rdoc/classes/Mongrel/HeaderOut.src/{M000072.html → M000069.html} +4 -4
- data/doc/rdoc/classes/Mongrel/HeaderOut.src/{M000073.html → M000070.html} +4 -4
- data/doc/rdoc/classes/Mongrel/HttpHandler.html +170 -0
- data/doc/rdoc/classes/Mongrel/HttpHandler.src/{M000074.html → M000075.html} +3 -3
- data/doc/rdoc/classes/Mongrel/HttpHandlerPlugin.html +20 -10
- data/doc/rdoc/classes/Mongrel/HttpHandlerPlugin.src/{M000027.html → M000022.html} +5 -4
- data/doc/rdoc/classes/Mongrel/HttpHandlerPlugin.src/{M000028.html → M000023.html} +3 -3
- data/doc/rdoc/classes/Mongrel/HttpParser.html +41 -36
- data/doc/rdoc/classes/Mongrel/HttpParser.src/{M000056.html → M000049.html} +6 -5
- data/doc/rdoc/classes/Mongrel/HttpParser.src/{M000057.html → M000050.html} +7 -6
- data/doc/rdoc/classes/Mongrel/HttpParser.src/M000051.html +7 -6
- data/doc/rdoc/classes/Mongrel/HttpParser.src/M000052.html +37 -7
- data/doc/rdoc/classes/Mongrel/HttpParser.src/M000053.html +5 -7
- data/doc/rdoc/classes/Mongrel/HttpParser.src/M000054.html +6 -22
- data/doc/rdoc/classes/Mongrel/HttpParser.src/M000055.html +6 -5
- data/doc/rdoc/classes/Mongrel/HttpRequest.html +239 -0
- data/doc/rdoc/classes/Mongrel/HttpRequest.src/M000130.html +52 -0
- data/doc/rdoc/classes/Mongrel/HttpRequest.src/{M000119.html → M000131.html} +6 -6
- data/doc/rdoc/classes/Mongrel/HttpRequest.src/{M000120.html → M000132.html} +6 -6
- data/doc/rdoc/classes/Mongrel/HttpRequest.src/{M000121.html → M000133.html} +18 -18
- data/doc/rdoc/classes/Mongrel/HttpResponse.html +439 -0
- data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000076.html +12 -7
- data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000077.html +7 -12
- data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000078.html +12 -9
- data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000079.html +9 -9
- data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000080.html +9 -10
- data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000081.html +9 -5
- data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000082.html +18 -7
- data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000083.html +8 -5
- data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000084.html +20 -0
- data/doc/rdoc/classes/Mongrel/{HttpServer.src/M000069.html → HttpResponse.src/M000085.html} +7 -5
- data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000086.html +20 -0
- data/doc/rdoc/classes/Mongrel/{Configurator.src/M000101.html → HttpResponse.src/M000087.html} +5 -5
- data/doc/rdoc/classes/Mongrel/HttpServer.html +68 -59
- data/doc/rdoc/classes/Mongrel/HttpServer.src/M000062.html +25 -0
- data/doc/rdoc/classes/Mongrel/HttpServer.src/M000063.html +83 -0
- data/doc/rdoc/classes/Mongrel/HttpServer.src/M000064.html +13 -11
- data/doc/rdoc/classes/Mongrel/HttpServer.src/M000065.html +50 -53
- data/doc/rdoc/classes/Mongrel/HttpServer.src/M000066.html +21 -11
- data/doc/rdoc/classes/Mongrel/HttpServer.src/M000067.html +5 -47
- data/doc/rdoc/classes/Mongrel/HttpServer.src/M000068.html +9 -15
- data/doc/rdoc/classes/Mongrel/Rails/RailsConfigurator.html +16 -16
- data/doc/rdoc/classes/Mongrel/Rails/RailsConfigurator.src/M000040.html +39 -0
- data/doc/rdoc/classes/Mongrel/Rails/RailsConfigurator.src/{M000043.html → M000041.html} +11 -11
- data/doc/rdoc/classes/Mongrel/Rails/RailsConfigurator.src/M000042.html +13 -22
- data/doc/rdoc/classes/Mongrel/Rails/RailsHandler.html +17 -17
- data/doc/rdoc/classes/Mongrel/Rails/RailsHandler.src/M000043.html +22 -0
- data/doc/rdoc/classes/Mongrel/Rails/RailsHandler.src/M000044.html +51 -0
- data/doc/rdoc/classes/Mongrel/Rails/RailsHandler.src/M000045.html +10 -9
- data/doc/rdoc/classes/Mongrel/StatisticsFilter.html +211 -0
- data/doc/rdoc/classes/Mongrel/StatisticsFilter.src/M000127.html +24 -0
- data/doc/rdoc/classes/Mongrel/StatisticsFilter.src/M000128.html +24 -0
- data/doc/rdoc/classes/Mongrel/StatisticsFilter.src/M000129.html +18 -0
- data/doc/rdoc/classes/{Class.html → Mongrel/StatusHandler.html} +42 -45
- data/doc/rdoc/classes/Mongrel/StatusHandler.src/M000071.html +18 -0
- data/doc/rdoc/classes/Mongrel/StatusHandler.src/M000072.html +24 -0
- data/doc/rdoc/classes/Mongrel/StatusHandler.src/M000073.html +42 -0
- data/doc/rdoc/classes/Mongrel/StatusHandler.src/M000074.html +20 -0
- data/doc/rdoc/classes/Mongrel/StopServer.html +117 -0
- data/doc/rdoc/classes/Mongrel/URIClassifier.html +314 -0
- data/doc/rdoc/classes/Mongrel/URIClassifier.src/M000088.html +5 -23
- data/doc/rdoc/classes/Mongrel/URIClassifier.src/M000089.html +5 -70
- data/doc/rdoc/classes/Mongrel/URIClassifier.src/{M000086.html → M000090.html} +0 -0
- data/doc/rdoc/classes/Mongrel/URIClassifier.src/{M000087.html → M000091.html} +0 -0
- data/doc/rdoc/classes/Mongrel/URIClassifier.src/M000092.html +36 -0
- data/doc/rdoc/classes/Mongrel/URIClassifier.src/M000093.html +83 -0
- data/doc/rdoc/classes/MongrelDbg.html +25 -25
- data/doc/rdoc/classes/MongrelDbg.src/{M000020.html → M000015.html} +5 -5
- data/doc/rdoc/classes/MongrelDbg.src/{M000021.html → M000016.html} +6 -6
- data/doc/rdoc/classes/MongrelDbg.src/{M000022.html → M000017.html} +8 -8
- data/doc/rdoc/classes/MongrelDbg.src/{M000023.html → M000018.html} +7 -7
- data/doc/rdoc/classes/MongrelDbg.src/{M000024.html → M000019.html} +4 -4
- data/doc/rdoc/classes/ObjectTracker.html +10 -40
- data/doc/rdoc/classes/ObjectTracker.src/M000013.html +27 -0
- data/doc/rdoc/classes/ObjectTracker.src/M000014.html +44 -0
- data/doc/rdoc/classes/RequestLog.html +115 -0
- data/doc/rdoc/classes/RequestLog/Access.html +151 -0
- data/doc/rdoc/classes/RequestLog/Access.src/{M000122.html → M000134.html} +5 -5
- data/doc/rdoc/classes/RequestLog/Files.html +144 -0
- data/doc/rdoc/classes/RequestLog/Files.src/{M000123.html → M000135.html} +5 -5
- data/doc/rdoc/classes/RequestLog/Objects.html +144 -0
- data/doc/rdoc/classes/RequestLog/Objects.src/{M000124.html → M000137.html} +5 -5
- data/doc/rdoc/classes/RequestLog/Params.html +144 -0
- data/doc/rdoc/classes/RequestLog/Params.src/{M000125.html → M000138.html} +5 -5
- data/doc/rdoc/classes/RequestLog/Threads.html +144 -0
- data/doc/rdoc/classes/RequestLog/Threads.src/M000136.html +34 -0
- data/doc/rdoc/classes/Stats.html +54 -36
- data/doc/rdoc/classes/Stats.src/{M000013.html → M000005.html} +6 -5
- data/doc/rdoc/classes/Stats.src/M000006.html +23 -0
- data/doc/rdoc/classes/Stats.src/M000007.html +26 -0
- data/doc/rdoc/classes/Stats.src/M000008.html +18 -0
- data/doc/rdoc/classes/Stats.src/M000009.html +5 -6
- data/doc/rdoc/classes/Stats.src/M000010.html +5 -10
- data/doc/rdoc/classes/Stats.src/M000011.html +10 -13
- data/doc/rdoc/classes/Stats.src/M000012.html +7 -5
- data/doc/rdoc/classes/TCPServer.html +9 -9
- data/doc/rdoc/classes/TCPServer.src/M000003.html +19 -0
- data/doc/rdoc/created.rid +1 -1
- data/doc/rdoc/files/COPYING.html +1 -1
- data/doc/rdoc/files/LICENSE.html +1 -1
- data/doc/rdoc/files/README.html +1 -1
- data/doc/rdoc/files/ext/http11/http11_c.html +1 -1
- data/doc/rdoc/files/lib/mongrel/camping_rb.html +28 -1
- data/doc/rdoc/files/lib/mongrel/cgi_rb.html +28 -1
- data/doc/rdoc/files/lib/mongrel/command_rb.html +28 -1
- data/doc/rdoc/files/lib/mongrel/debug_rb.html +28 -1
- data/doc/rdoc/files/lib/mongrel/handlers_rb.html +3 -3
- data/doc/rdoc/files/lib/mongrel/init_rb.html +28 -1
- data/doc/rdoc/files/lib/mongrel/rails_rb.html +28 -1
- data/doc/rdoc/files/lib/mongrel/stats_rb.html +21 -10
- data/doc/rdoc/files/lib/mongrel/tcphack_rb.html +23 -4
- data/doc/rdoc/files/lib/mongrel_rb.html +33 -1
- data/doc/rdoc/fr_class_index.html +65 -0
- data/doc/rdoc/fr_file_index.html +40 -0
- data/doc/rdoc/fr_method_index.html +164 -0
- data/doc/rdoc/index.html +24 -0
- data/examples/camping/blog.rb +1 -1
- data/examples/camping/tepee.rb +4 -3
- data/examples/simpletest.rb +15 -14
- data/ext/http11/http11.c +52 -18
- data/ext/http11/http11_parser.c +194 -177
- data/ext/http11/http11_parser.h +23 -5
- data/lib/mongrel.rb +295 -134
- data/lib/mongrel/camping.rb +48 -6
- data/lib/mongrel/cgi.rb +20 -2
- data/lib/mongrel/command.rb +76 -27
- data/lib/mongrel/debug.rb +42 -13
- data/lib/mongrel/handlers.rb +218 -59
- data/lib/mongrel/init.rb +18 -0
- data/lib/mongrel/rails.rb +61 -44
- data/lib/mongrel/stats.rb +30 -2
- data/lib/mongrel/tcphack.rb +18 -0
- data/setup.rb +799 -574
- data/test/mime.yaml +3 -0
- data/test/mongrel.conf +1 -0
- data/test/test_command.rb +101 -0
- data/test/test_conditional.rb +124 -0
- data/test/test_configurator.rb +56 -22
- data/test/test_debug.rb +18 -2
- data/test/test_handlers.rb +105 -0
- data/test/test_http11.rb +27 -9
- data/test/test_response.rb +38 -0
- data/test/test_stats.rb +21 -2
- data/test/test_uriclassifier.rb +18 -0
- data/test/test_ws.rb +105 -19
- data/test/testhelp.rb +36 -0
- data/tools/rakehelp.rb +52 -46
- data/tools/trickletest.rb +37 -0
- metadata +127 -76
- data/doc/rdoc/classes/Class.src/M000001.html +0 -24
- data/doc/rdoc/classes/Class.src/M000002.html +0 -62
- data/doc/rdoc/classes/Class.src/M000003.html +0 -21
- data/doc/rdoc/classes/Class.src/M000004.html +0 -20
- data/doc/rdoc/classes/Kernel.src/M000026.html +0 -25
- data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000090.html +0 -24
- data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000091.html +0 -47
- data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000092.html +0 -34
- data/doc/rdoc/classes/Mongrel/Camping.src/M000048.html +0 -22
- data/doc/rdoc/classes/Mongrel/Camping/CampingHandler.src/M000050.html +0 -27
- data/doc/rdoc/classes/Mongrel/Command/Base.src/M000037.html +0 -18
- data/doc/rdoc/classes/Mongrel/Command/Base.src/M000038.html +0 -18
- data/doc/rdoc/classes/Mongrel/Command/Registry.src/M000041.html +0 -46
- data/doc/rdoc/classes/Mongrel/Configurator.src/M000099.html +0 -24
- data/doc/rdoc/classes/Mongrel/Configurator.src/M000100.html +0 -23
- data/doc/rdoc/classes/Mongrel/Configurator.src/M000102.html +0 -32
- data/doc/rdoc/classes/Mongrel/Configurator.src/M000103.html +0 -19
- data/doc/rdoc/classes/Mongrel/Configurator.src/M000104.html +0 -31
- data/doc/rdoc/classes/Mongrel/DirHandler.src/M000062.html +0 -40
- data/doc/rdoc/classes/Mongrel/DirHandler.src/M000063.html +0 -18
- data/doc/rdoc/classes/Mongrel/HttpRequest.src/M000118.html +0 -28
- data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000075.html +0 -26
- data/doc/rdoc/classes/Mongrel/HttpServer.src/M000070.html +0 -22
- data/doc/rdoc/classes/Mongrel/HttpServer.src/M000071.html +0 -18
- data/doc/rdoc/classes/Mongrel/Rails/RailsConfigurator.src/M000044.html +0 -32
- data/doc/rdoc/classes/Mongrel/Rails/RailsHandler.src/M000046.html +0 -48
- data/doc/rdoc/classes/Mongrel/Rails/RailsHandler.src/M000047.html +0 -23
- data/doc/rdoc/classes/Mongrel/URIClassifier.src/M000085.html +0 -18
- data/doc/rdoc/classes/ObjectTracker.src/M000016.html +0 -22
- data/doc/rdoc/classes/ObjectTracker.src/M000017.html +0 -18
- data/doc/rdoc/classes/ObjectTracker.src/M000018.html +0 -18
- data/doc/rdoc/classes/ObjectTracker.src/M000019.html +0 -44
- data/doc/rdoc/classes/Stats.src/M000014.html +0 -19
- data/doc/rdoc/classes/Stats.src/M000015.html +0 -20
- data/doc/rdoc/classes/TCPServer.src/M000007.html +0 -19
- data/lib/mongrel/#rails.rb# +0 -178
|
@@ -10,10 +10,10 @@
|
|
|
10
10
|
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
|
11
11
|
</head>
|
|
12
12
|
<body class="standalone-code">
|
|
13
|
-
<pre> <span class="ruby-comment cmt"># File lib/mongrel/debug.rb, line
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
<pre> <span class="ruby-comment cmt"># File lib/mongrel/debug.rb, line 131</span>
|
|
14
|
+
131: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">open</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">arg</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">blk</span>)
|
|
15
|
+
132: <span class="ruby-identifier">$open_files</span>[<span class="ruby-keyword kw">self</span>] = <span class="ruby-identifier">arg</span>[<span class="ruby-value">0</span>]
|
|
16
|
+
133: <span class="ruby-identifier">orig_open</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">arg</span>,<span class="ruby-operator">&</span><span class="ruby-identifier">blk</span>)
|
|
17
|
+
134: <span class="ruby-keyword kw">end</span></pre>
|
|
18
18
|
</body>
|
|
19
19
|
</html>
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
2
|
+
<!DOCTYPE html
|
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
5
|
+
|
|
6
|
+
<html>
|
|
7
|
+
<head>
|
|
8
|
+
<title>log_open_files (Kernel)</title>
|
|
9
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
|
10
|
+
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
|
11
|
+
</head>
|
|
12
|
+
<body class="standalone-code">
|
|
13
|
+
<pre> <span class="ruby-comment cmt"># File lib/mongrel/debug.rb, line 136</span>
|
|
14
|
+
136: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">log_open_files</span>
|
|
15
|
+
137: <span class="ruby-identifier">open_counts</span> = {}
|
|
16
|
+
138: <span class="ruby-identifier">$open_files</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">f</span>,<span class="ruby-identifier">args</span><span class="ruby-operator">|</span>
|
|
17
|
+
139: <span class="ruby-identifier">open_counts</span>[<span class="ruby-identifier">args</span>] <span class="ruby-operator">||=</span> <span class="ruby-value">0</span>
|
|
18
|
+
140: <span class="ruby-identifier">open_counts</span>[<span class="ruby-identifier">args</span>] <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
|
|
19
|
+
141: <span class="ruby-keyword kw">end</span>
|
|
20
|
+
142: <span class="ruby-constant">MongrelDbg</span><span class="ruby-operator">::</span><span class="ruby-identifier">trace</span>(<span class="ruby-identifier">:files</span>, <span class="ruby-identifier">open_counts</span>.<span class="ruby-identifier">to_yaml</span>)
|
|
21
|
+
143: <span class="ruby-keyword kw">end</span></pre>
|
|
22
|
+
</body>
|
|
23
|
+
</html>
|
|
@@ -98,10 +98,28 @@
|
|
|
98
98
|
|
|
99
99
|
<div id="description">
|
|
100
100
|
<p>
|
|
101
|
-
<a href="Mongrel.html">Mongrel</a>
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
101
|
+
<a href="Mongrel.html">Mongrel</a> Web Server - A Mostly Ruby Webserver and
|
|
102
|
+
Library
|
|
103
|
+
</p>
|
|
104
|
+
<p>
|
|
105
|
+
Copyright (C) 2005 Zed A. Shaw zedshaw AT zedshaw dot com
|
|
106
|
+
</p>
|
|
107
|
+
<p>
|
|
108
|
+
This library is free software; you can redistribute it and/or modify it
|
|
109
|
+
under the terms of the GNU Lesser General Public License as published by
|
|
110
|
+
the Free Software Foundation; either version 2.1 of the License, or (at
|
|
111
|
+
your option) any later version.
|
|
112
|
+
</p>
|
|
113
|
+
<p>
|
|
114
|
+
This library is distributed in the hope that it will be useful, but WITHOUT
|
|
115
|
+
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
116
|
+
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
|
|
117
|
+
for more details.
|
|
118
|
+
</p>
|
|
119
|
+
<p>
|
|
120
|
+
You should have received a copy of the GNU Lesser General Public License
|
|
121
|
+
along with this library; if not, write to the Free Software Foundation,
|
|
122
|
+
Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
105
123
|
</p>
|
|
106
124
|
|
|
107
125
|
</div>
|
|
@@ -127,6 +145,7 @@ Module <a href="Mongrel/HttpHandlerPlugin.html" class="link">Mongrel::HttpHandle
|
|
|
127
145
|
Module <a href="Mongrel/Rails.html" class="link">Mongrel::Rails</a><br />
|
|
128
146
|
Class <a href="Mongrel/CGIWrapper.html" class="link">Mongrel::CGIWrapper</a><br />
|
|
129
147
|
Class <a href="Mongrel/Configurator.html" class="link">Mongrel::Configurator</a><br />
|
|
148
|
+
Class <a href="Mongrel/DeflateFilter.html" class="link">Mongrel::DeflateFilter</a><br />
|
|
130
149
|
Class <a href="Mongrel/DirHandler.html" class="link">Mongrel::DirHandler</a><br />
|
|
131
150
|
Class <a href="Mongrel/Error404Handler.html" class="link">Mongrel::Error404Handler</a><br />
|
|
132
151
|
Class <a href="Mongrel/HeaderOut.html" class="link">Mongrel::HeaderOut</a><br />
|
|
@@ -136,6 +155,8 @@ Class <a href="Mongrel/HttpParserError.html" class="link">Mongrel::HttpParserErr
|
|
|
136
155
|
Class <a href="Mongrel/HttpRequest.html" class="link">Mongrel::HttpRequest</a><br />
|
|
137
156
|
Class <a href="Mongrel/HttpResponse.html" class="link">Mongrel::HttpResponse</a><br />
|
|
138
157
|
Class <a href="Mongrel/HttpServer.html" class="link">Mongrel::HttpServer</a><br />
|
|
158
|
+
Class <a href="Mongrel/StatisticsFilter.html" class="link">Mongrel::StatisticsFilter</a><br />
|
|
159
|
+
Class <a href="Mongrel/StatusHandler.html" class="link">Mongrel::StatusHandler</a><br />
|
|
139
160
|
Class <a href="Mongrel/StopServer.html" class="link">Mongrel::StopServer</a><br />
|
|
140
161
|
Class <a href="Mongrel/URIClassifier.html" class="link">Mongrel::URIClassifier</a><br />
|
|
141
162
|
|
|
@@ -0,0 +1,383 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
2
|
+
<!DOCTYPE html
|
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
5
|
+
|
|
6
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
7
|
+
<head>
|
|
8
|
+
<title>Class: Mongrel::CGIWrapper</title>
|
|
9
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
|
10
|
+
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
|
11
|
+
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
|
12
|
+
<script type="text/javascript">
|
|
13
|
+
// <![CDATA[
|
|
14
|
+
|
|
15
|
+
function popupCode( url ) {
|
|
16
|
+
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
function toggleCode( id ) {
|
|
20
|
+
if ( document.getElementById )
|
|
21
|
+
elem = document.getElementById( id );
|
|
22
|
+
else if ( document.all )
|
|
23
|
+
elem = eval( "document.all." + id );
|
|
24
|
+
else
|
|
25
|
+
return false;
|
|
26
|
+
|
|
27
|
+
elemStyle = elem.style;
|
|
28
|
+
|
|
29
|
+
if ( elemStyle.display != "block" ) {
|
|
30
|
+
elemStyle.display = "block"
|
|
31
|
+
} else {
|
|
32
|
+
elemStyle.display = "none"
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
return true;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
// Make codeblocks hidden by default
|
|
39
|
+
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
|
40
|
+
|
|
41
|
+
// ]]>
|
|
42
|
+
</script>
|
|
43
|
+
|
|
44
|
+
</head>
|
|
45
|
+
<body>
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
<div id="classHeader">
|
|
50
|
+
<table class="header-table">
|
|
51
|
+
<tr class="top-aligned-row">
|
|
52
|
+
<td><strong>Class</strong></td>
|
|
53
|
+
<td class="class-name-in-header">Mongrel::CGIWrapper</td>
|
|
54
|
+
</tr>
|
|
55
|
+
<tr class="top-aligned-row">
|
|
56
|
+
<td><strong>In:</strong></td>
|
|
57
|
+
<td>
|
|
58
|
+
<a href="../../files/lib/mongrel/cgi_rb.html">
|
|
59
|
+
lib/mongrel/cgi.rb
|
|
60
|
+
</a>
|
|
61
|
+
<br />
|
|
62
|
+
</td>
|
|
63
|
+
</tr>
|
|
64
|
+
|
|
65
|
+
<tr class="top-aligned-row">
|
|
66
|
+
<td><strong>Parent:</strong></td>
|
|
67
|
+
<td>
|
|
68
|
+
::CGI
|
|
69
|
+
</td>
|
|
70
|
+
</tr>
|
|
71
|
+
</table>
|
|
72
|
+
</div>
|
|
73
|
+
<!-- banner header -->
|
|
74
|
+
|
|
75
|
+
<div id="bodyContent">
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
<div id="contextContent">
|
|
80
|
+
|
|
81
|
+
<div id="description">
|
|
82
|
+
<p>
|
|
83
|
+
The beginning of a complete wrapper around <a
|
|
84
|
+
href="../Mongrel.html">Mongrel</a>’s internal HTTP processing system
|
|
85
|
+
but maintaining the original Ruby CGI module. Use this only as a crutch to
|
|
86
|
+
get existing CGI based systems working. It should handle everything, but
|
|
87
|
+
please notify me if you see special warnings. This work is still very alpha
|
|
88
|
+
so I need testers to help work out the various corner cases.
|
|
89
|
+
</p>
|
|
90
|
+
<p>
|
|
91
|
+
The CGIWrapper.handler attribute is normally not set and is available for
|
|
92
|
+
frameworks that need to get back to the handler. <a
|
|
93
|
+
href="Rails.html">Rails</a> uses this to give people access to the
|
|
94
|
+
RailsHandler#files (<a href="DirHandler.html">DirHandler</a> really) so
|
|
95
|
+
they can look-up paths and do other things with the files managed there.
|
|
96
|
+
</p>
|
|
97
|
+
<p>
|
|
98
|
+
In <a href="Rails.html">Rails</a> you can get the real file for a request
|
|
99
|
+
with:
|
|
100
|
+
</p>
|
|
101
|
+
<pre>
|
|
102
|
+
path = @request.cgi.handler.files.can_serve(@request['PATH_INFO'])
|
|
103
|
+
</pre>
|
|
104
|
+
<p>
|
|
105
|
+
Which is ugly but does the job. Feel free to write a <a
|
|
106
|
+
href="Rails.html">Rails</a> helper for that. Refer to <a
|
|
107
|
+
href="DirHandler.html#M000057">DirHandler#can_serve</a> for more
|
|
108
|
+
information on this.
|
|
109
|
+
</p>
|
|
110
|
+
|
|
111
|
+
</div>
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
</div>
|
|
115
|
+
|
|
116
|
+
<div id="method-list">
|
|
117
|
+
<h3 class="section-bar">Methods</h3>
|
|
118
|
+
|
|
119
|
+
<div class="name-list">
|
|
120
|
+
<a href="#M000101">args</a>
|
|
121
|
+
<a href="#M000102">env_table</a>
|
|
122
|
+
<a href="#M000097">header</a>
|
|
123
|
+
<a href="#M000096">new</a>
|
|
124
|
+
<a href="#M000099">out</a>
|
|
125
|
+
<a href="#M000098">send_cookies</a>
|
|
126
|
+
<a href="#M000100">status</a>
|
|
127
|
+
<a href="#M000103">stdinput</a>
|
|
128
|
+
<a href="#M000104">stdoutput</a>
|
|
129
|
+
</div>
|
|
130
|
+
</div>
|
|
131
|
+
|
|
132
|
+
</div>
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
<!-- if includes -->
|
|
136
|
+
|
|
137
|
+
<div id="section">
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
<div id="constants-list">
|
|
141
|
+
<h3 class="section-bar">Constants</h3>
|
|
142
|
+
|
|
143
|
+
<div class="name-list">
|
|
144
|
+
<table summary="Constants">
|
|
145
|
+
<tr class="top-aligned-row context-row">
|
|
146
|
+
<td class="context-item-name">REMOVED_KEYS</td>
|
|
147
|
+
<td>=</td>
|
|
148
|
+
<td class="context-item-value">[ "nph","status","server","connection","type", "charset","length","language","expires"]</td>
|
|
149
|
+
<td width="3em"> </td>
|
|
150
|
+
<td class="context-item-desc">
|
|
151
|
+
these are stripped out of any keys passed to <a
|
|
152
|
+
href="CGIWrapper.html#M000097">CGIWrapper.header</a> function
|
|
153
|
+
|
|
154
|
+
</td>
|
|
155
|
+
</tr>
|
|
156
|
+
</table>
|
|
157
|
+
</div>
|
|
158
|
+
</div>
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
<div id="attribute-list">
|
|
163
|
+
<h3 class="section-bar">Attributes</h3>
|
|
164
|
+
|
|
165
|
+
<div class="name-list">
|
|
166
|
+
<table>
|
|
167
|
+
<tr class="top-aligned-row context-row">
|
|
168
|
+
<td class="context-item-name">handler</td>
|
|
169
|
+
<td class="context-item-value"> [W] </td>
|
|
170
|
+
<td class="context-item-desc"></td>
|
|
171
|
+
</tr>
|
|
172
|
+
<tr class="top-aligned-row context-row">
|
|
173
|
+
<td class="context-item-name">handler</td>
|
|
174
|
+
<td class="context-item-value"> [R] </td>
|
|
175
|
+
<td class="context-item-desc"></td>
|
|
176
|
+
</tr>
|
|
177
|
+
<tr class="top-aligned-row context-row">
|
|
178
|
+
<td class="context-item-name">options</td>
|
|
179
|
+
<td class="context-item-value"> [R] </td>
|
|
180
|
+
<td class="context-item-desc"></td>
|
|
181
|
+
</tr>
|
|
182
|
+
</table>
|
|
183
|
+
</div>
|
|
184
|
+
</div>
|
|
185
|
+
|
|
186
|
+
|
|
187
|
+
|
|
188
|
+
<!-- if method_list -->
|
|
189
|
+
<div id="methods">
|
|
190
|
+
<h3 class="section-bar">Public Class methods</h3>
|
|
191
|
+
|
|
192
|
+
<div id="method-M000096" class="method-detail">
|
|
193
|
+
<a name="M000096"></a>
|
|
194
|
+
|
|
195
|
+
<div class="method-heading">
|
|
196
|
+
<a href="CGIWrapper.src/M000096.html" target="Code" class="method-signature"
|
|
197
|
+
onclick="popupCode('CGIWrapper.src/M000096.html');return false;">
|
|
198
|
+
<span class="method-name">new</span><span class="method-args">(request, response, *args)</span>
|
|
199
|
+
</a>
|
|
200
|
+
</div>
|
|
201
|
+
|
|
202
|
+
<div class="method-description">
|
|
203
|
+
<p>
|
|
204
|
+
Takes an <a href="HttpRequest.html">HttpRequest</a> and <a
|
|
205
|
+
href="HttpResponse.html">HttpResponse</a> object, plus any additional
|
|
206
|
+
arguments normally passed to CGI. These are used internally to create a
|
|
207
|
+
wrapper around the real CGI while maintaining <a
|
|
208
|
+
href="../Mongrel.html">Mongrel</a>’s view of the world.
|
|
209
|
+
</p>
|
|
210
|
+
</div>
|
|
211
|
+
</div>
|
|
212
|
+
|
|
213
|
+
<h3 class="section-bar">Public Instance methods</h3>
|
|
214
|
+
|
|
215
|
+
<div id="method-M000101" class="method-detail">
|
|
216
|
+
<a name="M000101"></a>
|
|
217
|
+
|
|
218
|
+
<div class="method-heading">
|
|
219
|
+
<a href="CGIWrapper.src/M000101.html" target="Code" class="method-signature"
|
|
220
|
+
onclick="popupCode('CGIWrapper.src/M000101.html');return false;">
|
|
221
|
+
<span class="method-name">args</span><span class="method-args">()</span>
|
|
222
|
+
</a>
|
|
223
|
+
</div>
|
|
224
|
+
|
|
225
|
+
<div class="method-description">
|
|
226
|
+
<p>
|
|
227
|
+
Used to wrap the normal args variable used inside CGI.
|
|
228
|
+
</p>
|
|
229
|
+
</div>
|
|
230
|
+
</div>
|
|
231
|
+
|
|
232
|
+
<div id="method-M000102" class="method-detail">
|
|
233
|
+
<a name="M000102"></a>
|
|
234
|
+
|
|
235
|
+
<div class="method-heading">
|
|
236
|
+
<a href="CGIWrapper.src/M000102.html" target="Code" class="method-signature"
|
|
237
|
+
onclick="popupCode('CGIWrapper.src/M000102.html');return false;">
|
|
238
|
+
<span class="method-name">env_table</span><span class="method-args">()</span>
|
|
239
|
+
</a>
|
|
240
|
+
</div>
|
|
241
|
+
|
|
242
|
+
<div class="method-description">
|
|
243
|
+
<p>
|
|
244
|
+
Used to wrap the normal <a href="CGIWrapper.html#M000102">env_table</a>
|
|
245
|
+
variable used inside CGI.
|
|
246
|
+
</p>
|
|
247
|
+
</div>
|
|
248
|
+
</div>
|
|
249
|
+
|
|
250
|
+
<div id="method-M000097" class="method-detail">
|
|
251
|
+
<a name="M000097"></a>
|
|
252
|
+
|
|
253
|
+
<div class="method-heading">
|
|
254
|
+
<a href="CGIWrapper.src/M000097.html" target="Code" class="method-signature"
|
|
255
|
+
onclick="popupCode('CGIWrapper.src/M000097.html');return false;">
|
|
256
|
+
<span class="method-name">header</span><span class="method-args">(options = "text/html")</span>
|
|
257
|
+
</a>
|
|
258
|
+
</div>
|
|
259
|
+
|
|
260
|
+
<div class="method-description">
|
|
261
|
+
<p>
|
|
262
|
+
The header is typically called to send back the header. In our case we
|
|
263
|
+
collect it into a hash for later usage.
|
|
264
|
+
</p>
|
|
265
|
+
<p>
|
|
266
|
+
nph — Mostly ignored. It‘ll output the date. connection —
|
|
267
|
+
Completely ignored. Why is CGI doing this? length — Ignored since <a
|
|
268
|
+
href="../Mongrel.html">Mongrel</a> figures this out from what you write to
|
|
269
|
+
output.
|
|
270
|
+
</p>
|
|
271
|
+
</div>
|
|
272
|
+
</div>
|
|
273
|
+
|
|
274
|
+
<div id="method-M000099" class="method-detail">
|
|
275
|
+
<a name="M000099"></a>
|
|
276
|
+
|
|
277
|
+
<div class="method-heading">
|
|
278
|
+
<a href="CGIWrapper.src/M000099.html" target="Code" class="method-signature"
|
|
279
|
+
onclick="popupCode('CGIWrapper.src/M000099.html');return false;">
|
|
280
|
+
<span class="method-name">out</span><span class="method-args">(options = "text/html") {||| "")| ...}</span>
|
|
281
|
+
</a>
|
|
282
|
+
</div>
|
|
283
|
+
|
|
284
|
+
<div class="method-description">
|
|
285
|
+
<p>
|
|
286
|
+
The dumb thing is people can call header or this or both and in any order.
|
|
287
|
+
So, we just reuse header and then finalize the <a
|
|
288
|
+
href="HttpResponse.html">HttpResponse</a> the right way. Status is taken
|
|
289
|
+
from the various options and converted to what <a
|
|
290
|
+
href="../Mongrel.html">Mongrel</a> needs via the <a
|
|
291
|
+
href="CGIWrapper.html#M000100">CGIWrapper.status</a> function.
|
|
292
|
+
</p>
|
|
293
|
+
</div>
|
|
294
|
+
</div>
|
|
295
|
+
|
|
296
|
+
<div id="method-M000098" class="method-detail">
|
|
297
|
+
<a name="M000098"></a>
|
|
298
|
+
|
|
299
|
+
<div class="method-heading">
|
|
300
|
+
<a href="CGIWrapper.src/M000098.html" target="Code" class="method-signature"
|
|
301
|
+
onclick="popupCode('CGIWrapper.src/M000098.html');return false;">
|
|
302
|
+
<span class="method-name">send_cookies</span><span class="method-args">(to)</span>
|
|
303
|
+
</a>
|
|
304
|
+
</div>
|
|
305
|
+
|
|
306
|
+
<div class="method-description">
|
|
307
|
+
<p>
|
|
308
|
+
Takes any ‘cookie’ setting and sends it over the <a
|
|
309
|
+
href="../Mongrel.html">Mongrel</a> header, then removes the setting from
|
|
310
|
+
the options. If cookie is an Array or Hash then it sends those on with
|
|
311
|
+
.to_s, otherwise it just calls .to_s on it and hopefully your
|
|
312
|
+
"cookie" can write itself correctly.
|
|
313
|
+
</p>
|
|
314
|
+
</div>
|
|
315
|
+
</div>
|
|
316
|
+
|
|
317
|
+
<div id="method-M000100" class="method-detail">
|
|
318
|
+
<a name="M000100"></a>
|
|
319
|
+
|
|
320
|
+
<div class="method-heading">
|
|
321
|
+
<a href="CGIWrapper.src/M000100.html" target="Code" class="method-signature"
|
|
322
|
+
onclick="popupCode('CGIWrapper.src/M000100.html');return false;">
|
|
323
|
+
<span class="method-name">status</span><span class="method-args">()</span>
|
|
324
|
+
</a>
|
|
325
|
+
</div>
|
|
326
|
+
|
|
327
|
+
<div class="method-description">
|
|
328
|
+
<p>
|
|
329
|
+
Computes the status once, but lazily so that people who call header twice
|
|
330
|
+
don’t get penalized. Because CGI insists on including the options
|
|
331
|
+
status message in the status we have to do a bit of parsing.
|
|
332
|
+
</p>
|
|
333
|
+
</div>
|
|
334
|
+
</div>
|
|
335
|
+
|
|
336
|
+
<div id="method-M000103" class="method-detail">
|
|
337
|
+
<a name="M000103"></a>
|
|
338
|
+
|
|
339
|
+
<div class="method-heading">
|
|
340
|
+
<a href="CGIWrapper.src/M000103.html" target="Code" class="method-signature"
|
|
341
|
+
onclick="popupCode('CGIWrapper.src/M000103.html');return false;">
|
|
342
|
+
<span class="method-name">stdinput</span><span class="method-args">()</span>
|
|
343
|
+
</a>
|
|
344
|
+
</div>
|
|
345
|
+
|
|
346
|
+
<div class="method-description">
|
|
347
|
+
<p>
|
|
348
|
+
Used to wrap the normal stdinput variable used inside CGI.
|
|
349
|
+
</p>
|
|
350
|
+
</div>
|
|
351
|
+
</div>
|
|
352
|
+
|
|
353
|
+
<div id="method-M000104" class="method-detail">
|
|
354
|
+
<a name="M000104"></a>
|
|
355
|
+
|
|
356
|
+
<div class="method-heading">
|
|
357
|
+
<a href="CGIWrapper.src/M000104.html" target="Code" class="method-signature"
|
|
358
|
+
onclick="popupCode('CGIWrapper.src/M000104.html');return false;">
|
|
359
|
+
<span class="method-name">stdoutput</span><span class="method-args">()</span>
|
|
360
|
+
</a>
|
|
361
|
+
</div>
|
|
362
|
+
|
|
363
|
+
<div class="method-description">
|
|
364
|
+
<p>
|
|
365
|
+
The stdoutput should be completely bypassed but we’ll drop a warning
|
|
366
|
+
just in case
|
|
367
|
+
</p>
|
|
368
|
+
</div>
|
|
369
|
+
</div>
|
|
370
|
+
|
|
371
|
+
|
|
372
|
+
</div>
|
|
373
|
+
|
|
374
|
+
|
|
375
|
+
</div>
|
|
376
|
+
|
|
377
|
+
|
|
378
|
+
<div id="validator-badges">
|
|
379
|
+
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
|
380
|
+
</div>
|
|
381
|
+
|
|
382
|
+
</body>
|
|
383
|
+
</html>
|