passenger 3.0.4 → 3.0.5

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of passenger might be problematic. Click here for more details.

Files changed (571) hide show
  1. data/NEWS +27 -0
  2. data/build/common_library.rb +4 -0
  3. data/doc/ApplicationPool algorithm.txt +1 -1
  4. data/doc/cxxapi/AbstractSpawnManager_8h_source.html +141 -0
  5. data/doc/cxxapi/Account_8h_source.html +206 -0
  6. data/doc/cxxapi/AccountsDatabase_8h_source.html +161 -0
  7. data/doc/cxxapi/AgentBase_8h_source.html +70 -0
  8. data/doc/cxxapi/AgentsStarter_8h_source.html +112 -0
  9. data/doc/cxxapi/BCrypt_8h_source.html +104 -0
  10. data/doc/cxxapi/Blowfish_8h_source.html +134 -0
  11. data/doc/cxxapi/Bucket_8h_source.html +118 -0
  12. data/doc/cxxapi/Constants_8h_source.html +79 -0
  13. data/doc/cxxapi/ContentHandler_8h_source.html +95 -0
  14. data/doc/cxxapi/DirectoryMapper_8h_source.html +311 -0
  15. data/doc/cxxapi/EventedClient_8h_source.html +733 -0
  16. data/doc/cxxapi/EventedMessageServer_8h_source.html +358 -0
  17. data/doc/cxxapi/EventedServer_8h_source.html +326 -0
  18. data/doc/cxxapi/Exceptions_8h_source.html +393 -0
  19. data/doc/cxxapi/FileDescriptor_8h_source.html +324 -0
  20. data/doc/cxxapi/Hooks_8h_source.html +76 -0
  21. data/doc/cxxapi/HttpStatusExtractor_8h_source.html +382 -0
  22. data/doc/cxxapi/IniFile_8h_source.html +527 -0
  23. data/doc/cxxapi/Logging_8h_source.html +796 -0
  24. data/doc/cxxapi/MessageChannel_8h_source.html +776 -0
  25. data/doc/cxxapi/MessageClient_8h_source.html +328 -0
  26. data/doc/cxxapi/MessageReadersWriters_8h_source.html +539 -0
  27. data/doc/cxxapi/MessageServer_8h_source.html +612 -0
  28. data/doc/cxxapi/PoolOptions_8h_source.html +549 -0
  29. data/doc/cxxapi/Process_8h_source.html +286 -0
  30. data/doc/cxxapi/RandomGenerator_8h_source.html +191 -0
  31. data/doc/cxxapi/ResourceLocator_8h_source.html +166 -0
  32. data/doc/cxxapi/SafeLibev_8h_source.html +180 -0
  33. data/doc/cxxapi/ScgiRequestParser_8h_source.html +406 -0
  34. data/doc/cxxapi/ServerInstanceDir_8h_source.html +378 -0
  35. data/doc/cxxapi/Session_8h_source.html +501 -0
  36. data/doc/cxxapi/SpawnManager_8h_source.html +647 -0
  37. data/doc/cxxapi/StaticContentHandler_8h_source.html +68 -0
  38. data/doc/cxxapi/StaticString_8h_source.html +329 -0
  39. data/doc/cxxapi/StringListCreator_8h_source.html +114 -0
  40. data/doc/cxxapi/Utils_8h_source.html +459 -0
  41. data/doc/cxxapi/annotated.html +87 -0
  42. data/doc/cxxapi/apache2_2Configuration_8h_source.html +82 -0
  43. data/doc/cxxapi/classAgentWatcher-members.html +54 -0
  44. data/doc/cxxapi/classAgentWatcher.html +419 -0
  45. data/doc/cxxapi/classClient-members.html +38 -0
  46. data/doc/cxxapi/classClient.html +123 -0
  47. data/doc/cxxapi/classHooks-members.html +40 -0
  48. data/doc/cxxapi/classHooks.html +153 -0
  49. data/doc/cxxapi/classPassenger_1_1AbstractSpawnManager-members.html +40 -0
  50. data/doc/cxxapi/classPassenger_1_1AbstractSpawnManager.html +187 -0
  51. data/doc/cxxapi/classPassenger_1_1AbstractSpawnManager__inherit__graph.map +3 -0
  52. data/doc/cxxapi/classPassenger_1_1AbstractSpawnManager__inherit__graph.md5 +1 -0
  53. data/doc/cxxapi/classPassenger_1_1AbstractSpawnManager__inherit__graph.png +0 -0
  54. data/doc/cxxapi/classPassenger_1_1ArgumentException-members.html +36 -0
  55. data/doc/cxxapi/classPassenger_1_1ArgumentException.html +56 -0
  56. data/doc/cxxapi/classPassenger_1_1ArrayMessage-members.html +37 -0
  57. data/doc/cxxapi/classPassenger_1_1ArrayMessage.html +113 -0
  58. data/doc/cxxapi/classPassenger_1_1BufferedUpload-members.html +38 -0
  59. data/doc/cxxapi/classPassenger_1_1BufferedUpload.html +112 -0
  60. data/doc/cxxapi/classPassenger_1_1BusyException-members.html +36 -0
  61. data/doc/cxxapi/classPassenger_1_1BusyException.html +54 -0
  62. data/doc/cxxapi/classPassenger_1_1ConfigurationException-members.html +36 -0
  63. data/doc/cxxapi/classPassenger_1_1ConfigurationException.html +51 -0
  64. data/doc/cxxapi/classPassenger_1_1DirectoryMapper-members.html +41 -0
  65. data/doc/cxxapi/classPassenger_1_1DirectoryMapper.html +223 -0
  66. data/doc/cxxapi/classPassenger_1_1EOFException-members.html +36 -0
  67. data/doc/cxxapi/classPassenger_1_1EOFException.html +61 -0
  68. data/doc/cxxapi/classPassenger_1_1EOFException__inherit__graph.map +3 -0
  69. data/doc/cxxapi/classPassenger_1_1EOFException__inherit__graph.md5 +1 -0
  70. data/doc/cxxapi/classPassenger_1_1EOFException__inherit__graph.png +0 -0
  71. data/doc/cxxapi/classPassenger_1_1EventFd-members.html +36 -0
  72. data/doc/cxxapi/classPassenger_1_1EventFd.html +52 -0
  73. data/doc/cxxapi/classPassenger_1_1EventedClient-members.html +59 -0
  74. data/doc/cxxapi/classPassenger_1_1EventedClient.html +531 -0
  75. data/doc/cxxapi/classPassenger_1_1EventedMessageServer-members.html +37 -0
  76. data/doc/cxxapi/classPassenger_1_1EventedMessageServer.html +59 -0
  77. data/doc/cxxapi/classPassenger_1_1EventedMessageServer__inherit__graph.map +3 -0
  78. data/doc/cxxapi/classPassenger_1_1EventedMessageServer__inherit__graph.md5 +1 -0
  79. data/doc/cxxapi/classPassenger_1_1EventedMessageServer__inherit__graph.png +0 -0
  80. data/doc/cxxapi/classPassenger_1_1EventedServer-members.html +37 -0
  81. data/doc/cxxapi/classPassenger_1_1EventedServer.html +93 -0
  82. data/doc/cxxapi/classPassenger_1_1EventedServer__inherit__graph.map +3 -0
  83. data/doc/cxxapi/classPassenger_1_1EventedServer__inherit__graph.md5 +1 -0
  84. data/doc/cxxapi/classPassenger_1_1EventedServer__inherit__graph.png +0 -0
  85. data/doc/cxxapi/classPassenger_1_1FileDescriptor-members.html +41 -0
  86. data/doc/cxxapi/classPassenger_1_1FileDescriptor.html +178 -0
  87. data/doc/cxxapi/classPassenger_1_1FileDescriptorPair-members.html +36 -0
  88. data/doc/cxxapi/classPassenger_1_1FileDescriptorPair.html +52 -0
  89. data/doc/cxxapi/classPassenger_1_1FileNotFoundException-members.html +36 -0
  90. data/doc/cxxapi/classPassenger_1_1FileNotFoundException.html +58 -0
  91. data/doc/cxxapi/classPassenger_1_1FileNotFoundException__inherit__graph.map +3 -0
  92. data/doc/cxxapi/classPassenger_1_1FileNotFoundException__inherit__graph.md5 +1 -0
  93. data/doc/cxxapi/classPassenger_1_1FileNotFoundException__inherit__graph.png +0 -0
  94. data/doc/cxxapi/classPassenger_1_1FileSystemException-members.html +41 -0
  95. data/doc/cxxapi/classPassenger_1_1FileSystemException.html +66 -0
  96. data/doc/cxxapi/classPassenger_1_1FileSystemException__inherit__graph.map +3 -0
  97. data/doc/cxxapi/classPassenger_1_1FileSystemException__inherit__graph.md5 +1 -0
  98. data/doc/cxxapi/classPassenger_1_1FileSystemException__inherit__graph.png +0 -0
  99. data/doc/cxxapi/classPassenger_1_1HttpStatusExtractor-members.html +39 -0
  100. data/doc/cxxapi/classPassenger_1_1HttpStatusExtractor.html +128 -0
  101. data/doc/cxxapi/classPassenger_1_1IOException-members.html +36 -0
  102. data/doc/cxxapi/classPassenger_1_1IOException.html +61 -0
  103. data/doc/cxxapi/classPassenger_1_1IOException__inherit__graph.map +4 -0
  104. data/doc/cxxapi/classPassenger_1_1IOException__inherit__graph.md5 +1 -0
  105. data/doc/cxxapi/classPassenger_1_1IOException__inherit__graph.png +0 -0
  106. data/doc/cxxapi/classPassenger_1_1MessageChannel-members.html +57 -0
  107. data/doc/cxxapi/classPassenger_1_1MessageChannel.html +839 -0
  108. data/doc/cxxapi/classPassenger_1_1MessageServer-members.html +49 -0
  109. data/doc/cxxapi/classPassenger_1_1MessageServer.html +407 -0
  110. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1ClientContext-members.html +36 -0
  111. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1ClientContext.html +58 -0
  112. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1ClientContext__inherit__graph.map +3 -0
  113. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1ClientContext__inherit__graph.md5 +1 -0
  114. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1ClientContext__inherit__graph.png +0 -0
  115. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1CommonClientContext-members.html +41 -0
  116. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1CommonClientContext.html +165 -0
  117. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1CommonClientContext__inherit__graph.map +3 -0
  118. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1CommonClientContext__inherit__graph.md5 +1 -0
  119. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1CommonClientContext__inherit__graph.png +0 -0
  120. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1Handler-members.html +39 -0
  121. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1Handler.html +173 -0
  122. data/doc/cxxapi/classPassenger_1_1Process-members.html +44 -0
  123. data/doc/cxxapi/classPassenger_1_1Process.html +290 -0
  124. data/doc/cxxapi/classPassenger_1_1RandomGenerator-members.html +37 -0
  125. data/doc/cxxapi/classPassenger_1_1RandomGenerator.html +79 -0
  126. data/doc/cxxapi/classPassenger_1_1ResourceLocator-members.html +36 -0
  127. data/doc/cxxapi/classPassenger_1_1ResourceLocator.html +51 -0
  128. data/doc/cxxapi/classPassenger_1_1RuntimeException-members.html +36 -0
  129. data/doc/cxxapi/classPassenger_1_1RuntimeException.html +54 -0
  130. data/doc/cxxapi/classPassenger_1_1SafeLibev-members.html +36 -0
  131. data/doc/cxxapi/classPassenger_1_1SafeLibev.html +51 -0
  132. data/doc/cxxapi/classPassenger_1_1ScalarMessage-members.html +37 -0
  133. data/doc/cxxapi/classPassenger_1_1ScalarMessage.html +76 -0
  134. data/doc/cxxapi/classPassenger_1_1ScgiRequestParser-members.html +50 -0
  135. data/doc/cxxapi/classPassenger_1_1ScgiRequestParser.html +285 -0
  136. data/doc/cxxapi/classPassenger_1_1SecurityException-members.html +36 -0
  137. data/doc/cxxapi/classPassenger_1_1SecurityException.html +56 -0
  138. data/doc/cxxapi/classPassenger_1_1Session-members.html +53 -0
  139. data/doc/cxxapi/classPassenger_1_1Session.html +556 -0
  140. data/doc/cxxapi/classPassenger_1_1Session__inherit__graph.map +3 -0
  141. data/doc/cxxapi/classPassenger_1_1Session__inherit__graph.md5 +1 -0
  142. data/doc/cxxapi/classPassenger_1_1Session__inherit__graph.png +0 -0
  143. data/doc/cxxapi/classPassenger_1_1SpawnException-members.html +39 -0
  144. data/doc/cxxapi/classPassenger_1_1SpawnException.html +101 -0
  145. data/doc/cxxapi/classPassenger_1_1SpawnManager-members.html +42 -0
  146. data/doc/cxxapi/classPassenger_1_1SpawnManager.html +292 -0
  147. data/doc/cxxapi/classPassenger_1_1SpawnManager__inherit__graph.map +3 -0
  148. data/doc/cxxapi/classPassenger_1_1SpawnManager__inherit__graph.md5 +1 -0
  149. data/doc/cxxapi/classPassenger_1_1SpawnManager__inherit__graph.png +0 -0
  150. data/doc/cxxapi/classPassenger_1_1StandardSession-members.html +54 -0
  151. data/doc/cxxapi/classPassenger_1_1StandardSession.html +394 -0
  152. data/doc/cxxapi/classPassenger_1_1StandardSession__inherit__graph.map +3 -0
  153. data/doc/cxxapi/classPassenger_1_1StandardSession__inherit__graph.md5 +1 -0
  154. data/doc/cxxapi/classPassenger_1_1StandardSession__inherit__graph.png +0 -0
  155. data/doc/cxxapi/classPassenger_1_1StaticString-members.html +36 -0
  156. data/doc/cxxapi/classPassenger_1_1StaticString.html +56 -0
  157. data/doc/cxxapi/classPassenger_1_1SyntaxError-members.html +36 -0
  158. data/doc/cxxapi/classPassenger_1_1SyntaxError.html +54 -0
  159. data/doc/cxxapi/classPassenger_1_1SystemException-members.html +40 -0
  160. data/doc/cxxapi/classPassenger_1_1SystemException.html +155 -0
  161. data/doc/cxxapi/classPassenger_1_1SystemException__inherit__graph.map +4 -0
  162. data/doc/cxxapi/classPassenger_1_1SystemException__inherit__graph.md5 +1 -0
  163. data/doc/cxxapi/classPassenger_1_1SystemException__inherit__graph.png +0 -0
  164. data/doc/cxxapi/classPassenger_1_1TimeRetrievalException-members.html +40 -0
  165. data/doc/cxxapi/classPassenger_1_1TimeRetrievalException.html +61 -0
  166. data/doc/cxxapi/classPassenger_1_1TimeRetrievalException__inherit__graph.map +3 -0
  167. data/doc/cxxapi/classPassenger_1_1TimeRetrievalException__inherit__graph.md5 +1 -0
  168. data/doc/cxxapi/classPassenger_1_1TimeRetrievalException__inherit__graph.png +0 -0
  169. data/doc/cxxapi/classPassenger_1_1TimeoutException-members.html +36 -0
  170. data/doc/cxxapi/classPassenger_1_1TimeoutException.html +54 -0
  171. data/doc/cxxapi/classPassenger_1_1Uint16Message-members.html +36 -0
  172. data/doc/cxxapi/classPassenger_1_1Uint16Message.html +51 -0
  173. data/doc/cxxapi/classPassenger_1_1Uint32Message-members.html +36 -0
  174. data/doc/cxxapi/classPassenger_1_1Uint32Message.html +51 -0
  175. data/doc/cxxapi/classServer-members.html +36 -0
  176. data/doc/cxxapi/classServer.html +49 -0
  177. data/doc/cxxapi/classServerInstanceDirToucher-members.html +36 -0
  178. data/doc/cxxapi/classServerInstanceDirToucher.html +47 -0
  179. data/doc/cxxapi/classes.html +52 -0
  180. data/doc/cxxapi/definitions_8h_source.html +36 -0
  181. data/doc/cxxapi/doxygen.css +532 -0
  182. data/doc/cxxapi/doxygen.png +0 -0
  183. data/doc/cxxapi/files.html +76 -0
  184. data/doc/cxxapi/ftv2blank.png +0 -0
  185. data/doc/cxxapi/ftv2doc.png +0 -0
  186. data/doc/cxxapi/ftv2folderclosed.png +0 -0
  187. data/doc/cxxapi/ftv2folderopen.png +0 -0
  188. data/doc/cxxapi/ftv2lastnode.png +0 -0
  189. data/doc/cxxapi/ftv2link.png +0 -0
  190. data/doc/cxxapi/ftv2mlastnode.png +0 -0
  191. data/doc/cxxapi/ftv2mnode.png +0 -0
  192. data/doc/cxxapi/ftv2node.png +0 -0
  193. data/doc/cxxapi/ftv2plastnode.png +0 -0
  194. data/doc/cxxapi/ftv2pnode.png +0 -0
  195. data/doc/cxxapi/ftv2vertline.png +0 -0
  196. data/doc/cxxapi/functions.html +103 -0
  197. data/doc/cxxapi/functions_0x62.html +82 -0
  198. data/doc/cxxapi/functions_0x63.html +102 -0
  199. data/doc/cxxapi/functions_0x64.html +102 -0
  200. data/doc/cxxapi/functions_0x65.html +88 -0
  201. data/doc/cxxapi/functions_0x66.html +100 -0
  202. data/doc/cxxapi/functions_0x67.html +167 -0
  203. data/doc/cxxapi/functions_0x68.html +88 -0
  204. data/doc/cxxapi/functions_0x69.html +96 -0
  205. data/doc/cxxapi/functions_0x6b.html +80 -0
  206. data/doc/cxxapi/functions_0x6c.html +88 -0
  207. data/doc/cxxapi/functions_0x6d.html +88 -0
  208. data/doc/cxxapi/functions_0x6e.html +86 -0
  209. data/doc/cxxapi/functions_0x6f.html +94 -0
  210. data/doc/cxxapi/functions_0x70.html +94 -0
  211. data/doc/cxxapi/functions_0x72.html +110 -0
  212. data/doc/cxxapi/functions_0x73.html +171 -0
  213. data/doc/cxxapi/functions_0x74.html +85 -0
  214. data/doc/cxxapi/functions_0x75.html +85 -0
  215. data/doc/cxxapi/functions_0x77.html +92 -0
  216. data/doc/cxxapi/functions_0x7e.html +79 -0
  217. data/doc/cxxapi/functions_enum.html +49 -0
  218. data/doc/cxxapi/functions_eval.html +67 -0
  219. data/doc/cxxapi/functions_func.html +531 -0
  220. data/doc/cxxapi/functions_vars.html +278 -0
  221. data/doc/cxxapi/graph_legend.dot +22 -0
  222. data/doc/cxxapi/graph_legend.html +92 -0
  223. data/doc/cxxapi/graph_legend.png +0 -0
  224. data/doc/cxxapi/group__Core.html +46 -0
  225. data/doc/cxxapi/group__Core.map +3 -0
  226. data/doc/cxxapi/group__Core.png +0 -0
  227. data/doc/cxxapi/group__Exceptions.html +53 -0
  228. data/doc/cxxapi/group__Hooks.html +42 -0
  229. data/doc/cxxapi/group__Hooks.map +3 -0
  230. data/doc/cxxapi/group__Hooks.png +0 -0
  231. data/doc/cxxapi/group__Support.html +538 -0
  232. data/doc/cxxapi/hierarchy.html +101 -0
  233. data/doc/cxxapi/index.html +16 -0
  234. data/doc/cxxapi/inherit__graph__0.map +3 -0
  235. data/doc/cxxapi/inherit__graph__0.md5 +1 -0
  236. data/doc/cxxapi/inherit__graph__0.png +0 -0
  237. data/doc/cxxapi/inherit__graph__1.map +3 -0
  238. data/doc/cxxapi/inherit__graph__1.md5 +1 -0
  239. data/doc/cxxapi/inherit__graph__1.png +0 -0
  240. data/doc/cxxapi/inherit__graph__10.map +3 -0
  241. data/doc/cxxapi/inherit__graph__10.md5 +1 -0
  242. data/doc/cxxapi/inherit__graph__10.png +0 -0
  243. data/doc/cxxapi/inherit__graph__11.map +4 -0
  244. data/doc/cxxapi/inherit__graph__11.md5 +1 -0
  245. data/doc/cxxapi/inherit__graph__11.png +0 -0
  246. data/doc/cxxapi/inherit__graph__12.map +3 -0
  247. data/doc/cxxapi/inherit__graph__12.md5 +1 -0
  248. data/doc/cxxapi/inherit__graph__12.png +0 -0
  249. data/doc/cxxapi/inherit__graph__13.map +3 -0
  250. data/doc/cxxapi/inherit__graph__13.md5 +1 -0
  251. data/doc/cxxapi/inherit__graph__13.png +0 -0
  252. data/doc/cxxapi/inherit__graph__14.map +3 -0
  253. data/doc/cxxapi/inherit__graph__14.md5 +1 -0
  254. data/doc/cxxapi/inherit__graph__14.png +0 -0
  255. data/doc/cxxapi/inherit__graph__15.map +3 -0
  256. data/doc/cxxapi/inherit__graph__15.md5 +1 -0
  257. data/doc/cxxapi/inherit__graph__15.png +0 -0
  258. data/doc/cxxapi/inherit__graph__16.map +5 -0
  259. data/doc/cxxapi/inherit__graph__16.md5 +1 -0
  260. data/doc/cxxapi/inherit__graph__16.png +0 -0
  261. data/doc/cxxapi/inherit__graph__17.map +3 -0
  262. data/doc/cxxapi/inherit__graph__17.md5 +1 -0
  263. data/doc/cxxapi/inherit__graph__17.png +0 -0
  264. data/doc/cxxapi/inherit__graph__18.map +3 -0
  265. data/doc/cxxapi/inherit__graph__18.md5 +1 -0
  266. data/doc/cxxapi/inherit__graph__18.png +0 -0
  267. data/doc/cxxapi/inherit__graph__19.map +4 -0
  268. data/doc/cxxapi/inherit__graph__19.md5 +1 -0
  269. data/doc/cxxapi/inherit__graph__19.png +0 -0
  270. data/doc/cxxapi/inherit__graph__2.map +3 -0
  271. data/doc/cxxapi/inherit__graph__2.md5 +1 -0
  272. data/doc/cxxapi/inherit__graph__2.png +0 -0
  273. data/doc/cxxapi/inherit__graph__20.map +3 -0
  274. data/doc/cxxapi/inherit__graph__20.md5 +1 -0
  275. data/doc/cxxapi/inherit__graph__20.png +0 -0
  276. data/doc/cxxapi/inherit__graph__21.map +3 -0
  277. data/doc/cxxapi/inherit__graph__21.md5 +1 -0
  278. data/doc/cxxapi/inherit__graph__21.png +0 -0
  279. data/doc/cxxapi/inherit__graph__22.map +3 -0
  280. data/doc/cxxapi/inherit__graph__22.md5 +1 -0
  281. data/doc/cxxapi/inherit__graph__22.png +0 -0
  282. data/doc/cxxapi/inherit__graph__23.map +3 -0
  283. data/doc/cxxapi/inherit__graph__23.md5 +1 -0
  284. data/doc/cxxapi/inherit__graph__23.png +0 -0
  285. data/doc/cxxapi/inherit__graph__24.map +3 -0
  286. data/doc/cxxapi/inherit__graph__24.md5 +1 -0
  287. data/doc/cxxapi/inherit__graph__24.png +0 -0
  288. data/doc/cxxapi/inherit__graph__25.map +3 -0
  289. data/doc/cxxapi/inherit__graph__25.md5 +1 -0
  290. data/doc/cxxapi/inherit__graph__25.png +0 -0
  291. data/doc/cxxapi/inherit__graph__26.map +3 -0
  292. data/doc/cxxapi/inherit__graph__26.md5 +1 -0
  293. data/doc/cxxapi/inherit__graph__26.png +0 -0
  294. data/doc/cxxapi/inherit__graph__27.map +3 -0
  295. data/doc/cxxapi/inherit__graph__27.md5 +1 -0
  296. data/doc/cxxapi/inherit__graph__27.png +0 -0
  297. data/doc/cxxapi/inherit__graph__28.map +3 -0
  298. data/doc/cxxapi/inherit__graph__28.md5 +1 -0
  299. data/doc/cxxapi/inherit__graph__28.png +0 -0
  300. data/doc/cxxapi/inherit__graph__29.map +3 -0
  301. data/doc/cxxapi/inherit__graph__29.md5 +1 -0
  302. data/doc/cxxapi/inherit__graph__29.png +0 -0
  303. data/doc/cxxapi/inherit__graph__3.map +4 -0
  304. data/doc/cxxapi/inherit__graph__3.md5 +1 -0
  305. data/doc/cxxapi/inherit__graph__3.png +0 -0
  306. data/doc/cxxapi/inherit__graph__30.map +3 -0
  307. data/doc/cxxapi/inherit__graph__30.md5 +1 -0
  308. data/doc/cxxapi/inherit__graph__30.png +0 -0
  309. data/doc/cxxapi/inherit__graph__31.map +4 -0
  310. data/doc/cxxapi/inherit__graph__31.md5 +1 -0
  311. data/doc/cxxapi/inherit__graph__31.png +0 -0
  312. data/doc/cxxapi/inherit__graph__32.map +3 -0
  313. data/doc/cxxapi/inherit__graph__32.md5 +1 -0
  314. data/doc/cxxapi/inherit__graph__32.png +0 -0
  315. data/doc/cxxapi/inherit__graph__33.map +3 -0
  316. data/doc/cxxapi/inherit__graph__33.md5 +1 -0
  317. data/doc/cxxapi/inherit__graph__33.png +0 -0
  318. data/doc/cxxapi/inherit__graph__34.map +3 -0
  319. data/doc/cxxapi/inherit__graph__34.md5 +1 -0
  320. data/doc/cxxapi/inherit__graph__34.png +0 -0
  321. data/doc/cxxapi/inherit__graph__35.map +3 -0
  322. data/doc/cxxapi/inherit__graph__35.md5 +1 -0
  323. data/doc/cxxapi/inherit__graph__35.png +0 -0
  324. data/doc/cxxapi/inherit__graph__36.map +5 -0
  325. data/doc/cxxapi/inherit__graph__36.md5 +1 -0
  326. data/doc/cxxapi/inherit__graph__36.png +0 -0
  327. data/doc/cxxapi/inherit__graph__37.map +3 -0
  328. data/doc/cxxapi/inherit__graph__37.md5 +1 -0
  329. data/doc/cxxapi/inherit__graph__37.png +0 -0
  330. data/doc/cxxapi/inherit__graph__38.map +3 -0
  331. data/doc/cxxapi/inherit__graph__38.md5 +1 -0
  332. data/doc/cxxapi/inherit__graph__38.png +0 -0
  333. data/doc/cxxapi/inherit__graph__39.map +3 -0
  334. data/doc/cxxapi/inherit__graph__39.md5 +1 -0
  335. data/doc/cxxapi/inherit__graph__39.png +0 -0
  336. data/doc/cxxapi/inherit__graph__4.map +3 -0
  337. data/doc/cxxapi/inherit__graph__4.md5 +1 -0
  338. data/doc/cxxapi/inherit__graph__4.png +0 -0
  339. data/doc/cxxapi/inherit__graph__40.map +3 -0
  340. data/doc/cxxapi/inherit__graph__40.md5 +1 -0
  341. data/doc/cxxapi/inherit__graph__40.png +0 -0
  342. data/doc/cxxapi/inherit__graph__41.map +3 -0
  343. data/doc/cxxapi/inherit__graph__41.md5 +1 -0
  344. data/doc/cxxapi/inherit__graph__41.png +0 -0
  345. data/doc/cxxapi/inherit__graph__5.map +3 -0
  346. data/doc/cxxapi/inherit__graph__5.md5 +1 -0
  347. data/doc/cxxapi/inherit__graph__5.png +0 -0
  348. data/doc/cxxapi/inherit__graph__6.map +3 -0
  349. data/doc/cxxapi/inherit__graph__6.md5 +1 -0
  350. data/doc/cxxapi/inherit__graph__6.png +0 -0
  351. data/doc/cxxapi/inherit__graph__7.map +3 -0
  352. data/doc/cxxapi/inherit__graph__7.md5 +1 -0
  353. data/doc/cxxapi/inherit__graph__7.png +0 -0
  354. data/doc/cxxapi/inherit__graph__8.map +3 -0
  355. data/doc/cxxapi/inherit__graph__8.md5 +1 -0
  356. data/doc/cxxapi/inherit__graph__8.png +0 -0
  357. data/doc/cxxapi/inherit__graph__9.map +3 -0
  358. data/doc/cxxapi/inherit__graph__9.md5 +1 -0
  359. data/doc/cxxapi/inherit__graph__9.png +0 -0
  360. data/doc/cxxapi/inherits.html +165 -0
  361. data/doc/cxxapi/main.html +28 -0
  362. data/doc/cxxapi/modules.html +36 -0
  363. data/doc/cxxapi/namespacePassenger.html +553 -0
  364. data/doc/cxxapi/namespacemembers.html +135 -0
  365. data/doc/cxxapi/namespacemembers_enum.html +48 -0
  366. data/doc/cxxapi/namespacemembers_eval.html +57 -0
  367. data/doc/cxxapi/namespacemembers_func.html +111 -0
  368. data/doc/cxxapi/namespacemembers_type.html +54 -0
  369. data/doc/cxxapi/namespaces.html +37 -0
  370. data/doc/cxxapi/nginx_2Configuration_8h_source.html +126 -0
  371. data/doc/cxxapi/ngx__http__passenger__module_8h_source.html +94 -0
  372. data/doc/cxxapi/structPassenger_1_1MessageServer_1_1DisconnectEventBroadcastGuard-members.html +36 -0
  373. data/doc/cxxapi/structPassenger_1_1MessageServer_1_1DisconnectEventBroadcastGuard.html +51 -0
  374. data/doc/cxxapi/structPassenger_1_1PoolOptions-members.html +67 -0
  375. data/doc/cxxapi/structPassenger_1_1PoolOptions.html +647 -0
  376. data/doc/cxxapi/structPassenger_1_1StaticString_1_1Hash-members.html +36 -0
  377. data/doc/cxxapi/structPassenger_1_1StaticString_1_1Hash.html +51 -0
  378. data/doc/cxxapi/tab_b.gif +0 -0
  379. data/doc/cxxapi/tab_l.gif +0 -0
  380. data/doc/cxxapi/tab_r.gif +0 -0
  381. data/doc/cxxapi/tabs.css +105 -0
  382. data/doc/cxxapi/tree.html +249 -0
  383. data/doc/rdoc/classes/ConditionVariable.html +215 -0
  384. data/doc/rdoc/classes/Exception.html +120 -0
  385. data/doc/rdoc/classes/GC.html +113 -0
  386. data/doc/rdoc/classes/IO.html +221 -0
  387. data/doc/rdoc/classes/PhusionPassenger.html +397 -0
  388. data/doc/rdoc/classes/PhusionPassenger/AbstractInstaller.html +180 -0
  389. data/doc/rdoc/classes/PhusionPassenger/AbstractRequestHandler.html +647 -0
  390. data/doc/rdoc/classes/PhusionPassenger/AbstractServer.html +654 -0
  391. data/doc/rdoc/classes/PhusionPassenger/AbstractServer/InvalidPassword.html +92 -0
  392. data/doc/rdoc/classes/PhusionPassenger/AbstractServer/ServerAlreadyStarted.html +97 -0
  393. data/doc/rdoc/classes/PhusionPassenger/AbstractServer/ServerError.html +96 -0
  394. data/doc/rdoc/classes/PhusionPassenger/AbstractServer/ServerNotStarted.html +97 -0
  395. data/doc/rdoc/classes/PhusionPassenger/AbstractServer/UnknownMessage.html +96 -0
  396. data/doc/rdoc/classes/PhusionPassenger/AbstractServerCollection.html +619 -0
  397. data/doc/rdoc/classes/PhusionPassenger/AdminTools.html +142 -0
  398. data/doc/rdoc/classes/PhusionPassenger/AdminTools/MemoryStats.html +368 -0
  399. data/doc/rdoc/classes/PhusionPassenger/AdminTools/MemoryStats/Process.html +231 -0
  400. data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance.html +588 -0
  401. data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/CorruptedDirectoryError.html +92 -0
  402. data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/GenerationsAbsentError.html +92 -0
  403. data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/Group.html +147 -0
  404. data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/Process.html +279 -0
  405. data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/RoleDeniedError.html +92 -0
  406. data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/StaleDirectoryError.html +92 -0
  407. data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/Stats.html +123 -0
  408. data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/UnsupportedGenerationStructureVersionError.html +92 -0
  409. data/doc/rdoc/classes/PhusionPassenger/AnalyticsLogger.html +368 -0
  410. data/doc/rdoc/classes/PhusionPassenger/AnalyticsLogger/Lock.html +194 -0
  411. data/doc/rdoc/classes/PhusionPassenger/AnalyticsLogger/Log.html +299 -0
  412. data/doc/rdoc/classes/PhusionPassenger/AnalyticsLogger/SharedData.html +206 -0
  413. data/doc/rdoc/classes/PhusionPassenger/AppInitError.html +155 -0
  414. data/doc/rdoc/classes/PhusionPassenger/AppProcess.html +367 -0
  415. data/doc/rdoc/classes/PhusionPassenger/ClassicRails.html +95 -0
  416. data/doc/rdoc/classes/PhusionPassenger/ClassicRails/ApplicationSpawner.html +351 -0
  417. data/doc/rdoc/classes/PhusionPassenger/ClassicRails/ApplicationSpawner/Error.html +98 -0
  418. data/doc/rdoc/classes/PhusionPassenger/ClassicRails/CGIFixed.html +200 -0
  419. data/doc/rdoc/classes/PhusionPassenger/ClassicRails/FrameworkSpawner.html +410 -0
  420. data/doc/rdoc/classes/PhusionPassenger/ClassicRails/FrameworkSpawner/Error.html +98 -0
  421. data/doc/rdoc/classes/PhusionPassenger/ClassicRails/RequestHandler.html +156 -0
  422. data/doc/rdoc/classes/PhusionPassenger/ClassicRailsExtensions.html +115 -0
  423. data/doc/rdoc/classes/PhusionPassenger/ClassicRailsExtensions/AnalyticsLogging.html +202 -0
  424. data/doc/rdoc/classes/PhusionPassenger/ConsoleTextTemplate.html +172 -0
  425. data/doc/rdoc/classes/PhusionPassenger/DebugLogging.html +273 -0
  426. data/doc/rdoc/classes/PhusionPassenger/FrameworkInitError.html +145 -0
  427. data/doc/rdoc/classes/PhusionPassenger/HTMLTemplate.html +162 -0
  428. data/doc/rdoc/classes/PhusionPassenger/InitializationError.html +141 -0
  429. data/doc/rdoc/classes/PhusionPassenger/InvalidPath.html +92 -0
  430. data/doc/rdoc/classes/PhusionPassenger/MessageChannel.html +673 -0
  431. data/doc/rdoc/classes/PhusionPassenger/MessageChannel/InvalidHashError.html +92 -0
  432. data/doc/rdoc/classes/PhusionPassenger/MessageClient.html +415 -0
  433. data/doc/rdoc/classes/PhusionPassenger/NativeSupportLoader.html +134 -0
  434. data/doc/rdoc/classes/PhusionPassenger/Packaging.html +129 -0
  435. data/doc/rdoc/classes/PhusionPassenger/PlatformInfo.html +1972 -0
  436. data/doc/rdoc/classes/PhusionPassenger/Plugin.html +237 -0
  437. data/doc/rdoc/classes/PhusionPassenger/Rack.html +91 -0
  438. data/doc/rdoc/classes/PhusionPassenger/Rack/ApplicationSpawner.html +312 -0
  439. data/doc/rdoc/classes/PhusionPassenger/Rack/ApplicationSpawner/Error.html +98 -0
  440. data/doc/rdoc/classes/PhusionPassenger/Rack/RequestHandler.html +218 -0
  441. data/doc/rdoc/classes/PhusionPassenger/Rails3Extensions.html +114 -0
  442. data/doc/rdoc/classes/PhusionPassenger/Rails3Extensions/AnalyticsLogging.html +259 -0
  443. data/doc/rdoc/classes/PhusionPassenger/Rails3Extensions/AnalyticsLogging/ACExtension.html +139 -0
  444. data/doc/rdoc/classes/PhusionPassenger/Rails3Extensions/AnalyticsLogging/ASBenchmarkableExtension.html +118 -0
  445. data/doc/rdoc/classes/PhusionPassenger/Rails3Extensions/AnalyticsLogging/ExceptionLogger.html +135 -0
  446. data/doc/rdoc/classes/PhusionPassenger/SpawnManager.html +378 -0
  447. data/doc/rdoc/classes/PhusionPassenger/Standalone.html +111 -0
  448. data/doc/rdoc/classes/PhusionPassenger/Standalone/AppFinder.html +252 -0
  449. data/doc/rdoc/classes/PhusionPassenger/Standalone/Command.html +161 -0
  450. data/doc/rdoc/classes/PhusionPassenger/Standalone/ConfigFile.html +368 -0
  451. data/doc/rdoc/classes/PhusionPassenger/Standalone/ConfigFile/DisallowedContextError.html +132 -0
  452. data/doc/rdoc/classes/PhusionPassenger/Standalone/HelpCommand.html +151 -0
  453. data/doc/rdoc/classes/PhusionPassenger/Standalone/Main.html +189 -0
  454. data/doc/rdoc/classes/PhusionPassenger/Standalone/PackageRuntimeCommand.html +177 -0
  455. data/doc/rdoc/classes/PhusionPassenger/Standalone/RuntimeInstaller.html +341 -0
  456. data/doc/rdoc/classes/PhusionPassenger/Standalone/StartCommand.html +203 -0
  457. data/doc/rdoc/classes/PhusionPassenger/Standalone/StatusCommand.html +156 -0
  458. data/doc/rdoc/classes/PhusionPassenger/Standalone/StopCommand.html +168 -0
  459. data/doc/rdoc/classes/PhusionPassenger/Standalone/Utils.html +86 -0
  460. data/doc/rdoc/classes/PhusionPassenger/Standalone/VersionCommand.html +135 -0
  461. data/doc/rdoc/classes/PhusionPassenger/UnknownError.html +125 -0
  462. data/doc/rdoc/classes/PhusionPassenger/Utils.html +1543 -0
  463. data/doc/rdoc/classes/PhusionPassenger/Utils/FileSystemWatcher.html +204 -0
  464. data/doc/rdoc/classes/PhusionPassenger/Utils/FileSystemWatcher/DirInfo.html +171 -0
  465. data/doc/rdoc/classes/PhusionPassenger/Utils/FileSystemWatcher/FileInfo.html +140 -0
  466. data/doc/rdoc/classes/PhusionPassenger/Utils/HostsFileParser.html +260 -0
  467. data/doc/rdoc/classes/PhusionPassenger/Utils/PseudoIO.html +194 -0
  468. data/doc/rdoc/classes/PhusionPassenger/Utils/RewindableInput.html +265 -0
  469. data/doc/rdoc/classes/PhusionPassenger/Utils/RewindableInput/Tempfile.html +120 -0
  470. data/doc/rdoc/classes/PhusionPassenger/Utils/UnseekableSocket.html +561 -0
  471. data/doc/rdoc/classes/PhusionPassenger/VersionNotFound.html +140 -0
  472. data/doc/rdoc/classes/PhusionPassenger/WSGI.html +89 -0
  473. data/doc/rdoc/classes/PhusionPassenger/WSGI/ApplicationSpawner.html +182 -0
  474. data/doc/rdoc/classes/Process.html +115 -0
  475. data/doc/rdoc/classes/Signal.html +139 -0
  476. data/doc/rdoc/created.rid +1 -0
  477. data/doc/rdoc/files/DEVELOPERS_TXT.html +280 -0
  478. data/doc/rdoc/files/README.html +157 -0
  479. data/doc/rdoc/files/lib/phusion_passenger/abstract_installer_rb.html +130 -0
  480. data/doc/rdoc/files/lib/phusion_passenger/abstract_request_handler_rb.html +135 -0
  481. data/doc/rdoc/files/lib/phusion_passenger/abstract_server_collection_rb.html +126 -0
  482. data/doc/rdoc/files/lib/phusion_passenger/abstract_server_rb.html +128 -0
  483. data/doc/rdoc/files/lib/phusion_passenger/admin_tools/memory_stats_rb.html +126 -0
  484. data/doc/rdoc/files/lib/phusion_passenger/admin_tools/server_instance_rb.html +132 -0
  485. data/doc/rdoc/files/lib/phusion_passenger/admin_tools_rb.html +122 -0
  486. data/doc/rdoc/files/lib/phusion_passenger/analytics_logger_rb.html +129 -0
  487. data/doc/rdoc/files/lib/phusion_passenger/app_process_rb.html +127 -0
  488. data/doc/rdoc/files/lib/phusion_passenger/classic_rails/application_spawner_rb.html +141 -0
  489. data/doc/rdoc/files/lib/phusion_passenger/classic_rails/cgi_fixed_rb.html +126 -0
  490. data/doc/rdoc/files/lib/phusion_passenger/classic_rails/framework_spawner_rb.html +146 -0
  491. data/doc/rdoc/files/lib/phusion_passenger/classic_rails/request_handler_rb.html +125 -0
  492. data/doc/rdoc/files/lib/phusion_passenger/classic_rails_extensions/init_rb.html +132 -0
  493. data/doc/rdoc/files/lib/phusion_passenger/console_text_template_rb.html +126 -0
  494. data/doc/rdoc/files/lib/phusion_passenger/constants_rb.html +122 -0
  495. data/doc/rdoc/files/lib/phusion_passenger/debug_logging_rb.html +122 -0
  496. data/doc/rdoc/files/lib/phusion_passenger/dependencies_rb.html +147 -0
  497. data/doc/rdoc/files/lib/phusion_passenger/exceptions_rb.html +122 -0
  498. data/doc/rdoc/files/lib/phusion_passenger/html_template_rb.html +127 -0
  499. data/doc/rdoc/files/lib/phusion_passenger/message_channel_rb.html +120 -0
  500. data/doc/rdoc/files/lib/phusion_passenger/message_client_rb.html +127 -0
  501. data/doc/rdoc/files/lib/phusion_passenger/native_support_rb.html +132 -0
  502. data/doc/rdoc/files/lib/phusion_passenger/packaging_rb.html +122 -0
  503. data/doc/rdoc/files/lib/phusion_passenger/platform_info/apache_rb.html +127 -0
  504. data/doc/rdoc/files/lib/phusion_passenger/platform_info/binary_compatibility_rb.html +129 -0
  505. data/doc/rdoc/files/lib/phusion_passenger/platform_info/compiler_rb.html +127 -0
  506. data/doc/rdoc/files/lib/phusion_passenger/platform_info/curl_rb.html +126 -0
  507. data/doc/rdoc/files/lib/phusion_passenger/platform_info/documentation_tools_rb.html +126 -0
  508. data/doc/rdoc/files/lib/phusion_passenger/platform_info/linux_rb.html +126 -0
  509. data/doc/rdoc/files/lib/phusion_passenger/platform_info/operating_system_rb.html +127 -0
  510. data/doc/rdoc/files/lib/phusion_passenger/platform_info/ruby_rb.html +128 -0
  511. data/doc/rdoc/files/lib/phusion_passenger/platform_info/zlib_rb.html +126 -0
  512. data/doc/rdoc/files/lib/phusion_passenger/platform_info_rb.html +122 -0
  513. data/doc/rdoc/files/lib/phusion_passenger/plugin_rb.html +127 -0
  514. data/doc/rdoc/files/lib/phusion_passenger/public_api_rb.html +127 -0
  515. data/doc/rdoc/files/lib/phusion_passenger/rack/application_spawner_rb.html +137 -0
  516. data/doc/rdoc/files/lib/phusion_passenger/rack/request_handler_rb.html +125 -0
  517. data/doc/rdoc/files/lib/phusion_passenger/rails3_extensions/init_rb.html +127 -0
  518. data/doc/rdoc/files/lib/phusion_passenger/simple_benchmarking_rb.html +122 -0
  519. data/doc/rdoc/files/lib/phusion_passenger/spawn_manager_rb.html +160 -0
  520. data/doc/rdoc/files/lib/phusion_passenger/standalone/app_finder_rb.html +127 -0
  521. data/doc/rdoc/files/lib/phusion_passenger/standalone/command_rb.html +136 -0
  522. data/doc/rdoc/files/lib/phusion_passenger/standalone/config_file_rb.html +126 -0
  523. data/doc/rdoc/files/lib/phusion_passenger/standalone/help_command_rb.html +126 -0
  524. data/doc/rdoc/files/lib/phusion_passenger/standalone/main_rb.html +126 -0
  525. data/doc/rdoc/files/lib/phusion_passenger/standalone/package_runtime_command_rb.html +127 -0
  526. data/doc/rdoc/files/lib/phusion_passenger/standalone/runtime_installer_rb.html +133 -0
  527. data/doc/rdoc/files/lib/phusion_passenger/standalone/start_command_rb.html +136 -0
  528. data/doc/rdoc/files/lib/phusion_passenger/standalone/status_command_rb.html +126 -0
  529. data/doc/rdoc/files/lib/phusion_passenger/standalone/stop_command_rb.html +126 -0
  530. data/doc/rdoc/files/lib/phusion_passenger/standalone/utils_rb.html +126 -0
  531. data/doc/rdoc/files/lib/phusion_passenger/standalone/version_command_rb.html +127 -0
  532. data/doc/rdoc/files/lib/phusion_passenger/utils/file_system_watcher_rb.html +126 -0
  533. data/doc/rdoc/files/lib/phusion_passenger/utils/hosts_file_parser_rb.html +120 -0
  534. data/doc/rdoc/files/lib/phusion_passenger/utils/rewindable_input_rb.html +100 -0
  535. data/doc/rdoc/files/lib/phusion_passenger/utils/tmpdir_rb.html +122 -0
  536. data/doc/rdoc/files/lib/phusion_passenger/utils/unseekable_socket_rb.html +126 -0
  537. data/doc/rdoc/files/lib/phusion_passenger/utils_rb.html +179 -0
  538. data/doc/rdoc/files/lib/phusion_passenger/wsgi/application_spawner_rb.html +132 -0
  539. data/doc/rdoc/fr_class_index.html +139 -0
  540. data/doc/rdoc/fr_file_index.html +108 -0
  541. data/doc/rdoc/fr_method_index.html +439 -0
  542. data/doc/rdoc/index.html +26 -0
  543. data/doc/rdoc/rdoc-style.css +187 -0
  544. data/ext/apache2/Configuration.cpp +6 -6
  545. data/ext/apache2/Configuration.hpp +3 -3
  546. data/ext/apache2/HelperAgent.cpp +1 -1
  547. data/ext/apache2/Hooks.cpp +3 -3
  548. data/ext/common/ApplicationPool/Pool.h +1 -1
  549. data/ext/common/ApplicationPool/Server.h +5 -2
  550. data/ext/common/Constants.h +1 -1
  551. data/ext/common/LoggingAgent/FilterSupport.cpp +66 -0
  552. data/ext/common/LoggingAgent/FilterSupport.h +262 -73
  553. data/ext/common/LoggingAgent/RemoteSender.h +13 -4
  554. data/ext/common/Utils/CachedFileStat.cpp +6 -12
  555. data/ext/common/Utils/CachedFileStat.h +4 -4
  556. data/ext/common/libboost_oxt/aggregate.cpp +10 -0
  557. data/ext/common/libpassenger_common/aggregate.cpp +16 -0
  558. data/ext/nginx/Configuration.c +77 -4
  559. data/ext/nginx/Configuration.h +2 -1
  560. data/ext/nginx/ContentHandler.c +32 -4
  561. data/ext/nginx/HelperAgent.cpp +5 -4
  562. data/ext/nginx/ngx_http_passenger_module.c +6 -6
  563. data/ext/nginx/ngx_http_passenger_module.h +5 -5
  564. data/lib/phusion_passenger.rb +1 -1
  565. data/lib/phusion_passenger/abstract_request_handler.rb +4 -1
  566. data/lib/phusion_passenger/classic_rails_extensions/analytics_logging/ac_base_extension.rb +3 -1
  567. data/lib/phusion_passenger/standalone/runtime_installer.rb +1 -1
  568. data/lib/phusion_passenger/standalone/start_command.rb +6 -0
  569. data/lib/phusion_passenger/templates/standalone/config.erb +1 -1
  570. data/test/cxx/FilterSupportTest.cpp +135 -5
  571. metadata +547 -4
