mongrel 0.3.13.3 → 0.3.13.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (258) hide show
  1. data/Rakefile +5 -4
  2. data/bin/mongrel_rails +162 -169
  3. data/doc/rdoc/classes/IO.src/M000001.html +5 -5
  4. data/doc/rdoc/classes/IO.src/M000002.html +5 -5
  5. data/doc/rdoc/classes/Kernel.html +10 -10
  6. data/doc/rdoc/classes/Kernel.src/M000010.html +19 -0
  7. data/doc/rdoc/classes/Kernel.src/M000011.html +23 -0
  8. data/doc/rdoc/classes/Mongrel.html +27 -10
  9. data/doc/rdoc/classes/Mongrel/CGIWrapper.html +67 -54
  10. data/doc/rdoc/classes/Mongrel/CGIWrapper.src/{M000101.html → M000112.html} +11 -10
  11. data/doc/rdoc/classes/Mongrel/CGIWrapper.src/{M000102.html → M000113.html} +31 -31
  12. data/doc/rdoc/classes/Mongrel/CGIWrapper.src/{M000103.html → M000114.html} +20 -20
  13. data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000115.html +32 -0
  14. data/doc/rdoc/classes/Mongrel/CGIWrapper.src/{M000105.html → M000116.html} +11 -11
  15. data/doc/rdoc/classes/Mongrel/CGIWrapper.src/{M000106.html → M000117.html} +4 -4
  16. data/doc/rdoc/classes/Mongrel/CGIWrapper.src/{M000107.html → M000118.html} +4 -4
  17. data/doc/rdoc/classes/Mongrel/CGIWrapper.src/{M000108.html → M000119.html} +4 -4
  18. data/doc/rdoc/classes/Mongrel/CGIWrapper.src/{M000109.html → M000120.html} +5 -5
  19. data/doc/rdoc/classes/Mongrel/Camping.html +5 -5
  20. data/doc/rdoc/classes/Mongrel/Camping.src/{M000048.html → M000039.html} +0 -0
  21. data/doc/rdoc/classes/Mongrel/Camping/CampingHandler.html +10 -10
  22. data/doc/rdoc/classes/Mongrel/Camping/CampingHandler.src/{M000049.html → M000040.html} +0 -0
  23. data/doc/rdoc/classes/Mongrel/Camping/CampingHandler.src/{M000050.html → M000041.html} +0 -0
  24. data/doc/rdoc/classes/Mongrel/Command/Base.html +65 -65
  25. data/doc/rdoc/classes/Mongrel/Command/Base.src/M000016.html +24 -0
  26. data/doc/rdoc/classes/Mongrel/Command/Base.src/M000017.html +42 -0
  27. data/doc/rdoc/classes/Mongrel/Command/Base.src/M000018.html +18 -0
  28. data/doc/rdoc/classes/Mongrel/Command/Base.src/{M000029.html → M000019.html} +0 -0
  29. data/doc/rdoc/classes/Mongrel/Command/Base.src/{M000030.html → M000020.html} +0 -0
  30. data/doc/rdoc/classes/Mongrel/Command/Base.src/{M000031.html → M000021.html} +0 -0
  31. data/doc/rdoc/classes/Mongrel/Command/Base.src/{M000032.html → M000022.html} +0 -0
  32. data/doc/rdoc/classes/Mongrel/Command/Base.src/{M000033.html → M000023.html} +0 -0
  33. data/doc/rdoc/classes/Mongrel/Command/Base.src/{M000034.html → M000024.html} +0 -0
  34. data/doc/rdoc/classes/Mongrel/Command/Base.src/{M000035.html → M000025.html} +0 -0
  35. data/doc/rdoc/classes/Mongrel/Command/Base.src/M000026.html +11 -11
  36. data/doc/rdoc/classes/Mongrel/Command/Base.src/M000027.html +11 -29
  37. data/doc/rdoc/classes/Mongrel/Command/Base.src/M000028.html +5 -5
  38. data/doc/rdoc/classes/Mongrel/Command/Registry.html +15 -15
  39. data/doc/rdoc/classes/Mongrel/Command/Registry.src/{M000039.html → M000029.html} +0 -0
  40. data/doc/rdoc/classes/Mongrel/Command/Registry.src/{M000040.html → M000030.html} +10 -6
  41. data/doc/rdoc/classes/Mongrel/Command/Registry.src/M000031.html +58 -0
  42. data/doc/rdoc/classes/Mongrel/Configurator.html +115 -115
  43. data/doc/rdoc/classes/Mongrel/Configurator.src/M000091.html +27 -0
  44. data/doc/rdoc/classes/Mongrel/Configurator.src/M000092.html +31 -0
  45. data/doc/rdoc/classes/Mongrel/Configurator.src/M000093.html +21 -0
  46. data/doc/rdoc/classes/Mongrel/Configurator.src/M000094.html +20 -0
  47. data/doc/rdoc/classes/Mongrel/Configurator.src/M000095.html +23 -0
  48. data/doc/rdoc/classes/Mongrel/Configurator.src/{M000115.html → M000096.html} +4 -4
  49. data/doc/rdoc/classes/Mongrel/Configurator.src/{M000116.html → M000097.html} +24 -24
  50. data/doc/rdoc/classes/Mongrel/Configurator.src/{M000117.html → M000098.html} +5 -5
  51. data/doc/rdoc/classes/Mongrel/Configurator.src/M000099.html +39 -0
  52. data/doc/rdoc/classes/Mongrel/Configurator.src/{M000119.html → M000100.html} +19 -19
  53. data/doc/rdoc/classes/Mongrel/Configurator.src/{M000120.html → M000101.html} +4 -4
  54. data/doc/rdoc/classes/Mongrel/Configurator.src/{M000121.html → M000102.html} +10 -10
  55. data/doc/rdoc/classes/Mongrel/Configurator.src/{M000122.html → M000103.html} +5 -5
  56. data/doc/rdoc/classes/Mongrel/Configurator.src/{M000123.html → M000104.html} +4 -4
  57. data/doc/rdoc/classes/Mongrel/Configurator.src/{M000124.html → M000105.html} +8 -8
  58. data/doc/rdoc/classes/Mongrel/Configurator.src/M000106.html +22 -0
  59. data/doc/rdoc/classes/Mongrel/Configurator.src/{M000126.html → M000107.html} +4 -4
  60. data/doc/rdoc/classes/Mongrel/Configurator.src/M000108.html +34 -0
  61. data/doc/rdoc/classes/Mongrel/Configurator.src/M000109.html +18 -0
  62. data/doc/rdoc/classes/Mongrel/Configurator.src/M000110.html +23 -14
  63. data/doc/rdoc/classes/Mongrel/Configurator.src/M000111.html +5 -18
  64. data/doc/rdoc/classes/Mongrel/Const.html +11 -6
  65. data/doc/rdoc/classes/Mongrel/DeflateFilter.html +10 -10
  66. data/doc/rdoc/classes/Mongrel/DeflateFilter.src/{M000099.html → M000121.html} +5 -5
  67. data/doc/rdoc/classes/Mongrel/DeflateFilter.src/{M000100.html → M000122.html} +14 -14
  68. data/doc/rdoc/classes/Mongrel/DirHandler.html +31 -31
  69. data/doc/rdoc/classes/Mongrel/DirHandler.src/{M000058.html → M000049.html} +0 -0
  70. data/doc/rdoc/classes/Mongrel/DirHandler.src/{M000059.html → M000050.html} +0 -0
  71. data/doc/rdoc/classes/Mongrel/DirHandler.src/{M000060.html → M000051.html} +12 -16
  72. data/doc/rdoc/classes/Mongrel/DirHandler.src/M000052.html +63 -0
  73. data/doc/rdoc/classes/Mongrel/DirHandler.src/{M000062.html → M000053.html} +25 -25
  74. data/doc/rdoc/classes/Mongrel/DirHandler.src/{M000063.html → M000054.html} +4 -4
  75. data/doc/rdoc/classes/Mongrel/Error404Handler.html +10 -10
  76. data/doc/rdoc/classes/Mongrel/Error404Handler.src/{M000131.html → M000123.html} +0 -0
  77. data/doc/rdoc/classes/Mongrel/Error404Handler.src/{M000132.html → M000124.html} +0 -0
  78. data/doc/rdoc/classes/Mongrel/HeaderOut.html +10 -10
  79. data/doc/rdoc/classes/Mongrel/HeaderOut.src/{M000072.html → M000064.html} +4 -4
  80. data/doc/rdoc/classes/Mongrel/HeaderOut.src/{M000073.html → M000065.html} +4 -4
  81. data/doc/rdoc/classes/Mongrel/HttpHandler.html +15 -15
  82. data/doc/rdoc/classes/Mongrel/HttpHandler.src/{M000078.html → M000070.html} +0 -0
  83. data/doc/rdoc/classes/Mongrel/HttpHandler.src/{M000079.html → M000071.html} +0 -0
  84. data/doc/rdoc/classes/Mongrel/HttpHandler.src/{M000080.html → M000072.html} +0 -0
  85. data/doc/rdoc/classes/Mongrel/HttpHandlerPlugin.html +20 -20
  86. data/doc/rdoc/classes/Mongrel/HttpHandlerPlugin.src/{M000022.html → M000012.html} +0 -0
  87. data/doc/rdoc/classes/Mongrel/HttpHandlerPlugin.src/{M000023.html → M000013.html} +0 -0
  88. data/doc/rdoc/classes/Mongrel/HttpHandlerPlugin.src/{M000024.html → M000014.html} +0 -0
  89. data/doc/rdoc/classes/Mongrel/HttpHandlerPlugin.src/{M000025.html → M000015.html} +0 -0
  90. data/doc/rdoc/classes/Mongrel/HttpParams.html +131 -0
  91. data/doc/rdoc/classes/Mongrel/HttpParser.html +35 -35
  92. data/doc/rdoc/classes/Mongrel/HttpParser.src/{M000051.html → M000042.html} +1 -1
  93. data/doc/rdoc/classes/Mongrel/HttpParser.src/{M000052.html → M000043.html} +1 -1
  94. data/doc/rdoc/classes/Mongrel/HttpParser.src/{M000053.html → M000044.html} +1 -1
  95. data/doc/rdoc/classes/Mongrel/HttpParser.src/{M000054.html → M000045.html} +3 -3
  96. data/doc/rdoc/classes/Mongrel/HttpParser.src/{M000055.html → M000046.html} +1 -1
  97. data/doc/rdoc/classes/Mongrel/HttpParser.src/{M000056.html → M000047.html} +1 -1
  98. data/doc/rdoc/classes/Mongrel/HttpParser.src/{M000057.html → M000048.html} +1 -1
  99. data/doc/rdoc/classes/Mongrel/HttpRequest.html +63 -24
  100. data/doc/rdoc/classes/Mongrel/HttpRequest.src/M000130.html +47 -0
  101. data/doc/rdoc/classes/Mongrel/HttpRequest.src/M000131.html +37 -0
  102. data/doc/rdoc/classes/Mongrel/HttpRequest.src/M000132.html +29 -0
  103. data/doc/rdoc/classes/Mongrel/HttpRequest.src/{M000139.html → M000133.html} +6 -6
  104. data/doc/rdoc/classes/Mongrel/HttpRequest.src/{M000140.html → M000134.html} +6 -6
  105. data/doc/rdoc/classes/Mongrel/HttpRequest.src/{M000141.html → M000135.html} +18 -18
  106. data/doc/rdoc/classes/Mongrel/HttpResponse.html +66 -72
  107. data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000073.html +25 -0
  108. data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000074.html +20 -0
  109. data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000075.html +26 -0
  110. data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000076.html +22 -0
  111. data/doc/rdoc/classes/Mongrel/HttpResponse.src/{M000085.html → M000077.html} +8 -8
  112. data/doc/rdoc/classes/Mongrel/HttpResponse.src/{M000086.html → M000078.html} +8 -8
  113. data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000079.html +31 -0
  114. data/doc/rdoc/classes/Mongrel/HttpResponse.src/{M000088.html → M000080.html} +7 -7
  115. data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000081.html +7 -12
  116. data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000082.html +7 -7
  117. data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000083.html +7 -12
  118. data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000084.html +5 -9
  119. data/doc/rdoc/classes/Mongrel/HttpServer.html +58 -43
  120. data/doc/rdoc/classes/Mongrel/HttpServer.src/{M000064.html → M000055.html} +11 -11
  121. data/doc/rdoc/classes/Mongrel/HttpServer.src/{M000065.html → M000056.html} +76 -72
  122. data/doc/rdoc/classes/Mongrel/HttpServer.src/{M000066.html → M000057.html} +18 -17
  123. data/doc/rdoc/classes/Mongrel/HttpServer.src/{M000067.html → M000058.html} +7 -7
  124. data/doc/rdoc/classes/Mongrel/HttpServer.src/M000059.html +22 -0
  125. data/doc/rdoc/classes/Mongrel/HttpServer.src/M000060.html +62 -0
  126. data/doc/rdoc/classes/Mongrel/HttpServer.src/{M000069.html → M000061.html} +20 -20
  127. data/doc/rdoc/classes/Mongrel/HttpServer.src/{M000070.html → M000062.html} +4 -4
  128. data/doc/rdoc/classes/Mongrel/HttpServer.src/{M000071.html → M000063.html} +8 -8
  129. data/doc/rdoc/classes/Mongrel/Rails/RailsConfigurator.html +15 -15
  130. data/doc/rdoc/classes/Mongrel/Rails/RailsConfigurator.src/{M000042.html → M000032.html} +23 -25
  131. data/doc/rdoc/classes/Mongrel/Rails/RailsConfigurator.src/{M000043.html → M000033.html} +11 -11
  132. data/doc/rdoc/classes/Mongrel/Rails/RailsConfigurator.src/{M000044.html → M000034.html} +12 -12
  133. data/doc/rdoc/classes/Mongrel/Rails/RailsHandler.html +30 -15
  134. data/doc/rdoc/classes/Mongrel/Rails/RailsHandler.src/{M000045.html → M000035.html} +9 -8
  135. data/doc/rdoc/classes/Mongrel/Rails/RailsHandler.src/M000036.html +54 -0
  136. data/doc/rdoc/classes/Mongrel/Rails/RailsHandler.src/M000037.html +21 -0
  137. data/doc/rdoc/classes/Mongrel/Rails/RailsHandler.src/M000038.html +25 -0
  138. data/doc/rdoc/classes/Mongrel/RedirectHandler.html +10 -10
  139. data/doc/rdoc/classes/Mongrel/RedirectHandler.src/{M000136.html → M000128.html} +8 -8
  140. data/doc/rdoc/classes/Mongrel/RedirectHandler.src/{M000137.html → M000129.html} +13 -13
  141. data/doc/rdoc/classes/Mongrel/StatisticsFilter.html +16 -16
  142. data/doc/rdoc/classes/Mongrel/StatisticsFilter.src/M000125.html +24 -0
  143. data/doc/rdoc/classes/Mongrel/StatisticsFilter.src/{M000134.html → M000126.html} +10 -10
  144. data/doc/rdoc/classes/Mongrel/StatisticsFilter.src/{M000135.html → M000127.html} +4 -4
  145. data/doc/rdoc/classes/{Stats.html → Mongrel/Stats.html} +44 -60
  146. data/doc/rdoc/classes/Mongrel/Stats.src/M000136.html +19 -0
  147. data/doc/rdoc/classes/Mongrel/Stats.src/M000137.html +23 -0
  148. data/doc/rdoc/classes/Mongrel/Stats.src/M000138.html +26 -0
  149. data/doc/rdoc/classes/Mongrel/Stats.src/M000139.html +18 -0
  150. data/doc/rdoc/classes/{Stats.src/M000009.html → Mongrel/Stats.src/M000140.html} +6 -6
  151. data/doc/rdoc/classes/Mongrel/Stats.src/M000141.html +18 -0
  152. data/doc/rdoc/classes/Mongrel/Stats.src/M000142.html +23 -0
  153. data/doc/rdoc/classes/Mongrel/Stats.src/M000143.html +20 -0
  154. data/doc/rdoc/classes/Mongrel/StatusHandler.html +20 -20
  155. data/doc/rdoc/classes/Mongrel/StatusHandler.src/{M000074.html → M000066.html} +4 -4
  156. data/doc/rdoc/classes/Mongrel/StatusHandler.src/{M000075.html → M000067.html} +10 -10
  157. data/doc/rdoc/classes/Mongrel/StatusHandler.src/{M000076.html → M000068.html} +28 -28
  158. data/doc/rdoc/classes/Mongrel/StatusHandler.src/{M000077.html → M000069.html} +6 -6
  159. data/doc/rdoc/classes/Mongrel/URIClassifier.html +30 -30
  160. data/doc/rdoc/classes/Mongrel/URIClassifier.src/{M000093.html → M000085.html} +4 -4
  161. data/doc/rdoc/classes/Mongrel/URIClassifier.src/{M000094.html → M000086.html} +4 -4
  162. data/doc/rdoc/classes/Mongrel/URIClassifier.src/{M000095.html → M000087.html} +0 -0
  163. data/doc/rdoc/classes/Mongrel/URIClassifier.src/{M000096.html → M000088.html} +1 -1
  164. data/doc/rdoc/classes/Mongrel/URIClassifier.src/{M000097.html → M000089.html} +0 -0
  165. data/doc/rdoc/classes/Mongrel/URIClassifier.src/{M000098.html → M000090.html} +1 -1
  166. data/doc/rdoc/classes/MongrelDbg.html +26 -26
  167. data/doc/rdoc/classes/MongrelDbg.src/M000005.html +24 -0
  168. data/doc/rdoc/classes/MongrelDbg.src/{M000016.html → M000006.html} +6 -6
  169. data/doc/rdoc/classes/MongrelDbg.src/{M000017.html → M000007.html} +8 -8
  170. data/doc/rdoc/classes/MongrelDbg.src/{M000018.html → M000008.html} +7 -7
  171. data/doc/rdoc/classes/MongrelDbg.src/{M000019.html → M000009.html} +4 -4
  172. data/doc/rdoc/classes/RequestLog/Access.html +5 -5
  173. data/doc/rdoc/classes/RequestLog/Access.src/{M000142.html → M000144.html} +5 -5
  174. data/doc/rdoc/classes/RequestLog/Files.html +5 -5
  175. data/doc/rdoc/classes/RequestLog/Files.src/{M000143.html → M000145.html} +5 -5
  176. data/doc/rdoc/classes/RequestLog/Objects.html +12 -6
  177. data/doc/rdoc/classes/RequestLog/Objects.src/M000147.html +51 -0
  178. data/doc/rdoc/classes/RequestLog/Params.html +5 -5
  179. data/doc/rdoc/classes/RequestLog/Params.src/{M000146.html → M000148.html} +5 -5
  180. data/doc/rdoc/classes/RequestLog/Threads.html +5 -5
  181. data/doc/rdoc/classes/RequestLog/Threads.src/{M000144.html → M000146.html} +20 -20
  182. data/doc/rdoc/classes/{ObjectTracker.html → Sync.html} +26 -45
  183. data/doc/rdoc/created.rid +1 -1
  184. data/doc/rdoc/files/COPYING.html +1 -1
  185. data/doc/rdoc/files/LICENSE.html +1 -1
  186. data/doc/rdoc/files/README.html +1 -1
  187. data/doc/rdoc/files/ext/http11/http11_c.html +1 -1
  188. data/doc/rdoc/files/lib/mongrel/camping_rb.html +1 -1
  189. data/doc/rdoc/files/lib/mongrel/cgi_rb.html +1 -1
  190. data/doc/rdoc/files/lib/mongrel/command_rb.html +1 -1
  191. data/doc/rdoc/files/lib/mongrel/configurator_rb.html +111 -0
  192. data/doc/rdoc/files/lib/mongrel/debug_rb.html +1 -1
  193. data/doc/rdoc/files/lib/mongrel/handlers_rb.html +1 -1
  194. data/doc/rdoc/files/lib/mongrel/init_rb.html +1 -1
  195. data/doc/rdoc/files/lib/mongrel/rails_rb.html +2 -1
  196. data/doc/rdoc/files/lib/mongrel/stats_rb.html +1 -1
  197. data/doc/rdoc/files/lib/mongrel/tcphack_rb.html +1 -1
  198. data/doc/rdoc/files/lib/mongrel_rb.html +2 -4
  199. data/doc/rdoc/fr_class_index.html +3 -2
  200. data/doc/rdoc/fr_file_index.html +1 -0
  201. data/doc/rdoc/fr_method_index.html +144 -142
  202. data/ext/http11/http11.c +69 -52
  203. data/ext/http11/http11_parser.c +366 -282
  204. data/ext/http11/http11_parser.h +2 -0
  205. data/ext/http11/http11_parser.rl +192 -0
  206. data/lib/mongrel.rb +127 -433
  207. data/lib/mongrel/cgi.rb +19 -6
  208. data/lib/mongrel/command.rb +15 -3
  209. data/lib/mongrel/configurator.rb +374 -0
  210. data/lib/mongrel/debug.rb +47 -56
  211. data/lib/mongrel/handlers.rb +16 -20
  212. data/lib/mongrel/rails.rb +36 -20
  213. data/lib/mongrel/stats.rb +60 -58
  214. data/test/test_conditional.rb +37 -30
  215. data/test/test_http11.rb +14 -14
  216. data/test/test_stats.rb +2 -2
  217. data/test/test_ws.rb +4 -2
  218. data/tools/rakehelp.rb +4 -4
  219. metadata +262 -260
  220. data/doc/rdoc/classes/Kernel.src/M000020.html +0 -19
  221. data/doc/rdoc/classes/Kernel.src/M000021.html +0 -23
  222. data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000104.html +0 -27
  223. data/doc/rdoc/classes/Mongrel/Command/Base.src/M000036.html +0 -24
  224. data/doc/rdoc/classes/Mongrel/Command/Base.src/M000037.html +0 -24
  225. data/doc/rdoc/classes/Mongrel/Command/Base.src/M000038.html +0 -18
  226. data/doc/rdoc/classes/Mongrel/Command/Registry.src/M000041.html +0 -50
  227. data/doc/rdoc/classes/Mongrel/Configurator.src/M000112.html +0 -20
  228. data/doc/rdoc/classes/Mongrel/Configurator.src/M000113.html +0 -20
  229. data/doc/rdoc/classes/Mongrel/Configurator.src/M000114.html +0 -23
  230. data/doc/rdoc/classes/Mongrel/Configurator.src/M000118.html +0 -30
  231. data/doc/rdoc/classes/Mongrel/Configurator.src/M000125.html +0 -25
  232. data/doc/rdoc/classes/Mongrel/Configurator.src/M000127.html +0 -35
  233. data/doc/rdoc/classes/Mongrel/Configurator.src/M000128.html +0 -18
  234. data/doc/rdoc/classes/Mongrel/Configurator.src/M000129.html +0 -33
  235. data/doc/rdoc/classes/Mongrel/Configurator.src/M000130.html +0 -18
  236. data/doc/rdoc/classes/Mongrel/DirHandler.src/M000061.html +0 -63
  237. data/doc/rdoc/classes/Mongrel/HttpRequest.src/M000138.html +0 -56
  238. data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000087.html +0 -31
  239. data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000089.html +0 -20
  240. data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000090.html +0 -20
  241. data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000091.html +0 -20
  242. data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000092.html +0 -18
  243. data/doc/rdoc/classes/Mongrel/HttpServer.src/M000068.html +0 -50
  244. data/doc/rdoc/classes/Mongrel/Rails/RailsHandler.src/M000046.html +0 -51
  245. data/doc/rdoc/classes/Mongrel/Rails/RailsHandler.src/M000047.html +0 -23
  246. data/doc/rdoc/classes/Mongrel/StatisticsFilter.src/M000133.html +0 -24
  247. data/doc/rdoc/classes/MongrelDbg.src/M000015.html +0 -19
  248. data/doc/rdoc/classes/ObjectTracker.src/M000013.html +0 -27
  249. data/doc/rdoc/classes/ObjectTracker.src/M000014.html +0 -44
  250. data/doc/rdoc/classes/RequestLog/Objects.src/M000145.html +0 -19
  251. data/doc/rdoc/classes/Stats.src/M000005.html +0 -19
  252. data/doc/rdoc/classes/Stats.src/M000006.html +0 -23
  253. data/doc/rdoc/classes/Stats.src/M000007.html +0 -26
  254. data/doc/rdoc/classes/Stats.src/M000008.html +0 -18
  255. data/doc/rdoc/classes/Stats.src/M000010.html +0 -18
  256. data/doc/rdoc/classes/Stats.src/M000011.html +0 -23
  257. data/doc/rdoc/classes/Stats.src/M000012.html +0 -20
  258. data/lib/http11.so +0 -0
