mongrel 0.3.13.1 → 0.3.13.2

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.
Files changed (216) hide show
  1. data/Rakefile +3 -1
  2. data/doc/rdoc/classes/Mongrel.html +3 -2
  3. data/doc/rdoc/classes/Mongrel/CGIWrapper.html +49 -49
  4. data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000101.html +11 -14
  5. data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000102.html +34 -12
  6. data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000103.html +21 -5
  7. data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000104.html +14 -5
  8. data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000105.html +12 -5
  9. data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000106.html +5 -6
  10. data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000107.html +18 -0
  11. data/doc/rdoc/classes/Mongrel/{URIClassifier.src/M000090.html → CGIWrapper.src/M000108.html} +5 -5
  12. data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000109.html +19 -0
  13. data/doc/rdoc/classes/Mongrel/Camping.html +5 -5
  14. data/doc/rdoc/classes/Mongrel/Camping.src/{M000047.html → M000048.html} +0 -0
  15. data/doc/rdoc/classes/Mongrel/Camping/CampingHandler.html +10 -10
  16. data/doc/rdoc/classes/Mongrel/Camping/CampingHandler.src/M000049.html +5 -38
  17. data/doc/rdoc/classes/Mongrel/Camping/CampingHandler.src/M000050.html +51 -0
  18. data/doc/rdoc/classes/Mongrel/Command/Base.html +65 -65
  19. data/doc/rdoc/classes/Mongrel/Command/Base.src/M000026.html +11 -29
  20. data/doc/rdoc/classes/Mongrel/Command/Base.src/M000027.html +29 -5
  21. data/doc/rdoc/classes/Mongrel/Command/Base.src/M000028.html +5 -5
  22. data/doc/rdoc/classes/Mongrel/Command/Base.src/M000029.html +5 -5
  23. data/doc/rdoc/classes/Mongrel/Command/Base.src/M000030.html +5 -5
  24. data/doc/rdoc/classes/Mongrel/Command/Base.src/M000031.html +5 -9
  25. data/doc/rdoc/classes/Mongrel/Command/Base.src/M000032.html +9 -5
  26. data/doc/rdoc/classes/Mongrel/Command/Base.src/M000033.html +5 -5
  27. data/doc/rdoc/classes/Mongrel/Command/Base.src/M000034.html +5 -5
  28. data/doc/rdoc/classes/Mongrel/Command/Base.src/M000035.html +5 -11
  29. data/doc/rdoc/classes/Mongrel/Command/Base.src/M000036.html +11 -11
  30. data/doc/rdoc/classes/Mongrel/Command/Base.src/M000037.html +11 -5
  31. data/doc/rdoc/classes/Mongrel/Command/Base.src/M000038.html +18 -0
  32. data/doc/rdoc/classes/Mongrel/Command/Registry.html +15 -15
  33. data/doc/rdoc/classes/Mongrel/Command/Registry.src/M000039.html +7 -12
  34. data/doc/rdoc/classes/Mongrel/Command/Registry.src/M000040.html +12 -37
  35. data/doc/rdoc/classes/Mongrel/Command/Registry.src/M000041.html +50 -0
  36. data/doc/rdoc/classes/Mongrel/Configurator.html +120 -114
  37. data/doc/rdoc/classes/Mongrel/Configurator.src/M000110.html +14 -7
  38. data/doc/rdoc/classes/Mongrel/Configurator.src/M000111.html +18 -10
  39. data/doc/rdoc/classes/Mongrel/Configurator.src/M000112.html +7 -5
  40. data/doc/rdoc/classes/Mongrel/Configurator.src/M000113.html +7 -21
  41. data/doc/rdoc/classes/Mongrel/Configurator.src/M000114.html +10 -6
  42. data/doc/rdoc/classes/Mongrel/Configurator.src/M000115.html +5 -17
  43. data/doc/rdoc/classes/Mongrel/Configurator.src/M000116.html +25 -20
  44. data/doc/rdoc/classes/Mongrel/Configurator.src/M000117.html +6 -5
  45. data/doc/rdoc/classes/Mongrel/Configurator.src/M000118.html +17 -11
  46. data/doc/rdoc/classes/Mongrel/Configurator.src/M000119.html +20 -6
  47. data/doc/rdoc/classes/Mongrel/Configurator.src/M000120.html +5 -5
  48. data/doc/rdoc/classes/Mongrel/Configurator.src/M000121.html +11 -9
  49. data/doc/rdoc/classes/Mongrel/Configurator.src/M000122.html +6 -12
  50. data/doc/rdoc/classes/Mongrel/Configurator.src/M000123.html +5 -5
  51. data/doc/rdoc/classes/Mongrel/Configurator.src/M000124.html +9 -22
  52. data/doc/rdoc/classes/Mongrel/Configurator.src/M000125.html +12 -5
  53. data/doc/rdoc/classes/Mongrel/Configurator.src/M000126.html +5 -20
  54. data/doc/rdoc/classes/Mongrel/Configurator.src/M000127.html +22 -5
  55. data/doc/rdoc/classes/Mongrel/Configurator.src/M000128.html +18 -0
  56. data/doc/rdoc/classes/Mongrel/Configurator.src/M000129.html +33 -0
  57. data/doc/rdoc/classes/Mongrel/Configurator.src/M000130.html +18 -0
  58. data/doc/rdoc/classes/Mongrel/Const.html +1 -1
  59. data/doc/rdoc/classes/Mongrel/DeflateFilter.html +10 -10
  60. data/doc/rdoc/classes/Mongrel/DeflateFilter.src/{M000096.html → M000099.html} +5 -5
  61. data/doc/rdoc/classes/Mongrel/DeflateFilter.src/{M000097.html → M000100.html} +14 -14
  62. data/doc/rdoc/classes/Mongrel/DirHandler.html +31 -31
  63. data/doc/rdoc/classes/Mongrel/DirHandler.src/M000058.html +8 -30
  64. data/doc/rdoc/classes/Mongrel/DirHandler.src/M000059.html +30 -29
  65. data/doc/rdoc/classes/Mongrel/DirHandler.src/M000060.html +29 -50
  66. data/doc/rdoc/classes/Mongrel/DirHandler.src/M000061.html +50 -26
  67. data/doc/rdoc/classes/Mongrel/DirHandler.src/M000062.html +26 -5
  68. data/doc/rdoc/classes/Mongrel/DirHandler.src/M000063.html +18 -0
  69. data/doc/rdoc/classes/Mongrel/Error404Handler.html +10 -10
  70. data/doc/rdoc/classes/Mongrel/Error404Handler.src/{M000128.html → M000131.html} +4 -4
  71. data/doc/rdoc/classes/Mongrel/Error404Handler.src/{M000129.html → M000132.html} +4 -4
  72. data/doc/rdoc/classes/Mongrel/HeaderOut.html +10 -10
  73. data/doc/rdoc/classes/Mongrel/HeaderOut.src/{M000070.html → M000072.html} +4 -4
  74. data/doc/rdoc/classes/Mongrel/HeaderOut.src/{M000071.html → M000073.html} +4 -4
  75. data/doc/rdoc/classes/Mongrel/HttpHandler.html +31 -10
  76. data/doc/rdoc/classes/Mongrel/HttpHandler.src/{M000076.html → M000078.html} +0 -0
  77. data/doc/rdoc/classes/Mongrel/HttpHandler.src/M000079.html +17 -0
  78. data/doc/rdoc/classes/Mongrel/HttpHandler.src/{M000077.html → M000080.html} +3 -3
  79. data/doc/rdoc/classes/Mongrel/HttpHandlerPlugin.html +25 -10
  80. data/doc/rdoc/classes/Mongrel/HttpHandlerPlugin.src/M000022.html +3 -3
  81. data/doc/rdoc/classes/Mongrel/HttpHandlerPlugin.src/M000023.html +4 -6
  82. data/doc/rdoc/classes/Mongrel/HttpHandlerPlugin.src/M000024.html +6 -4
  83. data/doc/rdoc/classes/Mongrel/HttpHandlerPlugin.src/M000025.html +17 -0
  84. data/doc/rdoc/classes/Mongrel/HttpParser.html +35 -35
  85. data/doc/rdoc/classes/Mongrel/HttpParser.src/M000051.html +5 -6
  86. data/doc/rdoc/classes/Mongrel/HttpParser.src/M000052.html +7 -7
  87. data/doc/rdoc/classes/Mongrel/HttpParser.src/M000053.html +7 -37
  88. data/doc/rdoc/classes/Mongrel/HttpParser.src/M000054.html +37 -5
  89. data/doc/rdoc/classes/Mongrel/HttpParser.src/M000055.html +5 -5
  90. data/doc/rdoc/classes/Mongrel/HttpParser.src/M000056.html +5 -6
  91. data/doc/rdoc/classes/Mongrel/HttpParser.src/{M000050.html → M000057.html} +6 -6
  92. data/doc/rdoc/classes/Mongrel/HttpRequest.html +30 -21
  93. data/doc/rdoc/classes/Mongrel/HttpRequest.src/M000138.html +43 -19
  94. data/doc/rdoc/classes/Mongrel/HttpRequest.src/{M000136.html → M000139.html} +6 -6
  95. data/doc/rdoc/classes/Mongrel/HttpRequest.src/{M000137.html → M000140.html} +6 -6
  96. data/doc/rdoc/classes/Mongrel/HttpRequest.src/M000141.html +32 -0
  97. data/doc/rdoc/classes/Mongrel/HttpResponse.html +61 -61
  98. data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000081.html +12 -9
  99. data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000082.html +7 -9
  100. data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000083.html +12 -9
  101. data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000084.html +9 -18
  102. data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000085.html +9 -8
  103. data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000086.html +9 -7
  104. data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000087.html +18 -7
  105. data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000088.html +8 -7
  106. data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000089.html +7 -5
  107. data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000090.html +20 -0
  108. data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000091.html +20 -0
  109. data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000092.html +18 -0
  110. data/doc/rdoc/classes/Mongrel/HttpServer.html +63 -41
  111. data/doc/rdoc/classes/Mongrel/HttpServer.src/M000064.html +12 -76
  112. data/doc/rdoc/classes/Mongrel/HttpServer.src/M000065.html +74 -13
  113. data/doc/rdoc/classes/Mongrel/HttpServer.src/M000066.html +18 -50
  114. data/doc/rdoc/classes/Mongrel/HttpServer.src/M000067.html +8 -21
  115. data/doc/rdoc/classes/Mongrel/HttpServer.src/M000068.html +38 -5
  116. data/doc/rdoc/classes/Mongrel/HttpServer.src/M000069.html +21 -9
  117. data/doc/rdoc/classes/Mongrel/HttpServer.src/M000070.html +18 -0
  118. data/doc/rdoc/classes/Mongrel/HttpServer.src/M000071.html +22 -0
  119. data/doc/rdoc/classes/Mongrel/Rails/RailsConfigurator.html +15 -15
  120. data/doc/rdoc/classes/Mongrel/Rails/RailsConfigurator.src/M000042.html +26 -12
  121. data/doc/rdoc/classes/Mongrel/Rails/RailsConfigurator.src/M000043.html +12 -13
  122. data/doc/rdoc/classes/Mongrel/Rails/RailsConfigurator.src/M000044.html +26 -0
  123. data/doc/rdoc/classes/Mongrel/Rails/RailsHandler.html +15 -15
  124. data/doc/rdoc/classes/Mongrel/Rails/RailsHandler.src/M000045.html +9 -38
  125. data/doc/rdoc/classes/Mongrel/Rails/RailsHandler.src/M000046.html +38 -10
  126. data/doc/rdoc/classes/Mongrel/Rails/RailsHandler.src/M000047.html +23 -0
  127. data/doc/rdoc/classes/Mongrel/RedirectHandler.html +10 -10
  128. data/doc/rdoc/classes/Mongrel/RedirectHandler.src/{M000133.html → M000136.html} +8 -8
  129. data/doc/rdoc/classes/Mongrel/RedirectHandler.src/{M000134.html → M000137.html} +13 -13
  130. data/doc/rdoc/classes/Mongrel/StatisticsFilter.html +16 -16
  131. data/doc/rdoc/classes/Mongrel/StatisticsFilter.src/{M000130.html → M000133.html} +10 -10
  132. data/doc/rdoc/classes/Mongrel/StatisticsFilter.src/{M000131.html → M000134.html} +10 -10
  133. data/doc/rdoc/classes/Mongrel/StatisticsFilter.src/{M000132.html → M000135.html} +4 -4
  134. data/doc/rdoc/classes/Mongrel/StatusHandler.html +20 -20
  135. data/doc/rdoc/classes/Mongrel/StatusHandler.src/M000074.html +5 -29
  136. data/doc/rdoc/classes/Mongrel/StatusHandler.src/M000075.html +11 -7
  137. data/doc/rdoc/classes/Mongrel/StatusHandler.src/M000076.html +42 -0
  138. data/doc/rdoc/classes/Mongrel/StatusHandler.src/M000077.html +20 -0
  139. data/doc/rdoc/classes/Mongrel/TimeoutError.html +117 -0
  140. data/doc/rdoc/classes/Mongrel/URIClassifier.html +30 -30
  141. data/doc/rdoc/classes/Mongrel/URIClassifier.src/M000093.html +5 -38
  142. data/doc/rdoc/classes/Mongrel/URIClassifier.src/M000094.html +5 -23
  143. data/doc/rdoc/classes/Mongrel/URIClassifier.src/M000095.html +16 -60
  144. data/doc/rdoc/classes/Mongrel/URIClassifier.src/M000096.html +51 -0
  145. data/doc/rdoc/classes/Mongrel/URIClassifier.src/M000097.html +36 -0
  146. data/doc/rdoc/classes/Mongrel/URIClassifier.src/M000098.html +83 -0
  147. data/doc/rdoc/classes/RequestLog/Access.html +5 -5
  148. data/doc/rdoc/classes/RequestLog/Access.src/{M000139.html → M000142.html} +0 -0
  149. data/doc/rdoc/classes/RequestLog/Files.html +5 -5
  150. data/doc/rdoc/classes/RequestLog/Files.src/{M000140.html → M000143.html} +0 -0
  151. data/doc/rdoc/classes/RequestLog/Objects.html +5 -5
  152. data/doc/rdoc/classes/RequestLog/Objects.src/{M000142.html → M000145.html} +0 -0
  153. data/doc/rdoc/classes/RequestLog/Params.html +5 -5
  154. data/doc/rdoc/classes/RequestLog/Params.src/{M000143.html → M000146.html} +0 -0
  155. data/doc/rdoc/classes/RequestLog/Threads.html +5 -5
  156. data/doc/rdoc/classes/RequestLog/Threads.src/{M000141.html → M000144.html} +0 -0
  157. data/doc/rdoc/created.rid +1 -1
  158. data/doc/rdoc/files/ext/http11/http11_c.html +1 -1
  159. data/doc/rdoc/files/lib/mongrel/camping_rb.html +2 -2
  160. data/doc/rdoc/files/lib/mongrel/cgi_rb.html +2 -2
  161. data/doc/rdoc/files/lib/mongrel/command_rb.html +2 -2
  162. data/doc/rdoc/files/lib/mongrel/debug_rb.html +2 -2
  163. data/doc/rdoc/files/lib/mongrel/handlers_rb.html +1 -1
  164. data/doc/rdoc/files/lib/mongrel/init_rb.html +2 -2
  165. data/doc/rdoc/files/lib/mongrel/rails_rb.html +2 -2
  166. data/doc/rdoc/files/lib/mongrel/stats_rb.html +2 -2
  167. data/doc/rdoc/files/lib/mongrel/tcphack_rb.html +2 -2
  168. data/doc/rdoc/files/lib/mongrel_rb.html +2 -2
  169. data/doc/rdoc/fr_class_index.html +1 -0
  170. data/doc/rdoc/fr_method_index.html +125 -122
  171. data/ext/http11/http11.c +2 -2
  172. data/ext/http11/http11_parser.c +1 -1
  173. data/ext/http11/http11_parser.h +1 -1
  174. data/lib/mongrel.rb +70 -53
  175. data/lib/mongrel/camping.rb +1 -1
  176. data/lib/mongrel/cgi.rb +1 -1
  177. data/lib/mongrel/command.rb +1 -1
  178. data/lib/mongrel/debug.rb +1 -1
  179. data/lib/mongrel/handlers.rb +10 -1
  180. data/lib/mongrel/init.rb +1 -1
  181. data/lib/mongrel/rails.rb +1 -1
  182. data/lib/mongrel/stats.rb +1 -1
  183. data/lib/mongrel/tcphack.rb +1 -1
  184. data/test/test_command.rb +1 -1
  185. data/test/test_conditional.rb +1 -1
  186. data/test/test_configurator.rb +1 -1
  187. data/test/test_debug.rb +1 -1
  188. data/test/test_handlers.rb +1 -1
  189. data/test/test_http11.rb +1 -1
  190. data/test/test_response.rb +1 -1
  191. data/test/test_stats.rb +1 -1
  192. data/test/test_uriclassifier.rb +1 -1
  193. data/test/test_ws.rb +1 -1
  194. data/tools/trickletest.rb +28 -20
  195. metadata +50 -46
  196. data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000098.html +0 -24
  197. data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000099.html +0 -47
  198. data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000100.html +0 -34
  199. data/doc/rdoc/classes/Mongrel/Camping/CampingHandler.src/M000048.html +0 -18
  200. data/doc/rdoc/classes/Mongrel/Command/Base.src/M000025.html +0 -24
  201. data/doc/rdoc/classes/Mongrel/Command/Registry.src/M000038.html +0 -20
  202. data/doc/rdoc/classes/Mongrel/Configurator.src/M000107.html +0 -29
  203. data/doc/rdoc/classes/Mongrel/Configurator.src/M000108.html +0 -31
  204. data/doc/rdoc/classes/Mongrel/Configurator.src/M000109.html +0 -20
  205. data/doc/rdoc/classes/Mongrel/DirHandler.src/M000057.html +0 -21
  206. data/doc/rdoc/classes/Mongrel/HttpRequest.src/M000135.html +0 -52
  207. data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000078.html +0 -25
  208. data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000079.html +0 -20
  209. data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000080.html +0 -25
  210. data/doc/rdoc/classes/Mongrel/HttpServer.src/M000063.html +0 -25
  211. data/doc/rdoc/classes/Mongrel/Rails/RailsConfigurator.src/M000041.html +0 -39
  212. data/doc/rdoc/classes/Mongrel/Rails/RailsHandler.src/M000044.html +0 -22
  213. data/doc/rdoc/classes/Mongrel/StatusHandler.src/M000072.html +0 -18
  214. data/doc/rdoc/classes/Mongrel/StatusHandler.src/M000073.html +0 -24
  215. data/doc/rdoc/classes/Mongrel/URIClassifier.src/M000091.html +0 -18
  216. data/doc/rdoc/classes/Mongrel/URIClassifier.src/M000092.html +0 -39
