mongrel 0.3.13.4 → 1.0

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 (256) hide show
  1. data/README +1 -75
  2. data/Rakefile +14 -14
  3. data/bin/mongrel_rails +35 -23
  4. data/doc/rdoc/classes/IO.html +12 -12
  5. data/doc/rdoc/classes/IO.src/{M000001.html → M000003.html} +0 -0
  6. data/doc/rdoc/classes/IO.src/{M000002.html → M000004.html} +0 -0
  7. data/doc/rdoc/classes/Kernel.html +11 -11
  8. data/doc/rdoc/classes/Kernel.src/{M000010.html → M000012.html} +0 -0
  9. data/doc/rdoc/classes/Kernel.src/{M000011.html → M000013.html} +0 -0
  10. data/doc/rdoc/classes/Mongrel.html +3 -3
  11. data/doc/rdoc/classes/Mongrel/CGIWrapper.html +77 -69
  12. data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000115.html +12 -19
  13. data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000116.html +34 -12
  14. data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000117.html +21 -5
  15. data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000118.html +19 -5
  16. data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000119.html +12 -5
  17. data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000120.html +5 -6
  18. data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000121.html +18 -0
  19. data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000122.html +18 -0
  20. data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000123.html +19 -0
  21. data/doc/rdoc/classes/Mongrel/Camping.html +8 -8
  22. data/doc/rdoc/classes/Mongrel/Camping.src/M000041.html +22 -0
  23. data/doc/rdoc/classes/Mongrel/Camping/CampingHandler.html +31 -12
  24. data/doc/rdoc/classes/Mongrel/Camping/CampingHandler.src/M000042.html +20 -0
  25. data/doc/rdoc/classes/Mongrel/Camping/CampingHandler.src/M000043.html +58 -0
  26. data/doc/rdoc/classes/Mongrel/Command/Base.html +75 -73
  27. data/doc/rdoc/classes/Mongrel/Command/Base.src/M000018.html +11 -5
  28. data/doc/rdoc/classes/Mongrel/Command/Base.src/M000019.html +29 -5
  29. data/doc/rdoc/classes/Mongrel/Command/Base.src/M000020.html +5 -5
  30. data/doc/rdoc/classes/Mongrel/Command/Base.src/M000021.html +5 -5
  31. data/doc/rdoc/classes/Mongrel/Command/Base.src/M000022.html +5 -9
  32. data/doc/rdoc/classes/Mongrel/Command/Base.src/M000023.html +5 -5
  33. data/doc/rdoc/classes/Mongrel/Command/Base.src/M000024.html +9 -5
  34. data/doc/rdoc/classes/Mongrel/Command/Base.src/M000025.html +5 -5
  35. data/doc/rdoc/classes/Mongrel/Command/Base.src/M000026.html +5 -11
  36. data/doc/rdoc/classes/Mongrel/Command/Base.src/M000027.html +5 -11
  37. data/doc/rdoc/classes/Mongrel/Command/Base.src/M000028.html +11 -5
  38. data/doc/rdoc/classes/Mongrel/Command/Base.src/M000029.html +24 -0
  39. data/doc/rdoc/classes/Mongrel/Command/Base.src/M000030.html +18 -0
  40. data/doc/rdoc/classes/Mongrel/Command/Registry.html +20 -20
  41. data/doc/rdoc/classes/Mongrel/Command/Registry.src/M000031.html +7 -45
  42. data/doc/rdoc/classes/Mongrel/Command/Registry.src/{M000030.html → M000032.html} +0 -0
  43. data/doc/rdoc/classes/Mongrel/Command/Registry.src/M000033.html +58 -0
  44. data/doc/rdoc/classes/Mongrel/Configurator.html +163 -140
  45. data/doc/rdoc/classes/Mongrel/Configurator.src/M000093.html +14 -8
  46. data/doc/rdoc/classes/Mongrel/Configurator.src/M000094.html +18 -7
  47. data/doc/rdoc/classes/Mongrel/Configurator.src/M000095.html +5 -10
  48. data/doc/rdoc/classes/Mongrel/Configurator.src/M000096.html +8 -5
  49. data/doc/rdoc/classes/Mongrel/Configurator.src/M000097.html +7 -25
  50. data/doc/rdoc/classes/Mongrel/Configurator.src/M000098.html +10 -6
  51. data/doc/rdoc/classes/Mongrel/Configurator.src/M000099.html +5 -26
  52. data/doc/rdoc/classes/Mongrel/Configurator.src/M000100.html +25 -20
  53. data/doc/rdoc/classes/Mongrel/Configurator.src/M000101.html +6 -5
  54. data/doc/rdoc/classes/Mongrel/Configurator.src/M000102.html +26 -11
  55. data/doc/rdoc/classes/Mongrel/Configurator.src/M000103.html +20 -6
  56. data/doc/rdoc/classes/Mongrel/Configurator.src/M000104.html +5 -5
  57. data/doc/rdoc/classes/Mongrel/Configurator.src/M000105.html +11 -9
  58. data/doc/rdoc/classes/Mongrel/Configurator.src/M000106.html +6 -9
  59. data/doc/rdoc/classes/Mongrel/Configurator.src/M000107.html +5 -5
  60. data/doc/rdoc/classes/Mongrel/Configurator.src/M000108.html +9 -21
  61. data/doc/rdoc/classes/Mongrel/Configurator.src/M000109.html +9 -5
  62. data/doc/rdoc/classes/Mongrel/Configurator.src/M000110.html +5 -23
  63. data/doc/rdoc/classes/Mongrel/Configurator.src/M000111.html +21 -5
  64. data/doc/rdoc/classes/Mongrel/Configurator.src/M000112.html +18 -0
  65. data/doc/rdoc/classes/Mongrel/Configurator.src/M000113.html +36 -0
  66. data/doc/rdoc/classes/Mongrel/Configurator.src/M000114.html +18 -0
  67. data/doc/rdoc/classes/Mongrel/Const.html +8 -9
  68. data/doc/rdoc/classes/Mongrel/DeflateFilter.html +19 -12
  69. data/doc/rdoc/classes/Mongrel/DeflateFilter.src/{M000121.html → M000124.html} +5 -5
  70. data/doc/rdoc/classes/Mongrel/DeflateFilter.src/{M000122.html → M000125.html} +9 -14
  71. data/doc/rdoc/classes/Mongrel/DirHandler.html +43 -43
  72. data/doc/rdoc/classes/Mongrel/DirHandler.src/M000051.html +8 -25
  73. data/doc/rdoc/classes/Mongrel/DirHandler.src/M000052.html +29 -50
  74. data/doc/rdoc/classes/Mongrel/DirHandler.src/M000053.html +25 -26
  75. data/doc/rdoc/classes/Mongrel/DirHandler.src/M000054.html +52 -5
  76. data/doc/rdoc/classes/Mongrel/DirHandler.src/M000055.html +39 -0
  77. data/doc/rdoc/classes/Mongrel/DirHandler.src/M000056.html +18 -0
  78. data/doc/rdoc/classes/Mongrel/Error404Handler.html +11 -11
  79. data/doc/rdoc/classes/Mongrel/Error404Handler.src/{M000123.html → M000126.html} +4 -4
  80. data/doc/rdoc/classes/Mongrel/Error404Handler.src/{M000124.html → M000127.html} +4 -4
  81. data/doc/rdoc/classes/Mongrel/HeaderOut.html +15 -10
  82. data/doc/rdoc/classes/Mongrel/HeaderOut.src/M000066.html +21 -0
  83. data/doc/rdoc/classes/Mongrel/HeaderOut.src/M000067.html +21 -0
  84. data/doc/rdoc/classes/Mongrel/HttpHandler.html +25 -23
  85. data/doc/rdoc/classes/Mongrel/HttpHandler.src/M000072.html +4 -4
  86. data/doc/rdoc/classes/Mongrel/HttpHandler.src/{M000071.html → M000073.html} +3 -3
  87. data/doc/rdoc/classes/Mongrel/{HttpHandlerPlugin.src/M000012.html → HttpHandler.src/M000074.html} +4 -4
  88. data/doc/rdoc/classes/Mongrel/HttpHandlerPlugin.html +22 -21
  89. data/doc/rdoc/classes/Mongrel/HttpHandlerPlugin.src/M000014.html +4 -6
  90. data/doc/rdoc/classes/Mongrel/HttpHandlerPlugin.src/M000015.html +4 -4
  91. data/doc/rdoc/classes/Mongrel/HttpHandlerPlugin.src/M000016.html +19 -0
  92. data/doc/rdoc/classes/Mongrel/{HttpHandler.src/M000070.html → HttpHandlerPlugin.src/M000017.html} +4 -4
  93. data/doc/rdoc/classes/Mongrel/HttpParser.html +44 -42
  94. data/doc/rdoc/classes/Mongrel/HttpParser.src/M000044.html +6 -7
  95. data/doc/rdoc/classes/Mongrel/HttpParser.src/M000045.html +7 -37
  96. data/doc/rdoc/classes/Mongrel/HttpParser.src/M000046.html +7 -5
  97. data/doc/rdoc/classes/Mongrel/HttpParser.src/M000047.html +37 -5
  98. data/doc/rdoc/classes/Mongrel/HttpParser.src/M000048.html +5 -6
  99. data/doc/rdoc/classes/Mongrel/HttpParser.src/{M000042.html → M000049.html} +5 -6
  100. data/doc/rdoc/classes/Mongrel/HttpParser.src/{M000043.html → M000050.html} +6 -7
  101. data/doc/rdoc/classes/Mongrel/HttpRequest.html +37 -40
  102. data/doc/rdoc/classes/Mongrel/HttpRequest.src/M000133.html +37 -7
  103. data/doc/rdoc/classes/Mongrel/HttpRequest.src/M000134.html +28 -7
  104. data/doc/rdoc/classes/Mongrel/HttpRequest.src/M000135.html +16 -19
  105. data/doc/rdoc/classes/Mongrel/HttpRequest.src/M000136.html +20 -0
  106. data/doc/rdoc/classes/Mongrel/HttpRequest.src/M000137.html +20 -0
  107. data/doc/rdoc/classes/Mongrel/HttpRequest.src/M000138.html +32 -0
  108. data/doc/rdoc/classes/Mongrel/HttpResponse.html +95 -85
  109. data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000075.html +12 -13
  110. data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000076.html +7 -9
  111. data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000077.html +13 -9
  112. data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000078.html +9 -9
  113. data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000079.html +9 -18
  114. data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000080.html +9 -8
  115. data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000081.html +18 -7
  116. data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000082.html +8 -7
  117. data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000083.html +7 -7
  118. data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000084.html +7 -5
  119. data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000085.html +20 -0
  120. data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000086.html +18 -0
  121. data/doc/rdoc/classes/Mongrel/HttpServer.html +59 -63
  122. data/doc/rdoc/classes/Mongrel/HttpServer.src/M000057.html +12 -19
  123. data/doc/rdoc/classes/Mongrel/HttpServer.src/M000058.html +87 -8
  124. data/doc/rdoc/classes/Mongrel/HttpServer.src/M000059.html +19 -9
  125. data/doc/rdoc/classes/Mongrel/HttpServer.src/M000060.html +8 -49
  126. data/doc/rdoc/classes/Mongrel/HttpServer.src/M000061.html +16 -21
  127. data/doc/rdoc/classes/Mongrel/HttpServer.src/M000062.html +52 -5
  128. data/doc/rdoc/classes/Mongrel/HttpServer.src/M000063.html +21 -9
  129. data/doc/rdoc/classes/Mongrel/{HeaderOut.src → HttpServer.src}/M000064.html +5 -5
  130. data/doc/rdoc/classes/Mongrel/HttpServer.src/M000065.html +22 -0
  131. data/doc/rdoc/classes/Mongrel/Rails/RailsConfigurator.html +27 -25
  132. data/doc/rdoc/classes/Mongrel/Rails/RailsConfigurator.src/M000034.html +24 -13
  133. data/doc/rdoc/classes/Mongrel/Rails/RailsConfigurator.src/{M000033.html → M000035.html} +11 -11
  134. data/doc/rdoc/classes/Mongrel/Rails/RailsConfigurator.src/M000036.html +26 -0
  135. data/doc/rdoc/classes/Mongrel/Rails/RailsHandler.html +24 -26
  136. data/doc/rdoc/classes/Mongrel/Rails/RailsHandler.src/M000037.html +10 -8
  137. data/doc/rdoc/classes/Mongrel/Rails/RailsHandler.src/M000038.html +43 -12
  138. data/doc/rdoc/classes/Mongrel/Rails/RailsHandler.src/M000039.html +20 -0
  139. data/doc/rdoc/classes/Mongrel/Rails/RailsHandler.src/M000040.html +25 -0
  140. data/doc/rdoc/classes/Mongrel/RedirectHandler.html +10 -10
  141. data/doc/rdoc/classes/Mongrel/RedirectHandler.src/{M000128.html → M000131.html} +8 -8
  142. data/doc/rdoc/classes/Mongrel/RedirectHandler.src/{M000129.html → M000132.html} +13 -13
  143. data/doc/rdoc/classes/Mongrel/StatisticsFilter.html +20 -20
  144. data/doc/rdoc/classes/Mongrel/StatisticsFilter.src/{M000125.html → M000128.html} +10 -10
  145. data/doc/rdoc/classes/Mongrel/StatisticsFilter.src/{M000126.html → M000129.html} +10 -10
  146. data/doc/rdoc/classes/Mongrel/StatisticsFilter.src/{M000127.html → M000130.html} +4 -4
  147. data/doc/rdoc/classes/Mongrel/Stats.html +43 -42
  148. data/doc/rdoc/classes/Mongrel/Stats.src/M000139.html +6 -5
  149. data/doc/rdoc/classes/Mongrel/Stats.src/M000140.html +10 -5
  150. data/doc/rdoc/classes/Mongrel/Stats.src/M000141.html +13 -5
  151. data/doc/rdoc/classes/Mongrel/Stats.src/M000142.html +5 -10
  152. data/doc/rdoc/classes/Mongrel/Stats.src/M000143.html +5 -7
  153. data/doc/rdoc/classes/Mongrel/Stats.src/{M000136.html → M000144.html} +5 -6
  154. data/doc/rdoc/classes/Mongrel/Stats.src/M000145.html +23 -0
  155. data/doc/rdoc/classes/Mongrel/Stats.src/M000146.html +20 -0
  156. data/doc/rdoc/classes/Mongrel/StatusHandler.html +21 -21
  157. data/doc/rdoc/classes/Mongrel/StatusHandler.src/M000068.html +5 -29
  158. data/doc/rdoc/classes/Mongrel/StatusHandler.src/M000069.html +11 -7
  159. data/doc/rdoc/classes/Mongrel/StatusHandler.src/M000070.html +42 -0
  160. data/doc/rdoc/classes/Mongrel/StatusHandler.src/M000071.html +20 -0
  161. data/doc/rdoc/classes/Mongrel/URIClassifier.html +58 -55
  162. data/doc/rdoc/classes/Mongrel/URIClassifier.src/M000087.html +5 -26
  163. data/doc/rdoc/classes/Mongrel/URIClassifier.src/M000088.html +5 -38
  164. data/doc/rdoc/classes/Mongrel/URIClassifier.src/M000089.html +18 -15
  165. data/doc/rdoc/classes/Mongrel/URIClassifier.src/M000090.html +25 -57
  166. data/doc/rdoc/classes/Mongrel/URIClassifier.src/M000091.html +36 -0
  167. data/doc/rdoc/classes/Mongrel/URIClassifier.src/M000092.html +83 -0
  168. data/doc/rdoc/classes/MongrelDbg.html +25 -25
  169. data/doc/rdoc/classes/MongrelDbg.src/M000007.html +11 -9
  170. data/doc/rdoc/classes/MongrelDbg.src/M000008.html +7 -8
  171. data/doc/rdoc/classes/MongrelDbg.src/M000009.html +9 -5
  172. data/doc/rdoc/classes/MongrelDbg.src/M000010.html +21 -0
  173. data/doc/rdoc/classes/MongrelDbg.src/M000011.html +18 -0
  174. data/doc/rdoc/classes/{Sync.html → Mutex.html} +50 -19
  175. data/doc/rdoc/classes/Mutex.src/M000001.html +24 -0
  176. data/doc/rdoc/classes/Mutex.src/M000002.html +32 -0
  177. data/doc/rdoc/classes/RequestLog/Access.html +5 -5
  178. data/doc/rdoc/classes/RequestLog/Access.src/{M000144.html → M000147.html} +0 -0
  179. data/doc/rdoc/classes/RequestLog/Files.html +5 -5
  180. data/doc/rdoc/classes/RequestLog/Files.src/{M000145.html → M000148.html} +0 -0
  181. data/doc/rdoc/classes/RequestLog/Objects.html +5 -5
  182. data/doc/rdoc/classes/RequestLog/Objects.src/{M000147.html → M000150.html} +0 -0
  183. data/doc/rdoc/classes/RequestLog/Params.html +5 -5
  184. data/doc/rdoc/classes/RequestLog/Params.src/{M000148.html → M000151.html} +0 -0
  185. data/doc/rdoc/classes/RequestLog/Threads.html +5 -5
  186. data/doc/rdoc/classes/RequestLog/Threads.src/{M000146.html → M000149.html} +0 -0
  187. data/doc/rdoc/classes/TCPServer.html +10 -10
  188. data/doc/rdoc/classes/TCPServer.src/{M000003.html → M000005.html} +0 -0
  189. data/doc/rdoc/created.rid +1 -1
  190. data/doc/rdoc/files/COPYING.html +1 -1
  191. data/doc/rdoc/files/LICENSE.html +1 -1
  192. data/doc/rdoc/files/README.html +11 -100
  193. data/doc/rdoc/files/ext/http11/http11_c.html +1 -1
  194. data/doc/rdoc/files/lib/mongrel/camping_rb.html +2 -2
  195. data/doc/rdoc/files/lib/mongrel/cgi_rb.html +2 -2
  196. data/doc/rdoc/files/lib/mongrel/command_rb.html +2 -2
  197. data/doc/rdoc/files/lib/mongrel/configurator_rb.html +1 -1
  198. data/doc/rdoc/files/lib/mongrel/debug_rb.html +2 -2
  199. data/doc/rdoc/files/lib/mongrel/handlers_rb.html +3 -2
  200. data/doc/rdoc/files/lib/mongrel/init_rb.html +2 -2
  201. data/doc/rdoc/files/lib/mongrel/rails_rb.html +2 -3
  202. data/doc/rdoc/files/lib/mongrel/stats_rb.html +2 -2
  203. data/doc/rdoc/files/lib/mongrel/tcphack_rb.html +2 -2
  204. data/doc/rdoc/files/lib/mongrel_rb.html +5 -3
  205. data/doc/rdoc/files/lib/mutex_fix_rb.html +108 -0
  206. data/doc/rdoc/fr_class_index.html +1 -1
  207. data/doc/rdoc/fr_file_index.html +1 -0
  208. data/doc/rdoc/fr_method_index.html +151 -148
  209. data/ext/http11/http11.c +2 -2
  210. data/lib/mongrel.rb +85 -38
  211. data/lib/mongrel/camping.rb +17 -4
  212. data/lib/mongrel/configurator.rb +11 -7
  213. data/lib/mongrel/handlers.rb +30 -27
  214. data/lib/mongrel/mime_types.yml +615 -0
  215. data/lib/mongrel/rails.rb +21 -28
  216. data/lib/mutex_fix.rb +34 -0
  217. data/test/test_handlers.rb +16 -4
  218. data/test/test_http11.rb +8 -0
  219. data/test/test_request_progress.rb +45 -2
  220. data/test/test_response.rb +31 -0
  221. metadata +95 -71
  222. data/bin/mongrel_rails_service +0 -246
  223. data/bin/mongrel_rails_svc +0 -307
  224. data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000112.html +0 -25
  225. data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000113.html +0 -47
  226. data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000114.html +0 -34
  227. data/doc/rdoc/classes/Mongrel/Camping.src/M000039.html +0 -22
  228. data/doc/rdoc/classes/Mongrel/Camping/CampingHandler.src/M000040.html +0 -18
  229. data/doc/rdoc/classes/Mongrel/Camping/CampingHandler.src/M000041.html +0 -51
  230. data/doc/rdoc/classes/Mongrel/Command/Base.src/M000016.html +0 -24
  231. data/doc/rdoc/classes/Mongrel/Command/Base.src/M000017.html +0 -42
  232. data/doc/rdoc/classes/Mongrel/Command/Registry.src/M000029.html +0 -20
  233. data/doc/rdoc/classes/Mongrel/Configurator.src/M000091.html +0 -27
  234. data/doc/rdoc/classes/Mongrel/Configurator.src/M000092.html +0 -31
  235. data/doc/rdoc/classes/Mongrel/DirHandler.src/M000049.html +0 -21
  236. data/doc/rdoc/classes/Mongrel/DirHandler.src/M000050.html +0 -43
  237. data/doc/rdoc/classes/Mongrel/HeaderOut.src/M000065.html +0 -18
  238. data/doc/rdoc/classes/Mongrel/HttpHandlerPlugin.src/M000013.html +0 -17
  239. data/doc/rdoc/classes/Mongrel/HttpRequest.src/M000130.html +0 -47
  240. data/doc/rdoc/classes/Mongrel/HttpRequest.src/M000131.html +0 -37
  241. data/doc/rdoc/classes/Mongrel/HttpRequest.src/M000132.html +0 -29
  242. data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000073.html +0 -25
  243. data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000074.html +0 -20
  244. data/doc/rdoc/classes/Mongrel/HttpServer.src/M000055.html +0 -25
  245. data/doc/rdoc/classes/Mongrel/HttpServer.src/M000056.html +0 -91
  246. data/doc/rdoc/classes/Mongrel/Rails/RailsConfigurator.src/M000032.html +0 -37
  247. data/doc/rdoc/classes/Mongrel/Rails/RailsHandler.src/M000035.html +0 -23
  248. data/doc/rdoc/classes/Mongrel/Rails/RailsHandler.src/M000036.html +0 -54
  249. data/doc/rdoc/classes/Mongrel/Stats.src/M000137.html +0 -23
  250. data/doc/rdoc/classes/Mongrel/Stats.src/M000138.html +0 -26
  251. data/doc/rdoc/classes/Mongrel/StatusHandler.src/M000066.html +0 -18
  252. data/doc/rdoc/classes/Mongrel/StatusHandler.src/M000067.html +0 -24
  253. data/doc/rdoc/classes/Mongrel/URIClassifier.src/M000085.html +0 -18
  254. data/doc/rdoc/classes/Mongrel/URIClassifier.src/M000086.html +0 -18
  255. data/doc/rdoc/classes/MongrelDbg.src/M000005.html +0 -24
  256. data/doc/rdoc/classes/MongrelDbg.src/M000006.html +0 -20