@@ -56,7 +56,7 @@
56
56
  </tr>
57
57
  <tr class="top-aligned-row">
58
58
  <td><strong>Last Update:</strong></td>
59
- <td>Fri Jun 30 17:27:16 GMT-5:00 2006</td>
59
+ <td>Sat Sep 02 16:29:56 PDT 2006</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>
@@ -95,12 +95,10 @@ for more information.
95
95
  mongrel/command&nbsp;&nbsp;
96
96
  mongrel/tcphack&nbsp;&nbsp;
97
97
  yaml&nbsp;&nbsp;
98
+ mongrel/configurator&nbsp;&nbsp;
98
99
  time&nbsp;&nbsp;
99
100
  rubygems&nbsp;&nbsp;
100
101
  etc&nbsp;&nbsp;
101
- sendfile&nbsp;&nbsp;
102
- daemons/daemonize&nbsp;&nbsp;
103
- mongrel/debug&nbsp;&nbsp;
104
102
  </div>
105
103
  </div>
106
104
 
@@ -37,6 +37,7 @@
37
37
  <a href="classes/Mongrel/HeaderOut.html">Mongrel::HeaderOut</a><br />
38
38
  <a href="classes/Mongrel/HttpHandler.html">Mongrel::HttpHandler</a><br />
39
39
  <a href="classes/Mongrel/HttpHandlerPlugin.html">Mongrel::HttpHandlerPlugin</a><br />