@@ -5,18 +5,21 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>send_status (Mongrel::HttpResponse)</title>
8
+ <title>new (Mongrel::HttpResponse)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
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 373</span>
14
- 373: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">send_status</span>(<span class="ruby-identifier">content_length</span>=<span class="ruby-keyword kw">nil</span>)
15
- 374: <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">not</span> <span class="ruby-ivar">@status_sent</span>
16
- 375: <span class="ruby-identifier">content_length</span> <span class="ruby-operator">||=</span> <span class="ruby-ivar">@body</span>.<span class="ruby-identifier">length</span>
17
- 376: <span class="ruby-identifier">write</span>(<span class="ruby-constant">Const</span><span class="ruby-operator">::</span><span class="ruby-constant">STATUS_FORMAT</span> <span class="ruby-operator">%</span> [<span class="ruby-identifier">status</span>, <span class="ruby-constant">HTTP_STATUS_CODES</span>[<span class="ruby-ivar">@status</span>], <span class="ruby-identifier">content_length</span>])
18
- 377: <span class="ruby-ivar">@status_sent</span> = <span class="ruby-keyword kw">true</span>
19
- 378: <span class="ruby-keyword kw">end</span>
20
- 379: <span class="ruby-keyword kw">end</span></pre>
13
+ <pre> <span class="ruby-comment cmt"># File lib/mongrel.rb, line 344</span>
14
+ 344: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">socket</span>)
15
+ 345: <span class="ruby-ivar">@socket</span> = <span class="ruby-identifier">socket</span>
16
+ 346: <span class="ruby-ivar">@body</span> = <span class="ruby-constant">StringIO</span>.<span class="ruby-identifier">new</span>
17
+ 347: <span class="ruby-ivar">@status</span> = <span class="ruby-value">404</span>
18
+ 348: <span class="ruby-ivar">@header</span> = <span class="ruby-constant">HeaderOut</span>.<span class="ruby-identifier">new</span>(<span class="ruby-constant">StringIO</span>.<span class="ruby-identifier">new</span>)
19
+ 349: <span class="ruby-ivar">@header</span>[<span class="ruby-constant">Const</span><span class="ruby-operator">::</span><span class="ruby-constant">DATE</span>] = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">now</span>.<span class="ruby-identifier">httpdate</span>
20
+ 350: <span class="ruby-ivar">@body_sent</span> = <span class="ruby-keyword kw">false</span>
21
+ 351: <span class="ruby-ivar">@header_sent</span> = <span class="ruby-keyword kw">false</span>
22
+ 352: <span class="ruby-ivar">@status_sent</span> = <span class="ruby-keyword kw">false</span>
23
+ 353: <span class="ruby-keyword kw">end</span></pre>
21
24
  </body>
22
25
  </html>
@@ -5,18 +5,16 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>send_header (Mongrel::HttpResponse)</title>
8
+ <title>start (Mongrel::HttpResponse)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
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 381</span>
14
- 381: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">send_header</span>
15
- 382: <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">not</span> <span class="ruby-ivar">@header_sent</span>
16
- 383: <span class="ruby-ivar">@header</span>.<span class="ruby-identifier">out</span>.<span class="ruby-identifier">rewind</span>
17
- 384: <span class="ruby-identifier">write</span>(<span class="ruby-ivar">@header</span>.<span class="ruby-identifier">out</span>.<span class="ruby-identifier">read</span> <span class="ruby-operator">+</span> <span class="ruby-constant">Const</span><span class="ruby-operator">::</span><span class="ruby-constant">LINE_END</span>)
18
- 385: <span class="ruby-ivar">@header_sent</span> = <span class="ruby-keyword kw">true</span>
19
- 386: <span class="ruby-keyword kw">end</span>
20
- 387: <span class="ruby-keyword kw">end</span></pre>
13
+ <pre> <span class="ruby-comment cmt"># File lib/mongrel.rb, line 363</span>
14
+ 363: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">start</span>(<span class="ruby-identifier">status</span>=<span class="ruby-value">200</span>, <span class="ruby-identifier">finalize</span>=<span class="ruby-keyword kw">false</span>)
15
+ 364: <span class="ruby-ivar">@status</span> = <span class="ruby-identifier">status</span>.<span class="ruby-identifier">to_i</span>
16
+ 365: <span class="ruby-keyword kw">yield</span> <span class="ruby-ivar">@header</span>, <span class="ruby-ivar">@body</span>
17
+ 366: <span class="ruby-identifier">finished</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">finalize</span>
18
+ 367: <span class="ruby-keyword kw">end</span></pre>
21
19
  </body>