@@ -6,12 +6,7 @@
6
6
 
7
7
  require 'mongrel'
8
8
  require 'cgi'
9
- require 'sync'
10
9
 
11
- class Sync
12
- # modified to open the waiting list for reporting purposes
13
- attr_accessor :sync_waiting
14
- end
15
10
 
16
11
  module Mongrel
17
12
  module Rails
@@ -32,9 +27,8 @@ module Mongrel
32
27
  # * Finally, construct a Mongrel::CGIWrapper and run Dispatcher.dispatch to have Rails go.
33
28
  #
34
29
  # This means that if you are using page caching it will actually work with Mongrel
35
- # and you should see a decent speed boost (but not as fast as if you use lighttpd).
36
- #
37
- # An additional feature you can use is
30
+ # and you should see a decent speed boost (but not as fast as if you use a static
31
+ # server like Apache or Litespeed).
38
32
  class RailsHandler < Mongrel::HttpHandler
39
33
  attr_reader :files
40
34
  attr_reader :guard
@@ -42,16 +36,15 @@ module Mongrel
42
36
 
43
37
  def initialize(dir, mime_map = {})
44
38
  @files = Mongrel::DirHandler.new(dir,false)
45
- @guard = Sync.new
39
+ @guard = Mutex.new
46
40
  @tick = Time.now