40
+ <a href="classes/Mongrel/HttpParams.html">Mongrel::HttpParams</a><br />
40
41
  <a href="classes/Mongrel/HttpParser.html">Mongrel::HttpParser</a><br />
41
42
  <a href="classes/Mongrel/HttpParserError.html">Mongrel::HttpParserError</a><br />
42
43
  <a href="classes/Mongrel/HttpRequest.html">Mongrel::HttpRequest</a><br />
@@ -47,19 +48,19 @@
47
48
  <a href="classes/Mongrel/Rails/RailsHandler.html">Mongrel::Rails::RailsHandler</a><br />
48
49
  <a href="classes/Mongrel/RedirectHandler.html">Mongrel::RedirectHandler</a><br />
49
50
  <a href="classes/Mongrel/StatisticsFilter.html">Mongrel::StatisticsFilter</a><br />
51
+ <a href="classes/Mongrel/Stats.html">Mongrel::Stats</a><br />
50
52
  <a href="classes/Mongrel/StatusHandler.html">Mongrel::StatusHandler</a><br />
51
53
  <a href="classes/Mongrel/StopServer.html">Mongrel::StopServer</a><br />
52
54
  <a href="classes/Mongrel/TimeoutError.html">Mongrel::TimeoutError</a><br />
53
55
  <a href="classes/Mongrel/URIClassifier.html">Mongrel::URIClassifier</a><br />
54
56
  <a href="classes/MongrelDbg.html">MongrelDbg</a><br />
55
- <a href="classes/ObjectTracker.html">ObjectTracker</a><br />
56
57
  <a href="classes/RequestLog.html">RequestLog</a><br />
57
58
  <a href="classes/RequestLog/Access.html">RequestLog::Access</a><br />
58
59
  <a href="classes/RequestLog/Files.html">RequestLog::Files</a><br />
59
60
  <a href="classes/RequestLog/Objects.html">RequestLog::Objects</a><br />
60
61
  <a href="classes/RequestLog/Params.html">RequestLog::Params</a><br />
61
62
  <a href="classes/RequestLog/Threads.html">RequestLog::Threads</a><br />
62
- <a href="classes/Stats.html">Stats</a><br />
63
+ <a href="classes/Sync.html">Sync</a><br />
63
64
  <a href="classes/TCPServer.html">TCPServer</a><br />
64
65
  </div>
65
66
  </div>
@@ -28,6 +28,7 @@
28
28
  <a href="files/lib/mongrel/camping_rb.html">lib/mongrel/camping.rb</a><br />
29
29
  <a href="files/lib/mongrel/cgi_rb.html">lib/mongrel/cgi.rb</a><br />
30
30
  <a href="files/lib/mongrel/command_rb.html">lib/mongrel/command.rb</a><br />
31
+ <a href="files/lib/mongrel/configurator_rb.html">lib/mongrel/configurator.rb</a><br />
31
32
  <a href="files/lib/mongrel/debug_rb.html">lib/mongrel/debug.rb</a><br />
32
33
  <a href="files/lib/mongrel/handlers_rb.html">lib/mongrel/handlers.rb</a><br />
33
34
  <a href="files/lib/mongrel/init_rb.html">lib/mongrel/init.rb</a><br />
@@ -20,152 +20,154 @@
20
20
  <div id="index">