22
20
  </html>
@@ -5,18 +5,21 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>send_body (Mongrel::HttpResponse)</title>
8
+ <title>reset (Mongrel::HttpResponse)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
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 389</span>
14
- 389: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">send_body</span>
15
- 390: <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">not</span> <span class="ruby-ivar">@body_sent</span>
16
- 391: <span class="ruby-ivar">@body</span>.<span class="ruby-identifier">rewind</span>
17
- 392: <span class="ruby-identifier">write</span>(<span class="ruby-ivar">@body</span>.<span class="ruby-identifier">read</span>)
18
- 393: <span class="ruby-ivar">@body_sent</span> = <span class="ruby-keyword kw">true</span>
19
- 394: <span class="ruby-keyword kw">end</span>
20
- 395: <span class="ruby-keyword kw">end</span></pre>
13
+ <pre> <span class="ruby-comment cmt"># File lib/mongrel.rb, line 372</span>
14
+ 372: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">reset</span>
15
+ 373: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@body_sent</span>
16
+ 374: <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;You have already sent the request body.&quot;</span>
17
+ 375: <span class="ruby-keyword kw">elsif</span> <span class="ruby-ivar">@header_sent</span>
18
+ 376: <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;You have already sent the request headers.&quot;</span>
19
+ 377: <span class="ruby-keyword kw">else</span>
20
+ 378: <span class="ruby-ivar">@header</span>.<span class="ruby-identifier">out</span>.<span class="ruby-identifier">rewind</span>
21
+ 379: <span class="ruby-ivar">@body</span>.<span class="ruby-identifier">rewind</span>
22
+ 380: <span class="ruby-keyword kw">end</span>
23
+ 381: <span class="ruby-keyword kw">end</span></pre>
21
24
  </body>
