mongrel 0.3.13.3 → 0.3.13.4

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 (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
@@ -15,59 +15,58 @@
15
15
  #define PTR_TO(F) (buffer + parser->F)
16
16
 
17
17
  /** machine **/
18
- #line 106 "ext/http11/http11_parser.rl"
18
+ #line 114 "ext/http11/http11_parser.rl"
19
19
 
20
20
 
21
21
  /** Data **/
22
22
 
23
23
  #line 24 "ext/http11/http11_parser.c"
24
- static int http_parser_start = 0;
24
+ static const int http_parser_start = 0;
25
25
 
26
- static int http_parser_first_final = 51;
26
+ static const int http_parser_first_final = 53;
27
27
 
28
- static int http_parser_error = 1;
28
+ static const int http_parser_error = 1;
29
29
 
30
- #line 110 "ext/http11/http11_parser.rl"
30
+ #line 118 "ext/http11/http11_parser.rl"
31
31
 
32
32
  int http_parser_init(http_parser *parser) {
33
- int cs = 0;
34
-
33
+ int cs = 0;
34
+
35
35
  #line 36 "ext/http11/http11_parser.c"
36
36
  {
37
37
  cs = http_parser_start;
38
38
  }
39
- #line 114 "ext/http11/http11_parser.rl"
40
- parser->cs = cs;
41
- parser->body_start = 0;
42
- parser->content_len = 0;
43
- parser->mark = 0;
44
- parser->nread = 0;
45
- parser->field_len = 0;
46
- parser->field_start = 0;
39
+ #line 122 "ext/http11/http11_parser.rl"
40
+ parser->cs = cs;
41
+ parser->body_start = 0;
42
+ parser->content_len = 0;
43
+ parser->mark = 0;
44
+ parser->nread = 0;
45
+ parser->field_len = 0;
46
+ parser->field_start = 0;
47
47
 
48
- return(1);
48
+ return(1);
49
49
  }
50
50
 
51
51
 
52
52
  /** exec **/
53
53
  size_t http_parser_execute(http_parser *parser, const char *buffer, size_t len, size_t off) {
54
- const char *p, *pe;
55
- int cs = parser->cs;
54
+ const char *p, *pe;
55
+ int cs = parser->cs;
56
56
 
57
- assert(off <= len && "offset past end of buffer");
57
+ assert(off <= len && "offset past end of buffer");
58
58
 
59
- p = buffer+off;
60
- pe = buffer+len;
59
+ p = buffer+off;
60
+ pe = buffer+len;
61
61
 
62
- assert(*pe == '\0' && "pointer does not end on NUL");
63
- assert(pe - p == len - off && "pointers aren't same distance");
62
+ assert(*pe == '\0' && "pointer does not end on NUL");
63
+ assert(pe - p == len - off && "pointers aren't same distance");
64
64
 
65
65
 
66
-
66
+
67
67
  #line 68 "ext/http11/http11_parser.c"
68
68
  {
69
- p -= 1;
70
- if ( ++p == pe )
69
+ if ( p == pe )
71
70
  goto _out;
72
71
  switch ( cs )
73
72
  {
@@ -95,33 +94,33 @@ st2:
95
94
  if ( ++p == pe )
96
95
  goto _out2;
97
96
  case 2:
98
- #line 99 "ext/http11/http11_parser.c"
97
+ #line 98 "ext/http11/http11_parser.c"
99
98
  switch( (*p) ) {
100
- case 32: goto tr18;
101
- case 36: goto st32;
102
- case 95: goto st32;
99
+ case 32: goto tr17;
100
+ case 36: goto st34;
101
+ case 95: goto st34;
103
102
  }
104
103
  if ( (*p) < 48 ) {
105
104
  if ( 45 <= (*p) && (*p) <= 46 )
106
- goto st32;
105
+ goto st34;
107
106
  } else if ( (*p) > 57 ) {
108
107
  if ( 65 <= (*p) && (*p) <= 90 )
109
- goto st32;
108
+ goto st34;
110
109
  } else
111
- goto st32;
110
+ goto st34;
112
111
  goto st1;
113
- tr18:
114
- #line 33 "ext/http11/http11_parser.rl"
112
+ tr17:
113
+ #line 34 "ext/http11/http11_parser.rl"
115
114
  {
116
- if(parser->request_method != NULL)
117
- parser->request_method(parser->data, PTR_TO(mark), LEN(mark, p));
118
- }
115
+ if(parser->request_method != NULL)
116
+ parser->request_method(parser->data, PTR_TO(mark), LEN(mark, p));
117
+ }
119
118
  goto st3;
120
119
  st3:
121
120
  if ( ++p == pe )
122
121
  goto _out3;
123
122
  case 3:
124
- #line 125 "ext/http11/http11_parser.c"
123
+ #line 124 "ext/http11/http11_parser.c"
125
124
  switch( (*p) ) {
126
125
  case 42: goto tr10;
127
126
  case 43: goto tr11;
@@ -145,29 +144,60 @@ st4:
145
144
  if ( ++p == pe )
146
145
  goto _out4;
147
146
  case 4:
148
- #line 149 "ext/http11/http11_parser.c"
147
+ #line 148 "ext/http11/http11_parser.c"
149
148
  if ( (*p) == 32 )
150
- goto tr20;
149
+ goto tr19;
151
150
  goto st1;
152
- tr20:
153
- #line 37 "ext/http11/http11_parser.rl"
151
+ tr19:
152
+ #line 38 "ext/http11/http11_parser.rl"
154
153
  {
155
- if(parser->request_uri != NULL)
156
- parser->request_uri(parser->data, PTR_TO(mark), LEN(mark, p));
157
- }
154
+ if(parser->request_uri != NULL)
155
+ parser->request_uri(parser->data, PTR_TO(mark), LEN(mark, p));
156
+ }
158
157
  goto st5;
159
- tr32:
160
- #line 41 "ext/http11/http11_parser.rl"
158
+ tr28:
159
+ #line 44 "ext/http11/http11_parser.rl"
161
160
  {
162
- if(parser->query_string != NULL)
163
- parser->query_string(parser->data, PTR_TO(mark), LEN(mark, p));
164
- }
161
+ if(parser->query_string != NULL)
162
+ parser->query_string(parser->data, PTR_TO(query_start), LEN(query_start, p));
163
+ }
164
+ #line 38 "ext/http11/http11_parser.rl"
165
+ {
166
+ if(parser->request_uri != NULL)
167
+ parser->request_uri(parser->data, PTR_TO(mark), LEN(mark, p));
168
+ }
169
+ goto st5;
170
+ tr31:
171
+ #line 54 "ext/http11/http11_parser.rl"
172
+ {
173
+ if(parser->request_path != NULL)
174
+ parser->request_path(parser->data, PTR_TO(mark), LEN(mark,p));
175
+ }
176
+ #line 38 "ext/http11/http11_parser.rl"
177
+ {
178
+ if(parser->request_uri != NULL)
179
+ parser->request_uri(parser->data, PTR_TO(mark), LEN(mark, p));
180
+ }
181
+ goto st5;
182
+ tr40:
183
+ #line 43 "ext/http11/http11_parser.rl"
184
+ {MARK(query_start, p); }
185
+ #line 44 "ext/http11/http11_parser.rl"
186
+ {
187
+ if(parser->query_string != NULL)
188
+ parser->query_string(parser->data, PTR_TO(query_start), LEN(query_start, p));
189
+ }
190
+ #line 38 "ext/http11/http11_parser.rl"
191
+ {
192
+ if(parser->request_uri != NULL)
193
+ parser->request_uri(parser->data, PTR_TO(mark), LEN(mark, p));
194
+ }
165
195
  goto st5;
166
196
  st5:
167
197
  if ( ++p == pe )
168
198
  goto _out5;
169
199
  case 5:
170
- #line 171 "ext/http11/http11_parser.c"
200
+ #line 201 "ext/http11/http11_parser.c"
171
201
  if ( (*p) == 72 )
172
202
  goto tr3;
173
203
  goto st1;
@@ -179,7 +209,7 @@ st6:
179
209
  if ( ++p == pe )
180
210
  goto _out6;
181
211
  case 6:
182
- #line 183 "ext/http11/http11_parser.c"
212
+ #line 213 "ext/http11/http11_parser.c"
183
213
  if ( (*p) == 84 )
184
214
  goto st7;
185
215
  goto st1;
@@ -232,30 +262,30 @@ st13:
232
262
  goto _out13;
233
263
  case 13:
234
264
  if ( (*p) == 13 )
235
- goto tr23;
265
+ goto tr22;
236
266
  if ( 48 <= (*p) && (*p) <= 57 )
237
267
  goto st13;
238
268
  goto st1;
239
- tr23:
240
- #line 46 "ext/http11/http11_parser.rl"
269
+ tr22:
270
+ #line 49 "ext/http11/http11_parser.rl"
241
271
  {
242
- if(parser->http_version != NULL)
243
- parser->http_version(parser->data, PTR_TO(mark), LEN(mark, p));
244
- }
272
+ if(parser->http_version != NULL)
273
+ parser->http_version(parser->data, PTR_TO(mark), LEN(mark, p));
274
+ }
245
275
  goto st14;
246
- tr35:
247
- #line 28 "ext/http11/http11_parser.rl"
276
+ tr36:
277
+ #line 29 "ext/http11/http11_parser.rl"
248
278
  {
249
- if(parser->http_field != NULL) {
250
- parser->http_field(parser->data, PTR_TO(field_start), parser->field_len, PTR_TO(mark), LEN(mark, p));
251
- }
252
- }
279
+ if(parser->http_field != NULL) {
280
+ parser->http_field(parser->data, PTR_TO(field_start), parser->field_len, PTR_TO(mark), LEN(mark, p));
281
+ }
282
+ }
253
283
  goto st14;