21
21
  <h1 class="section-bar">Methods</h1>
22
22
  <div id="index-entries">
23
- <a href="classes/Mongrel/HeaderOut.html#M000073">[]= (Mongrel::HeaderOut)</a><br />
24
- <a href="classes/Mongrel/DirHandler.html#M000063">add_mime_type (Mongrel::DirHandler)</a><br />
25
- <a href="classes/Mongrel/CGIWrapper.html#M000106">args (Mongrel::CGIWrapper)</a><br />
26
- <a href="classes/MongrelDbg.html#M000017">begin_trace (MongrelDbg)</a><br />
27
- <a href="classes/Mongrel/DirHandler.html#M000059">can_serve (Mongrel::DirHandler)</a><br />
28
- <a href="classes/Mongrel/Configurator.html#M000111">change_privilege (Mongrel::Configurator)</a><br />
29
- <a href="classes/Mongrel/Configurator.html#M000114">cloaker (Mongrel::Configurator)</a><br />
30
- <a href="classes/Mongrel/Configurator.html#M000113">cloaking_class (Mongrel::Configurator)</a><br />
23
+ <a href="classes/Mongrel/HeaderOut.html#M000065">[]= (Mongrel::HeaderOut)</a><br />
24
+ <a href="classes/Mongrel/DirHandler.html#M000054">add_mime_type (Mongrel::DirHandler)</a><br />
25
+ <a href="classes/Mongrel/CGIWrapper.html#M000117">args (Mongrel::CGIWrapper)</a><br />
26
+ <a href="classes/MongrelDbg.html#M000007">begin_trace (MongrelDbg)</a><br />
27
+ <a href="classes/Mongrel/DirHandler.html#M000050">can_serve (Mongrel::DirHandler)</a><br />
28
+ <a href="classes/Mongrel/Configurator.html#M000092">change_privilege (Mongrel::Configurator)</a><br />
29
+ <a href="classes/Mongrel/Configurator.html#M000095">cloaker (Mongrel::Configurator)</a><br />
30
+ <a href="classes/Mongrel/Configurator.html#M000094">cloaking_class (Mongrel::Configurator)</a><br />
31
31
  <a href="classes/IO.html#M000002">close (IO)</a><br />
32
- <a href="classes/Mongrel/Command/Registry.html#M000039">commands (Mongrel::Command::Registry)</a><br />
33
- <a href="classes/Mongrel/Command/Base.html#M000028">configure (Mongrel::Command::Base)</a><br />
34
- <a href="classes/MongrelDbg.html#M000015">configure (MongrelDbg)</a><br />
35
- <a href="classes/ObjectTracker.html#M000013">configure (ObjectTracker)</a><br />
36
- <a href="classes/Mongrel/Configurator.html#M000118">daemonize (Mongrel::Configurator)</a><br />
37
- <a href="classes/Mongrel/Configurator.html#M000127">debug (Mongrel::Configurator)</a><br />
38
- <a href="classes/Mongrel/StatusHandler.html#M000076">describe_listener (Mongrel::StatusHandler)</a><br />
39
- <a href="classes/Mongrel/HttpResponse.html#M000092">done (Mongrel::HttpResponse)</a><br />
40
- <a href="classes/Mongrel/HttpResponse.html#M000091">done= (Mongrel::HttpResponse)</a><br />
41
- <a href="classes/Stats.html#M000008">dump (Stats)</a><br />
42
- <a href="classes/Mongrel/StatisticsFilter.html#M000135">dump (Mongrel::StatisticsFilter)</a><br />
43
- <a href="classes/MongrelDbg.html#M000018">end_trace (MongrelDbg)</a><br />
44
- <a href="classes/Mongrel/CGIWrapper.html#M000107">env_table (Mongrel::CGIWrapper)</a><br />
45
- <a href="classes/Mongrel/HttpParser.html#M000055">error? (Mongrel::HttpParser)</a><br />
46
- <a href="classes/Mongrel/HttpRequest.html#M000139">escape (Mongrel::HttpRequest)</a><br />
47
- <a href="classes/Mongrel/HttpParser.html#M000054">execute (Mongrel::HttpParser)</a><br />
48
- <a href="classes/Mongrel/Command/Base.html#M000038">failure (Mongrel::Command::Base)</a><br />
49
- <a href="classes/Mongrel/HttpParser.html#M000053">finish (Mongrel::HttpParser)</a><br />
50
- <a href="classes/Mongrel/HttpResponse.html#M000090">finished (Mongrel::HttpResponse)</a><br />
51
- <a href="classes/Mongrel/HttpParser.html#M000056">finished? (Mongrel::HttpParser)</a><br />
52
- <a href="classes/Mongrel/HttpServer.html#M000067">graceful_shutdown (Mongrel::HttpServer)</a><br />
53
- <a href="classes/Mongrel/CGIWrapper.html#M000102">header (Mongrel::CGIWrapper)</a><br />
54
- <a href="classes/Mongrel/Command/Base.html#M000030">help (Mongrel::Command::Base)</a><br />
32
+ <a href="classes/Mongrel/Command/Registry.html#M000029">commands (Mongrel::Command::Registry)</a><br />
33
+ <a href="classes/Mongrel/Command/Base.html#M000018">configure (Mongrel::Command::Base)</a><br />
34
+ <a href="classes/MongrelDbg.html#M000005">configure (MongrelDbg)</a><br />
35
+ <a href="classes/Mongrel/HttpServer.html#M000059">configure_socket_options (Mongrel::HttpServer)</a><br />
36
+ <a href="classes/Mongrel/Configurator.html#M000099">daemonize (Mongrel::Configurator)</a><br />
37
+ <a href="classes/Mongrel/Configurator.html#M000108">debug (Mongrel::Configurator)</a><br />
38
+ <a href="classes/Mongrel/StatusHandler.html#M000068">describe_listener (Mongrel::StatusHandler)</a><br />
39
+ <a href="classes/Mongrel/HttpResponse.html#M000084">done (Mongrel::HttpResponse)</a><br />
40
+ <a href="classes/Mongrel/HttpResponse.html#M000083">done= (Mongrel::HttpResponse)</a><br />
41
+ <a href="classes/Mongrel/StatisticsFilter.html#M000127">dump (Mongrel::StatisticsFilter)</a><br />
42
+ <a href="classes/Mongrel/Stats.html#M000139">dump (Mongrel::Stats)</a><br />
43
+ <a href="classes/MongrelDbg.html#M000008">end_trace (MongrelDbg)</a><br />
44
+ <a href="classes/Mongrel/CGIWrapper.html#M000118">env_table (Mongrel::CGIWrapper)</a><br />
45
+ <a href="classes/Mongrel/HttpParser.html#M000046">error? (Mongrel::HttpParser)</a><br />
46
+ <a href="classes/Mongrel/HttpRequest.html#M000133">escape (Mongrel::HttpRequest)</a><br />
47
+ <a href="classes/Mongrel/HttpParser.html#M000045">execute (Mongrel::HttpParser)</a><br />
48
+ <a href="classes/Mongrel/Command/Base.html#M000028">failure (Mongrel::Command::Base)</a><br />
49
+ <a href="classes/Mongrel/HttpParser.html#M000044">finish (Mongrel::HttpParser)</a><br />
50
+ <a href="classes/Mongrel/HttpResponse.html#M000082">finished (Mongrel::HttpResponse)</a><br />
51
+ <a href="classes/Mongrel/HttpParser.html#M000047">finished? (Mongrel::HttpParser)</a><br />
52
+ <a href="classes/Mongrel/HttpServer.html#M000058">graceful_shutdown (Mongrel::HttpServer)</a><br />
53
+ <a href="classes/Mongrel/CGIWrapper.html#M000113">header (Mongrel::CGIWrapper)</a><br />
54
+ <a href="classes/Mongrel/Command/Base.html#M000020">help (Mongrel::Command::Base)</a><br />
55
55
  <a href="classes/TCPServer.html#M000004">initialize (TCPServer)</a><br />
56
56
  <a href="classes/TCPServer.html#M000003">initialize_with_backlog (TCPServer)</a><br />