47
41
 
48
- # register the requested mime types
42
+ # Register the requested MIME types
49
43
  mime_map.each {|k,v| Mongrel::DirHandler::add_mime_type(k,v) }
50
44
  end
51
45
 
52
46
  # Attempts to resolve the request as follows:
53
47
  #
54
- #
55
48
  # * If the requested exact PATH_INFO exists as a file then serve it.
56
49
  # * If it exists at PATH_INFO+".html" exists then serve that.
57
50
  # * Finally, construct a Mongrel::CGIWrapper and run Dispatcher.dispatch to have Rails go.
@@ -61,27 +54,29 @@ module Mongrel
61
54
  end
62
55
 
63
56
  path_info = request.params[Mongrel::Const::PATH_INFO]
64
- page_cached = path_info + ".html"
57
+ page_cached = path_info + ActionController::Base.page_cache_extension
65
58
  get_or_head = @@file_only_methods.include? request.params[Mongrel::Const::REQUEST_METHOD]
66
59
 
67
60
  if get_or_head and @files.can_serve(path_info)
68
61
  # File exists as-is so serve it up
69
62
  @files.process(request,response)
70
63
  elsif get_or_head and @files.can_serve(page_cached)
71
- # possible cached page, serve it up
64
+ # Possible cached page, serve it up
72
65
  request.params[Mongrel::Const::PATH_INFO] = page_cached