254
284
  st14:
255
285
  if ( ++p == pe )
256
286
  goto _out14;
257
287
  case 14:
258
- #line 259 "ext/http11/http11_parser.c"
288
+ #line 289 "ext/http11/http11_parser.c"
259
289
  if ( (*p) == 10 )
260
290
  goto st15;
261
291
  goto st1;
@@ -265,59 +295,59 @@ st15:
265
295
  case 15:
266
296
  switch( (*p) ) {
267
297
  case 13: goto st16;
268
- case 33: goto tr22;
269
- case 124: goto tr22;
270
- case 126: goto tr22;
298
+ case 33: goto tr21;
299
+ case 124: goto tr21;
300
+ case 126: goto tr21;
271
301
  }
272
302
  if ( (*p) < 45 ) {
273
303
  if ( (*p) > 39 ) {
274
304
  if ( 42 <= (*p) && (*p) <= 43 )
275
- goto tr22;
305
+ goto tr21;
276
306
  } else if ( (*p) >= 35 )
277
- goto tr22;
307
+ goto tr21;
278
308
  } else if ( (*p) > 46 ) {
279
309
  if ( (*p) < 65 ) {
280
310
  if ( 48 <= (*p) && (*p) <= 57 )
281
- goto tr22;
311
+ goto tr21;
282
312
  } else if ( (*p) > 90 ) {
283
313
  if ( 94 <= (*p) && (*p) <= 122 )
284
- goto tr22;
314
+ goto tr21;
285
315
  } else
286
- goto tr22;
316
+ goto tr21;
287
317
  } else
