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,38 @@
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>Client Member List</h1>This is the complete list of members for <a class="el" href="classClient.html">Client</a>, including all inherited members.<table>
31
+ <tr class="memlist"><td><a class="el" href="classClient.html#a975a3a3d2a4fa5fcf320be38581e99a7">Client</a>(unsigned int number, ApplicationPool::Ptr pool, const string &amp;password, const string &amp;defaultUser, const string &amp;defaultGroup, int serverSocket, const AnalyticsLoggerPtr &amp;logger)</td><td><a class="el" href="classClient.html">Client</a></td><td><code> [inline]</code></td></tr>
32
+ <tr class="memlist"><td><a class="el" href="classClient.html#a840e519ca781888cbd54181572ebe3a7">~Client</a>()</td><td><a class="el" href="classClient.html">Client</a></td><td><code> [inline]</code></td></tr>
33
+ </table></div>
34
+ <hr size="1"/><address style="text-align: right;"><small>Generated by&nbsp;
35
+ <a href="http://www.doxygen.org/index.html">
36
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
37
+ </body>
38
+ </html>
@@ -0,0 +1,123 @@
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: Client 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>
29
+ <div class="contents">
30
+ <h1>Client Class Reference</h1><!-- doxytag: class="Client" -->
31
+ <p>A representation of a <a class="el" href="classClient.html" title="A representation of a Client from the Server&#39;s point of view.">Client</a> from the Server's point of view.
32
+ <a href="#_details">More...</a></p>
33
+
34
+ <p><a href="classClient-members.html">List of all members.</a></p>
35
+ <table border="0" cellpadding="0" cellspacing="0">
36
+ <tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
37
+ <tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classClient.html#a975a3a3d2a4fa5fcf320be38581e99a7">Client</a> (unsigned int number, ApplicationPool::Ptr pool, const string &amp;password, const string &amp;defaultUser, const string &amp;defaultGroup, int serverSocket, const AnalyticsLoggerPtr &amp;logger)</td></tr>
38
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructs a client handler for the server with the given arguments and runs it in its own thread. <a href="#a975a3a3d2a4fa5fcf320be38581e99a7"></a><br/></td></tr>
39
+ <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a840e519ca781888cbd54181572ebe3a7"></a><!-- doxytag: member="Client::~Client" ref="a840e519ca781888cbd54181572ebe3a7" args="()" -->
40
+ &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classClient.html#a840e519ca781888cbd54181572ebe3a7">~Client</a> ()</td></tr>
41
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Destroys this client and its thread. <br/></td></tr>
42
+ </table>
43
+ <hr/><a name="_details"></a><h2>Detailed Description</h2>
44
+ <p>A representation of a <a class="el" href="classClient.html" title="A representation of a Client from the Server&#39;s point of view.">Client</a> from the Server's point of view. </p>
45
+ <p>This class contains the methods used to communicate from a server to a connected client, i.e. it is a client handler. These <a class="el" href="classClient.html" title="A representation of a Client from the Server&#39;s point of view.">Client</a> instances will communicate concurrently with the server through threads. Considering the overhead of these threads, i.e. setup and teardown costs and the volatility of client requests, these client instances will be pooled. It is for this reason that the State design pattern has been applied: this class can be considered as being a skeleton implemention whose state --e.g. the client file descriptor-- needs to be provided in order to function properly. </p>
46
+ <hr/><h2>Constructor &amp; Destructor Documentation</h2>
47
+ <a class="anchor" id="a975a3a3d2a4fa5fcf320be38581e99a7"></a><!-- doxytag: member="Client::Client" ref="a975a3a3d2a4fa5fcf320be38581e99a7" args="(unsigned int number, ApplicationPool::Ptr pool, const string &amp;password, const string &amp;defaultUser, const string &amp;defaultGroup, int serverSocket, const AnalyticsLoggerPtr &amp;logger)" -->
48
+ <div class="memitem">
49
+ <div class="memproto">
50
+ <table class="memname">
51
+ <tr>
52
+ <td class="memname">Client::Client </td>
53
+ <td>(</td>
54
+ <td class="paramtype">unsigned int&nbsp;</td>
55
+ <td class="paramname"> <em>number</em>, </td>
56
+ </tr>
57
+ <tr>
58
+ <td class="paramkey"></td>
59
+ <td></td>
60
+ <td class="paramtype">ApplicationPool::Ptr&nbsp;</td>
61
+ <td class="paramname"> <em>pool</em>, </td>
62
+ </tr>
63
+ <tr>
64
+ <td class="paramkey"></td>
65
+ <td></td>
66
+ <td class="paramtype">const string &amp;&nbsp;</td>
67
+ <td class="paramname"> <em>password</em>, </td>
68
+ </tr>
69
+ <tr>
70
+ <td class="paramkey"></td>
71
+ <td></td>
72
+ <td class="paramtype">const string &amp;&nbsp;</td>
73
+ <td class="paramname"> <em>defaultUser</em>, </td>
74
+ </tr>
75
+ <tr>
76
+ <td class="paramkey"></td>
77
+ <td></td>
78
+ <td class="paramtype">const string &amp;&nbsp;</td>
79
+ <td class="paramname"> <em>defaultGroup</em>, </td>
80
+ </tr>
81
+ <tr>
82
+ <td class="paramkey"></td>
83
+ <td></td>
84
+ <td class="paramtype">int&nbsp;</td>
85
+ <td class="paramname"> <em>serverSocket</em>, </td>
86
+ </tr>
87
+ <tr>
88
+ <td class="paramkey"></td>
89
+ <td></td>
90
+ <td class="paramtype">const AnalyticsLoggerPtr &amp;&nbsp;</td>
91
+ <td class="paramname"> <em>logger</em></td><td>&nbsp;</td>
92
+ </tr>
93
+ <tr>
94
+ <td></td>
95
+ <td>)</td>
96
+ <td></td><td></td><td><code> [inline]</code></td>
97
+ </tr>
98
+ </table>
99
+ </div>
100
+ <div class="memdoc">
101
+
102
+ <p>Constructs a client handler for the server with the given arguments and runs it in its own thread. </p>
103
+ <dl><dt><b>Parameters:</b></dt><dd>
104
+ <table border="0" cellspacing="2" cellpadding="0">
105
+ <tr><td valign="top"></td><td valign="top"><em>number</em>&nbsp;</td><td>The id assigned by the server to identify this client by. </td></tr>
106
+ <tr><td valign="top"></td><td valign="top"><em>pool</em>&nbsp;</td><td>The application pool where this client belongs to. </td></tr>
107
+ <tr><td valign="top"></td><td valign="top"><em>password</em>&nbsp;</td><td>The password that is required to connect to this client handler. This value is determined and assigned by the server. </td></tr>
108
+ <tr><td valign="top"></td><td valign="top"><em>serverSocket</em>&nbsp;</td><td>The server socket to accept this clients connection from. </td></tr>
109
+ </table>
110
+ </dd>
111
+ </dl>
112
+
113
+ </div>
114
+ </div>
115
+ <hr/>The documentation for this class was generated from the following file:<ul>
116
+ <li>nginx/HelperAgent.cpp</li>
117
+ </ul>
118
+ </div>
119
+ <hr size="1"/><address style="text-align: right;"><small>Generated by&nbsp;
120
+ <a href="http://www.doxygen.org/index.html">
121
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
122
+ </body>
123
+ </html>
@@ -0,0 +1,40 @@
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>Hooks Member List</h1>This is the complete list of members for <a class="el" href="classHooks.html">Hooks</a>, including all inherited members.<table>
31
+ <tr class="memlist"><td><a class="el" href="classHooks.html#a64333270a19c93451c33dcb8fe1666de">saveOriginalFilename</a>(request_rec *r)</td><td><a class="el" href="classHooks.html">Hooks</a></td><td><code> [inline]</code></td></tr>
32
+ <tr class="memlist"><td><a class="el" href="classHooks.html#a404c390fa2529611d1c5a15c0bd9f1c3">saveStateBeforeRewriteRules</a>(request_rec *r)</td><td><a class="el" href="classHooks.html">Hooks</a></td><td><code> [inline]</code></td></tr>
33
+ <tr class="memlist"><td><a class="el" href="classHooks.html#ad6cca64be8a9075b4b92efdb4d9020a5">startBlockingModAutoIndex</a>(request_rec *r)</td><td><a class="el" href="classHooks.html">Hooks</a></td><td><code> [inline]</code></td></tr>
34
+ <tr class="memlist"><td><a class="el" href="classHooks.html#ae3091c57c95b2f8269f566099802f0ec">startBlockingModDir</a>(request_rec *r)</td><td><a class="el" href="classHooks.html">Hooks</a></td><td><code> [inline]</code></td></tr>
35
+ </table></div>
36
+ <hr size="1"/><address style="text-align: right;"><small>Generated by&nbsp;
37
+ <a href="http://www.doxygen.org/index.html">
38
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
39
+ </body>
40
+ </html>
@@ -0,0 +1,153 @@
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: Hooks 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>
29
+ <div class="contents">
30
+ <h1>Hooks Class Reference<br/>
31
+ <small>
32
+ [<a class="el" href="group__Core.html">Core Apache-related classes and functions</a>]</small>
33
+ </h1><!-- doxytag: class="Hooks" -->
34
+ <p>Apache hook functions, wrapped in a class.
35
+ <a href="#_details">More...</a></p>
36
+
37
+ <p><a href="classHooks-members.html">List of all members.</a></p>
38
+ <table border="0" cellpadding="0" cellspacing="0">
39
+ <tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
40
+ <tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classHooks.html#a64333270a19c93451c33dcb8fe1666de">saveOriginalFilename</a> (request_rec *r)</td></tr>
41
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This is the hook method for the map_to_storage hook. <a href="#a64333270a19c93451c33dcb8fe1666de"></a><br/></td></tr>
42
+ <tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classHooks.html#a404c390fa2529611d1c5a15c0bd9f1c3">saveStateBeforeRewriteRules</a> (request_rec *r)</td></tr>
43
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The default .htaccess provided by on Rails on Rails (that is, before version 2.1.0) has the following mod_rewrite rules in it:. <a href="#a404c390fa2529611d1c5a15c0bd9f1c3"></a><br/></td></tr>
44
+ <tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classHooks.html#ae3091c57c95b2f8269f566099802f0ec">startBlockingModDir</a> (request_rec *r)</td></tr>
45
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">mod_dir does the following: If r-&gt;filename is a directory, and the URI doesn't end with a slash, then it will redirect the browser to an URI with a slash. <a href="#ae3091c57c95b2f8269f566099802f0ec"></a><br/></td></tr>
46
+ <tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classHooks.html#ad6cca64be8a9075b4b92efdb4d9020a5">startBlockingModAutoIndex</a> (request_rec *r)</td></tr>
47
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">mod_autoindex will try to display a directory index for URIs that map to a directory. <a href="#ad6cca64be8a9075b4b92efdb4d9020a5"></a><br/></td></tr>
48
+ </table>
49
+ <hr/><a name="_details"></a><h2>Detailed Description</h2>
50
+ <p>Apache hook functions, wrapped in a class. </p>
51
+ <hr/><h2>Member Function Documentation</h2>
52
+ <a class="anchor" id="a64333270a19c93451c33dcb8fe1666de"></a><!-- doxytag: member="Hooks::saveOriginalFilename" ref="a64333270a19c93451c33dcb8fe1666de" args="(request_rec *r)" -->
53
+ <div class="memitem">
54
+ <div class="memproto">
55
+ <table class="memname">
56
+ <tr>
57
+ <td class="memname">int Hooks::saveOriginalFilename </td>
58
+ <td>(</td>
59
+ <td class="paramtype">request_rec *&nbsp;</td>
60
+ <td class="paramname"> <em>r</em></td>
61
+ <td>&nbsp;)&nbsp;</td>
62
+ <td><code> [inline]</code></td>
63
+ </tr>
64
+ </table>
65
+ </div>
66
+ <div class="memdoc">
67
+
68
+ <p>This is the hook method for the map_to_storage hook. </p>
69
+ <p>Apache's final map_to_storage hook method (defined in core.c) will do the following:</p>
70
+ <p>If r-&gt;filename doesn't exist, then it will change the filename to the following form:</p>
71
+ <p>A/B</p>
72
+ <p>A is top-most directory that exists. B is the first filename piece that normally follows A. For example, suppose that a website's DocumentRoot is /website, on server <a href="http://test.com/.">http://test.com/.</a> Suppose that there's also a directory /website/images. No other files or directories exist in /website.</p>
73
+ <p>If we access: then r-&gt;filename will be: <a href="http://test.com/foo/bar">http://test.com/foo/bar</a> /website/foo <a href="http://test.com/foo/bar/baz">http://test.com/foo/bar/baz</a> /website/foo <a href="http://test.com/images/foo/bar">http://test.com/images/foo/bar</a> /website/images/foo</p>
74
+ <p>We obviously don't want this to happen because it'll interfere with our page cache file search code. So here we save the original value of r-&gt;filename so that we can use it later. </p>
75
+
76
+ </div>
77
+ </div>
78
+ <a class="anchor" id="a404c390fa2529611d1c5a15c0bd9f1c3"></a><!-- doxytag: member="Hooks::saveStateBeforeRewriteRules" ref="a404c390fa2529611d1c5a15c0bd9f1c3" args="(request_rec *r)" -->
79
+ <div class="memitem">
80
+ <div class="memproto">
81
+ <table class="memname">
82
+ <tr>
83
+ <td class="memname">int Hooks::saveStateBeforeRewriteRules </td>
84
+ <td>(</td>
85
+ <td class="paramtype">request_rec *&nbsp;</td>
86
+ <td class="paramname"> <em>r</em></td>
87
+ <td>&nbsp;)&nbsp;</td>
88
+ <td><code> [inline]</code></td>
89
+ </tr>
90
+ </table>
91
+ </div>
92
+ <div class="memdoc">
93
+
94
+ <p>The default .htaccess provided by on Rails on Rails (that is, before version 2.1.0) has the following mod_rewrite rules in it:. </p>
95
+ <p>RewriteEngine on RewriteRule ^$ index.html [QSA] RewriteRule ^([^.]+)$ $1.html [QSA] RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ dispatch.cgi [QSA,L]</p>
96
+ <p>As a result, all requests that do not map to a filename will be redirected to dispatch.cgi (or dispatch.fcgi, if the user so specified). We don't want that to happen, so before mod_rewrite applies its rules, we save the current state. After mod_rewrite has applied its rules, undoRedirectionToDispatchCgi() will check whether mod_rewrite attempted to perform an internal redirection to dispatch.(f)cgi. If so, then it will revert the state to the way it was before mod_rewrite took place. </p>
97
+
98
+ </div>
99
+ </div>
100
+ <a class="anchor" id="ad6cca64be8a9075b4b92efdb4d9020a5"></a><!-- doxytag: member="Hooks::startBlockingModAutoIndex" ref="ad6cca64be8a9075b4b92efdb4d9020a5" args="(request_rec *r)" -->
101
+ <div class="memitem">
102
+ <div class="memproto">
103
+ <table class="memname">
104
+ <tr>
105
+ <td class="memname">int Hooks::startBlockingModAutoIndex </td>
106
+ <td>(</td>
107
+ <td class="paramtype">request_rec *&nbsp;</td>
108
+ <td class="paramname"> <em>r</em></td>
109
+ <td>&nbsp;)&nbsp;</td>
110
+ <td><code> [inline]</code></td>
111
+ </tr>
112
+ </table>
113
+ </div>
114
+ <div class="memdoc">
115
+
116
+ <p>mod_autoindex will try to display a directory index for URIs that map to a directory. </p>
117
+ <p>This is undesired because of page caching semantics. Suppose that a Rails application has an ImagesController which has page caching enabled, and thus also a 'public/images' directory. When the visitor visits /images we'll want the request to be forwarded to the Rails application, instead of displaying a directory index.</p>
118
+ <p>So in this hook method, we temporarily change some fields in the request structure in order to block mod_autoindex. In endBlockingModAutoIndex(), we restore the request structure to its former state. </p>
119
+
120
+ </div>
121
+ </div>
122
+ <a class="anchor" id="ae3091c57c95b2f8269f566099802f0ec"></a><!-- doxytag: member="Hooks::startBlockingModDir" ref="ae3091c57c95b2f8269f566099802f0ec" args="(request_rec *r)" -->
123
+ <div class="memitem">
124
+ <div class="memproto">
125
+ <table class="memname">
126
+ <tr>
127
+ <td class="memname">int Hooks::startBlockingModDir </td>
128
+ <td>(</td>
129
+ <td class="paramtype">request_rec *&nbsp;</td>
130
+ <td class="paramname"> <em>r</em></td>
131
+ <td>&nbsp;)&nbsp;</td>
132
+ <td><code> [inline]</code></td>
133
+ </tr>
134
+ </table>
135
+ </div>
136
+ <div class="memdoc">
137
+
138
+ <p>mod_dir does the following: If r-&gt;filename is a directory, and the URI doesn't end with a slash, then it will redirect the browser to an URI with a slash. </p>
139
+ <p>For example, if you go to <a href="http://foo.com/images,">http://foo.com/images,</a> then it will redirect you to <a href="http://foo.com/images/.">http://foo.com/images/.</a></p>
140
+ <p>This behavior is undesired. Suppose that there is an ImagesController, and there's also a 'public/images' folder used for storing page cache files. Then we don't want mod_dir to perform the redirection.</p>
141
+ <p>So in <a class="el" href="classHooks.html#ae3091c57c95b2f8269f566099802f0ec" title="mod_dir does the following: If r-&gt;filename is a directory, and the URI doesn&#39;t...">startBlockingModDir()</a>, we temporarily change some fields in the request structure in order to block mod_dir. In endBlockingModDir() we revert those fields to their old value. </p>
142
+
143
+ </div>
144
+ </div>
145
+ <hr/>The documentation for this class was generated from the following file:<ul>
146
+ <li>Hooks.cpp</li>
147
+ </ul>
148
+ </div>
149
+ <hr size="1"/><address style="text-align: right;"><small>Generated by&nbsp;
150
+ <a href="http://www.doxygen.org/index.html">
151
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
152
+ </body>
153
+ </html>
@@ -0,0 +1,40 @@
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::AbstractSpawnManager Member List</h1>This is the complete list of members for <a class="el" href="classPassenger_1_1AbstractSpawnManager.html">Passenger::AbstractSpawnManager</a>, including all inherited members.<table>
31
+ <tr class="memlist"><td><a class="el" href="classPassenger_1_1AbstractSpawnManager.html#aa630e8c364f391b54c0bfb723326836a">getServerPid</a>() const =0</td><td><a class="el" href="classPassenger_1_1AbstractSpawnManager.html">Passenger::AbstractSpawnManager</a></td><td><code> [pure virtual]</code></td></tr>
32
+ <tr class="memlist"><td><a class="el" href="classPassenger_1_1AbstractSpawnManager.html#a225574ef363847058554fde9d5704950">killSpawnServer</a>() const =0</td><td><a class="el" href="classPassenger_1_1AbstractSpawnManager.html">Passenger::AbstractSpawnManager</a></td><td><code> [pure virtual]</code></td></tr>
33
+ <tr class="memlist"><td><a class="el" href="classPassenger_1_1AbstractSpawnManager.html#a5043681dbfb9b77fa0679c510ede853c">reload</a>(const string &amp;appRoot)=0</td><td><a class="el" href="classPassenger_1_1AbstractSpawnManager.html">Passenger::AbstractSpawnManager</a></td><td><code> [pure virtual]</code></td></tr>
34
+ <tr class="memlist"><td><a class="el" href="classPassenger_1_1AbstractSpawnManager.html#a6ca7efc68595bf962f5cce5e6407f176">spawn</a>(const PoolOptions &amp;options)=0</td><td><a class="el" href="classPassenger_1_1AbstractSpawnManager.html">Passenger::AbstractSpawnManager</a></td><td><code> [pure virtual]</code></td></tr>
35
+ </table></div>
36
+ <hr size="1"/><address style="text-align: right;"><small>Generated by&nbsp;
37
+ <a href="http://www.doxygen.org/index.html">
38
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
39
+ </body>
40
+ </html>
@@ -0,0 +1,187 @@
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::AbstractSpawnManager 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_1AbstractSpawnManager.html">AbstractSpawnManager</a>
29
+ </div>
30
+ </div>
31
+ <div class="contents">
32
+ <h1>Passenger::AbstractSpawnManager Class Reference<br/>
33
+ <small>
34
+ [<a class="el" href="group__Support.html">Apache-independent support classes and function</a>]</small>
35
+ </h1><!-- doxytag: class="Passenger::AbstractSpawnManager" -->
36
+ <p>Spawning of application processes.
37
+ <a href="#_details">More...</a></p>
38
+
39
+ <p><code>#include &lt;<a class="el" href="AbstractSpawnManager_8h_source.html">AbstractSpawnManager.h</a>&gt;</code></p>
40
+ <div class="dynheader">
41
+ Inheritance diagram for Passenger::AbstractSpawnManager:</div>
42
+ <div class="dynsection">
43
+ <div class="center"><img src="classPassenger_1_1AbstractSpawnManager__inherit__graph.png" border="0" usemap="#Passenger_1_1AbstractSpawnManager_inherit__map" alt="Inheritance graph"/></div>
44
+ <map name="Passenger_1_1AbstractSpawnManager_inherit__map" id="Passenger_1_1AbstractSpawnManager_inherit__map">
45
+ <area shape="rect" id="node3" href="classPassenger_1_1SpawnManager.html" title="An AbstractSpawnManager implementation." alt="" coords="32,83,227,112"/></map>
46
+ <center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
47
+
48
+ <p><a href="classPassenger_1_1AbstractSpawnManager-members.html">List of all members.</a></p>
49
+ <table border="0" cellpadding="0" cellspacing="0">
50
+ <tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
51
+ <tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespacePassenger.html#aced1f248465136b313c6dec5fe6ca492">ProcessPtr</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1AbstractSpawnManager.html#a6ca7efc68595bf962f5cce5e6407f176">spawn</a> (const <a class="el" href="structPassenger_1_1PoolOptions.html">PoolOptions</a> &amp;options)=0</td></tr>
52
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Spawn a new application process. <a href="#a6ca7efc68595bf962f5cce5e6407f176"></a><br/></td></tr>
53
+ <tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1AbstractSpawnManager.html#a5043681dbfb9b77fa0679c510ede853c">reload</a> (const string &amp;appRoot)=0</td></tr>
54
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Shutdown the ApplicationSpawner server that's running at the given application root. <a href="#a5043681dbfb9b77fa0679c510ede853c"></a><br/></td></tr>
55
+ <tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1AbstractSpawnManager.html#a225574ef363847058554fde9d5704950">killSpawnServer</a> () const =0</td></tr>
56
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Forcefully kill the spawn server. <a href="#a225574ef363847058554fde9d5704950"></a><br/></td></tr>
57
+ <tr><td class="memItemLeft" align="right" valign="top">virtual pid_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1AbstractSpawnManager.html#aa630e8c364f391b54c0bfb723326836a">getServerPid</a> () const =0</td></tr>
58
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the spawn server's PID. <a href="#aa630e8c364f391b54c0bfb723326836a"></a><br/></td></tr>
59
+ </table>
60
+ <hr/><a name="_details"></a><h2>Detailed Description</h2>
61
+ <p>Spawning of application processes. </p>
62
+ <p>An <a class="el" href="classPassenger_1_1AbstractSpawnManager.html" title="Spawning of application processes.">AbstractSpawnManager</a> is responsible for spawning new application processes. Use the <a class="el" href="classPassenger_1_1AbstractSpawnManager.html#a6ca7efc68595bf962f5cce5e6407f176" title="Spawn a new application process.">spawn()</a> method to do so. <a class="el" href="classPassenger_1_1AbstractSpawnManager.html" title="Spawning of application processes.">AbstractSpawnManager</a> is guaranteed to be thread-safe.</p>
63
+ <p><a class="el" href="classPassenger_1_1AbstractSpawnManager.html" title="Spawning of application processes.">AbstractSpawnManager</a> is just an interface. There are two concrete implementations, namely <a class="el" href="classPassenger_1_1SpawnManager.html" title="An AbstractSpawnManager implementation.">SpawnManager</a> and StubSpawnManager. The former is the one that's usually used, while the latter exists for unit testing purposes. </p>
64
+ <hr/><h2>Member Function Documentation</h2>
65
+ <a class="anchor" id="aa630e8c364f391b54c0bfb723326836a"></a><!-- doxytag: member="Passenger::AbstractSpawnManager::getServerPid" ref="aa630e8c364f391b54c0bfb723326836a" args="() const =0" -->
66
+ <div class="memitem">
67
+ <div class="memproto">
68
+ <table class="memname">
69
+ <tr>
70
+ <td class="memname">virtual pid_t Passenger::AbstractSpawnManager::getServerPid </td>
71
+ <td>(</td>
72
+ <td class="paramname"></td>
73
+ <td>&nbsp;)&nbsp;</td>
74
+ <td> const<code> [pure virtual]</code></td>
75
+ </tr>
76
+ </table>
77
+ </div>
78
+ <div class="memdoc">
79
+
80
+ <p>Returns the spawn server's PID. </p>
81
+ <p>Used within unit tests. </p>
82
+
83
+ <p>Implemented in <a class="el" href="classPassenger_1_1SpawnManager.html#af34df8cfccfc64507999f1b48bc5a126">Passenger::SpawnManager</a>.</p>
84
+
85
+ </div>
86
+ </div>
87
+ <a class="anchor" id="a225574ef363847058554fde9d5704950"></a><!-- doxytag: member="Passenger::AbstractSpawnManager::killSpawnServer" ref="a225574ef363847058554fde9d5704950" args="() const =0" -->
88
+ <div class="memitem">
89
+ <div class="memproto">
90
+ <table class="memname">
91
+ <tr>
92
+ <td class="memname">virtual void Passenger::AbstractSpawnManager::killSpawnServer </td>
93
+ <td>(</td>
94
+ <td class="paramname"></td>
95
+ <td>&nbsp;)&nbsp;</td>
96
+ <td> const<code> [pure virtual]</code></td>
97
+ </tr>
98
+ </table>
99
+ </div>
100
+ <div class="memdoc">
101
+
102
+ <p>Forcefully kill the spawn server. </p>
103
+ <p>This AbstractSpawnManager's state will not be modified, so that it won't know that the spawn server is killed until next time it sends a command to it.</p>
104
+ <p>Used within unit tests. </p>
105
+
106
+ <p>Implemented in <a class="el" href="classPassenger_1_1SpawnManager.html#a9210212c23c5a8ee5ee4dd5c9dcdf57d">Passenger::SpawnManager</a>.</p>
107
+
108
+ </div>
109
+ </div>
110
+ <a class="anchor" id="a5043681dbfb9b77fa0679c510ede853c"></a><!-- doxytag: member="Passenger::AbstractSpawnManager::reload" ref="a5043681dbfb9b77fa0679c510ede853c" args="(const string &amp;appRoot)=0" -->
111
+ <div class="memitem">
112
+ <div class="memproto">
113
+ <table class="memname">
114
+ <tr>
115
+ <td class="memname">virtual void Passenger::AbstractSpawnManager::reload </td>
116
+ <td>(</td>
117
+ <td class="paramtype">const string &amp;&nbsp;</td>
118
+ <td class="paramname"> <em>appRoot</em></td>
119
+ <td>&nbsp;)&nbsp;</td>
120
+ <td><code> [pure virtual]</code></td>
121
+ </tr>
122
+ </table>
123
+ </div>
124
+ <div class="memdoc">
125
+
126
+ <p>Shutdown the ApplicationSpawner server that's running at the given application root. </p>
127
+ <p>This method should be called when it's time to reload an application.</p>
128
+ <dl><dt><b>Exceptions:</b></dt><dd>
129
+ <table border="0" cellspacing="2" cellpadding="0">
130
+ <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classPassenger_1_1SystemException.html" title="Represents an error returned by a system call or a standard library call.">SystemException</a></em>&nbsp;</td><td>Unable to communicate with the spawn server, even after a restart. </td></tr>
131
+ <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classPassenger_1_1SpawnException.html" title="Thrown when SpawnManager or ApplicationPool fails to spawn an application instance...">SpawnException</a></em>&nbsp;</td><td>The spawn server died unexpectedly, and a restart was attempted, but it failed. </td></tr>
132
+ </table>
133
+ </dd>
134
+ </dl>
135
+
136
+ <p>Implemented in <a class="el" href="classPassenger_1_1SpawnManager.html#aad71b2ea9431f3286f23a6e6f80e0981">Passenger::SpawnManager</a>.</p>
137
+
138
+ </div>
139
+ </div>
140
+ <a class="anchor" id="a6ca7efc68595bf962f5cce5e6407f176"></a><!-- doxytag: member="Passenger::AbstractSpawnManager::spawn" ref="a6ca7efc68595bf962f5cce5e6407f176" args="(const PoolOptions &amp;options)=0" -->
141
+ <div class="memitem">
142
+ <div class="memproto">
143
+ <table class="memname">
144
+ <tr>
145
+ <td class="memname">virtual <a class="el" href="namespacePassenger.html#aced1f248465136b313c6dec5fe6ca492">ProcessPtr</a> Passenger::AbstractSpawnManager::spawn </td>
146
+ <td>(</td>
147
+ <td class="paramtype">const <a class="el" href="structPassenger_1_1PoolOptions.html">PoolOptions</a> &amp;&nbsp;</td>
148
+ <td class="paramname"> <em>options</em></td>
149
+ <td>&nbsp;)&nbsp;</td>
150
+ <td><code> [pure virtual]</code></td>
151
+ </tr>
152
+ </table>
153
+ </div>
154
+ <div class="memdoc">
155
+
156
+ <p>Spawn a new application process. </p>
157
+ <p>Spawning details are to be passed via the <code>options</code> argument.</p>
158
+ <p>If the spawn server died during the spawning process, then the server will be automatically restarted, and another spawn attempt will be made. If restarting the server fails, or if the second spawn attempt fails, then an exception will be thrown.</p>
159
+ <dl><dt><b>Parameters:</b></dt><dd>
160
+ <table border="0" cellspacing="2" cellpadding="0">
161
+ <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>An object containing the details for this spawn operation, such as which application to spawn. See <a class="el" href="structPassenger_1_1PoolOptions.html" title="This struct encapsulates information for ApplicationPool::get() and for SpawnManager::spawn()...">PoolOptions</a> for details. </td></tr>
162
+ </table>
163
+ </dd>
164
+ </dl>
165
+ <dl class="return"><dt><b>Returns:</b></dt><dd>A smart pointer to a <a class="el" href="classPassenger_1_1Process.html" title="Represents a single application process, as spawned by SpawnManager or by ApplicationPool::Interface...">Process</a> object, which represents the application process that has been spawned. Use this object to communicate with the spawned process. </dd></dl>
166
+ <dl><dt><b>Exceptions:</b></dt><dd>
167
+ <table border="0" cellspacing="2" cellpadding="0">
168
+ <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classPassenger_1_1SpawnException.html" title="Thrown when SpawnManager or ApplicationPool fails to spawn an application instance...">SpawnException</a></em>&nbsp;</td><td>Something went wrong. </td></tr>
169
+ <tr><td valign="top"></td><td valign="top"><em>boost::thread_interrupted</em>&nbsp;</td><td></td></tr>
170
+ <tr><td valign="top"></td><td valign="top"><em>Anything</em>&nbsp;</td><td>thrown by options.environmentVariables-&gt;getItems(). </td></tr>
171
+ </table>
172
+ </dd>
173
+ </dl>
174
+
175
+ <p>Implemented in <a class="el" href="classPassenger_1_1SpawnManager.html#a88a94ba4d41dab492cb1dc8a0f998973">Passenger::SpawnManager</a>.</p>
176
+
177
+ </div>
178
+ </div>
179
+ <hr/>The documentation for this class was generated from the following file:<ul>
180
+ <li><a class="el" href="AbstractSpawnManager_8h_source.html">AbstractSpawnManager.h</a></li>
181
+ </ul>
182
+ </div>
183
+ <hr size="1"/><address style="text-align: right;"><small>Generated by&nbsp;
184
+ <a href="http://www.doxygen.org/index.html">
185
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
186
+ </body>
187
+ </html>