57
- <a href="classes/Mongrel/URIClassifier.html#M000094">inspect (Mongrel::URIClassifier)</a><br />
58
- <a href="classes/Mongrel/Configurator.html#M000126">join (Mongrel::Configurator)</a><br />
59
- <a href="classes/Mongrel/Configurator.html#M000116">listener (Mongrel::Configurator)</a><br />
60
- <a href="classes/Mongrel/Configurator.html#M000121">load_mime_map (Mongrel::Configurator)</a><br />
61
- <a href="classes/Mongrel/Configurator.html#M000119">load_plugins (Mongrel::Configurator)</a><br />
62
- <a href="classes/Mongrel/Configurator.html#M000120">load_yaml (Mongrel::Configurator)</a><br />
63
- <a href="classes/Mongrel/Configurator.html#M000130">log (Mongrel::Configurator)</a><br />
64
- <a href="classes/Kernel.html#M000021">log_open_files (Kernel)</a><br />
65
- <a href="classes/Stats.html#M000010">mean (Stats)</a><br />
66
- <a href="classes/Mongrel/Error404Handler.html#M000131">new (Mongrel::Error404Handler)</a><br />
67
- <a href="classes/Mongrel/Rails/RailsHandler.html#M000045">new (Mongrel::Rails::RailsHandler)</a><br />
68
- <a href="classes/Mongrel/Command/Base.html#M000027">new (Mongrel::Command::Base)</a><br />
69
- <a href="classes/Mongrel/HttpResponse.html#M000081">new (Mongrel::HttpResponse)</a><br />
70
- <a href="classes/Mongrel/HttpHandlerPlugin.html#M000024">new (Mongrel::HttpHandlerPlugin)</a><br />
71
- <a href="classes/Mongrel/Camping/CampingHandler.html#M000049">new (Mongrel::Camping::CampingHandler)</a><br />
72
- <a href="classes/Mongrel/StatusHandler.html#M000074">new (Mongrel::StatusHandler)</a><br />
73
- <a href="classes/Mongrel/HttpParser.html#M000051">new (Mongrel::HttpParser)</a><br />
74
- <a href="classes/Mongrel/URIClassifier.html#M000095">new (Mongrel::URIClassifier)</a><br />
75
- <a href="classes/Mongrel/CGIWrapper.html#M000101">new (Mongrel::CGIWrapper)</a><br />
76
- <a href="classes/Mongrel/HttpServer.html#M000064">new (Mongrel::HttpServer)</a><br />
77
- <a href="classes/Mongrel/DeflateFilter.html#M000099">new (Mongrel::DeflateFilter)</a><br />
78
- <a href="classes/Mongrel/RedirectHandler.html#M000136">new (Mongrel::RedirectHandler)</a><br />
79
- <a href="classes/Mongrel/Configurator.html#M000110">new (Mongrel::Configurator)</a><br />
80
- <a href="classes/Mongrel/DirHandler.html#M000058">new (Mongrel::DirHandler)</a><br />
81
- <a href="classes/Mongrel/HttpRequest.html#M000138">new (Mongrel::HttpRequest)</a><br />
82
- <a href="classes/Mongrel/HeaderOut.html#M000072">new (Mongrel::HeaderOut)</a><br />
83
- <a href="classes/Stats.html#M000005">new (Stats)</a><br />
84
- <a href="classes/Mongrel/StatisticsFilter.html#M000133">new (Mongrel::StatisticsFilter)</a><br />
85
- <a href="classes/Mongrel/HttpParser.html#M000057">nread (Mongrel::HttpParser)</a><br />
57
+ <a href="classes/Mongrel/URIClassifier.html#M000086">inspect (Mongrel::URIClassifier)</a><br />
58
+ <a href="classes/Mongrel/Configurator.html#M000107">join (Mongrel::Configurator)</a><br />
59
+ <a href="classes/Mongrel/Configurator.html#M000097">listener (Mongrel::Configurator)</a><br />
60
+ <a href="classes/Mongrel/Configurator.html#M000102">load_mime_map (Mongrel::Configurator)</a><br />
61
+ <a href="classes/Mongrel/Configurator.html#M000100">load_plugins (Mongrel::Configurator)</a><br />
62
+ <a href="classes/Mongrel/Configurator.html#M000101">load_yaml (Mongrel::Configurator)</a><br />
63
+ <a href="classes/Mongrel/Configurator.html#M000111">log (Mongrel::Configurator)</a><br />
64
+ <a href="classes/Kernel.html#M000011">log_open_files (Kernel)</a><br />
65
+ <a href="classes/Mongrel/Rails/RailsHandler.html#M000037">log_threads_waiting_for (Mongrel::Rails::RailsHandler)</a><br />
66
+ <a href="classes/Mongrel/Stats.html#M000141">mean (Mongrel::Stats)</a><br />
67
+ <a href="classes/Mongrel/Camping/CampingHandler.html#M000040">new (Mongrel::Camping::CampingHandler)</a><br />
68
+ <a href="classes/Mongrel/HttpParser.html#M000042">new (Mongrel::HttpParser)</a><br />
69
+ <a href="classes/Mongrel/URIClassifier.html#M000087">new (Mongrel::URIClassifier)</a><br />
70
+ <a href="classes/Mongrel/StatusHandler.html#M000066">new (Mongrel::StatusHandler)</a><br />
71
+ <a href="classes/Mongrel/DirHandler.html#M000049">new (Mongrel::DirHandler)</a><br />
72
+ <a href="classes/Mongrel/DeflateFilter.html#M000121">new (Mongrel::DeflateFilter)</a><br />
73
+ <a href="classes/Mongrel/Rails/RailsHandler.html#M000035">new (Mongrel::Rails::RailsHandler)</a><br />
74
+ <a href="classes/Mongrel/Error404Handler.html#M000123">new (Mongrel::Error404Handler)</a><br />
75
+ <a href="classes/Mongrel/HttpResponse.html#M000073">new (Mongrel::HttpResponse)</a><br />
76
+ <a href="classes/Mongrel/StatisticsFilter.html#M000125">new (Mongrel::StatisticsFilter)</a><br />
77
+ <a href="classes/Mongrel/HttpServer.html#M000055">new (Mongrel::HttpServer)</a><br />
78
+ <a href="classes/Mongrel/Configurator.html#M000091">new (Mongrel::Configurator)</a><br />
79
+ <a href="classes/Mongrel/HttpHandlerPlugin.html#M000014">new (Mongrel::HttpHandlerPlugin)</a><br />
80
+ <a href="classes/Mongrel/RedirectHandler.html#M000128">new (Mongrel::RedirectHandler)</a><br />
81
+ <a href="classes/Mongrel/HttpRequest.html#M000130">new (Mongrel::HttpRequest)</a><br />
82
+ <a href="classes/Mongrel/CGIWrapper.html#M000112">new (Mongrel::CGIWrapper)</a><br />
83
+ <a href="classes/Mongrel/Stats.html#M000136">new (Mongrel::Stats)</a><br />
84
+ <a href="classes/Mongrel/Command/Base.html#M000017">new (Mongrel::Command::Base)</a><br />
85
+ <a href="classes/Mongrel/HeaderOut.html#M000064">new (Mongrel::HeaderOut)</a><br />
86
+ <a href="classes/Mongrel/HttpParser.html#M000048">nread (Mongrel::HttpParser)</a><br />
86
87
  <a href="classes/IO.html#M000001">open (IO)</a><br />