288
- goto tr22;
318
+ goto tr21;
289
319
  goto st1;
290
320
  st16:
291
321
  if ( ++p == pe )
292
322
  goto _out16;
293
323
  case 16:
294
324
  if ( (*p) == 10 )
295
- goto tr26;
325
+ goto tr25;
296
326
  goto st1;
297
- tr26:
298
- #line 51 "ext/http11/http11_parser.rl"
327
+ tr25:
328
+ #line 59 "ext/http11/http11_parser.rl"
299
329
  {
300
- parser->body_start = p - buffer + 1;
301
- if(parser->header_done != NULL)
302
- parser->header_done(parser->data, p, 0);
303
- goto _out51;
304
- }
305
- goto st51;
306
- st51:
330
+ parser->body_start = p - buffer + 1;
331
+ if(parser->header_done != NULL)
332
+ parser->header_done(parser->data, p + 1, pe - p - 1);
333
+ goto _out53;
334
+ }
335
+ goto st53;
336
+ st53:
307
337
  if ( ++p == pe )
308
- goto _out51;
309
- case 51:
310
- #line 311 "ext/http11/http11_parser.c"
338
+ goto _out53;
339
+ case 53:
340
+ #line 341 "ext/http11/http11_parser.c"
311
341
  goto st1;
312
- tr22:
313
- #line 22 "ext/http11/http11_parser.rl"
342
+ tr21:
343
+ #line 23 "ext/http11/http11_parser.rl"
314
344
  { MARK(field_start, p); }
315
345
  goto st17;
316
346
  st17:
317
347
  if ( ++p == pe )
318
348
  goto _out17;
319
349
  case 17:
320
- #line 321 "ext/http11/http11_parser.c"
350
+ #line 351 "ext/http11/http11_parser.c"
321
351
  switch( (*p) ) {
322
352
  case 33: goto st17;
323
353
  case 58: goto tr16;
@@ -343,75 +373,74 @@ case 17:
343
373
  goto st17;
344
374
  goto st1;
345
375
  tr16:
346
- #line 23 "ext/http11/http11_parser.rl"
376
+ #line 24 "ext/http11/http11_parser.rl"
347
377
  {
348
- parser->field_len = LEN(field_start, p);
349
- }
378
+ parser->field_len = LEN(field_start, p);
379
+ }
380
+ goto st18;
381
+ tr38:
382
+ #line 28 "ext/http11/http11_parser.rl"
383
+ { MARK(mark, p); }
350
384
  goto st18;
351
385
  st18:
352
386
  if ( ++p == pe )
353
387
  goto _out18;
354
388
  case 18:
355
- #line 356 "ext/http11/http11_parser.c"
356
- if ( (*p) == 32 )
357
- goto st19;
358
- goto st1;
389
+ #line 390 "ext/http11/http11_parser.c"
390
+ switch( (*p) ) {
391
+ case 13: goto tr36;
392
+ case 32: goto tr38;
393
+ }
394
+ goto tr37;
395
+ tr37:
396
+ #line 28 "ext/http11/http11_parser.rl"
397
+ { MARK(mark, p); }
398
+ goto st19;
359
399
  st19:
360
400
  if ( ++p == pe )
361
401
  goto _out19;
362
402
  case 19:
403
+ #line 404 "ext/http11/http11_parser.c"
363
404
  if ( (*p) == 13 )
364
- goto tr35;
365
- goto tr38;
366
- tr38:
367
- #line 27 "ext/http11/http11_parser.rl"
368
- { MARK(mark, p); }
405
+ goto tr36;
406
+ goto st19;
407
+ tr11:
408
+ #line 20 "ext/http11/http11_parser.rl"
409
+ {MARK(mark, p); }
369
410
  goto st20;
370
411
  st20:
371
412
  if ( ++p == pe )
372
413
  goto _out20;
373
414
  case 20:
374
- #line 375 "ext/http11/http11_parser.c"
375
- if ( (*p) == 13 )
376
- goto tr35;
377
- goto st20;
378
- tr11:
379
- #line 20 "ext/http11/http11_parser.rl"
380
- {MARK(mark, p); }
381
- goto st21;
382
- st21:
383
- if ( ++p == pe )
384
- goto _out21;
385
- case 21:
386
- #line 387 "ext/http11/http11_parser.c"
415
+ #line 416 "ext/http11/http11_parser.c"
387
416
  switch( (*p) ) {
388
- case 43: goto st21;
389
- case 58: goto st22;
417
+ case 43: goto st20;
418
+ case 58: goto st21;
390
419
  }
391
420
  if ( (*p) < 48 ) {
392
421
  if ( 45 <= (*p) && (*p) <= 46 )
393
- goto st21;
422
+ goto st20;
394
423
  } else if ( (*p) > 57 ) {
395
424
  if ( (*p) > 90 ) {
396
425
  if ( 97 <= (*p) && (*p) <= 122 )
397
- goto st21;
426
+ goto st20;
398
427
  } else if ( (*p) >= 65 )
399
- goto st21;
428
+ goto st20;
400
429
  } else
401
- goto st21;
430
+ goto st20;
402
431
  goto st1;
403
432
  tr13:
404
433
  #line 20 "ext/http11/http11_parser.rl"
405
434
  {MARK(mark, p); }
406
- goto st22;
407
- st22:
435
+ goto st21;
436
+ st21:
408
437
  if ( ++p == pe )
409
- goto _out22;
410
- case 22:
411
- #line 412 "ext/http11/http11_parser.c"
438
+ goto _out21;
439
+ case 21:
440
+ #line 441 "ext/http11/http11_parser.c"
412
441
  switch( (*p) ) {
413
- case 32: goto tr20;
414
- case 37: goto st23;
442
+ case 32: goto tr19;
443
+ case 37: goto st22;
415
444
  case 60: goto st1;
416
445
  case 62: goto st1;
417
446
  case 127: goto st1;
@@ -421,48 +450,49 @@ case 22:
421
450
  goto st1;
422
451
  } else if ( (*p) >= 0 )
423
452
  goto st1;
424
- goto st22;
425
- st23:
453
+ goto st21;
454
+ st22:
426
455
  if ( ++p == pe )
427
- goto _out23;
428
- case 23:
456
+ goto _out22;
457
+ case 22:
429
458
  if ( (*p) < 65 ) {
430
459
  if ( 48 <= (*p) && (*p) <= 57 )
431
- goto st24;
460
+ goto st23;
432
461
  } else if ( (*p) > 70 ) {
433
462
  if ( 97 <= (*p) && (*p) <= 102 )
434
- goto st24;
463
+ goto st23;
435
464
  } else
436
- goto st24;
465
+ goto st23;
437
466
  goto st1;
438
- st24:
467
+ st23:
439
468
  if ( ++p == pe )
440
- goto _out24;
441
- case 24:
469
+ goto _out23;
470
+ case 23:
442
471
  if ( (*p) < 65 ) {
443
472
  if ( 48 <= (*p) && (*p) <= 57 )
444
- goto st22;
473
+ goto st21;
445
474
  } else if ( (*p) > 70 ) {
446
475
  if ( 97 <= (*p) && (*p) <= 102 )
447
- goto st22;
476
+ goto st21;
448
477
  } else
449
- goto st22;
478
+ goto st21;
450
479
  goto st1;
451
480
  tr12:
452
481
  #line 20 "ext/http11/http11_parser.rl"
453
482
  {MARK(mark, p); }
454
- goto st25;
455
- st25:
483
+ goto st24;
484
+ st24:
456
485
  if ( ++p == pe )
457
- goto _out25;
458
- case 25:
459
- #line 460 "ext/http11/http11_parser.c"
486
+ goto _out24;
487
+ case 24:
488
+ #line 489 "ext/http11/http11_parser.c"
460
489
  switch( (*p) ) {
461
- case 32: goto tr20;
462
- case 37: goto st26;
490
+ case 32: goto tr31;
491
+ case 37: goto st25;
492
+ case 59: goto tr33;
463
493
  case 60: goto st1;
464
494
  case 62: goto st1;
465
- case 63: goto tr30;
495
+ case 63: goto tr34;
466
496
  case 127: goto st1;
467
497
  }