22
25
  </html>
@@ -5,27 +5,18 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>send_file (Mongrel::HttpResponse)</title>
8
+ <title>send_status (Mongrel::HttpResponse)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
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 405</span>
14
- 405: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">send_file</span>(<span class="ruby-identifier">path</span>)
15
- 406: <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">path</span>, <span class="ruby-value str">&quot;rb&quot;</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span>
16
- 407: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@socket</span>.<span class="ruby-identifier">respond_to?</span> <span class="ruby-identifier">:sendfile</span>
17
- 408: <span class="ruby-keyword kw">begin</span>
18
- 409: <span class="ruby-ivar">@socket</span>.<span class="ruby-identifier">sendfile</span>(<span class="ruby-identifier">f</span>)
19
- 410: <span class="ruby-keyword kw">rescue</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">details</span>
20
- 411: <span class="ruby-identifier">socket_error</span>(<span class="ruby-identifier">details</span>)
21
- 412: <span class="ruby-keyword kw">end</span>
22
- 413: <span class="ruby-keyword kw">else</span>
23
- 414: <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">chunk</span> = <span class="ruby-identifier">f</span>.<span class="ruby-identifier">read</span>(<span class="ruby-constant">Const</span><span class="ruby-operator">::</span><span class="ruby-constant">CHUNK_SIZE</span>) <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">chunk</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
24
- 415: <span class="ruby-identifier">write</span>(<span class="ruby-identifier">chunk</span>)
25
- 416: <span class="ruby-keyword kw">end</span>
26
- 417: <span class="ruby-keyword kw">end</span>
27
- 418: <span class="ruby-ivar">@body_send</span> = <span class="ruby-keyword kw">true</span>
28
- 419: <span class="ruby-keyword kw">end</span>
29
- 420: <span class="ruby-keyword kw">end</span></pre>
13
+ <pre> <span class="ruby-comment cmt"># File lib/mongrel.rb, line 383</span>
14
+ 383: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">send_status</span>(<span class="ruby-identifier">content_length</span>=<span class="ruby-keyword kw">nil</span>)
15
+ 384: <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">not</span> <span class="ruby-ivar">@status_sent</span>
16
+ 385: <span class="ruby-identifier">content_length</span> <span class="ruby-operator">||=</span> <span class="ruby-ivar">@body</span>.<span class="ruby-identifier">length</span>
17
+ 386: <span class="ruby-identifier">write</span>(<span class="ruby-constant">Const</span><span class="ruby-operator">::</span><span class="ruby-constant">STATUS_FORMAT</span> <span class="ruby-operator">%</span> [<span class="ruby-identifier">status</span>, <span class="ruby-constant">HTTP_STATUS_CODES</span>[<span class="ruby-ivar">@status</span>], <span class="ruby-identifier">content_length</span>])
18
+ 387: <span class="ruby-ivar">@status_sent</span> = <span class="ruby-keyword kw">true</span>
19
+ 388: <span class="ruby-keyword kw">end</span>
20
+ 389: <span class="ruby-keyword kw">end</span></pre>
30
21
  </body>
31
22
  </html>
@@ -5,17 +5,18 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>socket_error (Mongrel::HttpResponse)</title>
8
+ <title>send_header (Mongrel::HttpResponse)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
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 422</span>
14
- 422: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">socket_error</span>(<span class="ruby-identifier">details</span>)
15
- 423: <span class="ruby-comment cmt"># ignore these since it means the client closed off early</span>
16
- 424: <span class="ruby-ivar">@socket</span>.<span class="ruby-identifier">close</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@socket</span>.<span class="ruby-identifier">closed?</span>
17
- 425: <span class="ruby-identifier">done</span> = <span class="ruby-keyword kw">true</span>
18
- 426: <span class="ruby-identifier">raise</span> <span class="ruby-identifier">details</span>
19
- 427: <span class="ruby-keyword kw">end</span></pre>
13
+ <pre> <span class="ruby-comment cmt"># File lib/mongrel.rb, line 391</span>
14
+ 391: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">send_header</span>
15
+ 392: <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">not</span> <span class="ruby-ivar">@header_sent</span>
16
+ 393: <span class="ruby-ivar">@header</span>.<span class="ruby-identifier">out</span>.<span class="ruby-identifier">rewind</span>
17
+ 394: <span class="ruby-identifier">write</span>(<span class="ruby-ivar">@header</span>.<span class="ruby-identifier">out</span>.<span class="ruby-identifier">read</span> <span class="ruby-operator">+</span> <span class="ruby-constant">Const</span><span class="ruby-operator">::</span><span class="ruby-constant">LINE_END</span>)
18
+ 395: <span class="ruby-ivar">@header_sent</span> = <span class="ruby-keyword kw">true</span>
19
+ 396: <span class="ruby-keyword kw">end</span>
20
+ 397: <span class="ruby-keyword kw">end</span></pre>
20
21
  </body>
21
22
  </html>
@@ -5,16 +5,18 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>write (Mongrel::HttpResponse)</title>
8
+ <title>send_body (Mongrel::HttpResponse)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
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 429</span>
14
- 429: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">write</span>(<span class="ruby-identifier">data</span>)
15
- 430: <span class="ruby-ivar">@socket</span>.<span class="ruby-identifier">write</span>(<span class="ruby-identifier">data</span>)
16
- 431: <span class="ruby-keyword kw">rescue</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">details</span>
17
- 432: <span class="ruby-identifier">socket_error</span>(<span class="ruby-identifier">details</span>)
18
- 433: <span class="ruby-keyword kw">end</span></pre>
13
+ <pre> <span class="ruby-comment cmt"># File lib/mongrel.rb, line 399</span>
14
+ 399: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">send_body</span>
15
+ 400: <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">not</span> <span class="ruby-ivar">@body_sent</span>
16
+ 401: <span class="ruby-ivar">@body</span>.<span class="ruby-identifier">rewind</span>
17
+ 402: <span class="ruby-identifier">write</span>(<span class="ruby-ivar">@body</span>.<span class="ruby-identifier">read</span>)
18
+ 403: <span class="ruby-ivar">@body_sent</span> = <span class="ruby-keyword kw">true</span>
19
+ 404: <span class="ruby-keyword kw">end</span>
20
+ 405: <span class="ruby-keyword kw">end</span></pre>
19
21
  </body>
20
22
  </html>
@@ -5,16 +5,27 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>finished (Mongrel::HttpResponse)</title>
8
+ <title>send_file (Mongrel::HttpResponse)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
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 437</span>
14
- 437: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">finished</span>
15
- 438: <span class="ruby-identifier">send_status</span>
16
- 439: <span class="ruby-identifier">send_header</span>
17
- 440: <span class="ruby-identifier">send_body</span>
18
- 441: <span class="ruby-keyword kw">end</span></pre>
13
+ <pre> <span class="ruby-comment cmt"># File lib/mongrel.rb, line 415</span>
14
+ 415: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">send_file</span>(<span class="ruby-identifier">path</span>)
15
+ 416: <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">path</span>, <span class="ruby-value str">&quot;rb&quot;</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span>
16
+ 417: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@socket</span>.<span class="ruby-identifier">respond_to?</span> <span class="ruby-identifier">:sendfile</span>
17
+ 418: <span class="ruby-keyword kw">begin</span>
18
+ 419: <span class="ruby-ivar">@socket</span>.<span class="ruby-identifier">sendfile</span>(<span class="ruby-identifier">f</span>)
19
+ 420: <span class="ruby-keyword kw">rescue</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">details</span>
20
+ 421: <span class="ruby-identifier">socket_error</span>(<span class="ruby-identifier">details</span>)
21
+ 422: <span class="ruby-keyword kw">end</span>
22
+ 423: <span class="ruby-keyword kw">else</span>
23
+ 424: <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">chunk</span> = <span class="ruby-identifier">f</span>.<span class="ruby-identifier">read</span>(<span class="ruby-constant">Const</span><span class="ruby-operator">::</span><span class="ruby-constant">CHUNK_SIZE</span>) <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">chunk</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
24
+ 425: <span class="ruby-identifier">write</span>(<span class="ruby-identifier">chunk</span>)
25
+ 426: <span class="ruby-keyword kw">end</span>
26
+ 427: <span class="ruby-keyword kw">end</span>
27
+ 428: <span class="ruby-ivar">@body_send</span> = <span class="ruby-keyword kw">true</span>
28
+ 429: <span class="ruby-keyword kw">end</span>
29
+ 430: <span class="ruby-keyword kw">end</span></pre>
19
30
  </body>
20
31
  </html>
@@ -5,16 +5,17 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>done= (Mongrel::HttpResponse)</title>
8
+ <title>socket_error (Mongrel::HttpResponse)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
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 445</span>
14
- 445: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">done=</span>(<span class="ruby-identifier">val</span>)
15
- 446: <span class="ruby-ivar">@status_sent</span> = <span class="ruby-keyword kw">true</span>
16
- 447: <span class="ruby-ivar">@header_sent</span> = <span class="ruby-keyword kw">true</span>
17
- 448: <span class="ruby-ivar">@body_sent</span> = <span class="ruby-keyword kw">true</span>
18
- 449: <span class="ruby-keyword kw">end</span></pre>
13
+ <pre> <span class="ruby-comment cmt"># File lib/mongrel.rb, line 432</span>
14
+ 432: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">socket_error</span>(<span class="ruby-identifier">details</span>)
15
+ 433: <span class="ruby-comment cmt"># ignore these since it means the client closed off early</span>
16
+ 434: <span class="ruby-ivar">@socket</span>.<span class="ruby-identifier">close</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@socket</span>.<span class="ruby-identifier">closed?</span>
17
+ 435: <span class="ruby-identifier">done</span> = <span class="ruby-keyword kw">true</span>
18
+ 436: <span class="ruby-identifier">raise</span> <span class="ruby-identifier">details</span>
19
+ 437: <span class="ruby-keyword kw">end</span></pre>
19
20
  </body>
20
21
  </html>
@@ -5,14 +5,16 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>done (Mongrel::HttpResponse)</title>
8
+ <title>write (Mongrel::HttpResponse)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
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 451</span>
14
- 451: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">done</span>
15
- 452: (<span class="ruby-ivar">@status_sent</span> <span class="ruby-keyword kw">and</span> <span class="ruby-ivar">@header_sent</span> <span class="ruby-keyword kw">and</span> <span class="ruby-ivar">@body_sent</span>)
16
- 453: <span class="ruby-keyword kw">end</span></pre>
13
+ <pre> <span class="ruby-comment cmt"># File lib/mongrel.rb, line 439</span>
14
+ 439: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">write</span>(<span class="ruby-identifier">data</span>)
15
+ 440: <span class="ruby-ivar">@socket</span>.<span class="ruby-identifier">write</span>(<span class="ruby-identifier">data</span>)
16
+ 441: <span class="ruby-keyword kw">rescue</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">details</span>
17
+ 442: <span class="ruby-identifier">socket_error</span>(<span class="ruby-identifier">details</span>)
18
+ 443: <span class="ruby-keyword kw">end</span></pre>
17
19
  </body>
18
20
  </html>
@@ -0,0 +1,20 @@
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>finished (Mongrel::HttpResponse)</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.rb, line 447</span>
14
+ 447: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">finished</span>
15
+ 448: <span class="ruby-identifier">send_status</span>
16
+ 449: <span class="ruby-identifier">send_header</span>
17
+ 450: <span class="ruby-identifier">send_body</span>
18
+ 451: <span class="ruby-keyword kw">end</span></pre>
19
+ </body>
20
+ </html>
@@ -0,0 +1,20 @@
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>done= (Mongrel::HttpResponse)</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.rb, line 455</span>
14
+ 455: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">done=</span>(<span class="ruby-identifier">val</span>)
15
+ 456: <span class="ruby-ivar">@status_sent</span> = <span class="ruby-keyword kw">true</span>
16
+ 457: <span class="ruby-ivar">@header_sent</span> = <span class="ruby-keyword kw">true</span>
17
+ 458: <span class="ruby-ivar">@body_sent</span> = <span class="ruby-keyword kw">true</span>
18
+ 459: <span class="ruby-keyword kw">end</span></pre>
19
+ </body>
20
+ </html>
@@ -0,0 +1,18 @@
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>done (Mongrel::HttpResponse)</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.rb, line 461</span>
14
+ 461: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">done</span>
15
+ 462: (<span class="ruby-ivar">@status_sent</span> <span class="ruby-keyword kw">and</span> <span class="ruby-ivar">@header_sent</span> <span class="ruby-keyword kw">and</span> <span class="ruby-ivar">@body_sent</span>)
16
+ 463: <span class="ruby-keyword kw">end</span></pre>
17
+ </body>
18
+ </html>
@@ -81,11 +81,11 @@
81
81
  <div id="description">
82
82
  <p>
83
83
  This is the main driver of <a href="../Mongrel.html">Mongrel</a>, while the
84
- Mognrel::HttpParser and <a
84
+ <a href="HttpParser.html">Mongrel::HttpParser</a> and <a
85
85
  href="URIClassifier.html">Mongrel::URIClassifier</a> make up the majority
86
86
  of how the server functions. It&#8217;s a very simple class that just has a
87
87
  thread accepting connections and a simple <a
88
- href="HttpServer.html#M000064">HttpServer.process_client</a> function to do
88
+ href="HttpServer.html#M000065">HttpServer.process_client</a> function to do
89
89
  the heavy lifting with the <a href="../IO.html">IO</a> and Ruby.
90
90
  </p>
91
91
  <p>
@@ -119,13 +119,14 @@ ways to make threads faster, but don&#8217;t hold your breath until Ruby
119
119
  <h3 class="section-bar">Methods</h3>
120
120
 
121
121
  <div class="name-list">
122
- <a href="#M000063">new</a>&nbsp;&nbsp;
123
- <a href="#M000064">process_client</a>&nbsp;&nbsp;
124
- <a href="#M000065">reap_dead_workers</a>&nbsp;&nbsp;
125
- <a href="#M000067">register</a>&nbsp;&nbsp;
126
- <a href="#M000066">run</a>&nbsp;&nbsp;
127
- <a href="#M000069">stop</a>&nbsp;&nbsp;
128
- <a href="#M000068">unregister</a>&nbsp;&nbsp;
122
+ <a href="#M000067">graceful_shutdown</a>&nbsp;&nbsp;
123
+ <a href="#M000064">new</a>&nbsp;&nbsp;
124
+ <a href="#M000065">process_client</a>&nbsp;&nbsp;
125
+ <a href="#M000066">reap_dead_workers</a>&nbsp;&nbsp;
126
+ <a href="#M000069">register</a>&nbsp;&nbsp;
127
+ <a href="#M000068">run</a>&nbsp;&nbsp;
128
+ <a href="#M000071">stop</a>&nbsp;&nbsp;
129
+ <a href="#M000070">unregister</a>&nbsp;&nbsp;
129
130
  </div>
130
131
  </div>
131
132
 
@@ -190,12 +191,12 @@ ways to make threads faster, but don&#8217;t hold your breath until Ruby
190
191
  <div id="methods">
191
192
  <h3 class="section-bar">Public Class methods</h3>
192
193
 
193
- <div id="method-M000063" class="method-detail">
194
- <a name="M000063"></a>
194
+ <div id="method-M000064" class="method-detail">
195
+ <a name="M000064"></a>
195
196
 
196
197
  <div class="method-heading">
197
- <a href="HttpServer.src/M000063.html" target="Code" class="method-signature"
198
- onclick="popupCode('HttpServer.src/M000063.html');return false;">
198
+ <a href="HttpServer.src/M000064.html" target="Code" class="method-signature"
199
+ onclick="popupCode('HttpServer.src/M000064.html');return false;">
199
200
  <span class="method-name">new</span><span class="method-args">(host, port, num_processors=(2**30-1), timeout=0)</span>
200
201
  </a>
201
202
  </div>
@@ -230,12 +231,32 @@ cause problems on FBSD.
230
231
 
231
232
  <h3 class="section-bar">Public Instance methods</h3>
232
233
 
233
- <div id="method-M000064" class="method-detail">
234
- <a name="M000064"></a>
234
+ <div id="method-M000067" class="method-detail">
235
+ <a name="M000067"></a>
235
236
 
236
237
  <div class="method-heading">
237
- <a href="HttpServer.src/M000064.html" target="Code" class="method-signature"
238
- onclick="popupCode('HttpServer.src/M000064.html');return false;">
238
+ <a href="HttpServer.src/M000067.html" target="Code" class="method-signature"
239
+ onclick="popupCode('HttpServer.src/M000067.html');return false;">
240
+ <span class="method-name">graceful_shutdown</span><span class="method-args">()</span>
241
+ </a>
242
+ </div>
243
+
244
+ <div class="method-description">
245
+ <p>
246
+ Performs a wait on all the currently running threads and kills any that
247
+ take too long. Right now it just waits 60 seconds, but will expand this to
248
+ allow setting. The @timeout setting does extend this waiting period by that
249
+ much longer.
250
+ </p>
251
+ </div>
252
+ </div>
253
+
254
+ <div id="method-M000065" class="method-detail">
255
+ <a name="M000065"></a>
256
+
257
+ <div class="method-heading">
258
+ <a href="HttpServer.src/M000065.html" target="Code" class="method-signature"
259
+ onclick="popupCode('HttpServer.src/M000065.html');return false;">
239
260
  <span class="method-name">process_client</span><span class="method-args">(client)</span>
240
261
  </a>
241
262
  </div>
@@ -252,13 +273,13 @@ make it faster is more than welcome to take a crack at it.
252
273
  </div>
253
274
  </div>
254
275
 
255
- <div id="method-M000065" class="method-detail">
256
- <a name="M000065"></a>
276
+ <div id="method-M000066" class="method-detail">
277
+ <a name="M000066"></a>
257
278
 
258
279
  <div class="method-heading">
259
- <a href="HttpServer.src/M000065.html" target="Code" class="method-signature"
260
- onclick="popupCode('HttpServer.src/M000065.html');return false;">
261
- <span class="method-name">reap_dead_workers</span><span class="method-args">(worker_list)</span>
280
+ <a href="HttpServer.src/M000066.html" target="Code" class="method-signature"
281
+ onclick="popupCode('HttpServer.src/M000066.html');return false;">
282
+ <span class="method-name">reap_dead_workers</span><span class="method-args">(reason='unknown')</span>
262
283
  </a>
263
284
  </div>
264
285
 
@@ -266,17 +287,18 @@ make it faster is more than welcome to take a crack at it.
266
287
  <p>
267
288
  Used internally to kill off any worker threads that have taken too long to
268
289
  complete processing. Only called if there are too many processors currently
269
- servicing.
290
+ servicing. It returns the count of workers still active after the reap is
291
+ done. It only runs if there are workers to reap.
270
292
  </p>
271
293
  </div>
272
294
  </div>
273
295
 
274
- <div id="method-M000067" class="method-detail">
275
- <a name="M000067"></a>
296
+ <div id="method-M000069" class="method-detail">
297
+ <a name="M000069"></a>
276
298
 
277
299
  <div class="method-heading">
278
- <a href="HttpServer.src/M000067.html" target="Code" class="method-signature"
279
- onclick="popupCode('HttpServer.src/M000067.html');return false;">
300
+ <a href="HttpServer.src/M000069.html" target="Code" class="method-signature"
301
+ onclick="popupCode('HttpServer.src/M000069.html');return false;">
280
302
  <span class="method-name">register</span><span class="method-args">(uri, handler, in_front=false)</span>
281
303
  </a>
282
304
  </div>
@@ -287,7 +309,7 @@ Simply registers a handler with the internal <a
287
309
  href="URIClassifier.html">URIClassifier</a>. When the URI is found in the
288
310
  prefix of a request then your handler&#8217;s HttpHandler::process method
289
311
  is called. See <a
290
- href="URIClassifier.html#M000093">Mongrel::URIClassifier#register</a> for
312
+ href="URIClassifier.html#M000096">Mongrel::URIClassifier#register</a> for
291
313
  more information.
292
314
  </p>
293
315
  <p>
@@ -297,12 +319,12 @@ the list. Otherwise it&#8217;s placed at the end of the list.
297
319
  </div>
298
320
  </div>
299
321
 
300
- <div id="method-M000066" class="method-detail">
301
- <a name="M000066"></a>
322
+ <div id="method-M000068" class="method-detail">
323
+ <a name="M000068"></a>
302
324
 
303
325
  <div class="method-heading">
304
- <a href="HttpServer.src/M000066.html" target="Code" class="method-signature"
305
- onclick="popupCode('HttpServer.src/M000066.html');return false;">
326
+ <a href="HttpServer.src/M000068.html" target="Code" class="method-signature"
327
+ onclick="popupCode('HttpServer.src/M000068.html');return false;">
306
328
  <span class="method-name">run</span><span class="method-args">()</span>
307
329
  </a>
308
330
  </div>
@@ -316,12 +338,12 @@ later.
316
338
  </div>
317
339
  </div>
318
340
 
319
- <div id="method-M000069" class="method-detail">
320
- <a name="M000069"></a>
341
+ <div id="method-M000071" class="method-detail">
342
+ <a name="M000071"></a>
321
343
 
322
344
  <div class="method-heading">
323
- <a href="HttpServer.src/M000069.html" target="Code" class="method-signature"
324
- onclick="popupCode('HttpServer.src/M000069.html');return false;">
345
+ <a href="HttpServer.src/M000071.html" target="Code" class="method-signature"
346
+ onclick="popupCode('HttpServer.src/M000071.html');return false;">
325
347
  <span class="method-name">stop</span><span class="method-args">()</span>
326
348
  </a>
327
349
  </div>
@@ -334,12 +356,12 @@ the request queue before finally exiting.
334
356
  </div>
335
357
  </div>
336
358
 
337
- <div id="method-M000068" class="method-detail">
338
- <a name="M000068"></a>
359
+ <div id="method-M000070" class="method-detail">
360
+ <a name="M000070"></a>
339
361
 
340
362
  <div class="method-heading">
341
- <a href="HttpServer.src/M000068.html" target="Code" class="method-signature"
342
- onclick="popupCode('HttpServer.src/M000068.html');return false;">
363
+ <a href="HttpServer.src/M000070.html" target="Code" class="method-signature"
364
+ onclick="popupCode('HttpServer.src/M000070.html');return false;">
343
365
  <span class="method-name">unregister</span><span class="method-args">(uri)</span>
344
366
  </a>
345
367
  </div>
@@ -347,7 +369,7 @@ the request queue before finally exiting.
347
369
  <div class="method-description">
348
370
  <p>
349
371
  Removes any handlers registered at the given URI. See <a
350
- href="URIClassifier.html#M000094">Mongrel::URIClassifier#unregister</a> for
372
+ href="URIClassifier.html#M000097">Mongrel::URIClassifier#unregister</a> for
351
373
  more information. Remember this removes them <b>all</b> so the entire
352
374
  processing chain goes away.
353
375
  </p>