87
- <a href="classes/Kernel.html#M000020">open (Kernel)</a><br />
88
- <a href="classes/Mongrel/Command/Base.html#M000026">options (Mongrel::Command::Base)</a><br />
89
- <a href="classes/Mongrel/CGIWrapper.html#M000104">out (Mongrel::CGIWrapper)</a><br />
90
- <a href="classes/Mongrel/Configurator.html#M000122">plugin (Mongrel::Configurator)</a><br />
91
- <a href="classes/Mongrel/Command/Registry.html#M000040">print_command_list (Mongrel::Command::Registry)</a><br />
92
- <a href="classes/RequestLog/Params.html#M000146">process (RequestLog::Params)</a><br />
93
- <a href="classes/Mongrel/StatisticsFilter.html#M000134">process (Mongrel::StatisticsFilter)</a><br />
94
- <a href="classes/Mongrel/Error404Handler.html#M000132">process (Mongrel::Error404Handler)</a><br />
95
- <a href="classes/RequestLog/Access.html#M000142">process (RequestLog::Access)</a><br />
96
- <a href="classes/Mongrel/Camping/CampingHandler.html#M000050">process (Mongrel::Camping::CampingHandler)</a><br />
97
- <a href="classes/Mongrel/RedirectHandler.html#M000137">process (Mongrel::RedirectHandler)</a><br />
98
- <a href="classes/Mongrel/HttpHandlerPlugin.html#M000025">process (Mongrel::HttpHandlerPlugin)</a><br />
99
- <a href="classes/Mongrel/StatusHandler.html#M000077">process (Mongrel::StatusHandler)</a><br />
100
- <a href="classes/RequestLog/Files.html#M000143">process (RequestLog::Files)</a><br />
101
- <a href="classes/Mongrel/DirHandler.html#M000062">process (Mongrel::DirHandler)</a><br />
102
- <a href="classes/Mongrel/HttpHandler.html#M000080">process (Mongrel::HttpHandler)</a><br />
103
- <a href="classes/RequestLog/Threads.html#M000144">process (RequestLog::Threads)</a><br />
104
- <a href="classes/Mongrel/DeflateFilter.html#M000100">process (Mongrel::DeflateFilter)</a><br />
105
- <a href="classes/RequestLog/Objects.html#M000145">process (RequestLog::Objects)</a><br />
106
- <a href="classes/Mongrel/Rails/RailsHandler.html#M000046">process (Mongrel::Rails::RailsHandler)</a><br />
107
- <a href="classes/Mongrel/HttpServer.html#M000065">process_client (Mongrel::HttpServer)</a><br />
108
- <a href="classes/Mongrel/HttpRequest.html#M000141">query_parse (Mongrel::HttpRequest)</a><br />
109
- <a href="classes/Mongrel/Rails/RailsConfigurator.html#M000042">rails (Mongrel::Rails::RailsConfigurator)</a><br />
110
- <a href="classes/Mongrel/HttpServer.html#M000066">reap_dead_workers (Mongrel::HttpServer)</a><br />
111
- <a href="classes/Mongrel/Configurator.html#M000123">redirect (Mongrel::Configurator)</a><br />
112
- <a href="classes/Mongrel/URIClassifier.html#M000096">register (Mongrel::URIClassifier)</a><br />
113
- <a href="classes/Mongrel/HttpServer.html#M000069">register (Mongrel::HttpServer)</a><br />
114
- <a href="classes/Mongrel/Rails/RailsConfigurator.html#M000043">reload! (Mongrel::Rails::RailsConfigurator)</a><br />
115
- <a href="classes/Mongrel/Rails/RailsHandler.html#M000047">reload! (Mongrel::Rails::RailsHandler)</a><br />
116
- <a href="classes/Mongrel/HttpHandlerPlugin.html#M000022">request_begins (Mongrel::HttpHandlerPlugin)</a><br />
117
- <a href="classes/Mongrel/HttpHandler.html#M000078">request_begins (Mongrel::HttpHandler)</a><br />
118
- <a href="classes/Mongrel/HttpHandlerPlugin.html#M000023">request_progress (Mongrel::HttpHandlerPlugin)</a><br />
119
- <a href="classes/Mongrel/HttpHandler.html#M000079">request_progress (Mongrel::HttpHandler)</a><br />
120
- <a href="classes/Stats.html#M000006">reset (Stats)</a><br />
121
- <a href="classes/Mongrel/HttpParser.html#M000052">reset (Mongrel::HttpParser)</a><br />
122
- <a href="classes/Mongrel/HttpResponse.html#M000083">reset (Mongrel::HttpResponse)</a><br />
123
- <a href="classes/Mongrel/URIClassifier.html#M000098">resolve (Mongrel::URIClassifier)</a><br />
124
- <a href="classes/Mongrel/Configurator.html#M000115">resolve_defaults (Mongrel::Configurator)</a><br />
125
- <a href="classes/Mongrel/Configurator.html#M000124">run (Mongrel::Configurator)</a><br />
126
- <a href="classes/Mongrel/HttpServer.html#M000068">run (Mongrel::HttpServer)</a><br />
127
- <a href="classes/Mongrel/Command/Base.html#M000031">run (Mongrel::Command::Base)</a><br />
128
- <a href="classes/Mongrel/Command/Registry.html#M000041">run (Mongrel::Command::Registry)</a><br />
129
- <a href="classes/Mongrel/Configurator.html#M000128">run_config (Mongrel::Configurator)</a><br />
130
- <a href="classes/Stats.html#M000007">sample (Stats)</a><br />
131
- <a href="classes/ObjectTracker.html#M000014">sample (ObjectTracker)</a><br />
132
- <a href="classes/Stats.html#M000011">sd (Stats)</a><br />
133
- <a href="classes/Mongrel/HttpResponse.html#M000086">send_body (Mongrel::HttpResponse)</a><br />
134
- <a href="classes/Mongrel/CGIWrapper.html#M000103">send_cookies (Mongrel::CGIWrapper)</a><br />
135
- <a href="classes/Mongrel/DirHandler.html#M000060">send_dir_listing (Mongrel::DirHandler)</a><br />
136
- <a href="classes/Mongrel/HttpResponse.html#M000087">send_file (Mongrel::HttpResponse)</a><br />
137
- <a href="classes/Mongrel/DirHandler.html#M000061">send_file (Mongrel::DirHandler)</a><br />
138
- <a href="classes/Mongrel/HttpResponse.html#M000085">send_header (Mongrel::HttpResponse)</a><br />
139
- <a href="classes/Mongrel/HttpResponse.html#M000084">send_status (Mongrel::HttpResponse)</a><br />
140
- <a href="classes/Mongrel/Rails/RailsConfigurator.html#M000044">setup_rails_signals (Mongrel::Rails::RailsConfigurator)</a><br />
141
- <a href="classes/Mongrel/Configurator.html#M000129">setup_signals (Mongrel::Configurator)</a><br />
142
- <a href="classes/Mongrel/HttpResponse.html#M000088">socket_error (Mongrel::HttpResponse)</a><br />
143
- <a href="classes/Mongrel/Camping.html#M000048">start (Mongrel::Camping)</a><br />
144
- <a href="classes/Mongrel/HttpResponse.html#M000082">start (Mongrel::HttpResponse)</a><br />
145
- <a href="classes/Mongrel/CGIWrapper.html#M000105">status (Mongrel::CGIWrapper)</a><br />
146
- <a href="classes/Mongrel/CGIWrapper.html#M000108">stdinput (Mongrel::CGIWrapper)</a><br />
147
- <a href="classes/Mongrel/CGIWrapper.html#M000109">stdoutput (Mongrel::CGIWrapper)</a><br />
148
- <a href="classes/Mongrel/Configurator.html#M000125">stop (Mongrel::Configurator)</a><br />
149
- <a href="classes/Mongrel/HttpServer.html#M000071">stop (Mongrel::HttpServer)</a><br />
150
- <a href="classes/Mongrel/StatusHandler.html#M000075">table (Mongrel::StatusHandler)</a><br />
151
- <a href="classes/Stats.html#M000012">tick (Stats)</a><br />
152
- <a href="classes/Stats.html#M000009">to_s (Stats)</a><br />
153
- <a href="classes/MongrelDbg.html#M000016">trace (MongrelDbg)</a><br />
154
- <a href="classes/MongrelDbg.html#M000019">tracing? (MongrelDbg)</a><br />
155
- <a href="classes/Mongrel/HttpRequest.html#M000140">unescape (Mongrel::HttpRequest)</a><br />
156
- <a href="classes/Mongrel/HttpServer.html#M000070">unregister (Mongrel::HttpServer)</a><br />
157
- <a href="classes/Mongrel/URIClassifier.html#M000097">unregister (Mongrel::URIClassifier)</a><br />
158
- <a href="classes/Mongrel/Configurator.html#M000117">uri (Mongrel::Configurator)</a><br />
159
- <a href="classes/Mongrel/URIClassifier.html#M000093">uris (Mongrel::URIClassifier)</a><br />
160
- <a href="classes/Mongrel/Command/Base.html#M000032">valid? (Mongrel::Command::Base)</a><br />
161
- <a href="classes/Mongrel/Command/Base.html#M000035">valid_dir? (Mongrel::Command::Base)</a><br />
162
- <a href="classes/Mongrel/Command/Base.html#M000033">valid_exists? (Mongrel::Command::Base)</a><br />
163
- <a href="classes/Mongrel/Command/Base.html#M000034">valid_file? (Mongrel::Command::Base)</a><br />
164
- <a href="classes/Mongrel/Command/Base.html#M000037">valid_group? (Mongrel::Command::Base)</a><br />
165
- <a href="classes/Mongrel/Command/Base.html#M000036">valid_user? (Mongrel::Command::Base)</a><br />
166
- <a href="classes/Mongrel/Command/Base.html#M000029">validate (Mongrel::Command::Base)</a><br />
167
- <a href="classes/Mongrel/HttpResponse.html#M000089">write (Mongrel::HttpResponse)</a><br />
168
- <a href="classes/Mongrel/Configurator.html#M000112">write_pid_file (Mongrel::Configurator)</a><br />
88
+ <a href="classes/Kernel.html#M000010">open (Kernel)</a><br />
89
+ <a href="classes/Mongrel/Command/Base.html#M000016">options (Mongrel::Command::Base)</a><br />
90
+ <a href="classes/Mongrel/CGIWrapper.html#M000115">out (Mongrel::CGIWrapper)</a><br />
91
+ <a href="classes/Mongrel/Configurator.html#M000103">plugin (Mongrel::Configurator)</a><br />
92
+ <a href="classes/Mongrel/Command/Registry.html#M000030">print_command_list (Mongrel::Command::Registry)</a><br />
93
+ <a href="classes/Mongrel/StatusHandler.html#M000069">process (Mongrel::StatusHandler)</a><br />
94
+ <a href="classes/Mongrel/HttpHandler.html#M000072">process (Mongrel::HttpHandler)</a><br />
95
+ <a href="classes/Mongrel/Error404Handler.html#M000124">process (Mongrel::Error404Handler)</a><br />
96
+ <a href="classes/Mongrel/Camping/CampingHandler.html#M000041">process (Mongrel::Camping::CampingHandler)</a><br />
97
+ <a href="classes/Mongrel/DeflateFilter.html#M000122">process (Mongrel::DeflateFilter)</a><br />
98
+ <a href="classes/Mongrel/RedirectHandler.html#M000129">process (Mongrel::RedirectHandler)</a><br />
99
+ <a href="classes/Mongrel/Rails/RailsHandler.html#M000036">process (Mongrel::Rails::RailsHandler)</a><br />
100
+ <a href="classes/Mongrel/HttpHandlerPlugin.html#M000015">process (Mongrel::HttpHandlerPlugin)</a><br />
101
+ <a href="classes/RequestLog/Access.html#M000144">process (RequestLog::Access)</a><br />
102
+ <a href="classes/RequestLog/Files.html#M000145">process (RequestLog::Files)</a><br />
103
+ <a href="classes/Mongrel/DirHandler.html#M000053">process (Mongrel::DirHandler)</a><br />
104
+ <a href="classes/RequestLog/Threads.html#M000146">process (RequestLog::Threads)</a><br />
105
+ <a href="classes/RequestLog/Objects.html#M000147">process (RequestLog::Objects)</a><br />
106
+ <a href="classes/Mongrel/StatisticsFilter.html#M000126">process (Mongrel::StatisticsFilter)</a><br />
107
+ <a href="classes/RequestLog/Params.html#M000148">process (RequestLog::Params)</a><br />
108
+ <a href="classes/Mongrel/HttpServer.html#M000056">process_client (Mongrel::HttpServer)</a><br />
109
+ <a href="classes/Mongrel/HttpRequest.html#M000135">query_parse (Mongrel::HttpRequest)</a><br />
110
+ <a href="classes/Mongrel/Rails/RailsConfigurator.html#M000032">rails (Mongrel::Rails::RailsConfigurator)</a><br />
111
+ <a href="classes/Mongrel/HttpRequest.html#M000131">read_body (Mongrel::HttpRequest)</a><br />
112
+ <a href="classes/Mongrel/HttpRequest.html#M000132">read_socket (Mongrel::HttpRequest)</a><br />
113
+ <a href="classes/Mongrel/HttpServer.html#M000057">reap_dead_workers (Mongrel::HttpServer)</a><br />
114
+ <a href="classes/Mongrel/Configurator.html#M000104">redirect (Mongrel::Configurator)</a><br />
115
+ <a href="classes/Mongrel/HttpServer.html#M000061">register (Mongrel::HttpServer)</a><br />
116
+ <a href="classes/Mongrel/URIClassifier.html#M000088">register (Mongrel::URIClassifier)</a><br />
117
+ <a href="classes/Mongrel/Rails/RailsHandler.html#M000038">reload! (Mongrel::Rails::RailsHandler)</a><br />
118
+ <a href="classes/Mongrel/Rails/RailsConfigurator.html#M000033">reload! (Mongrel::Rails::RailsConfigurator)</a><br />
119
+ <a href="classes/Mongrel/HttpHandlerPlugin.html#M000012">request_begins (Mongrel::HttpHandlerPlugin)</a><br />
120
+ <a href="classes/Mongrel/HttpHandler.html#M000070">request_begins (Mongrel::HttpHandler)</a><br />
121
+ <a href="classes/Mongrel/HttpHandlerPlugin.html#M000013">request_progress (Mongrel::HttpHandlerPlugin)</a><br />
122
+ <a href="classes/Mongrel/HttpHandler.html#M000071">request_progress (Mongrel::HttpHandler)</a><br />
123
+ <a href="classes/Mongrel/HttpParser.html#M000043">reset (Mongrel::HttpParser)</a><br />
124
+ <a href="classes/Mongrel/HttpResponse.html#M000075">reset (Mongrel::HttpResponse)</a><br />
125
+ <a href="classes/Mongrel/Stats.html#M000137">reset (Mongrel::Stats)</a><br />
126
+ <a href="classes/Mongrel/URIClassifier.html#M000090">resolve (Mongrel::URIClassifier)</a><br />
127
+ <a href="classes/Mongrel/Configurator.html#M000096">resolve_defaults (Mongrel::Configurator)</a><br />
128
+ <a href="classes/Mongrel/Configurator.html#M000105">run (Mongrel::Configurator)</a><br />
129
+ <a href="classes/Mongrel/Command/Base.html#M000021">run (Mongrel::Command::Base)</a><br />
130
+ <a href="classes/Mongrel/HttpServer.html#M000060">run (Mongrel::HttpServer)</a><br />
131
+ <a href="classes/Mongrel/Command/Registry.html#M000031">run (Mongrel::Command::Registry)</a><br />
132
+ <a href="classes/Mongrel/Configurator.html#M000109">run_config (Mongrel::Configurator)</a><br />
133
+ <a href="classes/Mongrel/Stats.html#M000138">sample (Mongrel::Stats)</a><br />
134
+ <a href="classes/Mongrel/Stats.html#M000142">sd (Mongrel::Stats)</a><br />
135
+ <a href="classes/Mongrel/HttpResponse.html#M000078">send_body (Mongrel::HttpResponse)</a><br />
136
+ <a href="classes/Mongrel/CGIWrapper.html#M000114">send_cookies (Mongrel::CGIWrapper)</a><br />
137
+ <a href="classes/Mongrel/DirHandler.html#M000051">send_dir_listing (Mongrel::DirHandler)</a><br />
138
+ <a href="classes/Mongrel/HttpResponse.html#M000079">send_file (Mongrel::HttpResponse)</a><br />
139
+ <a href="classes/Mongrel/DirHandler.html#M000052">send_file (Mongrel::DirHandler)</a><br />
140
+ <a href="classes/Mongrel/HttpResponse.html#M000077">send_header (Mongrel::HttpResponse)</a><br />
141
+ <a href="classes/Mongrel/HttpResponse.html#M000076">send_status (Mongrel::HttpResponse)</a><br />
142
+ <a href="classes/Mongrel/Rails/RailsConfigurator.html#M000034">setup_rails_signals (Mongrel::Rails::RailsConfigurator)</a><br />
143
+ <a href="classes/Mongrel/Configurator.html#M000110">setup_signals (Mongrel::Configurator)</a><br />
144
+ <a href="classes/Mongrel/HttpResponse.html#M000080">socket_error (Mongrel::HttpResponse)</a><br />
145
+ <a href="classes/Mongrel/Camping.html#M000039">start (Mongrel::Camping)</a><br />
146
+ <a href="classes/Mongrel/HttpResponse.html#M000074">start (Mongrel::HttpResponse)</a><br />
147
+ <a href="classes/Mongrel/CGIWrapper.html#M000116">status (Mongrel::CGIWrapper)</a><br />
148
+ <a href="classes/Mongrel/CGIWrapper.html#M000119">stdinput (Mongrel::CGIWrapper)</a><br />
149
+ <a href="classes/Mongrel/CGIWrapper.html#M000120">stdoutput (Mongrel::CGIWrapper)</a><br />
150
+ <a href="classes/Mongrel/HttpServer.html#M000063">stop (Mongrel::HttpServer)</a><br />
151
+ <a href="classes/Mongrel/Configurator.html#M000106">stop (Mongrel::Configurator)</a><br />
152
+ <a href="classes/Mongrel/StatusHandler.html#M000067">table (Mongrel::StatusHandler)</a><br />
153
+ <a href="classes/Mongrel/Stats.html#M000143">tick (Mongrel::Stats)</a><br />
154
+ <a href="classes/Mongrel/Stats.html#M000140">to_s (Mongrel::Stats)</a><br />
155
+ <a href="classes/MongrelDbg.html#M000006">trace (MongrelDbg)</a><br />
156
+ <a href="classes/MongrelDbg.html#M000009">tracing? (MongrelDbg)</a><br />
157
+ <a href="classes/Mongrel/HttpRequest.html#M000134">unescape (Mongrel::HttpRequest)</a><br />
158
+ <a href="classes/Mongrel/URIClassifier.html#M000089">unregister (Mongrel::URIClassifier)</a><br />
159
+ <a href="classes/Mongrel/HttpServer.html#M000062">unregister (Mongrel::HttpServer)</a><br />
160
+ <a href="classes/Mongrel/Configurator.html#M000098">uri (Mongrel::Configurator)</a><br />
161
+ <a href="classes/Mongrel/URIClassifier.html#M000085">uris (Mongrel::URIClassifier)</a><br />
162
+ <a href="classes/Mongrel/Command/Base.html#M000022">valid? (Mongrel::Command::Base)</a><br />
163
+ <a href="classes/Mongrel/Command/Base.html#M000025">valid_dir? (Mongrel::Command::Base)</a><br />
164
+ <a href="classes/Mongrel/Command/Base.html#M000023">valid_exists? (Mongrel::Command::Base)</a><br />
165
+ <a href="classes/Mongrel/Command/Base.html#M000024">valid_file? (Mongrel::Command::Base)</a><br />
166
+ <a href="classes/Mongrel/Command/Base.html#M000027">valid_group? (Mongrel::Command::Base)</a><br />
167
+ <a href="classes/Mongrel/Command/Base.html#M000026">valid_user? (Mongrel::Command::Base)</a><br />
168
+ <a href="classes/Mongrel/Command/Base.html#M000019">validate (Mongrel::Command::Base)</a><br />
169
+ <a href="classes/Mongrel/HttpResponse.html#M000081">write (Mongrel::HttpResponse)</a><br />
170
+ <a href="classes/Mongrel/Configurator.html#M000093">write_pid_file (Mongrel::Configurator)</a><br />
169
171
  </div>