468
498
  if ( (*p) > 31 ) {
@@ -470,50 +500,51 @@ case 25:
470
500
  goto st1;
471
501
  } else if ( (*p) >= 0 )
472
502
  goto st1;
473
- goto st25;
474
- st26:
503
+ goto st24;
504
+ st25:
475
505
  if ( ++p == pe )
476
- goto _out26;
477
- case 26:
506
+ goto _out25;
507
+ case 25:
478
508
  if ( (*p) < 65 ) {
479
509
  if ( 48 <= (*p) && (*p) <= 57 )
480
- goto st27;
510
+ goto st26;
481
511
  } else if ( (*p) > 70 ) {
482
512
  if ( 97 <= (*p) && (*p) <= 102 )
483
- goto st27;
513
+ goto st26;
484
514
  } else
485
- goto st27;
515
+ goto st26;
486
516
  goto st1;
487
- st27:
517
+ st26:
488
518
  if ( ++p == pe )
489
- goto _out27;
490
- case 27:
519
+ goto _out26;
520
+ case 26:
491
521
  if ( (*p) < 65 ) {
492
522
  if ( 48 <= (*p) && (*p) <= 57 )
493
- goto st25;
523
+ goto st24;
494
524
  } else if ( (*p) > 70 ) {
495
525
  if ( 97 <= (*p) && (*p) <= 102 )
496
- goto st25;
526
+ goto st24;
497
527
  } else
498
- goto st25;
528
+ goto st24;
499
529
  goto st1;
500
- tr30:
501
- #line 37 "ext/http11/http11_parser.rl"
502
- {
503
- if(parser->request_uri != NULL)
504
- parser->request_uri(parser->data, PTR_TO(mark), LEN(mark, p));
505
- }
506
- goto st28;
507
- st28:
530
+ tr33:
531
+ #line 54 "ext/http11/http11_parser.rl"
532
+ {
533
+ if(parser->request_path != NULL)
534
+ parser->request_path(parser->data, PTR_TO(mark), LEN(mark,p));
535
+ }
536
+ goto st27;
537
+ st27:
508
538
  if ( ++p == pe )
509
- goto _out28;
510
- case 28:
511
- #line 512 "ext/http11/http11_parser.c"
539
+ goto _out27;
540
+ case 27:
541
+ #line 542 "ext/http11/http11_parser.c"
512
542
  switch( (*p) ) {
513
- case 32: goto tr32;
514
- case 37: goto tr37;
543
+ case 32: goto tr19;
544
+ case 37: goto st28;
515
545
  case 60: goto st1;
516
546
  case 62: goto st1;
547
+ case 63: goto st30;
517
548
  case 127: goto st1;
518
549
  }
519
550
  if ( (*p) > 31 ) {
@@ -521,19 +552,48 @@ case 28:
521
552
  goto st1;
522
553
  } else if ( (*p) >= 0 )
523
554
  goto st1;
524
- goto tr36;
525
- tr36:
526
- #line 20 "ext/http11/http11_parser.rl"
527
- {MARK(mark, p); }
528
- goto st29;
555
+ goto st27;
556
+ st28:
557
+ if ( ++p == pe )
558
+ goto _out28;
559
+ case 28:
560
+ if ( (*p) < 65 ) {
561
+ if ( 48 <= (*p) && (*p) <= 57 )
562
+ goto st29;
563
+ } else if ( (*p) > 70 ) {
564
+ if ( 97 <= (*p) && (*p) <= 102 )
565
+ goto st29;
566
+ } else
567
+ goto st29;
568
+ goto st1;
529
569
  st29:
530
570
  if ( ++p == pe )
531
571
  goto _out29;
532
572
  case 29:
533
- #line 534 "ext/http11/http11_parser.c"
573
+ if ( (*p) < 65 ) {
574
+ if ( 48 <= (*p) && (*p) <= 57 )
575
+ goto st27;
576
+ } else if ( (*p) > 70 ) {
577
+ if ( 97 <= (*p) && (*p) <= 102 )
578
+ goto st27;
579
+ } else
580
+ goto st27;
581
+ goto st1;
582
+ tr34:
583
+ #line 54 "ext/http11/http11_parser.rl"
584
+ {
585
+ if(parser->request_path != NULL)
586
+ parser->request_path(parser->data, PTR_TO(mark), LEN(mark,p));
587
+ }
588
+ goto st30;
589
+ st30:
590
+ if ( ++p == pe )
591
+ goto _out30;
592
+ case 30:
593
+ #line 594 "ext/http11/http11_parser.c"
534
594
  switch( (*p) ) {
535
- case 32: goto tr32;
536
- case 37: goto st30;
595
+ case 32: goto tr40;
596
+ case 37: goto tr41;
537
597
  case 60: goto st1;
538
598
  case 62: goto st1;
539
599
  case 127: goto st1;
@@ -543,52 +603,43 @@ case 29:
543
603
  goto st1;
544
604
  } else if ( (*p) >= 0 )
545
605
  goto st1;
546
- goto st29;
547
- tr37:
548
- #line 20 "ext/http11/http11_parser.rl"
549
- {MARK(mark, p); }
550
- goto st30;
551
- st30:
552
- if ( ++p == pe )
553
- goto _out30;
554
- case 30:
555
- #line 556 "ext/http11/http11_parser.c"
556
- if ( (*p) < 65 ) {
557
- if ( 48 <= (*p) && (*p) <= 57 )
558
- goto st31;
559
- } else if ( (*p) > 70 ) {
560
- if ( 97 <= (*p) && (*p) <= 102 )
561
- goto st31;
562
- } else
563
- goto st31;
564
- goto st1;
606
+ goto tr39;
607
+ tr39:
608
+ #line 43 "ext/http11/http11_parser.rl"
609
+ {MARK(query_start, p); }
610
+ goto st31;
565
611
  st31:
566
612
  if ( ++p == pe )
567
613
  goto _out31;
568
614
  case 31:
569
- if ( (*p) < 65 ) {
570
- if ( 48 <= (*p) && (*p) <= 57 )
571
- goto st29;
572
- } else if ( (*p) > 70 ) {
573
- if ( 97 <= (*p) && (*p) <= 102 )
574
- goto st29;
575
- } else
576
- goto st29;
577
- goto st1;
615
+ #line 616 "ext/http11/http11_parser.c"
616
+ switch( (*p) ) {
617
+ case 32: goto tr28;
618
+ case 37: goto st32;
619
+ case 60: goto st1;
620
+ case 62: goto st1;
621
+ case 127: goto st1;
622
+ }
623
+ if ( (*p) > 31 ) {
624
+ if ( 34 <= (*p) && (*p) <= 35 )
625
+ goto st1;
626
+ } else if ( (*p) >= 0 )
627
+ goto st1;
628
+ goto st31;
629
+ tr41:
630
+ #line 43 "ext/http11/http11_parser.rl"
631
+ {MARK(query_start, p); }
632
+ goto st32;
578
633
  st32:
579
634
  if ( ++p == pe )
580
635
  goto _out32;
581
636
  case 32:
582
- switch( (*p) ) {
583
- case 32: goto tr18;
584
- case 36: goto st33;
585
- case 95: goto st33;
586
- }
587
- if ( (*p) < 48 ) {
588
- if ( 45 <= (*p) && (*p) <= 46 )
637
+ #line 638 "ext/http11/http11_parser.c"
638
+ if ( (*p) < 65 ) {
639
+ if ( 48 <= (*p) && (*p) <= 57 )
589
640
  goto st33;
590
- } else if ( (*p) > 57 ) {
591
- if ( 65 <= (*p) && (*p) <= 90 )
641
+ } else if ( (*p) > 70 ) {
642
+ if ( 97 <= (*p) && (*p) <= 102 )
592
643
  goto st33;
593
644
  } else
594
645
  goto st33;
@@ -597,26 +648,21 @@ st33:
597
648
  if ( ++p == pe )
598
649
  goto _out33;
599
650
  case 33:
600
- switch( (*p) ) {
601
- case 32: goto tr18;
602
- case 36: goto st34;
603
- case 95: goto st34;
604
- }
605
- if ( (*p) < 48 ) {
606
- if ( 45 <= (*p) && (*p) <= 46 )
607
- goto st34;
608
- } else if ( (*p) > 57 ) {
609
- if ( 65 <= (*p) && (*p) <= 90 )
610
- goto st34;
651
+ if ( (*p) < 65 ) {
652
+ if ( 48 <= (*p) && (*p) <= 57 )
653
+ goto st31;
654
+ } else if ( (*p) > 70 ) {
655
+ if ( 97 <= (*p) && (*p) <= 102 )
656
+ goto st31;
611
657
  } else
612
- goto st34;
658
+ goto st31;
613
659
  goto st1;
614
660
  st34:
615
661
  if ( ++p == pe )
616
662
  goto _out34;
617
663
  case 34:
618
664
  switch( (*p) ) {
619
- case 32: goto tr18;
665
+ case 32: goto tr17;
620
666
  case 36: goto st35;
621
667
  case 95: goto st35;
622
668
  }
@@ -634,7 +680,7 @@ st35:
634
680
  goto _out35;
635
681
  case 35:
636
682
  switch( (*p) ) {
637
- case 32: goto tr18;
683
+ case 32: goto tr17;
638
684
  case 36: goto st36;
639
685
  case 95: goto st36;
640
686
  }
@@ -652,7 +698,7 @@ st36:
652
698
  goto _out36;
653
699
  case 36:
654
700
  switch( (*p) ) {
655
- case 32: goto tr18;
701
+ case 32: goto tr17;
656
702
  case 36: goto st37;
657
703
  case 95: goto st37;
658
704
  }
@@ -670,7 +716,7 @@ st37:
670
716
  goto _out37;
671
717
  case 37:
672
718
  switch( (*p) ) {
673
- case 32: goto tr18;
719
+ case 32: goto tr17;
674
720
  case 36: goto st38;
675
721
  case 95: goto st38;
676
722
  }
@@ -688,7 +734,7 @@ st38:
688
734
  goto _out38;
689
735
  case 38:
690
736
  switch( (*p) ) {
691
- case 32: goto tr18;
737
+ case 32: goto tr17;
692
738
  case 36: goto st39;
693
739
  case 95: goto st39;
694
740
  }
@@ -706,7 +752,7 @@ st39:
706
752
  goto _out39;
707
753
  case 39:
708
754
  switch( (*p) ) {
709
- case 32: goto tr18;
755
+ case 32: goto tr17;
710
756
  case 36: goto st40;
711
757
  case 95: goto st40;
712
758
  }
@@ -724,7 +770,7 @@ st40:
724
770
  goto _out40;
725
771
  case 40:
726
772
  switch( (*p) ) {
727
- case 32: goto tr18;
773
+ case 32: goto tr17;
728
774
  case 36: goto st41;
729
775
  case 95: goto st41;
730
776
  }
@@ -742,7 +788,7 @@ st41:
742
788
  goto _out41;
743
789
  case 41:
744
790
  switch( (*p) ) {
745
- case 32: goto tr18;
791
+ case 32: goto tr17;
746
792
  case 36: goto st42;
747
793
  case 95: goto st42;
748
794
  }
@@ -760,7 +806,7 @@ st42:
760
806
  goto _out42;
761
807
  case 42:
762
808
  switch( (*p) ) {
763
- case 32: goto tr18;
809
+ case 32: goto tr17;
764
810
  case 36: goto st43;
765
811
  case 95: goto st43;
766
812
  }
@@ -778,7 +824,7 @@ st43:
778
824
  goto _out43;
779
825
  case 43:
780
826
  switch( (*p) ) {
781
- case 32: goto tr18;
827
+ case 32: goto tr17;
782
828
  case 36: goto st44;
783
829
  case 95: goto st44;
784
830
  }
@@ -796,7 +842,7 @@ st44:
796
842
  goto _out44;
797
843
  case 44:
798
844
  switch( (*p) ) {
799
- case 32: goto tr18;
845
+ case 32: goto tr17;
800
846
  case 36: goto st45;
801
847
  case 95: goto st45;
802
848
  }
@@ -814,7 +860,7 @@ st45:
814
860
  goto _out45;
815
861
  case 45:
816
862
  switch( (*p) ) {
817
- case 32: goto tr18;
863
+ case 32: goto tr17;
818
864
  case 36: goto st46;
819
865
  case 95: goto st46;
820
866
  }
@@ -832,7 +878,7 @@ st46:
832
878
  goto _out46;
833
879
  case 46:
834
880
  switch( (*p) ) {
835
- case 32: goto tr18;
881
+ case 32: goto tr17;
836
882
  case 36: goto st47;
837
883
  case 95: goto st47;
838
884
  }
@@ -850,7 +896,7 @@ st47:
850
896
  goto _out47;
851
897
  case 47:
852
898
  switch( (*p) ) {
853
- case 32: goto tr18;
899
+ case 32: goto tr17;
854
900
  case 36: goto st48;
855
901
  case 95: goto st48;
856
902
  }
@@ -868,7 +914,7 @@ st48:
868
914
  goto _out48;
869
915
  case 48:
870
916
  switch( (*p) ) {
871
- case 32: goto tr18;
917
+ case 32: goto tr17;
872
918
  case 36: goto st49;
873
919
  case 95: goto st49;
874
920
  }
@@ -886,7 +932,7 @@ st49:
886
932
  goto _out49;
887
933
  case 49:
888
934
  switch( (*p) ) {
889
- case 32: goto tr18;
935
+ case 32: goto tr17;
890
936
  case 36: goto st50;
891
937
  case 95: goto st50;
892
938
  }
@@ -903,8 +949,44 @@ st50:
903
949
  if ( ++p == pe )
904
950
  goto _out50;
905
951
  case 50:
952
+ switch( (*p) ) {
953
+ case 32: goto tr17;
954
+ case 36: goto st51;
955
+ case 95: goto st51;
956
+ }
957
+ if ( (*p) < 48 ) {
958
+ if ( 45 <= (*p) && (*p) <= 46 )
959
+ goto st51;
960
+ } else if ( (*p) > 57 ) {
961
+ if ( 65 <= (*p) && (*p) <= 90 )
962
+ goto st51;
963
+ } else
964
+ goto st51;
965
+ goto st1;
966
+ st51:
967
+ if ( ++p == pe )
968
+ goto _out51;
969
+ case 51:
970
+ switch( (*p) ) {
971
+ case 32: goto tr17;
972
+ case 36: goto st52;
973
+ case 95: goto st52;
974
+ }
975
+ if ( (*p) < 48 ) {
976
+ if ( 45 <= (*p) && (*p) <= 46 )
977
+ goto st52;
978
+ } else if ( (*p) > 57 ) {
979
+ if ( 65 <= (*p) && (*p) <= 90 )
980
+ goto st52;
981
+ } else
982
+ goto st52;
983
+ goto st1;
984
+ st52:
985
+ if ( ++p == pe )
986
+ goto _out52;
987
+ case 52:
906
988
  if ( (*p) == 32 )
907
- goto tr18;
989
+ goto tr17;
908
990
  goto st1;
909
991
  }
910
992
  _out1: cs = 1; goto _out;
@@ -923,7 +1005,7 @@ case 50:
923
1005
  _out14: cs = 14; goto _out;
924
1006
  _out15: cs = 15; goto _out;
925
1007
  _out16: cs = 16; goto _out;
926
- _out51: cs = 51; goto _out;
1008
+ _out53: cs = 53; goto _out;
927
1009
  _out17: cs = 17; goto _out;
928
1010
  _out18: cs = 18; goto _out;
929
1011
  _out19: cs = 19; goto _out;
@@ -958,55 +1040,57 @@ case 50:
958
1040
  _out48: cs = 48; goto _out;
959
1041
  _out49: cs = 49; goto _out;
960
1042
  _out50: cs = 50; goto _out;
1043
+ _out51: cs = 51; goto _out;
1044
+ _out52: cs = 52; goto _out;
961
1045
 
962
1046
  _out: {}
963
1047
  }
