mongrel 0.3.13.2 → 0.3.13.3
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/COPYING +39 -488
- data/LICENSE +39 -488
- data/Rakefile +1 -1
- data/bin/mongrel_rails +8 -0
- data/doc/rdoc/classes/IO.src/M000001.html +5 -5
- data/doc/rdoc/classes/IO.src/M000002.html +5 -5
- data/doc/rdoc/classes/Kernel.src/M000020.html +5 -5
- data/doc/rdoc/classes/Kernel.src/M000021.html +9 -9
- data/doc/rdoc/classes/Mongrel.html +4 -22
- data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000101.html +10 -10
- data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000102.html +33 -33
- data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000103.html +20 -20
- data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000104.html +13 -13
- data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000105.html +11 -11
- data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000106.html +4 -4
- data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000107.html +4 -4
- data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000108.html +4 -4
- data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000109.html +5 -5
- data/doc/rdoc/classes/Mongrel/Camping.src/M000048.html +8 -8
- data/doc/rdoc/classes/Mongrel/Camping/CampingHandler.src/M000049.html +4 -4
- data/doc/rdoc/classes/Mongrel/Camping/CampingHandler.src/M000050.html +36 -36
- data/doc/rdoc/classes/Mongrel/Command/Base.src/M000026.html +10 -10
- data/doc/rdoc/classes/Mongrel/Command/Base.src/M000027.html +28 -28
- data/doc/rdoc/classes/Mongrel/Command/Base.src/M000028.html +4 -4
- data/doc/rdoc/classes/Mongrel/Command/Base.src/M000029.html +4 -4
- data/doc/rdoc/classes/Mongrel/Command/Base.src/M000030.html +4 -4
- data/doc/rdoc/classes/Mongrel/Command/Base.src/M000031.html +4 -4
- data/doc/rdoc/classes/Mongrel/Command/Base.src/M000032.html +8 -8
- data/doc/rdoc/classes/Mongrel/Command/Base.src/M000033.html +4 -4
- data/doc/rdoc/classes/Mongrel/Command/Base.src/M000034.html +4 -4
- data/doc/rdoc/classes/Mongrel/Command/Base.src/M000035.html +4 -4
- data/doc/rdoc/classes/Mongrel/Command/Base.src/M000036.html +10 -10
- data/doc/rdoc/classes/Mongrel/Command/Base.src/M000037.html +10 -10
- data/doc/rdoc/classes/Mongrel/Command/Base.src/M000038.html +4 -4
- data/doc/rdoc/classes/Mongrel/Command/Registry.src/M000039.html +6 -6
- data/doc/rdoc/classes/Mongrel/Command/Registry.src/M000040.html +11 -11
- data/doc/rdoc/classes/Mongrel/Command/Registry.src/M000041.html +33 -33
- data/doc/rdoc/classes/Mongrel/Configurator.html +2 -2
- data/doc/rdoc/classes/Mongrel/Configurator.src/M000110.html +13 -13
- data/doc/rdoc/classes/Mongrel/Configurator.src/M000111.html +17 -17
- data/doc/rdoc/classes/Mongrel/Configurator.src/M000112.html +6 -6
- data/doc/rdoc/classes/Mongrel/Configurator.src/M000113.html +6 -6
- data/doc/rdoc/classes/Mongrel/Configurator.src/M000114.html +9 -9
- data/doc/rdoc/classes/Mongrel/Configurator.src/M000115.html +4 -4
- data/doc/rdoc/classes/Mongrel/Configurator.src/M000116.html +23 -23
- data/doc/rdoc/classes/Mongrel/Configurator.src/M000117.html +5 -5
- data/doc/rdoc/classes/Mongrel/Configurator.src/M000118.html +16 -16
- data/doc/rdoc/classes/Mongrel/Configurator.src/M000119.html +18 -18
- data/doc/rdoc/classes/Mongrel/Configurator.src/M000120.html +4 -4
- data/doc/rdoc/classes/Mongrel/Configurator.src/M000121.html +10 -10
- data/doc/rdoc/classes/Mongrel/Configurator.src/M000122.html +5 -5
- data/doc/rdoc/classes/Mongrel/Configurator.src/M000123.html +4 -4
- data/doc/rdoc/classes/Mongrel/Configurator.src/M000124.html +8 -8
- data/doc/rdoc/classes/Mongrel/Configurator.src/M000125.html +11 -11
- data/doc/rdoc/classes/Mongrel/Configurator.src/M000126.html +4 -4
- data/doc/rdoc/classes/Mongrel/Configurator.src/M000127.html +21 -21
- data/doc/rdoc/classes/Mongrel/Configurator.src/M000128.html +4 -4
- data/doc/rdoc/classes/Mongrel/Configurator.src/M000129.html +19 -19
- data/doc/rdoc/classes/Mongrel/Configurator.src/M000130.html +4 -4
- data/doc/rdoc/classes/Mongrel/Const.html +1 -1
- data/doc/rdoc/classes/Mongrel/DeflateFilter.src/M000099.html +5 -5
- data/doc/rdoc/classes/Mongrel/DeflateFilter.src/M000100.html +14 -14
- data/doc/rdoc/classes/Mongrel/DirHandler.src/M000058.html +7 -7
- data/doc/rdoc/classes/Mongrel/DirHandler.src/M000059.html +29 -29
- data/doc/rdoc/classes/Mongrel/DirHandler.src/M000060.html +28 -28
- data/doc/rdoc/classes/Mongrel/DirHandler.src/M000061.html +48 -48
- data/doc/rdoc/classes/Mongrel/DirHandler.src/M000062.html +25 -25
- data/doc/rdoc/classes/Mongrel/DirHandler.src/M000063.html +4 -4
- data/doc/rdoc/classes/Mongrel/Error404Handler.src/M000131.html +4 -4
- data/doc/rdoc/classes/Mongrel/Error404Handler.src/M000132.html +4 -4
- data/doc/rdoc/classes/Mongrel/HeaderOut.src/M000072.html +4 -4
- data/doc/rdoc/classes/Mongrel/HeaderOut.src/M000073.html +4 -4
- data/doc/rdoc/classes/Mongrel/HttpHandler.src/M000078.html +3 -3
- data/doc/rdoc/classes/Mongrel/HttpHandler.src/M000079.html +3 -3
- data/doc/rdoc/classes/Mongrel/HttpHandler.src/M000080.html +3 -3
- data/doc/rdoc/classes/Mongrel/HttpHandlerPlugin.src/M000022.html +3 -3
- data/doc/rdoc/classes/Mongrel/HttpHandlerPlugin.src/M000023.html +3 -3
- data/doc/rdoc/classes/Mongrel/HttpHandlerPlugin.src/M000024.html +5 -5
- data/doc/rdoc/classes/Mongrel/HttpHandlerPlugin.src/M000025.html +3 -3
- data/doc/rdoc/classes/Mongrel/HttpRequest.src/M000138.html +42 -42
- data/doc/rdoc/classes/Mongrel/HttpRequest.src/M000139.html +6 -6
- data/doc/rdoc/classes/Mongrel/HttpRequest.src/M000140.html +6 -6
- data/doc/rdoc/classes/Mongrel/HttpRequest.src/M000141.html +18 -18
- data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000081.html +11 -11
- data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000082.html +6 -6
- data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000083.html +11 -11
- data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000084.html +8 -8
- data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000085.html +8 -8
- data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000086.html +8 -8
- data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000087.html +17 -17
- data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000088.html +7 -7
- data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000089.html +6 -6
- data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000090.html +6 -6
- data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000091.html +6 -6
- data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000092.html +4 -4
- data/doc/rdoc/classes/Mongrel/HttpServer.src/M000064.html +11 -11
- data/doc/rdoc/classes/Mongrel/HttpServer.src/M000065.html +71 -71
- data/doc/rdoc/classes/Mongrel/HttpServer.src/M000066.html +17 -17
- data/doc/rdoc/classes/Mongrel/HttpServer.src/M000067.html +7 -7
- data/doc/rdoc/classes/Mongrel/HttpServer.src/M000068.html +36 -37
- data/doc/rdoc/classes/Mongrel/HttpServer.src/M000069.html +20 -20
- data/doc/rdoc/classes/Mongrel/HttpServer.src/M000070.html +4 -4
- data/doc/rdoc/classes/Mongrel/HttpServer.src/M000071.html +8 -8
- data/doc/rdoc/classes/Mongrel/Rails/RailsConfigurator.src/M000042.html +25 -25
- data/doc/rdoc/classes/Mongrel/Rails/RailsConfigurator.src/M000043.html +11 -11
- data/doc/rdoc/classes/Mongrel/Rails/RailsConfigurator.src/M000044.html +12 -12
- data/doc/rdoc/classes/Mongrel/Rails/RailsHandler.src/M000045.html +8 -8
- data/doc/rdoc/classes/Mongrel/Rails/RailsHandler.src/M000046.html +36 -36
- data/doc/rdoc/classes/Mongrel/Rails/RailsHandler.src/M000047.html +9 -9
- data/doc/rdoc/classes/Mongrel/RedirectHandler.src/M000136.html +8 -8
- data/doc/rdoc/classes/Mongrel/RedirectHandler.src/M000137.html +13 -13
- data/doc/rdoc/classes/Mongrel/StatisticsFilter.src/M000133.html +10 -10
- data/doc/rdoc/classes/Mongrel/StatisticsFilter.src/M000134.html +10 -10
- data/doc/rdoc/classes/Mongrel/StatisticsFilter.src/M000135.html +4 -4
- data/doc/rdoc/classes/Mongrel/StatusHandler.src/M000074.html +4 -4
- data/doc/rdoc/classes/Mongrel/StatusHandler.src/M000075.html +10 -10
- data/doc/rdoc/classes/Mongrel/StatusHandler.src/M000076.html +28 -28
- data/doc/rdoc/classes/Mongrel/StatusHandler.src/M000077.html +6 -6
- data/doc/rdoc/classes/Mongrel/URIClassifier.src/M000093.html +4 -4
- data/doc/rdoc/classes/Mongrel/URIClassifier.src/M000094.html +4 -4
- data/doc/rdoc/classes/MongrelDbg.src/M000015.html +5 -5
- data/doc/rdoc/classes/MongrelDbg.src/M000016.html +6 -6
- data/doc/rdoc/classes/MongrelDbg.src/M000017.html +8 -8
- data/doc/rdoc/classes/MongrelDbg.src/M000018.html +7 -7
- data/doc/rdoc/classes/MongrelDbg.src/M000019.html +4 -4
- data/doc/rdoc/classes/ObjectTracker.src/M000013.html +13 -13
- data/doc/rdoc/classes/ObjectTracker.src/M000014.html +30 -30
- data/doc/rdoc/classes/RequestLog/Access.src/M000142.html +5 -5
- data/doc/rdoc/classes/RequestLog/Files.src/M000143.html +5 -5
- data/doc/rdoc/classes/RequestLog/Objects.src/M000145.html +5 -5
- data/doc/rdoc/classes/RequestLog/Params.src/M000146.html +5 -5
- data/doc/rdoc/classes/RequestLog/Threads.src/M000144.html +20 -20
- data/doc/rdoc/classes/Stats.src/M000005.html +5 -5
- data/doc/rdoc/classes/Stats.src/M000006.html +9 -9
- data/doc/rdoc/classes/Stats.src/M000007.html +12 -12
- data/doc/rdoc/classes/Stats.src/M000008.html +4 -4
- data/doc/rdoc/classes/Stats.src/M000009.html +4 -4
- data/doc/rdoc/classes/Stats.src/M000010.html +4 -4
- data/doc/rdoc/classes/Stats.src/M000011.html +9 -9
- data/doc/rdoc/classes/Stats.src/M000012.html +6 -6
- data/doc/rdoc/classes/TCPServer.src/M000003.html +5 -5
- data/doc/rdoc/created.rid +1 -1
- data/doc/rdoc/files/COPYING.html +51 -639
- data/doc/rdoc/files/LICENSE.html +51 -639
- data/doc/rdoc/files/ext/http11/http11_c.html +1 -1
- data/doc/rdoc/files/lib/mongrel/camping_rb.html +6 -21
- data/doc/rdoc/files/lib/mongrel/cgi_rb.html +6 -21
- data/doc/rdoc/files/lib/mongrel/command_rb.html +6 -21
- data/doc/rdoc/files/lib/mongrel/debug_rb.html +6 -21
- data/doc/rdoc/files/lib/mongrel/handlers_rb.html +13 -1
- data/doc/rdoc/files/lib/mongrel/init_rb.html +6 -21
- data/doc/rdoc/files/lib/mongrel/rails_rb.html +6 -21
- data/doc/rdoc/files/lib/mongrel/stats_rb.html +6 -21
- data/doc/rdoc/files/lib/mongrel/tcphack_rb.html +6 -21
- data/doc/rdoc/files/lib/mongrel_rb.html +6 -21
- data/ext/http11/http11.c +4 -19
- data/ext/http11/http11_parser.c +48 -63
- data/ext/http11/http11_parser.h +3 -17
- data/lib/http11.so +0 -0
- data/lib/mongrel.rb +10 -23
- data/lib/mongrel/camping.rb +4 -16
- data/lib/mongrel/cgi.rb +4 -16
- data/lib/mongrel/command.rb +4 -16
- data/lib/mongrel/debug.rb +4 -16
- data/lib/mongrel/handlers.rb +6 -17
- data/lib/mongrel/init.rb +4 -16
- data/lib/mongrel/rails.rb +4 -16
- data/lib/mongrel/stats.rb +4 -16
- data/lib/mongrel/tcphack.rb +4 -16
- data/test/test_command.rb +4 -16
- data/test/test_conditional.rb +4 -16
- data/test/test_configurator.rb +4 -16
- data/test/test_debug.rb +4 -16
- data/test/test_handlers.rb +4 -16
- data/test/test_http11.rb +4 -16
- data/test/test_redirect_handler.rb +6 -0
- data/test/test_request_progress.rb +58 -0
- data/test/test_response.rb +4 -16
- data/test/test_stats.rb +4 -16
- data/test/test_uriclassifier.rb +4 -16
- data/test/test_ws.rb +4 -16
- data/test/testhelp.rb +6 -0
- metadata +5 -2
|
@@ -10,9 +10,9 @@
|
|
|
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.rb, line
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
13
|
+
<pre> <span class="ruby-comment cmt"># File lib/mongrel.rb, line 1026</span>
|
|
14
|
+
1026: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">run_config</span>(<span class="ruby-identifier">script</span>)
|
|
15
|
+
1027: <span class="ruby-identifier">open</span>(<span class="ruby-identifier">script</span>) {<span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span> <span class="ruby-identifier">eval</span>(<span class="ruby-identifier">f</span>.<span class="ruby-identifier">read</span>, <span class="ruby-identifier">proc</span> {<span class="ruby-keyword kw">self</span>}) }
|
|
16
|
+
1028: <span class="ruby-keyword kw">end</span></pre>
|
|
17
17
|
</body>
|
|
18
18
|
</html>
|
|
@@ -10,24 +10,24 @@
|
|
|
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.rb, line
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
13
|
+
<pre> <span class="ruby-comment cmt"># File lib/mongrel.rb, line 1040</span>
|
|
14
|
+
1040: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">setup_signals</span>(<span class="ruby-identifier">options</span>={})
|
|
15
|
+
1041: <span class="ruby-identifier">ops</span> = <span class="ruby-identifier">resolve_defaults</span>(<span class="ruby-identifier">options</span>)
|
|
16
|
+
1042:
|
|
17
|
+
1043: <span class="ruby-comment cmt"># forced shutdown, even if previously restarted (actually just like TERM but for CTRL-C)</span>
|
|
18
|
+
1044: <span class="ruby-identifier">trap</span>(<span class="ruby-value str">"INT"</span>) { <span class="ruby-identifier">log</span> <span class="ruby-value str">"INT signal received."</span>; <span class="ruby-identifier">stop</span>(<span class="ruby-identifier">need_restart</span>=<span class="ruby-keyword kw">false</span>) }
|
|
19
|
+
1045:
|
|
20
|
+
1046: <span class="ruby-keyword kw">if</span> <span class="ruby-constant">RUBY_PLATFORM</span> <span class="ruby-operator">!~</span> <span class="ruby-regexp re">/mswin/</span>
|
|
21
|
+
1047: <span class="ruby-comment cmt"># graceful shutdown</span>
|
|
22
|
+
1048: <span class="ruby-identifier">trap</span>(<span class="ruby-value str">"TERM"</span>) { <span class="ruby-identifier">log</span> <span class="ruby-value str">"TERM signal received."</span>; <span class="ruby-identifier">stop</span> }
|
|
23
|
+
1049:
|
|
24
|
+
1050: <span class="ruby-comment cmt"># restart</span>
|
|
25
|
+
1051: <span class="ruby-identifier">trap</span>(<span class="ruby-value str">"USR2"</span>) { <span class="ruby-identifier">log</span> <span class="ruby-value str">"USR2 signal received."</span>; <span class="ruby-identifier">stop</span>(<span class="ruby-identifier">need_restart</span>=<span class="ruby-keyword kw">true</span>) }
|
|
26
|
+
1052:
|
|
27
|
+
1053: <span class="ruby-identifier">log</span> <span class="ruby-value str">"Signals ready. TERM => stop. USR2 => restart. INT => stop (no restart)."</span>
|
|
28
|
+
1054: <span class="ruby-keyword kw">else</span>
|
|
29
|
+
1055: <span class="ruby-identifier">log</span> <span class="ruby-value str">"Signals ready. INT => stop (no restart)."</span>
|
|
30
|
+
1056: <span class="ruby-keyword kw">end</span>
|
|
31
|
+
1057: <span class="ruby-keyword kw">end</span></pre>
|
|
32
32
|
</body>
|
|
33
33
|
</html>
|
|
@@ -10,9 +10,9 @@
|
|
|
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.rb, line
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
13
|
+
<pre> <span class="ruby-comment cmt"># File lib/mongrel.rb, line 1060</span>
|
|
14
|
+
1060: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">log</span>(<span class="ruby-identifier">msg</span>)
|
|
15
|
+
1061: <span class="ruby-constant">STDERR</span>.<span class="ruby-identifier">print</span> <span class="ruby-value str">"** "</span>, <span class="ruby-identifier">msg</span>, <span class="ruby-value str">"\n"</span>
|
|
16
|
+
1062: <span class="ruby-keyword kw">end</span></pre>
|
|
17
17
|
</body>
|
|
18
18
|
</html>
|
|
@@ -148,7 +148,7 @@ SCRIPT_NAME.
|
|
|
148
148
|
<tr class="top-aligned-row context-row">
|
|
149
149
|
<td class="context-item-name">MONGREL_VERSION</td>
|
|
150
150
|
<td>=</td>
|
|
151
|
-
<td class="context-item-value">"0.3.13.
|
|
151
|
+
<td class="context-item-value">"0.3.13.3".freeze</td>
|
|
152
152
|
</tr>
|
|
153
153
|
<tr class="top-aligned-row context-row">
|
|
154
154
|
<td class="context-item-name">MONGREL_TMP_BASE</td>
|
|
@@ -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/handlers.rb, line
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
<pre> <span class="ruby-comment cmt"># File lib/mongrel/handlers.rb, line 291</span>
|
|
14
|
+
291: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">ops</span>={})
|
|
15
|
+
292: <span class="ruby-ivar">@options</span> = <span class="ruby-identifier">ops</span>
|
|
16
|
+
293: <span class="ruby-ivar">@always_deflate</span> = <span class="ruby-identifier">ops</span>[<span class="ruby-identifier">:always_deflate</span>] <span class="ruby-operator">||</span> <span class="ruby-keyword kw">false</span>
|
|
17
|
+
294: <span class="ruby-keyword kw">end</span></pre>
|
|
18
18
|
</body>
|
|
19
19
|
</html>
|
|
@@ -10,19 +10,19 @@
|
|
|
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/handlers.rb, line
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
13
|
+
<pre> <span class="ruby-comment cmt"># File lib/mongrel/handlers.rb, line 296</span>
|
|
14
|
+
296: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">process</span>(<span class="ruby-identifier">request</span>, <span class="ruby-identifier">response</span>)
|
|
15
|
+
297: <span class="ruby-identifier">accepts</span> = <span class="ruby-identifier">request</span>.<span class="ruby-identifier">params</span>[<span class="ruby-constant">HTTP_ACCEPT_ENCODING</span>]
|
|
16
|
+
298: <span class="ruby-comment cmt"># only process if they support compression</span>
|
|
17
|
+
299: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@always_deflate</span> <span class="ruby-keyword kw">or</span> (<span class="ruby-identifier">accepts</span> <span class="ruby-keyword kw">and</span> (<span class="ruby-identifier">accepts</span>.<span class="ruby-identifier">include?</span> <span class="ruby-value str">"deflate"</span> <span class="ruby-keyword kw">and</span> <span class="ruby-keyword kw">not</span> <span class="ruby-identifier">response</span>.<span class="ruby-identifier">body_sent</span>))
|
|
18
|
+
300: <span class="ruby-identifier">response</span>.<span class="ruby-identifier">header</span>[<span class="ruby-value str">"Content-Encoding"</span>] = <span class="ruby-value str">"deflate"</span>
|
|
19
|
+
301: <span class="ruby-comment cmt"># we can't just rewind the body and gzip it since the body could be an attached file</span>
|
|
20
|
+
302: <span class="ruby-identifier">response</span>.<span class="ruby-identifier">body</span>.<span class="ruby-identifier">rewind</span>
|
|
21
|
+
303: <span class="ruby-identifier">gzout</span> = <span class="ruby-constant">StringIO</span>.<span class="ruby-identifier">new</span>(<span class="ruby-constant">Zlib</span><span class="ruby-operator">::</span><span class="ruby-constant">Deflate</span>.<span class="ruby-identifier">deflate</span>(<span class="ruby-identifier">response</span>.<span class="ruby-identifier">body</span>.<span class="ruby-identifier">read</span>))
|
|
22
|
+
304: <span class="ruby-identifier">gzout</span>.<span class="ruby-identifier">rewind</span>
|
|
23
|
+
305: <span class="ruby-identifier">response</span>.<span class="ruby-identifier">body</span>.<span class="ruby-identifier">close</span>
|
|
24
|
+
306: <span class="ruby-identifier">response</span>.<span class="ruby-identifier">body</span> = <span class="ruby-identifier">gzout</span>
|
|
25
|
+
307: <span class="ruby-keyword kw">end</span>
|
|
26
|
+
308: <span class="ruby-keyword kw">end</span></pre>
|
|
27
27
|
</body>
|
|
28
28
|
</html>
|
|
@@ -10,12 +10,12 @@
|
|
|
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/handlers.rb, line
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
13
|
+
<pre> <span class="ruby-comment cmt"># File lib/mongrel/handlers.rb, line 124</span>
|
|
14
|
+
124: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">path</span>, <span class="ruby-identifier">listing_allowed</span>=<span class="ruby-keyword kw">true</span>, <span class="ruby-identifier">index_html</span>=<span class="ruby-value str">"index.html"</span>)
|
|
15
|
+
125: <span class="ruby-ivar">@path</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">expand_path</span>(<span class="ruby-identifier">path</span>)
|
|
16
|
+
126: <span class="ruby-ivar">@listing_allowed</span>=<span class="ruby-identifier">listing_allowed</span>
|
|
17
|
+
127: <span class="ruby-ivar">@index_html</span> = <span class="ruby-identifier">index_html</span>
|
|
18
|
+
128: <span class="ruby-ivar">@default_content_type</span> = <span class="ruby-value str">"text/plain; charset=ISO-8859-1"</span>.<span class="ruby-identifier">freeze</span>
|
|
19
|
+
129: <span class="ruby-keyword kw">end</span></pre>
|
|
20
20
|
</body>
|
|
21
21
|
</html>
|
|
@@ -10,34 +10,34 @@
|
|
|
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/handlers.rb, line
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
13
|
+
<pre> <span class="ruby-comment cmt"># File lib/mongrel/handlers.rb, line 132</span>
|
|
14
|
+
132: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">can_serve</span>(<span class="ruby-identifier">path_info</span>)
|
|
15
|
+
133: <span class="ruby-comment cmt"># TODO: investigate freezing the path_info to prevent double escaping</span>
|
|
16
|
+
134: <span class="ruby-identifier">req_path</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">expand_path</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-ivar">@path</span>,<span class="ruby-constant">HttpRequest</span>.<span class="ruby-identifier">unescape</span>(<span class="ruby-identifier">path_info</span>)), <span class="ruby-ivar">@path</span>)
|
|
17
|
+
135:
|
|
18
|
+
136: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">req_path</span>.<span class="ruby-identifier">index</span>(<span class="ruby-ivar">@path</span>) <span class="ruby-operator">==</span> <span class="ruby-value">0</span> <span class="ruby-keyword kw">and</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">exist?</span> <span class="ruby-identifier">req_path</span>
|
|
19
|
+
137: <span class="ruby-comment cmt"># it exists and it's in the right location</span>
|
|
20
|
+
138: <span class="ruby-keyword kw">if</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">directory?</span> <span class="ruby-identifier">req_path</span>
|
|
21
|
+
139: <span class="ruby-comment cmt"># the request is for a directory</span>
|
|
22
|
+
140: <span class="ruby-identifier">index</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">req_path</span>, <span class="ruby-ivar">@index_html</span>)
|
|
23
|
+
141: <span class="ruby-keyword kw">if</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">exist?</span> <span class="ruby-identifier">index</span>
|
|
24
|
+
142: <span class="ruby-comment cmt"># serve the index</span>
|
|
25
|
+
143: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">index</span>
|
|
26
|
+
144: <span class="ruby-keyword kw">elsif</span> <span class="ruby-ivar">@listing_allowed</span>
|
|
27
|
+
145: <span class="ruby-comment cmt"># serve the directory</span>
|
|
28
|
+
146: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">req_path</span>
|
|
29
|
+
147: <span class="ruby-keyword kw">else</span>
|
|
30
|
+
148: <span class="ruby-comment cmt"># do not serve anything</span>
|
|
31
|
+
149: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
|
|
32
|
+
150: <span class="ruby-keyword kw">end</span>
|
|
33
|
+
151: <span class="ruby-keyword kw">else</span>
|
|
34
|
+
152: <span class="ruby-comment cmt"># it's a file and it's there</span>
|
|
35
|
+
153: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">req_path</span>
|
|
36
|
+
154: <span class="ruby-keyword kw">end</span>
|
|
37
|
+
155: <span class="ruby-keyword kw">else</span>
|
|
38
|
+
156: <span class="ruby-comment cmt"># does not exist or isn't in the right spot</span>
|
|
39
|
+
157: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
|
|
40
|
+
158: <span class="ruby-keyword kw">end</span>
|
|
41
|
+
159: <span class="ruby-keyword kw">end</span></pre>
|
|
42
42
|
</body>
|
|
43
43
|
</html>
|
|
@@ -10,33 +10,33 @@
|
|
|
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/handlers.rb, line
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
13
|
+
<pre> <span class="ruby-comment cmt"># File lib/mongrel/handlers.rb, line 166</span>
|
|
14
|
+
166: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">send_dir_listing</span>(<span class="ruby-identifier">base</span>, <span class="ruby-identifier">dir</span>, <span class="ruby-identifier">response</span>)
|
|
15
|
+
167: <span class="ruby-comment cmt"># take off any trailing / so the links come out right</span>
|
|
16
|
+
168: <span class="ruby-identifier">base</span> = <span class="ruby-constant">HttpRequest</span>.<span class="ruby-identifier">unescape</span>(<span class="ruby-identifier">base</span>)
|
|
17
|
+
169: <span class="ruby-identifier">base</span>.<span class="ruby-identifier">chop!</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">base</span>[<span class="ruby-value">-1</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">"/"</span>[<span class="ruby-value">-1</span>]
|
|
18
|
+
170:
|
|
19
|
+
171: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@listing_allowed</span>
|
|
20
|
+
172: <span class="ruby-identifier">response</span>.<span class="ruby-identifier">start</span>(<span class="ruby-value">200</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">head</span>,<span class="ruby-identifier">out</span><span class="ruby-operator">|</span>
|
|
21
|
+
173: <span class="ruby-identifier">head</span>[<span class="ruby-constant">Const</span><span class="ruby-operator">::</span><span class="ruby-constant">CONTENT_TYPE</span>] = <span class="ruby-value str">"text/html"</span>
|
|
22
|
+
174: <span class="ruby-identifier">out</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">"<html><head><title>Directory Listing</title></head><body>"</span>
|
|
23
|
+
175: <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">entries</span>(<span class="ruby-identifier">dir</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">child</span><span class="ruby-operator">|</span>
|
|
24
|
+
176: <span class="ruby-identifier">child</span> = <span class="ruby-constant">HttpRequest</span>.<span class="ruby-identifier">unescape</span>(<span class="ruby-identifier">child</span>)
|
|
25
|
+
177: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">child</span> <span class="ruby-operator">==</span> <span class="ruby-value str">"."</span>
|
|
26
|
+
178:
|
|
27
|
+
179: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">child</span> <span class="ruby-operator">==</span> <span class="ruby-value str">".."</span>
|
|
28
|
+
180: <span class="ruby-identifier">out</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"<a href=\"#{base}/#{child}\">Up to parent..</a><br/>"</span>
|
|
29
|
+
181: <span class="ruby-keyword kw">else</span>
|
|
30
|
+
182: <span class="ruby-identifier">out</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"<a href=\"#{base}/#{child}/\">#{child}</a><br/>"</span>
|
|
31
|
+
183: <span class="ruby-keyword kw">end</span>
|
|
32
|
+
184: <span class="ruby-keyword kw">end</span>
|
|
33
|
+
185: <span class="ruby-identifier">out</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">"</body></html>"</span>
|
|
34
|
+
186: <span class="ruby-keyword kw">end</span>
|
|
35
|
+
187: <span class="ruby-keyword kw">else</span>
|
|
36
|
+
188: <span class="ruby-identifier">response</span>.<span class="ruby-identifier">start</span>(<span class="ruby-value">403</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">head</span>,<span class="ruby-identifier">out</span><span class="ruby-operator">|</span>
|
|
37
|
+
189: <span class="ruby-identifier">out</span>.<span class="ruby-identifier">write</span>(<span class="ruby-value str">"Directory listings not allowed"</span>)
|
|
38
|
+
190: <span class="ruby-keyword kw">end</span>
|
|
39
|
+
191: <span class="ruby-keyword kw">end</span>
|
|
40
|
+
192: <span class="ruby-keyword kw">end</span></pre>
|
|
41
41
|
</body>
|
|
42
42
|
</html>
|
|
@@ -10,54 +10,54 @@
|
|
|
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/handlers.rb, line
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
13
|
+
<pre> <span class="ruby-comment cmt"># File lib/mongrel/handlers.rb, line 197</span>
|
|
14
|
+
197: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">send_file</span>(<span class="ruby-identifier">req_path</span>, <span class="ruby-identifier">request</span>, <span class="ruby-identifier">response</span>, <span class="ruby-identifier">header_only</span>=<span class="ruby-keyword kw">false</span>)
|
|
15
|
+
198:
|
|
16
|
+
199: <span class="ruby-identifier">stat</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">stat</span>(<span class="ruby-identifier">req_path</span>)
|
|
17
|
+
200:
|
|
18
|
+
201: <span class="ruby-comment cmt"># Set the last modified times as well and etag for all files</span>
|
|
19
|
+
202: <span class="ruby-identifier">mtime</span> = <span class="ruby-identifier">stat</span>.<span class="ruby-identifier">mtime</span>
|
|
20
|
+
203: <span class="ruby-comment cmt"># Calculated the same as apache, not sure how well the works on win32</span>
|
|
21
|
+
204: <span class="ruby-identifier">etag</span> = <span class="ruby-constant">Const</span><span class="ruby-operator">::</span><span class="ruby-constant">ETAG_FORMAT</span> <span class="ruby-operator">%</span> [<span class="ruby-identifier">mtime</span>.<span class="ruby-identifier">to_i</span>, <span class="ruby-identifier">stat</span>.<span class="ruby-identifier">size</span>, <span class="ruby-identifier">stat</span>.<span class="ruby-identifier">ino</span>]
|
|
22
|
+
205:
|
|
23
|
+
206: <span class="ruby-identifier">unmodified_since</span> = <span class="ruby-identifier">request</span>.<span class="ruby-identifier">params</span>[<span class="ruby-constant">Const</span><span class="ruby-operator">::</span><span class="ruby-constant">HTTP_IF_UNMODIFIED_SINCE</span>]
|
|
24
|
+
207: <span class="ruby-identifier">none_match</span> = <span class="ruby-identifier">request</span>.<span class="ruby-identifier">params</span>[<span class="ruby-constant">Const</span><span class="ruby-operator">::</span><span class="ruby-constant">HTTP_IF_NONE_MATCH</span>]
|
|
25
|
+
208:
|
|
26
|
+
209: <span class="ruby-comment cmt"># test to see if this is a conditional request, and test if</span>
|
|
27
|
+
210: <span class="ruby-comment cmt"># the response would be identical to the last response</span>
|
|
28
|
+
211: <span class="ruby-identifier">same_response</span> = <span class="ruby-keyword kw">case</span>
|
|
29
|
+
212: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">unmodified_since</span> <span class="ruby-operator">&&</span> <span class="ruby-operator">!</span><span class="ruby-identifier">last_response_time</span> = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">httpdate</span>(<span class="ruby-identifier">unmodified_since</span>) <span class="ruby-keyword kw">rescue</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">false</span>
|
|
30
|
+
213: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">unmodified_since</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">last_response_time</span> <span class="ruby-operator">></span> <span class="ruby-constant">Time</span>.<span class="ruby-identifier">now</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">false</span>
|
|
31
|
+
214: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">unmodified_since</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">mtime</span> <span class="ruby-operator">></span> <span class="ruby-identifier">last_response_time</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">false</span>
|
|
32
|
+
215: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">none_match</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">none_match</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'*'</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">false</span>
|
|
33
|
+
216: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">none_match</span> <span class="ruby-operator">&&</span> <span class="ruby-operator">!</span><span class="ruby-identifier">none_match</span>.<span class="ruby-identifier">strip</span>.<span class="ruby-identifier">split</span>(<span class="ruby-regexp re">/\s*,\s*/</span>).<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">etag</span>) <span class="ruby-operator">:</span> <span class="ruby-keyword kw">false</span>
|
|
34
|
+
217: <span class="ruby-keyword kw">else</span> <span class="ruby-identifier">unmodified_since</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">none_match</span> <span class="ruby-comment cmt"># validation successful if we get this far and at least one of the header exists</span>
|
|
35
|
+
218: <span class="ruby-keyword kw">end</span>
|
|
25
36
|
219:
|
|
26
|
-
220: <span class="ruby-
|
|
27
|
-
221: <span class="ruby-
|
|
28
|
-
222:
|
|
29
|
-
223:
|
|
30
|
-
224:
|
|
31
|
-
225:
|
|
32
|
-
226:
|
|
33
|
-
227:
|
|
34
|
-
228:
|
|
35
|
-
229:
|
|
36
|
-
230:
|
|
37
|
-
231:
|
|
38
|
-
232:
|
|
39
|
-
233:
|
|
40
|
-
234:
|
|
41
|
-
235:
|
|
42
|
-
236:
|
|
43
|
-
237: <span class="ruby-
|
|
44
|
-
238: <span class="ruby-identifier">response</span>.<span class="ruby-identifier">
|
|
45
|
-
239:
|
|
46
|
-
240:
|
|
47
|
-
241:
|
|
48
|
-
242: <span class="ruby-
|
|
49
|
-
243:
|
|
50
|
-
244:
|
|
51
|
-
245: <span class="ruby-keyword kw">end</span>
|
|
52
|
-
246:
|
|
53
|
-
247: <span class="ruby-comment cmt"># send a status with out content length</span>
|
|
54
|
-
248: <span class="ruby-identifier">response</span>.<span class="ruby-identifier">send_status</span>(<span class="ruby-identifier">stat</span>.<span class="ruby-identifier">size</span>)
|
|
55
|
-
249: <span class="ruby-identifier">response</span>.<span class="ruby-identifier">send_header</span>
|
|
56
|
-
250:
|
|
57
|
-
251: <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">not</span> <span class="ruby-identifier">header_only</span>
|
|
58
|
-
252: <span class="ruby-identifier">response</span>.<span class="ruby-identifier">send_file</span>(<span class="ruby-identifier">req_path</span>)
|
|
59
|
-
253: <span class="ruby-keyword kw">end</span>
|
|
60
|
-
254: <span class="ruby-keyword kw">end</span>
|
|
61
|
-
255: <span class="ruby-keyword kw">end</span></pre>
|
|
37
|
+
220: <span class="ruby-identifier">header</span> = <span class="ruby-identifier">response</span>.<span class="ruby-identifier">header</span>
|
|
38
|
+
221: <span class="ruby-identifier">header</span>[<span class="ruby-constant">Const</span><span class="ruby-operator">::</span><span class="ruby-constant">ETAG</span>] = <span class="ruby-identifier">etag</span>
|
|
39
|
+
222:
|
|
40
|
+
223: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">same_response</span>
|
|
41
|
+
224: <span class="ruby-identifier">response</span>.<span class="ruby-identifier">start</span>(<span class="ruby-value">304</span>) {}
|
|
42
|
+
225: <span class="ruby-keyword kw">else</span>
|
|
43
|
+
226: <span class="ruby-comment cmt"># first we setup the headers and status then we do a very fast send on the socket directly</span>
|
|
44
|
+
227: <span class="ruby-identifier">response</span>.<span class="ruby-identifier">status</span> = <span class="ruby-value">200</span>
|
|
45
|
+
228: <span class="ruby-identifier">header</span>[<span class="ruby-constant">Const</span><span class="ruby-operator">::</span><span class="ruby-constant">LAST_MODIFIED</span>] = <span class="ruby-identifier">mtime</span>.<span class="ruby-identifier">httpdate</span>
|
|
46
|
+
229:
|
|
47
|
+
230: <span class="ruby-comment cmt"># set the mime type from our map based on the ending</span>
|
|
48
|
+
231: <span class="ruby-identifier">dot_at</span> = <span class="ruby-identifier">req_path</span>.<span class="ruby-identifier">rindex</span>(<span class="ruby-value str">'.'</span>)
|
|
49
|
+
232: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">dot_at</span>
|
|
50
|
+
233: <span class="ruby-identifier">header</span>[<span class="ruby-constant">Const</span><span class="ruby-operator">::</span><span class="ruby-constant">CONTENT_TYPE</span>] = <span class="ruby-constant">MIME_TYPES</span>[<span class="ruby-identifier">req_path</span>[<span class="ruby-identifier">dot_at</span> <span class="ruby-operator">..</span> <span class="ruby-value">-1</span>]] <span class="ruby-operator">||</span> <span class="ruby-ivar">@default_content_type</span>
|
|
51
|
+
234: <span class="ruby-keyword kw">end</span>
|
|
52
|
+
235:
|
|
53
|
+
236: <span class="ruby-comment cmt"># send a status with out content length</span>
|
|
54
|
+
237: <span class="ruby-identifier">response</span>.<span class="ruby-identifier">send_status</span>(<span class="ruby-identifier">stat</span>.<span class="ruby-identifier">size</span>)
|
|
55
|
+
238: <span class="ruby-identifier">response</span>.<span class="ruby-identifier">send_header</span>
|
|
56
|
+
239:
|
|
57
|
+
240: <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">not</span> <span class="ruby-identifier">header_only</span>
|
|
58
|
+
241: <span class="ruby-identifier">response</span>.<span class="ruby-identifier">send_file</span>(<span class="ruby-identifier">req_path</span>)
|
|
59
|
+
242: <span class="ruby-keyword kw">end</span>
|
|
60
|
+
243: <span class="ruby-keyword kw">end</span>
|
|
61
|
+
244: <span class="ruby-keyword kw">end</span></pre>
|
|
62
62
|
</body>
|
|
63
63
|
</html>
|
|
@@ -10,30 +10,30 @@
|
|
|
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/handlers.rb, line
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
13
|
+
<pre> <span class="ruby-comment cmt"># File lib/mongrel/handlers.rb, line 248</span>
|
|
14
|
+
248: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">process</span>(<span class="ruby-identifier">request</span>, <span class="ruby-identifier">response</span>)
|
|
15
|
+
249: <span class="ruby-identifier">req_method</span> = <span class="ruby-identifier">request</span>.<span class="ruby-identifier">params</span>[<span class="ruby-constant">Const</span><span class="ruby-operator">::</span><span class="ruby-constant">REQUEST_METHOD</span>] <span class="ruby-operator">||</span> <span class="ruby-constant">Const</span><span class="ruby-operator">::</span><span class="ruby-constant">GET</span>
|
|
16
|
+
250: <span class="ruby-identifier">req_path</span> = <span class="ruby-identifier">can_serve</span> <span class="ruby-identifier">request</span>.<span class="ruby-identifier">params</span>[<span class="ruby-constant">Const</span><span class="ruby-operator">::</span><span class="ruby-constant">PATH_INFO</span>]
|
|
17
|
+
251: <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">not</span> <span class="ruby-identifier">req_path</span>
|
|
18
|
+
252: <span class="ruby-comment cmt"># not found, return a 404</span>
|
|
19
|
+
253: <span class="ruby-identifier">response</span>.<span class="ruby-identifier">start</span>(<span class="ruby-value">404</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">head</span>,<span class="ruby-identifier">out</span><span class="ruby-operator">|</span>
|
|
20
|
+
254: <span class="ruby-identifier">out</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">"File not found"</span>
|
|
21
|
+
255: <span class="ruby-keyword kw">end</span>
|
|
22
|
+
256: <span class="ruby-keyword kw">else</span>
|
|
23
|
+
257: <span class="ruby-keyword kw">begin</span>
|
|
24
|
+
258: <span class="ruby-keyword kw">if</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">directory?</span> <span class="ruby-identifier">req_path</span>
|
|
25
|
+
259: <span class="ruby-identifier">send_dir_listing</span>(<span class="ruby-identifier">request</span>.<span class="ruby-identifier">params</span>[<span class="ruby-constant">Const</span><span class="ruby-operator">::</span><span class="ruby-constant">REQUEST_URI</span>], <span class="ruby-identifier">req_path</span>, <span class="ruby-identifier">response</span>)
|
|
26
|
+
260: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">req_method</span> <span class="ruby-operator">==</span> <span class="ruby-constant">Const</span><span class="ruby-operator">::</span><span class="ruby-constant">HEAD</span>
|
|
27
|
+
261: <span class="ruby-identifier">send_file</span>(<span class="ruby-identifier">req_path</span>, <span class="ruby-identifier">request</span>, <span class="ruby-identifier">response</span>, <span class="ruby-keyword kw">true</span>)
|
|
28
|
+
262: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">req_method</span> <span class="ruby-operator">==</span> <span class="ruby-constant">Const</span><span class="ruby-operator">::</span><span class="ruby-constant">GET</span>
|
|
29
|
+
263: <span class="ruby-identifier">send_file</span>(<span class="ruby-identifier">req_path</span>, <span class="ruby-identifier">request</span>, <span class="ruby-identifier">response</span>, <span class="ruby-keyword kw">false</span>)
|
|
30
|
+
264: <span class="ruby-keyword kw">else</span>
|
|
31
|
+
265: <span class="ruby-identifier">response</span>.<span class="ruby-identifier">start</span>(<span class="ruby-value">403</span>) {<span class="ruby-operator">|</span><span class="ruby-identifier">head</span>,<span class="ruby-identifier">out</span><span class="ruby-operator">|</span> <span class="ruby-identifier">out</span>.<span class="ruby-identifier">write</span>(<span class="ruby-constant">ONLY_HEAD_GET</span>) }
|
|
32
|
+
266: <span class="ruby-keyword kw">end</span>
|
|
33
|
+
267: <span class="ruby-keyword kw">rescue</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">details</span>
|
|
34
|
+
268: <span class="ruby-constant">STDERR</span>.<span class="ruby-identifier">puts</span> <span class="ruby-node">"Error sending file #{req_path}: #{details}"</span>
|
|
35
|
+
269: <span class="ruby-keyword kw">end</span>
|
|
36
|
+
270: <span class="ruby-keyword kw">end</span>
|
|
37
|
+
271: <span class="ruby-keyword kw">end</span></pre>
|
|
38
38
|
</body>
|
|
39
39
|
</html>
|
|
@@ -10,9 +10,9 @@
|
|
|
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/handlers.rb, line
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
13
|
+
<pre> <span class="ruby-comment cmt"># File lib/mongrel/handlers.rb, line 275</span>
|
|
14
|
+
275: <span class="ruby-keyword kw">def</span> <span class="ruby-constant">DirHandler</span><span class="ruby-operator">::</span><span class="ruby-identifier">add_mime_type</span>(<span class="ruby-identifier">extension</span>, <span class="ruby-identifier">type</span>)
|
|
15
|
+
276: <span class="ruby-constant">MIME_TYPES</span>[<span class="ruby-identifier">extension</span>] = <span class="ruby-identifier">type</span>
|
|
16
|
+
277: <span class="ruby-keyword kw">end</span></pre>
|
|
17
17
|
</body>
|
|
18
18
|
</html>
|