170
172
  </div>
171
173
  </body>
@@ -14,7 +14,9 @@ static VALUE mMongrel;
14
14
  static VALUE cHttpParser;
15
15
  static VALUE cURIClassifier;
16
16
  static VALUE eHttpParserError;
17
- static int id_handler_map;
17
+
18
+ #define id_handler_map rb_intern("@handler_map")
19
+ #define id_http_body rb_intern("@http_body")
18
20
 
19
21
  static VALUE global_http_prefix;
20
22
  static VALUE global_request_method;
@@ -23,6 +25,7 @@ static VALUE global_query_string;
23
25
  static VALUE global_http_version;
24
26
  static VALUE global_content_length;
25
27
  static VALUE global_http_content_length;
28
+ static VALUE global_request_path;
26
29
  static VALUE global_content_type;
27
30
  static VALUE global_http_content_type;
28
31
  static VALUE global_gateway_interface;
@@ -39,19 +42,20 @@ static VALUE global_port_80;
39
42
  #define TRIE_INCREASE 30
40
43
 
41
44
  /** Defines common length and error messages for input length validation. */
42
- #define DEF_MAX_LENGTH(N,length) const size_t MAX_##N##_LENGTH = length; const char *MAX_##N##_LENGTH_ERR = "HTTP element " # N " is longer than the " # length " allowed length.";
45
+ #define DEF_MAX_LENGTH(N,length) const size_t MAX_##N##_LENGTH = length; const char *MAX_##N##_LENGTH_ERR = "HTTP element " # N " is longer than the " # length " allowed length."
43
46
 
44
47
  /** Validates the max length of given input and throws an HttpParserError exception if over. */
45
48
  #define VALIDATE_MAX_LENGTH(len, N) if(len > MAX_##N##_LENGTH) { rb_raise(eHttpParserError, MAX_##N##_LENGTH_ERR); }
46
49
 
47
50
  /** Defines global strings in the init method. */
48
- #define DEF_GLOBAL(N, val) global_##N = rb_obj_freeze(rb_str_new2(val)); rb_global_variable(&global_##N);
51
+ #define DEF_GLOBAL(N, val) global_##N = rb_obj_freeze(rb_str_new2(val)); rb_global_variable(&global_##N)
49
52
 
50
53
 
51
54
  /* Defines the maximum allowed lengths for various input elements.*/
52
55
  DEF_MAX_LENGTH(FIELD_NAME, 256);
53
56
  DEF_MAX_LENGTH(FIELD_VALUE, 80 * 1024);
54
- DEF_MAX_LENGTH(REQUEST_URI, 512);
57
+ DEF_MAX_LENGTH(REQUEST_URI, 1024 * 2);
58
+ DEF_MAX_LENGTH(REQUEST_PATH, 1024);
55
59
  DEF_MAX_LENGTH(QUERY_STRING, (1024 * 10));
56
60
  DEF_MAX_LENGTH(HEADER, (1024 * (80 + 32)));
57
61
 
@@ -101,6 +105,16 @@ void request_uri(void *data, const char *at, size_t length)
101
105
  rb_hash_aset(req, global_request_uri, val);
102
106
  }
103
107
 
108
+ void request_path(void *data, const char *at, size_t length)
109
+ {
110
+ VALUE req = (VALUE)data;
111
+ VALUE val = Qnil;
112
+
113
+ VALIDATE_MAX_LENGTH(length, REQUEST_PATH);
114
+
115
+ val = rb_str_new(at, length);
116
+ rb_hash_aset(req, global_request_path, val);
117
+ }
104
118
 