964
- #line 141 "ext/http11/http11_parser.rl"
1048
+ #line 149 "ext/http11/http11_parser.rl"
965
1049
 
966
- parser->cs = cs;
967
- parser->nread += p - (buffer + off);
1050
+ parser->cs = cs;
1051
+ parser->nread += p - (buffer + off);
968
1052
 
969
- assert(p <= pe && "buffer overflow after parsing execute");
970
- assert(parser->nread <= len && "nread longer than length");
971
- assert(parser->body_start <= len && "body starts after buffer end");
972
- assert(parser->mark < len && "mark is after buffer end");
973
- assert(parser->field_len <= len && "field has length longer than whole buffer");
974
- assert(parser->field_start < len && "field starts after buffer end");
1053
+ assert(p <= pe && "buffer overflow after parsing execute");
1054
+ assert(parser->nread <= len && "nread longer than length");
1055
+ assert(parser->body_start <= len && "body starts after buffer end");
1056
+ assert(parser->mark < len && "mark is after buffer end");
1057
+ assert(parser->field_len <= len && "field has length longer than whole buffer");
1058
+ assert(parser->field_start < len && "field starts after buffer end");
975
1059
 
976
- if(parser->body_start) {
977
- /* final \r\n combo encountered so stop right here */
978
-
979
- #line 980 "ext/http11/http11_parser.c"
980
- #line 155 "ext/http11/http11_parser.rl"
981
- parser->nread++;
982
- }
1060
+ if(parser->body_start) {
1061
+ /* final \r\n combo encountered so stop right here */
1062
+
1063
+ #line 1064 "ext/http11/http11_parser.c"
1064
+ #line 163 "ext/http11/http11_parser.rl"
1065
+ parser->nread++;
1066
+ }
983
1067
 
984
- return(parser->nread);
1068
+ return(parser->nread);
985
1069
  }
986
1070
 
987
1071
  int http_parser_finish(http_parser *parser)
988
1072
  {
989
- int cs = parser->cs;
1073
+ int cs = parser->cs;
990
1074
 
991
-
992
- #line 993 "ext/http11/http11_parser.c"
993
- #line 166 "ext/http11/http11_parser.rl"
1075
+
1076
+ #line 1077 "ext/http11/http11_parser.c"
1077
+ #line 174 "ext/http11/http11_parser.rl"
994
1078
 
995
- parser->cs = cs;
1079
+ parser->cs = cs;
996
1080
 
997
- if (http_parser_has_error(parser) ) {
998
- return -1;
999
- } else if (http_parser_is_finished(parser) ) {
1000
- return 1;
1001
- } else {
1002
- return 0;
1003
- }
1081
+ if (http_parser_has_error(parser) ) {
1082
+ return -1;
1083
+ } else if (http_parser_is_finished(parser) ) {
1084
+ return 1;
1085
+ } else {
1086
+ return 0;
1087
+ }
1004
1088
  }
1005
1089
 
1006
1090
  int http_parser_has_error(http_parser *parser) {
1007
- return parser->cs == http_parser_error;
1091
+ return parser->cs == http_parser_error;
1008
1092
  }
1009
1093
 
1010
1094
  int http_parser_is_finished(http_parser *parser) {
1011
- return parser->cs == http_parser_first_final;
1095
+ return parser->cs == http_parser_first_final;
1012
1096
  }