@@ -0,0 +1,36 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+ <html xmlns="http://www.w3.org/1999/xhtml">
3
+ <head>
4
+ <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
+ <title>Passenger: Member List</title>
6
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
7
+ <link href="doxygen.css" rel="stylesheet" type="text/css"/>
8
+ </head>
9
+ <body>
10
+ <!-- Generated by Doxygen 1.6.2 -->
11
+ <div class="navigation" id="top">
12
+ <div class="tabs">
13
+ <ul>
14
+ <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
15
+ <li><a href="modules.html"><span>Modules</span></a></li>
16
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
17
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
18
+ <li><a href="files.html"><span>Files</span></a></li>
19
+ </ul>
20
+ </div>
21
+ <div class="tabs">
22
+ <ul>
23
+ <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
24
+ <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
25
+ <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
26
+ </ul>
27
+ </div>
28
+ </div>
29
+ <div class="contents">
30
+ <h1>Passenger::ResourceLocator Member List</h1>This is the complete list of members for <a class="el" href="classPassenger_1_1ResourceLocator.html">Passenger::ResourceLocator</a>, including all inherited members.<table>
31
+ </table></div>
32
+ <hr size="1"/><address style="text-align: right;"><small>Generated by&nbsp;
33
+ <a href="http://www.doxygen.org/index.html">
34
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
35
+ </body>
36
+ </html>
@@ -0,0 +1,51 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+ <html xmlns="http://www.w3.org/1999/xhtml">
3
+ <head>
4
+ <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
+ <title>Passenger: Passenger::ResourceLocator Class Reference</title>
6
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
7
+ <link href="doxygen.css" rel="stylesheet" type="text/css"/>
8
+ </head>
9
+ <body>
10
+ <!-- Generated by Doxygen 1.6.2 -->
11
+ <div class="navigation" id="top">
12
+ <div class="tabs">
13
+ <ul>
14
+ <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
15
+ <li><a href="modules.html"><span>Modules</span></a></li>
16
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
17
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
18
+ <li><a href="files.html"><span>Files</span></a></li>
19
+ </ul>
20
+ </div>
21
+ <div class="tabs">
22
+ <ul>
23
+ <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
24
+ <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
25
+ <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
26
+ </ul>
27
+ </div>
28
+ <div class="navpath"><a class="el" href="namespacePassenger.html">Passenger</a>::<a class="el" href="classPassenger_1_1ResourceLocator.html">ResourceLocator</a>
29
+ </div>
30
+ </div>
31
+ <div class="contents">
32
+ <h1>Passenger::ResourceLocator Class Reference</h1><!-- doxytag: class="Passenger::ResourceLocator" -->
33
+ <p>Locates various Phusion <a class="el" href="namespacePassenger.html" title="Common code for all agents.">Passenger</a> resources on the filesystem.
34
+ <a href="#_details">More...</a></p>
35
+
36
+ <p><code>#include &lt;<a class="el" href="ResourceLocator_8h_source.html">ResourceLocator.h</a>&gt;</code></p>
37
+
38
+ <p><a href="classPassenger_1_1ResourceLocator-members.html">List of all members.</a></p>
39
+ <table border="0" cellpadding="0" cellspacing="0">
40
+ </table>
41
+ <hr/><a name="_details"></a><h2>Detailed Description</h2>
42
+ <p>Locates various Phusion <a class="el" href="namespacePassenger.html" title="Common code for all agents.">Passenger</a> resources on the filesystem. </p>
43
+ <hr/>The documentation for this class was generated from the following file:<ul>
44
+ <li><a class="el" href="ResourceLocator_8h_source.html">ResourceLocator.h</a></li>
45
+ </ul>
46
+ </div>
47
+ <hr size="1"/><address style="text-align: right;"><small>Generated by&nbsp;
48
+ <a href="http://www.doxygen.org/index.html">
49
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
50
+ </body>
51
+ </html>
@@ -0,0 +1,36 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+ <html xmlns="http://www.w3.org/1999/xhtml">
3
+ <head>
4
+ <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
+ <title>Passenger: Member List</title>
6
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
7
+ <link href="doxygen.css" rel="stylesheet" type="text/css"/>
8
+ </head>
9
+ <body>
10
+ <!-- Generated by Doxygen 1.6.2 -->
11
+ <div class="navigation" id="top">
12
+ <div class="tabs">
13
+ <ul>
14
+ <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
15
+ <li><a href="modules.html"><span>Modules</span></a></li>
16
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
17
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
18
+ <li><a href="files.html"><span>Files</span></a></li>
19
+ </ul>
20
+ </div>
21
+ <div class="tabs">
22
+ <ul>
23
+ <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
24
+ <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
25
+ <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
26
+ </ul>
27
+ </div>
28
+ </div>
29
+ <div class="contents">
30
+ <h1>Passenger::RuntimeException Member List</h1>This is the complete list of members for <a class="el" href="classPassenger_1_1RuntimeException.html">Passenger::RuntimeException</a>, including all inherited members.<table>
31
+ </table></div>
32
+ <hr size="1"/><address style="text-align: right;"><small>Generated by&nbsp;
33
+ <a href="http://www.doxygen.org/index.html">
34
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
35
+ </body>
36
+ </html>
@@ -0,0 +1,54 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+ <html xmlns="http://www.w3.org/1999/xhtml">
3
+ <head>
4
+ <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
+ <title>Passenger: Passenger::RuntimeException Class Reference</title>
6
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
7
+ <link href="doxygen.css" rel="stylesheet" type="text/css"/>
8
+ </head>
9
+ <body>
10
+ <!-- Generated by Doxygen 1.6.2 -->
11
+ <div class="navigation" id="top">
12
+ <div class="tabs">
13
+ <ul>
14
+ <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
15
+ <li><a href="modules.html"><span>Modules</span></a></li>
16
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
17
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
18
+ <li><a href="files.html"><span>Files</span></a></li>
19
+ </ul>
20
+ </div>
21
+ <div class="tabs">
22
+ <ul>
23
+ <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
24
+ <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
25
+ <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
26
+ </ul>
27
+ </div>
28
+ <div class="navpath"><a class="el" href="namespacePassenger.html">Passenger</a>::<a class="el" href="classPassenger_1_1RuntimeException.html">RuntimeException</a>
29
+ </div>
30
+ </div>
31
+ <div class="contents">
32
+ <h1>Passenger::RuntimeException Class Reference<br/>
33
+ <small>
34
+ [<a class="el" href="group__Exceptions.html">Exceptions</a>]</small>
35
+ </h1><!-- doxytag: class="Passenger::RuntimeException" -->
36
+ <p>A generic runtime exception.
37
+ <a href="#_details">More...</a></p>
38
+
39
+ <p><code>#include &lt;<a class="el" href="Exceptions_8h_source.html">Exceptions.h</a>&gt;</code></p>
40
+
41
+ <p><a href="classPassenger_1_1RuntimeException-members.html">List of all members.</a></p>
42
+ <table border="0" cellpadding="0" cellspacing="0">
43
+ </table>
44
+ <hr/><a name="_details"></a><h2>Detailed Description</h2>
45
+ <p>A generic runtime exception. </p>
46
+ <hr/>The documentation for this class was generated from the following file:<ul>
47
+ <li><a class="el" href="Exceptions_8h_source.html">Exceptions.h</a></li>
48
+ </ul>
49
+ </div>
50
+ <hr size="1"/><address style="text-align: right;"><small>Generated by&nbsp;
51
+ <a href="http://www.doxygen.org/index.html">
52
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
53
+ </body>
54
+ </html>
@@ -0,0 +1,36 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+ <html xmlns="http://www.w3.org/1999/xhtml">
3
+ <head>
4
+ <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
+ <title>Passenger: Member List</title>
6
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
7
+ <link href="doxygen.css" rel="stylesheet" type="text/css"/>
8
+ </head>
9
+ <body>
10
+ <!-- Generated by Doxygen 1.6.2 -->
11
+ <div class="navigation" id="top">
12
+ <div class="tabs">
13
+ <ul>
14
+ <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
15
+ <li><a href="modules.html"><span>Modules</span></a></li>
16
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
17
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
18
+ <li><a href="files.html"><span>Files</span></a></li>
19
+ </ul>
20
+ </div>
21
+ <div class="tabs">
22
+ <ul>
23
+ <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
24
+ <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
25
+ <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
26
+ </ul>
27
+ </div>
28
+ </div>
29
+ <div class="contents">
30
+ <h1>Passenger::SafeLibev Member List</h1>This is the complete list of members for <a class="el" href="classPassenger_1_1SafeLibev.html">Passenger::SafeLibev</a>, including all inherited members.<table>
31
+ </table></div>
32
+ <hr size="1"/><address style="text-align: right;"><small>Generated by&nbsp;
33
+ <a href="http://www.doxygen.org/index.html">
34
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
35
+ </body>
36
+ </html>
@@ -0,0 +1,51 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+ <html xmlns="http://www.w3.org/1999/xhtml">
3
+ <head>
4
+ <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
+ <title>Passenger: Passenger::SafeLibev Class Reference</title>
6
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
7
+ <link href="doxygen.css" rel="stylesheet" type="text/css"/>
8
+ </head>
9
+ <body>
10
+ <!-- Generated by Doxygen 1.6.2 -->
11
+ <div class="navigation" id="top">
12
+ <div class="tabs">
13
+ <ul>
14
+ <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
15
+ <li><a href="modules.html"><span>Modules</span></a></li>
16
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
17
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
18
+ <li><a href="files.html"><span>Files</span></a></li>
19
+ </ul>
20
+ </div>
21
+ <div class="tabs">
22
+ <ul>
23
+ <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
24
+ <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
25
+ <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
26
+ </ul>
27
+ </div>
28
+ <div class="navpath"><a class="el" href="namespacePassenger.html">Passenger</a>::<a class="el" href="classPassenger_1_1SafeLibev.html">SafeLibev</a>
29
+ </div>
30
+ </div>
31
+ <div class="contents">
32
+ <h1>Passenger::SafeLibev Class Reference</h1><!-- doxytag: class="Passenger::SafeLibev" -->
33
+ <p>Class for thread-safely using libev.
34
+ <a href="#_details">More...</a></p>
35
+
36
+ <p><code>#include &lt;<a class="el" href="SafeLibev_8h_source.html">SafeLibev.h</a>&gt;</code></p>
37
+
38
+ <p><a href="classPassenger_1_1SafeLibev-members.html">List of all members.</a></p>
39
+ <table border="0" cellpadding="0" cellspacing="0">
40
+ </table>
41
+ <hr/><a name="_details"></a><h2>Detailed Description</h2>
42
+ <p>Class for thread-safely using libev. </p>
43
+ <hr/>The documentation for this class was generated from the following file:<ul>
44
+ <li><a class="el" href="SafeLibev_8h_source.html">SafeLibev.h</a></li>
45
+ </ul>
46
+ </div>
47
+ <hr size="1"/><address style="text-align: right;"><small>Generated by&nbsp;
48
+ <a href="http://www.doxygen.org/index.html">
49
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
50
+ </body>
51
+ </html>
@@ -0,0 +1,37 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+ <html xmlns="http://www.w3.org/1999/xhtml">
3
+ <head>
4
+ <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
+ <title>Passenger: Member List</title>
6
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
7
+ <link href="doxygen.css" rel="stylesheet" type="text/css"/>
8
+ </head>
9
+ <body>
10
+ <!-- Generated by Doxygen 1.6.2 -->
11
+ <div class="navigation" id="top">
12
+ <div class="tabs">
13
+ <ul>
14
+ <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
15
+ <li><a href="modules.html"><span>Modules</span></a></li>
16
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
17
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
18
+ <li><a href="files.html"><span>Files</span></a></li>
19
+ </ul>
20
+ </div>
21
+ <div class="tabs">
22
+ <ul>
23
+ <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
24
+ <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
25
+ <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
26
+ </ul>
27
+ </div>
28
+ </div>
29
+ <div class="contents">
30
+ <h1>Passenger::ScalarMessage Member List</h1>This is the complete list of members for <a class="el" href="classPassenger_1_1ScalarMessage.html">Passenger::ScalarMessage</a>, including all inherited members.<table>
31
+ <tr class="memlist"><td><a class="el" href="classPassenger_1_1ScalarMessage.html#aadcc25dfe89d8acbf308bf951cc5bf32">reset</a>(bool zeroBuffer=false)</td><td><a class="el" href="classPassenger_1_1ScalarMessage.html">Passenger::ScalarMessage</a></td><td><code> [inline]</code></td></tr>
32
+ </table></div>
33
+ <hr size="1"/><address style="text-align: right;"><small>Generated by&nbsp;
34
+ <a href="http://www.doxygen.org/index.html">
35
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
36
+ </body>
37
+ </html>
@@ -0,0 +1,76 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+ <html xmlns="http://www.w3.org/1999/xhtml">
3
+ <head>
4
+ <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
+ <title>Passenger: Passenger::ScalarMessage Class Reference</title>
6
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
7
+ <link href="doxygen.css" rel="stylesheet" type="text/css"/>
8
+ </head>
9
+ <body>
10
+ <!-- Generated by Doxygen 1.6.2 -->
11
+ <div class="navigation" id="top">
12
+ <div class="tabs">
13
+ <ul>
14
+ <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
15
+ <li><a href="modules.html"><span>Modules</span></a></li>
16
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
17
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
18
+ <li><a href="files.html"><span>Files</span></a></li>
19
+ </ul>
20
+ </div>
21
+ <div class="tabs">
22
+ <ul>
23
+ <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
24
+ <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
25
+ <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
26
+ </ul>
27
+ </div>
28
+ <div class="navpath"><a class="el" href="namespacePassenger.html">Passenger</a>::<a class="el" href="classPassenger_1_1ScalarMessage.html">ScalarMessage</a>
29
+ </div>
30
+ </div>
31
+ <div class="contents">
32
+ <h1>Passenger::ScalarMessage Class Reference</h1><!-- doxytag: class="Passenger::ScalarMessage" -->
33
+ <p>Class for reading a scalar message.
34
+ <a href="#_details">More...</a></p>
35
+
36
+ <p><code>#include &lt;<a class="el" href="MessageReadersWriters_8h_source.html">MessageReadersWriters.h</a>&gt;</code></p>
37
+
38
+ <p><a href="classPassenger_1_1ScalarMessage-members.html">List of all members.</a></p>
39
+ <table border="0" cellpadding="0" cellspacing="0">
40
+ <tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
41
+ <tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1ScalarMessage.html#aadcc25dfe89d8acbf308bf951cc5bf32">reset</a> (bool zeroBuffer=false)</td></tr>
42
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Resets the internal state so that this object can be used for processing another scalar message. <a href="#aadcc25dfe89d8acbf308bf951cc5bf32"></a><br/></td></tr>
43
+ </table>
44
+ <hr/><a name="_details"></a><h2>Detailed Description</h2>
45
+ <p>Class for reading a scalar message. </p>
46
+ <hr/><h2>Member Function Documentation</h2>
47
+ <a class="anchor" id="aadcc25dfe89d8acbf308bf951cc5bf32"></a><!-- doxytag: member="Passenger::ScalarMessage::reset" ref="aadcc25dfe89d8acbf308bf951cc5bf32" args="(bool zeroBuffer=false)" -->
48
+ <div class="memitem">
49
+ <div class="memproto">
50
+ <table class="memname">
51
+ <tr>
52
+ <td class="memname">void Passenger::ScalarMessage::reset </td>
53
+ <td>(</td>
54
+ <td class="paramtype">bool&nbsp;</td>
55
+ <td class="paramname"> <em>zeroBuffer</em> = <code>false</code></td>
56
+ <td>&nbsp;)&nbsp;</td>
57
+ <td><code> [inline]</code></td>
58
+ </tr>
59
+ </table>
60
+ </div>
61
+ <div class="memdoc">
62
+
63
+ <p>Resets the internal state so that this object can be used for processing another scalar message. </p>
64
+ <p>If <em>zeroBuffer</em> is true, then the contents of the internal buffer will be securely filled with zeroes. This is useful if e.g. the buffer might contain sensitive password data. </p>
65
+
66
+ </div>
67
+ </div>
68
+ <hr/>The documentation for this class was generated from the following file:<ul>
69
+ <li><a class="el" href="MessageReadersWriters_8h_source.html">MessageReadersWriters.h</a></li>
70
+ </ul>
71
+ </div>
72
+ <hr size="1"/><address style="text-align: right;"><small>Generated by&nbsp;
73
+ <a href="http://www.doxygen.org/index.html">
74
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
75
+ </body>
76
+ </html>
@@ -0,0 +1,50 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+ <html xmlns="http://www.w3.org/1999/xhtml">
3
+ <head>
4
+ <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
+ <title>Passenger: Member List</title>
6
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
7
+ <link href="doxygen.css" rel="stylesheet" type="text/css"/>
8
+ </head>
9
+ <body>
10
+ <!-- Generated by Doxygen 1.6.2 -->
11
+ <div class="navigation" id="top">
12
+ <div class="tabs">
13
+ <ul>
14
+ <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
15
+ <li><a href="modules.html"><span>Modules</span></a></li>
16
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
17
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
18
+ <li><a href="files.html"><span>Files</span></a></li>
19
+ </ul>
20
+ </div>
21
+ <div class="tabs">
22
+ <ul>
23
+ <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
24
+ <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
25
+ <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
26
+ </ul>
27
+ </div>
28
+ </div>
29
+ <div class="contents">
30
+ <h1>Passenger::ScgiRequestParser Member List</h1>This is the complete list of members for <a class="el" href="classPassenger_1_1ScgiRequestParser.html">Passenger::ScgiRequestParser</a>, including all inherited members.<table>
31
+ <tr class="memlist"><td><a class="el" href="classPassenger_1_1ScgiRequestParser.html#a5368ed40bf7c896f68d7ffaae164a092">acceptingInput</a>() const </td><td><a class="el" href="classPassenger_1_1ScgiRequestParser.html">Passenger::ScgiRequestParser</a></td><td><code> [inline]</code></td></tr>
32
+ <tr class="memlist"><td><a class="el" href="classPassenger_1_1ScgiRequestParser.html#a495e2aec6deffd64fd3d53dc81379f8b">ErrorReason</a> enum name</td><td><a class="el" href="classPassenger_1_1ScgiRequestParser.html">Passenger::ScgiRequestParser</a></td><td></td></tr>
33
+ <tr class="memlist"><td><a class="el" href="classPassenger_1_1ScgiRequestParser.html#a0498c9529029969d5a77e1f74f95baa3">feed</a>(const char *data, unsigned int size)</td><td><a class="el" href="classPassenger_1_1ScgiRequestParser.html">Passenger::ScgiRequestParser</a></td><td><code> [inline]</code></td></tr>
34
+ <tr class="memlist"><td><a class="el" href="classPassenger_1_1ScgiRequestParser.html#a4114253f47d3e7e5c0dddc3cd11c5596">getErrorReason</a>() const </td><td><a class="el" href="classPassenger_1_1ScgiRequestParser.html">Passenger::ScgiRequestParser</a></td><td><code> [inline]</code></td></tr>
35
+ <tr class="memlist"><td><a class="el" href="classPassenger_1_1ScgiRequestParser.html#a82321480ad2f8ac7ba58ff865131f6b4">getHeader</a>(const StaticString &amp;name) const </td><td><a class="el" href="classPassenger_1_1ScgiRequestParser.html">Passenger::ScgiRequestParser</a></td><td><code> [inline]</code></td></tr>
36
+ <tr class="memlist"><td><a class="el" href="classPassenger_1_1ScgiRequestParser.html#aa96dbb7c4c642ac74f30ed5b14a64e86">getHeaderData</a>() const </td><td><a class="el" href="classPassenger_1_1ScgiRequestParser.html">Passenger::ScgiRequestParser</a></td><td><code> [inline]</code></td></tr>
37
+ <tr class="memlist"><td><a class="el" href="classPassenger_1_1ScgiRequestParser.html#a5bd7dbce81c69ae9e3462e84daf09012">getState</a>() const </td><td><a class="el" href="classPassenger_1_1ScgiRequestParser.html">Passenger::ScgiRequestParser</a></td><td><code> [inline]</code></td></tr>
38
+ <tr class="memlist"><td><a class="el" href="classPassenger_1_1ScgiRequestParser.html#ad82e358a0ad051ab2bdd2374e9ab4ff8">hasHeader</a>(const StaticString &amp;name) const </td><td><a class="el" href="classPassenger_1_1ScgiRequestParser.html">Passenger::ScgiRequestParser</a></td><td><code> [inline]</code></td></tr>
39
+ <tr class="memlist"><td><a class="el" href="classPassenger_1_1ScgiRequestParser.html#a495e2aec6deffd64fd3d53dc81379f8ba44078eaf2ae1ee592d65d122dbda4a44">HEADER_TERMINATOR_EXPECTED</a> enum value</td><td><a class="el" href="classPassenger_1_1ScgiRequestParser.html">Passenger::ScgiRequestParser</a></td><td></td></tr>
40
+ <tr class="memlist"><td><a class="el" href="classPassenger_1_1ScgiRequestParser.html#a495e2aec6deffd64fd3d53dc81379f8bac162062c109fe310d5923d12b6147add">INVALID_HEADER_DATA</a> enum value</td><td><a class="el" href="classPassenger_1_1ScgiRequestParser.html">Passenger::ScgiRequestParser</a></td><td></td></tr>
41
+ <tr class="memlist"><td><a class="el" href="classPassenger_1_1ScgiRequestParser.html#a495e2aec6deffd64fd3d53dc81379f8bafe61dd339024beaed48f6eed6e6f3332">INVALID_LENGTH_STRING</a> enum value</td><td><a class="el" href="classPassenger_1_1ScgiRequestParser.html">Passenger::ScgiRequestParser</a></td><td></td></tr>
42
+ <tr class="memlist"><td><a class="el" href="classPassenger_1_1ScgiRequestParser.html#a495e2aec6deffd64fd3d53dc81379f8ba9ba3d5851af9ffae1e9202bc9f73ac5b">LENGTH_STRING_TOO_LARGE</a> enum value</td><td><a class="el" href="classPassenger_1_1ScgiRequestParser.html">Passenger::ScgiRequestParser</a></td><td></td></tr>
43
+ <tr class="memlist"><td><a class="el" href="classPassenger_1_1ScgiRequestParser.html#a495e2aec6deffd64fd3d53dc81379f8ba876574447523322b9d7b4921e490032d">LIMIT_REACHED</a> enum value</td><td><a class="el" href="classPassenger_1_1ScgiRequestParser.html">Passenger::ScgiRequestParser</a></td><td></td></tr>
44
+ <tr class="memlist"><td><a class="el" href="classPassenger_1_1ScgiRequestParser.html#a1108e7ce9162289db8a5b14479325e7a">ScgiRequestParser</a>(unsigned long maxSize=0)</td><td><a class="el" href="classPassenger_1_1ScgiRequestParser.html">Passenger::ScgiRequestParser</a></td><td><code> [inline]</code></td></tr>
45
+ </table></div>
46
+ <hr size="1"/><address style="text-align: right;"><small>Generated by&nbsp;
47
+ <a href="http://www.doxygen.org/index.html">
48
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
49
+ </body>
50
+ </html>
@@ -0,0 +1,285 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+ <html xmlns="http://www.w3.org/1999/xhtml">
3
+ <head>
4
+ <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
+ <title>Passenger: Passenger::ScgiRequestParser Class Reference</title>
6
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
7
+ <link href="doxygen.css" rel="stylesheet" type="text/css"/>
8
+ </head>
9
+ <body>
10
+ <!-- Generated by Doxygen 1.6.2 -->
11
+ <div class="navigation" id="top">
12
+ <div class="tabs">
13
+ <ul>
14
+ <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
15
+ <li><a href="modules.html"><span>Modules</span></a></li>
16
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
17
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
18
+ <li><a href="files.html"><span>Files</span></a></li>
19
+ </ul>
20
+ </div>
21
+ <div class="tabs">
22
+ <ul>
23
+ <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
24
+ <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
25
+ <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
26
+ </ul>
27
+ </div>
28
+ <div class="navpath"><a class="el" href="namespacePassenger.html">Passenger</a>::<a class="el" href="classPassenger_1_1ScgiRequestParser.html">ScgiRequestParser</a>
29
+ </div>
30
+ </div>
31
+ <div class="contents">
32
+ <h1>Passenger::ScgiRequestParser Class Reference</h1><!-- doxytag: class="Passenger::ScgiRequestParser" -->
33
+ <p>A parser for SCGI requests.
34
+ <a href="#_details">More...</a></p>
35
+
36
+ <p><code>#include &lt;<a class="el" href="ScgiRequestParser_8h_source.html">ScgiRequestParser.h</a>&gt;</code></p>
37
+
38
+ <p><a href="classPassenger_1_1ScgiRequestParser-members.html">List of all members.</a></p>
39
+ <table border="0" cellpadding="0" cellspacing="0">
40
+ <tr><td colspan="2"><h2>Public Types</h2></td></tr>
41
+ <tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1ScgiRequestParser.html#a495e2aec6deffd64fd3d53dc81379f8b">ErrorReason</a> { , <br/>
42
+ &nbsp;&nbsp;<a class="el" href="classPassenger_1_1ScgiRequestParser.html#a495e2aec6deffd64fd3d53dc81379f8ba9ba3d5851af9ffae1e9202bc9f73ac5b">LENGTH_STRING_TOO_LARGE</a>,
43
+ <a class="el" href="classPassenger_1_1ScgiRequestParser.html#a495e2aec6deffd64fd3d53dc81379f8ba876574447523322b9d7b4921e490032d">LIMIT_REACHED</a>,
44
+ <a class="el" href="classPassenger_1_1ScgiRequestParser.html#a495e2aec6deffd64fd3d53dc81379f8bafe61dd339024beaed48f6eed6e6f3332">INVALID_LENGTH_STRING</a>,
45
+ <a class="el" href="classPassenger_1_1ScgiRequestParser.html#a495e2aec6deffd64fd3d53dc81379f8ba44078eaf2ae1ee592d65d122dbda4a44">HEADER_TERMINATOR_EXPECTED</a>,
46
+ <br/>
47
+ &nbsp;&nbsp;<a class="el" href="classPassenger_1_1ScgiRequestParser.html#a495e2aec6deffd64fd3d53dc81379f8bac162062c109fe310d5923d12b6147add">INVALID_HEADER_DATA</a>
48
+ <br/>
49
+ }</td></tr>
50
+ <tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
51
+ <tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1ScgiRequestParser.html#a1108e7ce9162289db8a5b14479325e7a">ScgiRequestParser</a> (unsigned long maxSize=0)</td></tr>
52
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a new <a class="el" href="classPassenger_1_1ScgiRequestParser.html" title="A parser for SCGI requests.">ScgiRequestParser</a>, ready to parse a request. <a href="#a1108e7ce9162289db8a5b14479325e7a"></a><br/></td></tr>
53
+ <tr><td class="memItemLeft" align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1ScgiRequestParser.html#a0498c9529029969d5a77e1f74f95baa3">feed</a> (const char *data, unsigned int size)</td></tr>
54
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Feed SCGI request data to the parser. <a href="#a0498c9529029969d5a77e1f74f95baa3"></a><br/></td></tr>
55
+ <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa96dbb7c4c642ac74f30ed5b14a64e86"></a><!-- doxytag: member="Passenger::ScgiRequestParser::getHeaderData" ref="aa96dbb7c4c642ac74f30ed5b14a64e86" args="() const " -->
56
+ string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1ScgiRequestParser.html#aa96dbb7c4c642ac74f30ed5b14a64e86">getHeaderData</a> () const </td></tr>
57
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the raw header data that has been processed so far. <br/></td></tr>
58
+ <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classPassenger_1_1StaticString.html">StaticString</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1ScgiRequestParser.html#a82321480ad2f8ac7ba58ff865131f6b4">getHeader</a> (const <a class="el" href="classPassenger_1_1StaticString.html">StaticString</a> &amp;name) const </td></tr>
59
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the value of the header with the given name. <a href="#a82321480ad2f8ac7ba58ff865131f6b4"></a><br/></td></tr>
60
+ <tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1ScgiRequestParser.html#ad82e358a0ad051ab2bdd2374e9ab4ff8">hasHeader</a> (const <a class="el" href="classPassenger_1_1StaticString.html">StaticString</a> &amp;name) const </td></tr>
61
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Checks whether there is a header with the given name. <a href="#ad82e358a0ad051ab2bdd2374e9ab4ff8"></a><br/></td></tr>
62
+ <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5bd7dbce81c69ae9e3462e84daf09012"></a><!-- doxytag: member="Passenger::ScgiRequestParser::getState" ref="a5bd7dbce81c69ae9e3462e84daf09012" args="() const " -->
63
+ State&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1ScgiRequestParser.html#a5bd7dbce81c69ae9e3462e84daf09012">getState</a> () const </td></tr>
64
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the parser's current state. <br/></td></tr>
65
+ <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classPassenger_1_1ScgiRequestParser.html#a495e2aec6deffd64fd3d53dc81379f8b">ErrorReason</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1ScgiRequestParser.html#a4114253f47d3e7e5c0dddc3cd11c5596">getErrorReason</a> () const </td></tr>
66
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the reason why the parser entered the error state. <a href="#a4114253f47d3e7e5c0dddc3cd11c5596"></a><br/></td></tr>
67
+ <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5368ed40bf7c896f68d7ffaae164a092"></a><!-- doxytag: member="Passenger::ScgiRequestParser::acceptingInput" ref="a5368ed40bf7c896f68d7ffaae164a092" args="() const " -->
68
+ bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1ScgiRequestParser.html#a5368ed40bf7c896f68d7ffaae164a092">acceptingInput</a> () const </td></tr>
69
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Checks whether this parser is still capable of accepting input (that is, that this parser is not in a final state). <br/></td></tr>
70
+ </table>
71
+ <hr/><a name="_details"></a><h2>Detailed Description</h2>
72
+ <p>A parser for SCGI requests. </p>
73
+ <p>It parses the request header and ignores the body data.</p>
74
+ <p>You can use it by constructing a parser object, then feeding data to the parser until it has reached a final state.</p>
75
+ <p>Example: </p>
76
+ <div class="fragment"><pre class="fragment"> <a class="code" href="classPassenger_1_1ScgiRequestParser.html#a1108e7ce9162289db8a5b14479325e7a" title="Create a new ScgiRequestParser, ready to parse a request.">ScgiRequestParser</a> parser;
77
+ <span class="keywordtype">char</span> buf[1024 * 16];
78
+ ssize_t size;
79
+ <span class="keywordtype">unsigned</span> in bytesAccepted;
80
+
81
+ <span class="keywordflow">do</span> {
82
+ size = read(fd, buf, <span class="keyword">sizeof</span>(buf));
83
+ bytesAccepted = parser.feed(buf, size);
84
+ } <span class="keywordflow">while</span> (parser.acceptingInput());
85
+ <span class="comment">// Parser is done when its return value isn&#39;t equal to the input size.</span>
86
+
87
+ <span class="comment">// Check whether a parse error occured.</span>
88
+ <span class="keywordflow">if</span> (parser.getState() == ScgiRequestParser::ERROR) {
89
+ bailOut();
90
+ } <span class="keywordflow">else</span> {
91
+ <span class="comment">// All good! Do something with the SCGI header that the parser parsed.</span>
92
+ processHeader(parser.getHeaderData());
93
+
94
+ <span class="comment">// If the last buffer passed to the parser also contains body data,</span>
95
+ <span class="comment">// then the body data starts at &#39;buf + bytesAccepted&#39;.</span>
96
+ <span class="keywordflow">if</span> (bytesAccepted &lt; size) {
97
+ processBody(buf + bytesAccepted);
98
+ }
99
+ <span class="keywordflow">while</span> (!end_of_file(fd)) {
100
+ ... read(...) ...
101
+ processBody(...);
102
+ }
103
+ }
104
+ </pre></div><p>Parser properties:</p>
105
+ <ul>
106
+ <li>A parser object can only process a single SCGI request. You must discard the existing parser object and create a new one if you want to process another SCGI request.</li>
107
+ <li>This parser checks whether the header netstring is valid. It will enter the error state if it encounters a parse error.</li>
108
+ <li>However, this parser does not perform any validation of the actual header contents. For example, it doesn't check that CONTENT_LENGTH is the first header, or that the SCGI header is present. </li>
109
+ </ul>
110
+ <hr/><h2>Member Enumeration Documentation</h2>
111
+ <a class="anchor" id="a495e2aec6deffd64fd3d53dc81379f8b"></a><!-- doxytag: member="Passenger::ScgiRequestParser::ErrorReason" ref="a495e2aec6deffd64fd3d53dc81379f8b" args="" -->
112
+ <div class="memitem">
113
+ <div class="memproto">
114
+ <table class="memname">
115
+ <tr>
116
+ <td class="memname">enum <a class="el" href="classPassenger_1_1ScgiRequestParser.html#a495e2aec6deffd64fd3d53dc81379f8b">Passenger::ScgiRequestParser::ErrorReason</a></td>
117
+ </tr>
118
+ </table>
119
+ </div>
120
+ <div class="memdoc">
121
+ <dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
122
+ <tr><td valign="top"><em><a class="anchor" id="a495e2aec6deffd64fd3d53dc81379f8ba9ba3d5851af9ffae1e9202bc9f73ac5b"></a><!-- doxytag: member="LENGTH_STRING_TOO_LARGE" ref="a495e2aec6deffd64fd3d53dc81379f8ba9ba3d5851af9ffae1e9202bc9f73ac5b" args="" -->LENGTH_STRING_TOO_LARGE</em>&nbsp;</td><td>
123
+ <p>The length string is too large. </p>
124
+ </td></tr>
125
+ <tr><td valign="top"><em><a class="anchor" id="a495e2aec6deffd64fd3d53dc81379f8ba876574447523322b9d7b4921e490032d"></a><!-- doxytag: member="LIMIT_REACHED" ref="a495e2aec6deffd64fd3d53dc81379f8ba876574447523322b9d7b4921e490032d" args="" -->LIMIT_REACHED</em>&nbsp;</td><td>
126
+ <p>The header is larger than the maxSize value provided to the constructor. </p>
127
+ </td></tr>
128
+ <tr><td valign="top"><em><a class="anchor" id="a495e2aec6deffd64fd3d53dc81379f8bafe61dd339024beaed48f6eed6e6f3332"></a><!-- doxytag: member="INVALID_LENGTH_STRING" ref="a495e2aec6deffd64fd3d53dc81379f8bafe61dd339024beaed48f6eed6e6f3332" args="" -->INVALID_LENGTH_STRING</em>&nbsp;</td><td>
129
+ <p>The length string contains an invalid character. </p>
130
+ </td></tr>
131
+ <tr><td valign="top"><em><a class="anchor" id="a495e2aec6deffd64fd3d53dc81379f8ba44078eaf2ae1ee592d65d122dbda4a44"></a><!-- doxytag: member="HEADER_TERMINATOR_EXPECTED" ref="a495e2aec6deffd64fd3d53dc81379f8ba44078eaf2ae1ee592d65d122dbda4a44" args="" -->HEADER_TERMINATOR_EXPECTED</em>&nbsp;</td><td>
132
+ <p>A header terminator character (",") was expected, but some else was encountered instead. </p>
133
+ </td></tr>
134
+ <tr><td valign="top"><em><a class="anchor" id="a495e2aec6deffd64fd3d53dc81379f8bac162062c109fe310d5923d12b6147add"></a><!-- doxytag: member="INVALID_HEADER_DATA" ref="a495e2aec6deffd64fd3d53dc81379f8bac162062c109fe310d5923d12b6147add" args="" -->INVALID_HEADER_DATA</em>&nbsp;</td><td>
135
+ <p>The header data itself contains errors. </p>
136
+ </td></tr>
137
+ </table>
138
+ </dd>
139
+ </dl>
140
+
141
+ </div>
142
+ </div>
143
+ <hr/><h2>Constructor &amp; Destructor Documentation</h2>
144
+ <a class="anchor" id="a1108e7ce9162289db8a5b14479325e7a"></a><!-- doxytag: member="Passenger::ScgiRequestParser::ScgiRequestParser" ref="a1108e7ce9162289db8a5b14479325e7a" args="(unsigned long maxSize=0)" -->
145
+ <div class="memitem">
146
+ <div class="memproto">
147
+ <table class="memname">
148
+ <tr>
149
+ <td class="memname">Passenger::ScgiRequestParser::ScgiRequestParser </td>
150
+ <td>(</td>
151
+ <td class="paramtype">unsigned long&nbsp;</td>
152
+ <td class="paramname"> <em>maxSize</em> = <code>0</code></td>
153
+ <td>&nbsp;)&nbsp;</td>
154
+ <td><code> [inline]</code></td>
155
+ </tr>
156
+ </table>
157
+ </div>
158
+ <div class="memdoc">
159
+
160
+ <p>Create a new <a class="el" href="classPassenger_1_1ScgiRequestParser.html" title="A parser for SCGI requests.">ScgiRequestParser</a>, ready to parse a request. </p>
161
+ <dl><dt><b>Parameters:</b></dt><dd>
162
+ <table border="0" cellspacing="2" cellpadding="0">
163
+ <tr><td valign="top"></td><td valign="top"><em>maxSize</em>&nbsp;</td><td>The maximum size that the SCGI data is allowed to be, or 0 if no limit is desired. </td></tr>
164
+ </table>
165
+ </dd>
166
+ </dl>
167
+
168
+ </div>
169
+ </div>
170
+ <hr/><h2>Member Function Documentation</h2>
171
+ <a class="anchor" id="a0498c9529029969d5a77e1f74f95baa3"></a><!-- doxytag: member="Passenger::ScgiRequestParser::feed" ref="a0498c9529029969d5a77e1f74f95baa3" args="(const char *data, unsigned int size)" -->
172
+ <div class="memitem">
173
+ <div class="memproto">
174
+ <table class="memname">
175
+ <tr>
176
+ <td class="memname">unsigned int Passenger::ScgiRequestParser::feed </td>
177
+ <td>(</td>
178
+ <td class="paramtype">const char *&nbsp;</td>
179
+ <td class="paramname"> <em>data</em>, </td>
180
+ </tr>
181
+ <tr>
182
+ <td class="paramkey"></td>
183
+ <td></td>
184
+ <td class="paramtype">unsigned int&nbsp;</td>
185
+ <td class="paramname"> <em>size</em></td><td>&nbsp;</td>
186
+ </tr>
187
+ <tr>
188
+ <td></td>
189
+ <td>)</td>
190
+ <td></td><td></td><td><code> [inline]</code></td>
191
+ </tr>
192
+ </table>
193
+ </div>
194
+ <div class="memdoc">
195
+
196
+ <p>Feed SCGI request data to the parser. </p>
197
+ <dl><dt><b>Parameters:</b></dt><dd>
198
+ <table border="0" cellspacing="2" cellpadding="0">
199
+ <tr><td valign="top"></td><td valign="top"><em>data</em>&nbsp;</td><td>The data to feed. </td></tr>
200
+ <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>The size of the data, in bytes. </td></tr>
201
+ </table>
202
+ </dd>
203
+ </dl>
204
+ <dl class="return"><dt><b>Returns:</b></dt><dd>The number of recognized SCGI header bytes. If this value equals 'size', then it means all data in 'data' is part of the SCGI header. If this value is less than size, then it means only some data in 'data' is part of the SCGI header, and the remaining 'size - result' bytes are part of the request body. </dd></dl>
205
+ <dl class="pre"><dt><b>Precondition:</b></dt><dd>size &gt; 0 </dd></dl>
206
+ <dl class="post"><dt><b>Postcondition:</b></dt><dd>result &lt;= size </dd>
207
+ <dd>
208
+ if result &lt;= size: <a class="el" href="classPassenger_1_1ScgiRequestParser.html#a5bd7dbce81c69ae9e3462e84daf09012" title="Get the parser&#39;s current state.">getState()</a> == DONE || <a class="el" href="classPassenger_1_1ScgiRequestParser.html#a5bd7dbce81c69ae9e3462e84daf09012" title="Get the parser&#39;s current state.">getState()</a> == ERROR </dd></dl>
209
+
210
+ </div>
211
+ </div>
212
+ <a class="anchor" id="a4114253f47d3e7e5c0dddc3cd11c5596"></a><!-- doxytag: member="Passenger::ScgiRequestParser::getErrorReason" ref="a4114253f47d3e7e5c0dddc3cd11c5596" args="() const " -->
213
+ <div class="memitem">
214
+ <div class="memproto">
215
+ <table class="memname">
216
+ <tr>
217
+ <td class="memname"><a class="el" href="classPassenger_1_1ScgiRequestParser.html#a495e2aec6deffd64fd3d53dc81379f8b">ErrorReason</a> Passenger::ScgiRequestParser::getErrorReason </td>
218
+ <td>(</td>
219
+ <td class="paramname"></td>
220
+ <td>&nbsp;)&nbsp;</td>
221
+ <td> const<code> [inline]</code></td>
222
+ </tr>
223
+ </table>
224
+ </div>
225
+ <div class="memdoc">
226
+
227
+ <p>Returns the reason why the parser entered the error state. </p>
228
+ <dl class="pre"><dt><b>Precondition:</b></dt><dd><a class="el" href="classPassenger_1_1ScgiRequestParser.html#a5bd7dbce81c69ae9e3462e84daf09012" title="Get the parser&#39;s current state.">getState()</a> == ERROR </dd></dl>
229
+
230
+ </div>
231
+ </div>
232
+ <a class="anchor" id="a82321480ad2f8ac7ba58ff865131f6b4"></a><!-- doxytag: member="Passenger::ScgiRequestParser::getHeader" ref="a82321480ad2f8ac7ba58ff865131f6b4" args="(const StaticString &amp;name) const " -->
233
+ <div class="memitem">
234
+ <div class="memproto">
235
+ <table class="memname">
236
+ <tr>
237
+ <td class="memname"><a class="el" href="classPassenger_1_1StaticString.html">StaticString</a> Passenger::ScgiRequestParser::getHeader </td>
238
+ <td>(</td>
239
+ <td class="paramtype">const <a class="el" href="classPassenger_1_1StaticString.html">StaticString</a> &amp;&nbsp;</td>
240
+ <td class="paramname"> <em>name</em></td>
241
+ <td>&nbsp;)&nbsp;</td>
242
+ <td> const<code> [inline]</code></td>
243
+ </tr>
244
+ </table>
245
+ </div>
246
+ <div class="memdoc">
247
+
248
+ <p>Get the value of the header with the given name. </p>
249
+ <p>Lookup is case-sensitive.</p>
250
+ <p>Returns the empty string if there is no such header.</p>
251
+ <dl class="pre"><dt><b>Precondition:</b></dt><dd><a class="el" href="classPassenger_1_1ScgiRequestParser.html#a5bd7dbce81c69ae9e3462e84daf09012" title="Get the parser&#39;s current state.">getState()</a> == DONE </dd></dl>
252
+
253
+ </div>
254
+ </div>
255
+ <a class="anchor" id="ad82e358a0ad051ab2bdd2374e9ab4ff8"></a><!-- doxytag: member="Passenger::ScgiRequestParser::hasHeader" ref="ad82e358a0ad051ab2bdd2374e9ab4ff8" args="(const StaticString &amp;name) const " -->
256
+ <div class="memitem">
257
+ <div class="memproto">
258
+ <table class="memname">
259
+ <tr>
260
+ <td class="memname">bool Passenger::ScgiRequestParser::hasHeader </td>
261
+ <td>(</td>
262
+ <td class="paramtype">const <a class="el" href="classPassenger_1_1StaticString.html">StaticString</a> &amp;&nbsp;</td>
263
+ <td class="paramname"> <em>name</em></td>
264
+ <td>&nbsp;)&nbsp;</td>
265
+ <td> const<code> [inline]</code></td>
266
+ </tr>
267
+ </table>
268
+ </div>
269
+ <div class="memdoc">
270
+
271
+ <p>Checks whether there is a header with the given name. </p>
272
+ <p>Lookup is case-sensitive.</p>
273
+ <dl class="pre"><dt><b>Precondition:</b></dt><dd><a class="el" href="classPassenger_1_1ScgiRequestParser.html#a5bd7dbce81c69ae9e3462e84daf09012" title="Get the parser&#39;s current state.">getState()</a> == DONE </dd></dl>
274
+
275
+ </div>
276
+ </div>
277
+ <hr/>The documentation for this class was generated from the following file:<ul>
278
+ <li><a class="el" href="ScgiRequestParser_8h_source.html">ScgiRequestParser.h</a></li>
279
+ </ul>
280
+ </div>
281
+ <hr size="1"/><address style="text-align: right;"><small>Generated by&nbsp;
282
+ <a href="http://www.doxygen.org/index.html">
283
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
284
+ </body>
285
+ </html>