105
119
  void query_string(void *data, const char *at, size_t length)
106
120
  {
@@ -121,7 +135,7 @@ void http_version(void *data, const char *at, size_t length)
121
135
  }
122
136
 
123
137
  /** Finalizes the request header to have a bunch of stuff that's
124
- needed. */
138
+ needed. */
125
139
 
126
140
  void header_done(void *data, const char *at, size_t length)
127
141
  {
@@ -148,44 +162,47 @@ void header_done(void *data, const char *at, size_t length)
148
162
  if(colon != NULL) {
149
163
  rb_hash_aset(req, global_server_name, rb_str_substr(temp, 0, colon - RSTRING(temp)->ptr));
150
164
  rb_hash_aset(req, global_server_port,
151
- rb_str_substr(temp, colon - RSTRING(temp)->ptr+1,
152
- RSTRING(temp)->len));
165
+ rb_str_substr(temp, colon - RSTRING(temp)->ptr+1,
166
+ RSTRING(temp)->len));
153
167
  } else {
154
168
  rb_hash_aset(req, global_server_name, temp);
155
169
  rb_hash_aset(req, global_server_port, global_port_80);
156
170
  }
157
171
  }
158
-
172
+
173
+ // grab the initial body and stuff it into an ivar
174
+ rb_ivar_set(req, id_http_body, rb_str_new(at, length));
159
175
  rb_hash_aset(req, global_server_protocol, global_server_protocol_value);
160
176
  rb_hash_aset(req, global_server_software, global_mongrel_version);
161
177
  }
162
178
 
163
179
 
164
180
  void HttpParser_free(void *data) {
165
- TRACE();
166
-
167
- if(data) {
168
- free(data);
169
- }
181
+ TRACE();
182
+
183
+ if(data) {
184
+ free(data);
185
+ }
170
186
  }
171
187
 
172
188
 
173
189
  VALUE HttpParser_alloc(VALUE klass)
174
190
  {
175
- VALUE obj;
176
- http_parser *hp = ALLOC_N(http_parser, 1);
177
- TRACE();
178
- hp->http_field = http_field;
179
- hp->request_method = request_method;
180
- hp->request_uri = request_uri;
181
- hp->query_string = query_string;
182
- hp->http_version = http_version;
183
- hp->header_done = header_done;
184
- http_parser_init(hp);
185
-
186
- obj = Data_Wrap_Struct(klass, NULL, HttpParser_free, hp);
187
-
188
- return obj;
191
+ VALUE obj;
192
+ http_parser *hp = ALLOC_N(http_parser, 1);
193
+ TRACE();
194
+ hp->http_field = http_field;
195
+ hp->request_method = request_method;
196
+ hp->request_uri = request_uri;
197
+ hp->request_path = request_path;
198
+ hp->query_string = query_string;
199
+ hp->http_version = http_version;
200
+ hp->header_done = header_done;
201
+ http_parser_init(hp);
202
+
203
+ obj = Data_Wrap_Struct(klass, NULL, HttpParser_free, hp);
204
+
205
+ return obj;
189
206
  }
190
207
 
191
208
 
@@ -200,7 +217,7 @@ VALUE HttpParser_init(VALUE self)
200
217
  http_parser *http = NULL;
201
218
  DATA_GET(self, http_parser, http);
202
219
  http_parser_init(http);
203
-
220
+
204
221
  return self;
205
222
  }
206
223
 
@@ -217,7 +234,7 @@ VALUE HttpParser_reset(VALUE self)
217
234
  http_parser *http = NULL;
218
235
  DATA_GET(self, http_parser, http);
219
236
  http_parser_init(http);
220
-
237
+
221
238
  return Qnil;
222
239
  }
223
240
 
@@ -234,7 +251,7 @@ VALUE HttpParser_finish(VALUE self)
234
251
  http_parser *http = NULL;
235
252
  DATA_GET(self, http_parser, http);
236
253
  http_parser_finish(http);
237
-
254
+
238
255
  return http_parser_is_finished(http) ? Qtrue : Qfalse;
239
256
  }
240
257
 
@@ -268,15 +285,15 @@ VALUE HttpParser_execute(VALUE self, VALUE req_hash, VALUE data, VALUE start)
268
285
  from = FIX2INT(start);
269
286
  dptr = RSTRING(data)->ptr;
270
287
  dlen = RSTRING(data)->len;
271
-
288
+
272
289
  if(from >= dlen) {
273
290
  rb_raise(eHttpParserError, "Requested start is after data buffer end.");
274
291
  } else {
275
292
  http->data = (void *)req_hash;
276
293
  http_parser_execute(http, dptr, dlen, from);
277
-
294
+
278
295
  VALIDATE_MAX_LENGTH(http_parser_nread(http), HEADER);
279
-
296
+
280
297
  if(http_parser_has_error(http)) {
281
298
  rb_raise(eHttpParserError, "Invalid HTTP format, parsing fails.");
282
299
  } else {
@@ -297,7 +314,7 @@ VALUE HttpParser_has_error(VALUE self)
297
314
  {
298
315
  http_parser *http = NULL;
299
316
  DATA_GET(self, http_parser, http);
300
-
317
+
301
318
  return http_parser_has_error(http) ? Qtrue : Qfalse;
302
319
  }
303
320
 
@@ -312,7 +329,7 @@ VALUE HttpParser_is_finished(VALUE self)
312
329
  {
313
330
  http_parser *http = NULL;
314
331
  DATA_GET(self, http_parser, http);
315
-
332
+
316
333
  return http_parser_is_finished(http) ? Qtrue : Qfalse;
317
334
  }
318
335
 
@@ -328,32 +345,32 @@ VALUE HttpParser_nread(VALUE self)
328
345
  {
329
346
  http_parser *http = NULL;
330
347
  DATA_GET(self, http_parser, http);
331
-
348
+
332
349
  return INT2FIX(http->nread);
333
350
  }
334
351
 
335
352
 
336
353
  void URIClassifier_free(void *data)
337
354
  {
338
- TRACE();
339
-
340
- if(data) {
341
- tst_cleanup((struct tst *)data);
342
- }
355
+ TRACE();
356
+
357
+ if(data) {
358
+ tst_cleanup((struct tst *)data);
359
+ }
343
360
  }
344
361
 
345
362
 
346
363
 
347
364
  VALUE URIClassifier_alloc(VALUE klass)
348
365
  {
349
- VALUE obj;
350
- struct tst *tst = tst_init(TRIE_INCREASE);
351
- TRACE();
352
- assert(tst && "failed to initialize trie structure");
366
+ VALUE obj;
367
+ struct tst *tst = tst_init(TRIE_INCREASE);
368
+ TRACE();
369
+ assert(tst && "failed to initialize trie structure");
353
370
 
354
- obj = Data_Wrap_Struct(klass, NULL, URIClassifier_free, tst);
371
+ obj = Data_Wrap_Struct(klass, NULL, URIClassifier_free, tst);
355
372
 
356
- return obj;
373
+ return obj;
357
374
  }
358
375
 
359
376
  /**
@@ -415,7 +432,7 @@ VALUE URIClassifier_register(VALUE self, VALUE uri, VALUE handler)
415
432
  } else if(rc == TST_NULL_KEY) {
416
433
  rb_raise(rb_eStandardError, "URI was empty");
417
434
  }
418
-
435
+
419
436
  rb_hash_aset(rb_ivar_get(self, id_handler_map), uri, handler);
420
437
 
421
438
  return Qnil;
@@ -504,7 +521,7 @@ VALUE URIClassifier_resolve(VALUE self, VALUE uri)
504
521
  // matches a script so process like normal
505
522
  rb_ary_push(result, rb_str_substr(uri, pref_len, RSTRING(uri)->len));
506
523
  }
507
-
524
+
508
525
  rb_ary_push(result, (VALUE)handler);
509
526
  } else {
510
527
  // not found so push back nothing
@@ -521,13 +538,13 @@ void Init_http11()
521
538
  {
522
539
 
523
540
  mMongrel = rb_define_module("Mongrel");
524
- id_handler_map = rb_intern("@handler_map");
525
541
 
526
542
  DEF_GLOBAL(http_prefix, "HTTP_");
527
543
  DEF_GLOBAL(request_method, "REQUEST_METHOD");
528
544
  DEF_GLOBAL(request_uri, "REQUEST_URI");
529
545
  DEF_GLOBAL(query_string, "QUERY_STRING");
530
546
  DEF_GLOBAL(http_version, "HTTP_VERSION");
547
+ DEF_GLOBAL(request_path, "REQUEST_PATH");
531
548
  DEF_GLOBAL(content_length, "CONTENT_LENGTH");
532
549
  DEF_GLOBAL(http_content_length, "HTTP_CONTENT_LENGTH");
533
550
  DEF_GLOBAL(content_type, "CONTENT_TYPE");
@@ -539,7 +556,7 @@ void Init_http11()
539
556
  DEF_GLOBAL(server_protocol, "SERVER_PROTOCOL");
540
557
  DEF_GLOBAL(server_protocol_value, "HTTP/1.1");
541
558
  DEF_GLOBAL(http_host, "HTTP_HOST");
542
- DEF_GLOBAL(mongrel_version, "Mongrel 0.3.13.3");
559
+ DEF_GLOBAL(mongrel_version, "Mongrel 0.3.13.4");
543
560
  DEF_GLOBAL(server_software, "SERVER_SOFTWARE");
544
561
  DEF_GLOBAL(port_80, "80");
545
562
 
@@ -562,5 +579,5 @@ void Init_http11()
562
579
  rb_define_method(cURIClassifier, "unregister", URIClassifier_unregister, 1);
563
580
  rb_define_method(cURIClassifier, "resolve", URIClassifier_resolve, 1);
564
581
  }
565
-
582
+
566
583