73
66
  @files.process(request,response)
74
67
  else
75
68
  begin
76
69
  cgi = Mongrel::CGIWrapper.new(request, response)
77
70
  cgi.handler = self
78
- # we don't want the output to be really final until we're out of the lock
71
+ # We don't want the output to be really final until we're out of the lock
79
72
  cgi.default_really_final = false
80
73
 
81
- log_threads_waiting_for(request.params["PATH_INFO"]) if $mongrel_debug_client
74
+ log_threads_waiting_for(@active_request_path || request.params["PATH_INFO"]) if $mongrel_debug_client
82
75
 
83
- @guard.synchronize(:EX) {
76
+ @guard.synchronize {
77
+ @active_request_path = request.params["PATH_INFO"]
84
78
  Dispatcher.dispatch(cgi, ActionController::CgiRequest::DEFAULT_SESSION_OPTIONS, response.body)
79
+ @active_request_path = nil
85
80
  }
86
81
 
87
82
  # This finalizes the output using the proper HttpResponse way
@@ -97,7 +92,6 @@ module Mongrel
97
92
 
98
93
  def log_threads_waiting_for(event)
99
94
  if Time.now - @tick > 10
100
- STDERR.puts "#{Time.now}: #{@guard.sync_waiting.length} threads sync_waiting for #{event}, #{self.listener.workers.list.length} still active in mongrel."
101
95
  @tick = Time.now
102
96
  end
103
97
  end
@@ -106,7 +100,7 @@ module Mongrel
106
100
  # sometimes you get exceptions. In that case just do a real restart.
107
101
  def reload!
108
102
  begin
109
- @guard.synchronize(:EX) {
103
+ @guard.synchronize {
110
104
  $".replace $orig_dollar_quote
111
105
  GC.start
112
106
  Dispatcher.reset_application!
@@ -121,7 +115,7 @@ module Mongrel
121
115
  class RailsConfigurator < Mongrel::Configurator
122
116
 
123
117
  # Creates a single rails handler and returns it so you
124
- # can add it to a uri. You can actually attach it to
118
+ # can add it to a URI. You can actually attach it to
125
119
  # as many URIs as you want, but this returns the
126
120
  # same RailsHandler for each call.
127
121
  #
@@ -139,10 +133,10 @@ module Mongrel
139
133
  # one installed per Ruby interpreter (talk to them
140
134
  # about thread safety). Because of this the first
141
135
  # time you call this function it does all the config
142
- # needed to get your rails working. After that
136
+ # needed to get your Rails working. After that
143
137
  # it returns the one handler you've configured.
144
- # This lets you attach Rails to any URI (and multiple)
145
- # you want, but still protects you from threads destroying
138
+ # This lets you attach Rails to any URI(s) you want,
139
+ # but it still protects you from threads destroying
146
140
  # your handler.
147
141
  def rails(options={})
148
142
 
@@ -167,18 +161,17 @@ module Mongrel
167
161
  @rails_handler = RailsHandler.new(ops[:docroot], ops[:mime])
168
162
  end
169
163
 
170
-
171
- # Reloads rails. This isn't too reliable really, but
172
- # should work for most minimal reload purposes. Only reliable
173
- # way it so stop then start the process.
164
+ # Reloads Rails. This isn't too reliable really, but it
165
+ # should work for most minimal reload purposes. The only reliable
166
+ # way to reload properly is to stop and then start the process.
174
167
  def reload!
175
168
  if not @rails_handler
176
169
  raise "Rails was not configured. Read the docs for RailsConfigurator."
177
170
  end
178
171
 
179
- log "Reloading rails..."
172
+ log "Reloading Rails..."
180
173
  @rails_handler.reload!
181
- log "Done reloading rails."
174
+ log "Done reloading Rails."
182
175
 
183
176
  end
184
177
 
@@ -0,0 +1,34 @@
1
+ require 'thread'
2
+
3
+ # monkey patch Mutex so it does not leak memory.
4
+ class Mutex
5
+
6
+ def lock
7
+ while (Thread.critical = true; @locked)
8
+ @waiting.unshift Thread.current
9
+ Thread.stop
10
+ end
11
+ @locked = true
12
+ Thread.critical = false
13
+ self
14
+ end
15
+
16
+ def unlock
17
+ return unless @locked
18
+ Thread.critical = true
19
+ @locked = false
20
+ begin
21
+ t = @waiting.pop
22
+ t.wakeup if t
23
+ rescue ThreadError
24
+ retry
25
+ end
26
+ Thread.critical = false
27
+ begin
28
+ t.run if t
29
+ rescue ThreadError
30
+ end
31
+ self
32
+ end
33
+
34
+ end
@@ -45,7 +45,7 @@ class HandlersTest < Test::Unit::TestCase
45
45
  uri "/", :handler => SimpleHandler.new
46
46
  uri "/", :handler => stats
47
47
  uri "/404", :handler => Mongrel::Error404Handler.new("Not found")
48
- uri "/dumb", :handler => Mongrel::DeflateFilter.new(:always_deflate => true)
48
+ uri "/dumb", :handler => Mongrel::DeflateFilter.new
49
49
  uri "/dumb", :handler => DumbHandler.new, :in_front => true
50
50
  uri "/files", :handler => Mongrel::DirHandler.new("doc")
51
51
  uri "/files_nodir", :handler => Mongrel::DirHandler.new("doc",listing_allowed=false, index_html="none")
@@ -73,12 +73,24 @@ class HandlersTest < Test::Unit::TestCase
73
73
  check_status res, String
74
74
  end
75
75
 
76
- def test_deflate_access
77
- req = Net::HTTP::Get.new("http://localhost:9998/dumb")
76
+ def test_deflate
77
+ Net::HTTP.start("localhost", 9998) do |h|
78
+ # test that no accept-encoding returns a non-deflated response
79
+ req = h.get("/dumb")
80
+ assert(
81
+ !req.header['Content-Encoding'] ||
82
+ !req.header['Content-Encoding'].include?('deflate'))
83
+ assert_equal "test", req.body
84
+
85
+ req = h.get("/dumb", {"Accept-Encoding" => "deflate"})
86
+ # -MAX_WBITS stops zlib from looking for a zlib header
87
+ inflater = Zlib::Inflate.new(-Zlib::MAX_WBITS)
88
+ assert req.header['Content-Encoding'].include?('deflate')
89
+ assert_equal "test", inflater.inflate(req.body)
90
+ end
78
91
  end
79
92
 
80
93
  # TODO: find out why this fails on win32 but nowhere else
81
- #
82
94
  #def test_posting_fails_dirhandler
83
95
  # req = Net::HTTP::Post.new("http://localhost:9998/files/rdoc/")
84
96
  # req.set_form_data({'from'=>'2005-01-01', 'to'=>'2005-03-31'}, ';')
@@ -35,6 +35,14 @@ class HttpParserTest < Test::Unit::TestCase
35
35
  assert_equal should_be_good.length, nread
36
36
  assert parser.finished?
37
37
  assert !parser.error?
38
+
39
+ nasty_pound_header = "GET / HTTP/1.1\r\nX-SSL-Bullshit: -----BEGIN CERTIFICATE-----\r\n\tMIIFbTCCBFWgAwIBAgICH4cwDQYJKoZIhvcNAQEFBQAwcDELMAkGA1UEBhMCVUsx\r\n\tETAPBgNVBAoTCGVTY2llbmNlMRIwEAYDVQQLEwlBdXRob3JpdHkxCzAJBgNVBAMT\r\n\tAkNBMS0wKwYJKoZIhvcNAQkBFh5jYS1vcGVyYXRvckBncmlkLXN1cHBvcnQuYWMu\r\n\tdWswHhcNMDYwNzI3MTQxMzI4WhcNMDcwNzI3MTQxMzI4WjBbMQswCQYDVQQGEwJV\r\n\tSzERMA8GA1UEChMIZVNjaWVuY2UxEzARBgNVBAsTCk1hbmNoZXN0ZXIxCzAJBgNV\r\n\tBAcTmrsogriqMWLAk1DMRcwFQYDVQQDEw5taWNoYWVsIHBhcmQYJKoZIhvcNAQEB\r\n\tBQADggEPADCCAQoCggEBANPEQBgl1IaKdSS1TbhF3hEXSl72G9J+WC/1R64fAcEF\r\n\tW51rEyFYiIeZGx/BVzwXbeBoNUK41OK65sxGuflMo5gLflbwJtHBRIEKAfVVp3YR\r\n\tgW7cMA/s/XKgL1GEC7rQw8lIZT8RApukCGqOVHSi/F1SiFlPDxuDfmdiNzL31+sL\r\n\t0iwHDdNkGjy5pyBSB8Y79dsSJtCW/iaLB0/n8Sj7HgvvZJ7x0fr+RQjYOUUfrePP\r\n\tu2MSpFyf+9BbC/aXgaZuiCvSR+8Snv3xApQY+fULK/xY8h8Ua51iXoQ5jrgu2SqR\r\n\twgA7BUi3G8LFzMBl8FRCDYGUDy7M6QaHXx1ZWIPWNKsCAwEAAaOCAiQwggIgMAwG\r\n\tA1UdEwEB/wQCMAAwEQYJYIZIAYb4QgEBBAQDAgWgMA4GA1UdDwEB/wQEAwID6DAs\r\n\tBglghkgBhvhCAQ0EHxYdVUsgZS1TY2llbmNlIFVzZXIgQ2VydGlmaWNhdGUwHQYD\r\n\tVR0OBBYEFDTt/sf9PeMaZDHkUIldrDYMNTBZMIGaBgNVHSMEgZIwgY+AFAI4qxGj\r\n\tloCLDdMVKwiljjDastqooXSkcjBwMQswCQYDVQQGEwJVSzERMA8GA1UEChMIZVNj\r\n\taWVuY2UxEjAQBgNVBAsTCUF1dGhvcml0eTELMAkGA1UEAxMCQ0ExLTArBgkqhkiG\r\n\t9w0BCQEWHmNhLW9wZXJhdG9yQGdyaWQtc3VwcG9ydC5hYy51a4IBADApBgNVHRIE\r\n\tIjAggR5jYS1vcGVyYXRvckBncmlkLXN1cHBvcnQuYWMudWswGQYDVR0gBBIwEDAO\r\n\tBgwrBgEEAdkvAQEBAQYwPQYJYIZIAYb4QgEEBDAWLmh0dHA6Ly9jYS5ncmlkLXN1\r\n\tcHBvcnQuYWMudmT4sopwqlBWsvcHViL2NybC9jYWNybC5jcmwwPQYJYIZIAYb4QgEDBDAWLmh0\r\n\tdHA6Ly9jYS5ncmlkLXN1cHBvcnQuYWMudWsvcHViL2NybC9jYWNybC5jcmwwPwYD\r\n\tVR0fBDgwNjA0oDKgMIYuaHR0cDovL2NhLmdyaWQt5hYy51ay9wdWIv\r\n\tY3JsL2NhY3JsLmNybDANBgkqhkiG9w0BAQUFAAOCAQEAS/U4iiooBENGW/Hwmmd3\r\n\tXCy6Zrt08YjKCzGNjorT98g8uGsqYjSxv/hmi0qlnlHs+k/3Iobc3LjS5AMYr5L8\r\n\tUO7OSkgFFlLHQyC9JzPfmLCAugvzEbyv4Olnsr8hbxF1MbKZoQxUZtMVu29wjfXk\r\n\thTeApBv7eaKCWpSp7MCbvgzm74izKhu3vlDk9w6qVrxePfGgpKPqfHiOoGhFnbTK\r\n\twTC6o2xq5y0qZ03JonF7OJspEd3I5zKY3E+ov7/ZhW6DqT8UFvsAdjvQbXyhV8Eu\r\n\tYhixw1aKEPzNjNowuIseVogKOLXxWI5vAi5HgXdS0/ES5gDGsABo4fqovUKlgop3\r\n\tRA==\r\n\t-----END CERTIFICATE-----\r\n\r\n"
40
+ parser = HttpParser.new
41
+ req = {}
42
+ #nread = parser.execute(req, nasty_pound_header, 0)
43
+ #assert_equal nasty_pound_header.length, nread
44
+ #assert parser.finished?
45
+ #assert !parser.error?
38
46
  end
39
47
 
40
48
  def test_parse_error
@@ -17,6 +17,12 @@ class UploadBeginHandler < Mongrel::HttpHandler
17
17
  @request_notify = true
18
18
  end
19
19
 
20
+ def reset
21
+ @request_began =
22
+ @request_progressed =
23
+ @request_processed = false
24
+ end
25
+
20
26
  def request_begins(params)
21
27
  @request_began = true
22
28
  end
@@ -34,9 +40,7 @@ class UploadBeginHandler < Mongrel::HttpHandler
34
40
 
35
41
  end
36
42
 
37
-
38
43
  class RequestProgressTest < Test::Unit::TestCase
39
-
40
44
  def setup
41
45
  @server = Mongrel::HttpServer.new("127.0.0.1", 9998)
42
46
  @handler = UploadBeginHandler.new
@@ -55,4 +59,43 @@ class RequestProgressTest < Test::Unit::TestCase
55
59
  assert @handler.request_processed
56
60
  end
57
61
 
62
+ def call_and_assert_handlers_in_turn(handlers)
63
+ # reset all handlers
64
+ handlers.each { |h| h.reset }
65
+
66
+ # make the call
67
+ Net::HTTP.get("localhost", "/upload", 9998)
68
+
69
+ # assert that each one was fired
70
+ handlers.each { |h|
71
+ assert h.request_began && h.request_progressed && h.request_processed,
72
+ "Callbacks NOT fired for #{h}"
73
+ }
74
+ end
75
+
76
+ def test_more_than_one_begin_end_progress
77
+ handlers = [@handler]
78
+
79
+ second = UploadBeginHandler.new
80
+ @server.register("/upload", second)
81
+ handlers << second
82
+ call_and_assert_handlers_in_turn(handlers)
83
+
84
+ # check three handlers
85
+ third = UploadBeginHandler.new
86
+ @server.register("/upload", third)
87
+ handlers << third
88
+ call_and_assert_handlers_in_turn(handlers)
89
+
90
+ # remove handlers to make sure they've all gone away
91
+ @server.unregister("/upload")
92
+ handlers.each { |h| h.reset }
93
+ Net::HTTP.get("localhost", "/upload", 9998)
94
+ handlers.each { |h|
95
+ assert !h.request_began && !h.request_progressed && !h.request_processed
96
+ }
97
+
98
+ # re-register upload to the state before this test
99
+ @server.register("/upload", @handler)
100
+ end
58
101
  end
@@ -37,6 +37,37 @@ class ResponseTest < Test::Unit::TestCase
37
37
  assert io.length > 0, "output didn't have data"
38
38
  end
39
39
 
40
+ def test_response_duplicate_header_squash
41
+ io = StringIO.new
42
+ resp = HttpResponse.new(io)
43
+ resp.start do |head,out|
44
+ head["Content-Length"] = 30
45
+ head["Content-Length"] = 0
46
+ end
47
+
48
+ resp.finished
49
+
50
+ assert_equal io.length, 95, "too much output"
51
+ end
52
+
53
+
54
+ def test_response_some_duplicates_allowed
55
+ allowed_duplicates = ["Set-Cookie", "Set-Cookie2", "Warning", "WWW-Authenticate"]
56
+ io = StringIO.new
57
+ resp = HttpResponse.new(io)
58
+ resp.start do |head,out|
59
+ allowed_duplicates.each do |dup|
60
+ 10.times do |i|
61
+ head[dup] = i
62
+ end
63
+ end
64
+ end
65
+
66
+ resp.finished
67
+
68
+ assert_equal io.length, 734, "wrong amount of output"
69
+ end
70
+
40
71
  def test_response_404
41
72
  io = StringIO.new
42
73
 
metadata CHANGED
@@ -1,17 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.8.11
2
+ rubygems_version: 0.9.0
3
3
  specification_version: 1
4
4
  name: mongrel
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.3.13.4
7
- date: 2006-09-18 00:00:00 -07:00
8
- summary: A small fast HTTP library and server that runs Rails, Camping, and Nitro apps.
6
+ version: "1.0"
7
+ date: 2007-01-19 00:00:00 -08:00
8
+ summary: A small fast HTTP library and server that runs Rails, Camping, Nitro and Iowa apps.
9
9
  require_paths:
10
10
  - lib
11
11
  email:
12
12
  homepage:
13
13
  rubyforge_project:
14
- description: A small fast HTTP library and server that runs Rails, Camping, and Nitro apps.
14
+ description: A small fast HTTP library and server that runs Rails, Camping, Nitro and Iowa apps.
15
15
  autorequire:
16
16
  default_executable:
17
17
  bindir: bin
@@ -25,6 +25,7 @@ required_ruby_version: !ruby/object:Gem::Version::Requirement
25
25
  platform: ruby
26
26
  signing_key:
27
27
  cert_chain:
28
+ post_install_message:
28
29
  authors:
29
30
  - Zed A. Shaw
30
31
  files:
@@ -32,9 +33,7 @@ files:
32
33
  - LICENSE
33
34
  - README
34
35
  - Rakefile
35
- - bin/mongrel_rails_svc
36
36
  - bin/mongrel_rails
37
- - bin/mongrel_rails_service
38
37
  - doc/rdoc/files
39
38
  - doc/rdoc/index.html
40
39
  - doc/rdoc/rdoc-style.css
@@ -51,6 +50,7 @@ files:
51
50
  - doc/rdoc/files/ext/http11
52
51
  - doc/rdoc/files/ext/http11/http11_c.html
53
52
  - doc/rdoc/files/lib/mongrel_rb.html
53
+ - doc/rdoc/files/lib/mutex_fix_rb.html
54
54
  - doc/rdoc/files/lib/mongrel
55
55
  - doc/rdoc/files/lib/mongrel/tcphack_rb.html
56
56
  - doc/rdoc/files/lib/mongrel/handlers_rb.html
@@ -63,6 +63,7 @@ files:
63
63
  - doc/rdoc/files/lib/mongrel/debug_rb.html
64
64
  - doc/rdoc/files/lib/mongrel/configurator_rb.html
65
65
  - doc/rdoc/classes/IO.src
66
+ - doc/rdoc/classes/Mutex.src
66
67
  - doc/rdoc/classes/RequestLog.html
67
68
  - doc/rdoc/classes/Kernel.src
68
69
  - doc/rdoc/classes/Kernel.html
@@ -74,11 +75,13 @@ files:
74
75
  - doc/rdoc/classes/TCPServer.html
75
76
  - doc/rdoc/classes/MongrelDbg.src
76
77
  - doc/rdoc/classes/MongrelDbg.html
77
- - doc/rdoc/classes/Sync.html
78
- - doc/rdoc/classes/IO.src/M000001.html
79
- - doc/rdoc/classes/IO.src/M000002.html
80
- - doc/rdoc/classes/Kernel.src/M000010.html
81
- - doc/rdoc/classes/Kernel.src/M000011.html
78
+ - doc/rdoc/classes/Mutex.html
79
+ - doc/rdoc/classes/IO.src/M000003.html
80
+ - doc/rdoc/classes/IO.src/M000004.html
81
+ - doc/rdoc/classes/Mutex.src/M000001.html
82
+ - doc/rdoc/classes/Mutex.src/M000002.html
83
+ - doc/rdoc/classes/Kernel.src/M000012.html
84
+ - doc/rdoc/classes/Kernel.src/M000013.html
82
85
  - doc/rdoc/classes/RequestLog/Threads.html
83
86
  - doc/rdoc/classes/RequestLog/Objects.html
84
87
  - doc/rdoc/classes/RequestLog/Params.html
@@ -89,12 +92,12 @@ files:
89
92
  - doc/rdoc/classes/RequestLog/Threads.src
90
93
  - doc/rdoc/classes/RequestLog/Access.html
91
94
  - doc/rdoc/classes/RequestLog/Files.src
92
- - doc/rdoc/classes/RequestLog/Objects.src/M000147.html
93
- - doc/rdoc/classes/RequestLog/Access.src/M000144.html
94
- - doc/rdoc/classes/RequestLog/Params.src/M000148.html
95
- - doc/rdoc/classes/RequestLog/Threads.src/M000146.html
96
- - doc/rdoc/classes/RequestLog/Files.src/M000145.html
97
- - doc/rdoc/classes/TCPServer.src/M000003.html
95
+ - doc/rdoc/classes/RequestLog/Objects.src/M000150.html
96
+ - doc/rdoc/classes/RequestLog/Access.src/M000147.html
97
+ - doc/rdoc/classes/RequestLog/Params.src/M000151.html
98
+ - doc/rdoc/classes/RequestLog/Threads.src/M000149.html
99
+ - doc/rdoc/classes/RequestLog/Files.src/M000148.html
100
+ - doc/rdoc/classes/TCPServer.src/M000005.html
98
101
  - doc/rdoc/classes/Mongrel/HttpServer.src
99
102
  - doc/rdoc/classes/Mongrel/Rails.html
100
103
  - doc/rdoc/classes/Mongrel/Rails
@@ -141,8 +144,6 @@ files:
141
144
  - doc/rdoc/classes/Mongrel/DirHandler.src
142
145
  - doc/rdoc/classes/Mongrel/DeflateFilter.src
143
146
  - doc/rdoc/classes/Mongrel/HeaderOut.html
144
- - doc/rdoc/classes/Mongrel/HttpServer.src/M000055.html
145
- - doc/rdoc/classes/Mongrel/HttpServer.src/M000056.html
146
147
  - doc/rdoc/classes/Mongrel/HttpServer.src/M000057.html
147
148
  - doc/rdoc/classes/Mongrel/HttpServer.src/M000058.html
148
149
  - doc/rdoc/classes/Mongrel/HttpServer.src/M000059.html
@@ -150,30 +151,30 @@ files:
150
151
  - doc/rdoc/classes/Mongrel/HttpServer.src/M000061.html
151
152
  - doc/rdoc/classes/Mongrel/HttpServer.src/M000062.html
152
153
  - doc/rdoc/classes/Mongrel/HttpServer.src/M000063.html
154
+ - doc/rdoc/classes/Mongrel/HttpServer.src/M000064.html
155
+ - doc/rdoc/classes/Mongrel/HttpServer.src/M000065.html
153
156
  - doc/rdoc/classes/Mongrel/Rails/RailsConfigurator.src
154
157
  - doc/rdoc/classes/Mongrel/Rails/RailsHandler.src
155
158
  - doc/rdoc/classes/Mongrel/Rails/RailsConfigurator.html
156
159
  - doc/rdoc/classes/Mongrel/Rails/RailsHandler.html
157
- - doc/rdoc/classes/Mongrel/Rails/RailsConfigurator.src/M000032.html
158
- - doc/rdoc/classes/Mongrel/Rails/RailsConfigurator.src/M000033.html
159
160
  - doc/rdoc/classes/Mongrel/Rails/RailsConfigurator.src/M000034.html
160
- - doc/rdoc/classes/Mongrel/Rails/RailsHandler.src/M000035.html
161
- - doc/rdoc/classes/Mongrel/Rails/RailsHandler.src/M000036.html
161
+ - doc/rdoc/classes/Mongrel/Rails/RailsConfigurator.src/M000035.html
162
+ - doc/rdoc/classes/Mongrel/Rails/RailsConfigurator.src/M000036.html
162
163
  - doc/rdoc/classes/Mongrel/Rails/RailsHandler.src/M000037.html
163
164
  - doc/rdoc/classes/Mongrel/Rails/RailsHandler.src/M000038.html
165
+ - doc/rdoc/classes/Mongrel/Rails/RailsHandler.src/M000039.html
166
+ - doc/rdoc/classes/Mongrel/Rails/RailsHandler.src/M000040.html
164
167
  - doc/rdoc/classes/Mongrel/Camping/CampingHandler.src
165
168
  - doc/rdoc/classes/Mongrel/Camping/CampingHandler.html
166
- - doc/rdoc/classes/Mongrel/Camping/CampingHandler.src/M000040.html
167
- - doc/rdoc/classes/Mongrel/Camping/CampingHandler.src/M000041.html
168
- - doc/rdoc/classes/Mongrel/HttpHandlerPlugin.src/M000012.html
169
- - doc/rdoc/classes/Mongrel/HttpHandlerPlugin.src/M000013.html
169
+ - doc/rdoc/classes/Mongrel/Camping/CampingHandler.src/M000042.html
170
+ - doc/rdoc/classes/Mongrel/Camping/CampingHandler.src/M000043.html
170
171
  - doc/rdoc/classes/Mongrel/HttpHandlerPlugin.src/M000014.html
171
172
  - doc/rdoc/classes/Mongrel/HttpHandlerPlugin.src/M000015.html
172
- - doc/rdoc/classes/Mongrel/StatisticsFilter.src/M000125.html
173
- - doc/rdoc/classes/Mongrel/StatisticsFilter.src/M000126.html
174
- - doc/rdoc/classes/Mongrel/StatisticsFilter.src/M000127.html
175
- - doc/rdoc/classes/Mongrel/Configurator.src/M000091.html
176
- - doc/rdoc/classes/Mongrel/Configurator.src/M000092.html
173
+ - doc/rdoc/classes/Mongrel/HttpHandlerPlugin.src/M000016.html
174
+ - doc/rdoc/classes/Mongrel/HttpHandlerPlugin.src/M000017.html
175
+ - doc/rdoc/classes/Mongrel/StatisticsFilter.src/M000128.html
176
+ - doc/rdoc/classes/Mongrel/StatisticsFilter.src/M000129.html
177
+ - doc/rdoc/classes/Mongrel/StatisticsFilter.src/M000130.html
177
178
  - doc/rdoc/classes/Mongrel/Configurator.src/M000093.html
178
179
  - doc/rdoc/classes/Mongrel/Configurator.src/M000094.html
179
180
  - doc/rdoc/classes/Mongrel/Configurator.src/M000095.html
@@ -193,21 +194,22 @@ files:
193
194
  - doc/rdoc/classes/Mongrel/Configurator.src/M000109.html
194
195
  - doc/rdoc/classes/Mongrel/Configurator.src/M000110.html
195
196
  - doc/rdoc/classes/Mongrel/Configurator.src/M000111.html
197
+ - doc/rdoc/classes/Mongrel/Configurator.src/M000112.html
198
+ - doc/rdoc/classes/Mongrel/Configurator.src/M000113.html
199
+ - doc/rdoc/classes/Mongrel/Configurator.src/M000114.html
196
200
  - doc/rdoc/classes/Mongrel/HttpRequest.src/M000135.html
197
- - doc/rdoc/classes/Mongrel/HttpRequest.src/M000130.html
198
- - doc/rdoc/classes/Mongrel/HttpRequest.src/M000131.html
199
- - doc/rdoc/classes/Mongrel/HttpRequest.src/M000132.html
201
+ - doc/rdoc/classes/Mongrel/HttpRequest.src/M000136.html
202
+ - doc/rdoc/classes/Mongrel/HttpRequest.src/M000137.html
203
+ - doc/rdoc/classes/Mongrel/HttpRequest.src/M000138.html
200
204
  - doc/rdoc/classes/Mongrel/HttpRequest.src/M000133.html
201
205
  - doc/rdoc/classes/Mongrel/HttpRequest.src/M000134.html
202
206
  - doc/rdoc/classes/Mongrel/Command/Registry.html
203
207
  - doc/rdoc/classes/Mongrel/Command/Registry.src
204
208
  - doc/rdoc/classes/Mongrel/Command/Base.html
205
209
  - doc/rdoc/classes/Mongrel/Command/Base.src
206
- - doc/rdoc/classes/Mongrel/Command/Registry.src/M000029.html
207
- - doc/rdoc/classes/Mongrel/Command/Registry.src/M000030.html
208
210
  - doc/rdoc/classes/Mongrel/Command/Registry.src/M000031.html
209
- - doc/rdoc/classes/Mongrel/Command/Base.src/M000016.html
210
- - doc/rdoc/classes/Mongrel/Command/Base.src/M000017.html
211
+ - doc/rdoc/classes/Mongrel/Command/Registry.src/M000032.html
212
+ - doc/rdoc/classes/Mongrel/Command/Registry.src/M000033.html
211
213
  - doc/rdoc/classes/Mongrel/Command/Base.src/M000018.html
212
214
  - doc/rdoc/classes/Mongrel/Command/Base.src/M000019.html
213
215
  - doc/rdoc/classes/Mongrel/Command/Base.src/M000020.html
@@ -219,23 +221,25 @@ files:
219
221
  - doc/rdoc/classes/Mongrel/Command/Base.src/M000026.html
220
222
  - doc/rdoc/classes/Mongrel/Command/Base.src/M000027.html
221
223
  - doc/rdoc/classes/Mongrel/Command/Base.src/M000028.html
222
- - doc/rdoc/classes/Mongrel/Error404Handler.src/M000123.html
223
- - doc/rdoc/classes/Mongrel/Error404Handler.src/M000124.html
224
- - doc/rdoc/classes/Mongrel/Stats.src/M000136.html
225
- - doc/rdoc/classes/Mongrel/Stats.src/M000137.html
226
- - doc/rdoc/classes/Mongrel/Stats.src/M000138.html
224
+ - doc/rdoc/classes/Mongrel/Command/Base.src/M000029.html
225
+ - doc/rdoc/classes/Mongrel/Command/Base.src/M000030.html
226
+ - doc/rdoc/classes/Mongrel/Error404Handler.src/M000126.html
227
+ - doc/rdoc/classes/Mongrel/Error404Handler.src/M000127.html
227
228
  - doc/rdoc/classes/Mongrel/Stats.src/M000139.html
228
229
  - doc/rdoc/classes/Mongrel/Stats.src/M000140.html
229
230
  - doc/rdoc/classes/Mongrel/Stats.src/M000141.html
230
231
  - doc/rdoc/classes/Mongrel/Stats.src/M000142.html
231
232
  - doc/rdoc/classes/Mongrel/Stats.src/M000143.html
232
- - doc/rdoc/classes/Mongrel/Camping.src/M000039.html
233
- - doc/rdoc/classes/Mongrel/StatusHandler.src/M000066.html
234
- - doc/rdoc/classes/Mongrel/StatusHandler.src/M000067.html
233
+ - doc/rdoc/classes/Mongrel/Stats.src/M000144.html
234
+ - doc/rdoc/classes/Mongrel/Stats.src/M000145.html
235
+ - doc/rdoc/classes/Mongrel/Stats.src/M000146.html
236
+ - doc/rdoc/classes/Mongrel/Camping.src/M000041.html
235
237
  - doc/rdoc/classes/Mongrel/StatusHandler.src/M000068.html
236
238
  - doc/rdoc/classes/Mongrel/StatusHandler.src/M000069.html
237
- - doc/rdoc/classes/Mongrel/HeaderOut.src/M000064.html
238
- - doc/rdoc/classes/Mongrel/HeaderOut.src/M000065.html
239
+ - doc/rdoc/classes/Mongrel/StatusHandler.src/M000070.html
240
+ - doc/rdoc/classes/Mongrel/StatusHandler.src/M000071.html
241
+ - doc/rdoc/classes/Mongrel/HeaderOut.src/M000066.html
242
+ - doc/rdoc/classes/Mongrel/HeaderOut.src/M000067.html
239
243
  - doc/rdoc/classes/Mongrel/HttpResponse.src/M000076.html
240
244
  - doc/rdoc/classes/Mongrel/HttpResponse.src/M000077.html
241
245
  - doc/rdoc/classes/Mongrel/HttpResponse.src/M000078.html
@@ -245,48 +249,48 @@ files:
245
249
  - doc/rdoc/classes/Mongrel/HttpResponse.src/M000082.html
246
250
  - doc/rdoc/classes/Mongrel/HttpResponse.src/M000083.html
247
251
  - doc/rdoc/classes/Mongrel/HttpResponse.src/M000084.html
248
- - doc/rdoc/classes/Mongrel/HttpResponse.src/M000073.html
249
- - doc/rdoc/classes/Mongrel/HttpResponse.src/M000074.html
252
+ - doc/rdoc/classes/Mongrel/HttpResponse.src/M000085.html
253
+ - doc/rdoc/classes/Mongrel/HttpResponse.src/M000086.html
250
254
  - doc/rdoc/classes/Mongrel/HttpResponse.src/M000075.html
251
- - doc/rdoc/classes/Mongrel/HttpParser.src/M000042.html
252
- - doc/rdoc/classes/Mongrel/HttpParser.src/M000043.html
253
255
  - doc/rdoc/classes/Mongrel/HttpParser.src/M000044.html
254
256
  - doc/rdoc/classes/Mongrel/HttpParser.src/M000045.html
255
257
  - doc/rdoc/classes/Mongrel/HttpParser.src/M000046.html
256
258
  - doc/rdoc/classes/Mongrel/HttpParser.src/M000047.html
257
259
  - doc/rdoc/classes/Mongrel/HttpParser.src/M000048.html
258
- - doc/rdoc/classes/Mongrel/CGIWrapper.src/M000112.html
259
- - doc/rdoc/classes/Mongrel/CGIWrapper.src/M000113.html
260
- - doc/rdoc/classes/Mongrel/CGIWrapper.src/M000114.html
260
+ - doc/rdoc/classes/Mongrel/HttpParser.src/M000049.html
261
+ - doc/rdoc/classes/Mongrel/HttpParser.src/M000050.html
261
262
  - doc/rdoc/classes/Mongrel/CGIWrapper.src/M000115.html
262
263
  - doc/rdoc/classes/Mongrel/CGIWrapper.src/M000116.html
263
264
  - doc/rdoc/classes/Mongrel/CGIWrapper.src/M000117.html
264
265
  - doc/rdoc/classes/Mongrel/CGIWrapper.src/M000118.html
265
266
  - doc/rdoc/classes/Mongrel/CGIWrapper.src/M000119.html
266
267
  - doc/rdoc/classes/Mongrel/CGIWrapper.src/M000120.html
267
- - doc/rdoc/classes/Mongrel/RedirectHandler.src/M000128.html
268
- - doc/rdoc/classes/Mongrel/RedirectHandler.src/M000129.html
269
- - doc/rdoc/classes/Mongrel/HttpHandler.src/M000070.html
270
- - doc/rdoc/classes/Mongrel/HttpHandler.src/M000071.html
268
+ - doc/rdoc/classes/Mongrel/CGIWrapper.src/M000121.html
269
+ - doc/rdoc/classes/Mongrel/CGIWrapper.src/M000122.html
270
+ - doc/rdoc/classes/Mongrel/CGIWrapper.src/M000123.html
271
+ - doc/rdoc/classes/Mongrel/RedirectHandler.src/M000131.html
272
+ - doc/rdoc/classes/Mongrel/RedirectHandler.src/M000132.html
271
273
  - doc/rdoc/classes/Mongrel/HttpHandler.src/M000072.html
272
- - doc/rdoc/classes/Mongrel/URIClassifier.src/M000085.html
273
- - doc/rdoc/classes/Mongrel/URIClassifier.src/M000086.html
274
+ - doc/rdoc/classes/Mongrel/HttpHandler.src/M000073.html
275
+ - doc/rdoc/classes/Mongrel/HttpHandler.src/M000074.html
274
276
  - doc/rdoc/classes/Mongrel/URIClassifier.src/M000087.html
275
277
  - doc/rdoc/classes/Mongrel/URIClassifier.src/M000088.html
276
278
  - doc/rdoc/classes/Mongrel/URIClassifier.src/M000089.html
277
279
  - doc/rdoc/classes/Mongrel/URIClassifier.src/M000090.html
278
- - doc/rdoc/classes/Mongrel/DirHandler.src/M000049.html
279
- - doc/rdoc/classes/Mongrel/DirHandler.src/M000050.html
280
+ - doc/rdoc/classes/Mongrel/URIClassifier.src/M000091.html
281
+ - doc/rdoc/classes/Mongrel/URIClassifier.src/M000092.html
280
282
  - doc/rdoc/classes/Mongrel/DirHandler.src/M000051.html
281
283
  - doc/rdoc/classes/Mongrel/DirHandler.src/M000052.html
282
284
  - doc/rdoc/classes/Mongrel/DirHandler.src/M000053.html
283
285
  - doc/rdoc/classes/Mongrel/DirHandler.src/M000054.html
284
- - doc/rdoc/classes/Mongrel/DeflateFilter.src/M000121.html
285
- - doc/rdoc/classes/Mongrel/DeflateFilter.src/M000122.html
286
+ - doc/rdoc/classes/Mongrel/DirHandler.src/M000055.html
287
+ - doc/rdoc/classes/Mongrel/DirHandler.src/M000056.html
288
+ - doc/rdoc/classes/Mongrel/DeflateFilter.src/M000124.html
289
+ - doc/rdoc/classes/Mongrel/DeflateFilter.src/M000125.html
286
290
  - doc/rdoc/classes/MongrelDbg.src/M000008.html
287
291
  - doc/rdoc/classes/MongrelDbg.src/M000009.html
288
- - doc/rdoc/classes/MongrelDbg.src/M000005.html
289
- - doc/rdoc/classes/MongrelDbg.src/M000006.html
292
+ - doc/rdoc/classes/MongrelDbg.src/M000010.html
293
+ - doc/rdoc/classes/MongrelDbg.src/M000011.html
290
294
  - doc/rdoc/classes/MongrelDbg.src/M000007.html
291
295
  - test/mongrel.conf
292
296
  - test/test_http11.rb
@@ -327,6 +331,7 @@ files:
327
331
  - tools/trickletest.rb
328
332
  - tools/rakehelp.rb
329
333
  - lib/mongrel.rb
334
+ - lib/mutex_fix.rb
330
335
  - lib/mongrel/handlers.rb
331
336
  - lib/mongrel/camping.rb
332
337
  - lib/mongrel/tcphack.rb
@@ -339,6 +344,7 @@ files:
339
344
  - lib/mongrel/configurator.rb
340
345
  - ext/http11/MANIFEST
341
346
  - setup.rb
347
+ - lib/mongrel/mime_types.yml
342
348
  test_files:
343
349
  - test/test_http11.rb
344
350
  - test/test_configurator.rb
@@ -370,7 +376,16 @@ dependencies:
370
376
  requirements:
371
377
  - - ">="
372
378
  - !ruby/object:Gem::Version
373
- version: 0.4.2
379
+ version: 1.0.3
380
+ version:
381
+ - !ruby/object:Gem::Dependency
382
+ name: fastthread
383
+ version_requirement:
384
+ version_requirements: !ruby/object:Gem::Version::Requirement
385
+ requirements:
386
+ - - ">="
387
+ - !ruby/object:Gem::Version
388
+ version: 0.6.2
374
389
  version:
375
390
  - !ruby/object:Gem::Dependency
376
391
  name: gem_plugin
@@ -379,5 +394,14 @@ dependencies:
379
394
  requirements:
380
395
  - - ">="
381
396
  - !ruby/object:Gem::Version
382
- version: 0.2.1
397
+ version: 0.2.2
398
+ version:
399
+ - !ruby/object:Gem::Dependency
400
+ name: cgi_multipart_eof_fix
401
+ version_requirement:
402
+ version_requirements: !ruby/object:Gem::Version::Requirement
403
+ requirements:
404
+ - - ">="
405
+ - !ruby/object:Gem::Version
406
+ version: 1.0.0
383
407
  version: