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,3 @@
1
+ <map id="G" name="G">
2
+ <area shape="rect" id="node1" href="$classPassenger_1_1Uint16Message.html" title="For 16&#45;bit big&#45;endian integers." alt="" coords="7,5,201,35"/>
3
+ </map>
@@ -0,0 +1 @@
1
+ f4e847cb129a1a1896a506f463bb7b63
@@ -0,0 +1,3 @@
1
+ <map id="G" name="G">
2
+ <area shape="rect" id="node1" href="$classPassenger_1_1Uint32Message.html" title="For 32&#45;bit big&#45;endian integers." alt="" coords="7,5,201,35"/>
3
+ </map>
@@ -0,0 +1 @@
1
+ c443ee7bdc3e4ed0dd4bb3e420a207e8
@@ -0,0 +1,3 @@
1
+ <map id="G" name="G">
2
+ <area shape="rect" id="node1" href="$classPassenger_1_1ArgumentException.html" title="Indicates that a specified argument is incorrect or violates a requirement." alt="" coords="7,5,228,35"/>
3
+ </map>
@@ -0,0 +1 @@
1
+ 1f09a671d17b2c94737376d2fefc0504
@@ -0,0 +1,3 @@
1
+ <map id="G" name="G">
2
+ <area shape="rect" id="node1" href="$classServer.html" title="A representation of the Server responsible for handling Client instances." alt="" coords="5,5,69,35"/>
3
+ </map>
@@ -0,0 +1 @@
1
+ 49c26619ea57b6fab68bb69492ab64b3
@@ -0,0 +1,3 @@
1
+ <map id="G" name="G">
2
+ <area shape="rect" id="node1" href="$classServerInstanceDirToucher.html" title="Touch all files in the server instance dir every 6 hours in order to prevent /tmp..." alt="" coords="7,5,191,35"/>
3
+ </map>
@@ -0,0 +1 @@
1
+ 895fbb1cabd5da8622d5341648d91bb3
@@ -0,0 +1,3 @@
1
+ <map id="G" name="G">
2
+ <area shape="rect" id="node1" href="$classPassenger_1_1ArrayMessage.html" title="For array messages." alt="" coords="7,5,193,35"/>
3
+ </map>
@@ -0,0 +1 @@
1
+ ca6b0c927df71626dad64248d7e9ed0f
@@ -0,0 +1,3 @@
1
+ <map id="G" name="G">
2
+ <area shape="rect" id="node1" href="$classPassenger_1_1BufferedUpload.html" title="Represents a buffered upload file." alt="" coords="7,5,201,35"/>
3
+ </map>
@@ -0,0 +1 @@
1
+ fc2cecd833dcd5ffcd6b3f26bcdee851
@@ -0,0 +1,3 @@
1
+ <map id="G" name="G">
2
+ <area shape="rect" id="node1" href="$classPassenger_1_1BusyException.html" title="The application pool is too busy and cannot fulfill a get() request." alt="" coords="5,5,195,35"/>
3
+ </map>
@@ -0,0 +1 @@
1
+ 33b630dea926c338fbbd6cca62c4f362
@@ -0,0 +1,3 @@
1
+ <map id="G" name="G">
2
+ <area shape="rect" id="node1" href="$classPassenger_1_1ConfigurationException.html" title="Thrown when an invalid configuration is given." alt="" coords="7,5,249,35"/>
3
+ </map>
@@ -0,0 +1 @@
1
+ 33f6fef6c88c681d0a4af344429ded81
@@ -0,0 +1,3 @@
1
+ <map id="G" name="G">
2
+ <area shape="rect" id="node1" href="$classPassenger_1_1DirectoryMapper.html" title="Utility class for determining URI&#45;to&#45;application directory mappings." alt="" coords="5,5,208,35"/>
3
+ </map>
@@ -0,0 +1 @@
1
+ 6ac22ac2a04b31b0b8785e5076f34c72
@@ -0,0 +1,165 @@
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: Graphical Class Hierarchy</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 class="current"><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>Graphical Class Hierarchy</h1>
31
+ <p><a href="hierarchy.html">Go to the textual class hierarchy</a></p>
32
+ <table border="0" cellspacing="10" cellpadding="0">
33
+ <tr><td><img src="inherit__graph__0.png" border="0" alt="" usemap="#AgentWatcher_map"/>
34
+ <map name="AgentWatcher_map" id="AgentWatcher">
35
+ <area shape="rect" id="node1" href="classAgentWatcher.html" title="Abstract base class for watching agent processes." alt="" coords="5,5,117,35"/></map></td></tr>
36
+ <tr><td><img src="inherit__graph__1.png" border="0" alt="" usemap="#Client_map"/>
37
+ <map name="Client_map" id="Client">
38
+ <area shape="rect" id="node1" href="classClient.html" title="A representation of a Client from the Server&#39;s point of view." alt="" coords="7,5,63,35"/></map></td></tr>
39
+ <tr><td><img src="inherit__graph__2.png" border="0" alt="" usemap="#Hooks_map"/>
40
+ <map name="Hooks_map" id="Hooks">
41
+ <area shape="rect" id="node1" href="classHooks.html" title="Apache hook functions, wrapped in a class." alt="" coords="5,5,67,35"/></map></td></tr>
42
+ <tr><td><img src="inherit__graph__3.png" border="0" alt="" usemap="#Passenger_1_1AbstractSpawnManager_map"/>
43
+ <map name="Passenger_1_1AbstractSpawnManager_map" id="Passenger_1_1AbstractSpawnManager">
44
+ <area shape="rect" id="node1" href="classPassenger_1_1AbstractSpawnManager.html" title="Spawning of application processes." alt="" coords="5,5,253,35"/><area shape="rect" id="node3" href="classPassenger_1_1SpawnManager.html" title="An AbstractSpawnManager implementation." alt="" coords="301,5,496,35"/></map></td></tr>
45
+ <tr><td><img src="inherit__graph__4.png" border="0" alt="" usemap="#Passenger_1_1ArgumentException_map"/>
46
+ <map name="Passenger_1_1ArgumentException_map" id="Passenger_1_1ArgumentException">
47
+ <area shape="rect" id="node1" href="classPassenger_1_1ArgumentException.html" title="Indicates that a specified argument is incorrect or violates a requirement." alt="" coords="7,5,228,35"/></map></td></tr>
48
+ <tr><td><img src="inherit__graph__5.png" border="0" alt="" usemap="#Passenger_1_1ArrayMessage_map"/>
49
+ <map name="Passenger_1_1ArrayMessage_map" id="Passenger_1_1ArrayMessage">
50
+ <area shape="rect" id="node1" href="classPassenger_1_1ArrayMessage.html" title="For array messages." alt="" coords="7,5,193,35"/></map></td></tr>
51
+ <tr><td><img src="inherit__graph__6.png" border="0" alt="" usemap="#Passenger_1_1BufferedUpload_map"/>
52
+ <map name="Passenger_1_1BufferedUpload_map" id="Passenger_1_1BufferedUpload">
53
+ <area shape="rect" id="node1" href="classPassenger_1_1BufferedUpload.html" title="Represents a buffered upload file." alt="" coords="7,5,201,35"/></map></td></tr>
54
+ <tr><td><img src="inherit__graph__7.png" border="0" alt="" usemap="#Passenger_1_1BusyException_map"/>
55
+ <map name="Passenger_1_1BusyException_map" id="Passenger_1_1BusyException">
56
+ <area shape="rect" id="node1" href="classPassenger_1_1BusyException.html" title="The application pool is too busy and cannot fulfill a get() request." alt="" coords="5,5,195,35"/></map></td></tr>
57
+ <tr><td><img src="inherit__graph__8.png" border="0" alt="" usemap="#Passenger_1_1ConfigurationException_map"/>
58
+ <map name="Passenger_1_1ConfigurationException_map" id="Passenger_1_1ConfigurationException">
59
+ <area shape="rect" id="node1" href="classPassenger_1_1ConfigurationException.html" title="Thrown when an invalid configuration is given." alt="" coords="7,5,249,35"/></map></td></tr>
60
+ <tr><td><img src="inherit__graph__9.png" border="0" alt="" usemap="#Passenger_1_1DirectoryMapper_map"/>
61
+ <map name="Passenger_1_1DirectoryMapper_map" id="Passenger_1_1DirectoryMapper">
62
+ <area shape="rect" id="node1" href="classPassenger_1_1DirectoryMapper.html" title="Utility class for determining URI&#45;to&#45;application directory mappings." alt="" coords="5,5,208,35"/></map></td></tr>
63
+ <tr><td><img src="inherit__graph__10.png" border="0" alt="" usemap="#Passenger_1_1EventedClient_map"/>
64
+ <map name="Passenger_1_1EventedClient_map" id="Passenger_1_1EventedClient">
65
+ <area shape="rect" id="node1" href="classPassenger_1_1EventedClient.html" title="A utility class for making I/O handling in non&#45;blocking libev evented servers much..." alt="" coords="5,5,189,35"/></map></td></tr>
66
+ <tr><td><img src="inherit__graph__11.png" border="0" alt="" usemap="#Passenger_1_1EventedServer_map"/>
67
+ <map name="Passenger_1_1EventedServer_map" id="Passenger_1_1EventedServer">
68
+ <area shape="rect" id="node1" href="classPassenger_1_1EventedServer.html" title="A base class for writing single&#45;threaded, evented servers that use non&#45;blocking I/O..." alt="" coords="7,5,196,35"/><area shape="rect" id="node3" href="classPassenger_1_1EventedMessageServer.html" title="Note when overriding onNewClient: call the parent method first! It does some initialization..." alt="" coords="245,5,493,35"/></map></td></tr>
69
+ <tr><td><img src="inherit__graph__12.png" border="0" alt="" usemap="#Passenger_1_1EventFd_map"/>
70
+ <map name="Passenger_1_1EventFd_map" id="Passenger_1_1EventFd">
71
+ <area shape="rect" id="node1" href="classPassenger_1_1EventFd.html" title="A synchronization mechanism that&#39;s implemented with file descriptors, and as..." alt="" coords="7,5,153,35"/></map></td></tr>
72
+ <tr><td><img src="inherit__graph__13.png" border="0" alt="" usemap="#Passenger_1_1FileDescriptor_map"/>
73
+ <map name="Passenger_1_1FileDescriptor_map" id="Passenger_1_1FileDescriptor">
74
+ <area shape="rect" id="node1" href="classPassenger_1_1FileDescriptor.html" title="Wrapper class around a file descriptor integer, for RAII behavior." alt="" coords="5,5,189,35"/></map></td></tr>
75
+ <tr><td><img src="inherit__graph__14.png" border="0" alt="" usemap="#Passenger_1_1FileDescriptorPair_map"/>
76
+ <map name="Passenger_1_1FileDescriptorPair_map" id="Passenger_1_1FileDescriptorPair">
77
+ <area shape="rect" id="node1" href="classPassenger_1_1FileDescriptorPair.html" title="A structure containing two FileDescriptor objects." alt="" coords="5,5,213,35"/></map></td></tr>
78
+ <tr><td><img src="inherit__graph__15.png" border="0" alt="" usemap="#Passenger_1_1HttpStatusExtractor_map"/>
79
+ <map name="Passenger_1_1HttpStatusExtractor_map" id="Passenger_1_1HttpStatusExtractor">
80
+ <area shape="rect" id="node1" href="classPassenger_1_1HttpStatusExtractor.html" title="Utility class for extracting the HTTP status value from an HTTP response." alt="" coords="5,5,229,35"/></map></td></tr>
81
+ <tr><td><img src="inherit__graph__16.png" border="0" alt="" usemap="#Passenger_1_1IOException_map"/>
82
+ <map name="Passenger_1_1IOException_map" id="Passenger_1_1IOException">
83
+ <area shape="rect" id="node1" href="classPassenger_1_1IOException.html" title="Represents an error that occured during an I/O operation." alt="" coords="7,32,177,61"/><area shape="rect" id="node3" href="classPassenger_1_1EOFException.html" title="An unexpected end&#45;of&#45;file I/O error." alt="" coords="256,5,440,35"/><area shape="rect" id="node5" href="classPassenger_1_1FileNotFoundException.html" title="Thrown when a certain file cannot be found." alt="" coords="228,59,468,88"/></map></td></tr>
84
+ <tr><td><img src="inherit__graph__17.png" border="0" alt="" usemap="#Passenger_1_1MessageChannel_map"/>
85
+ <map name="Passenger_1_1MessageChannel_map" id="Passenger_1_1MessageChannel">
86
+ <area shape="rect" id="node1" href="classPassenger_1_1MessageChannel.html" title="Convenience class for I/O operations on file descriptors." alt="" coords="5,5,211,35"/></map></td></tr>
87
+ <tr><td><img src="inherit__graph__18.png" border="0" alt="" usemap="#Passenger_1_1MessageServer_map"/>
88
+ <map name="Passenger_1_1MessageServer_map" id="Passenger_1_1MessageServer">
89
+ <area shape="rect" id="node1" href="classPassenger_1_1MessageServer.html" title="Simple pluggable request/response messaging server framework." alt="" coords="7,5,201,35"/></map></td></tr>
90
+ <tr><td><img src="inherit__graph__19.png" border="0" alt="" usemap="#Passenger_1_1MessageServer_1_1ClientContext_map"/>
91
+ <map name="Passenger_1_1MessageServer_1_1ClientContext_map" id="Passenger_1_1MessageServer_1_1ClientContext">
92
+ <area shape="rect" id="node1" href="classPassenger_1_1MessageServer_1_1ClientContext.html" title="Interface for client context objects." alt="" coords="7,5,295,35"/><area shape="rect" id="node3" href="classPassenger_1_1MessageServer_1_1CommonClientContext.html" title="A common client context, containing client&#45;specific information used by MessageServer..." alt="" coords="345,5,692,35"/></map></td></tr>
93
+ <tr><td><img src="inherit__graph__20.png" border="0" alt="" usemap="#Passenger_1_1MessageServer_1_1DisconnectEventBroadcastGuard_map"/>
94
+ <map name="Passenger_1_1MessageServer_1_1DisconnectEventBroadcastGuard_map" id="Passenger_1_1MessageServer_1_1DisconnectEventBroadcastGuard">
95
+ <area shape="rect" id="node1" href="structPassenger_1_1MessageServer_1_1DisconnectEventBroadcastGuard.html" title="Calls clientDisconnected() on all handlers when destroyed." alt="" coords="7,5,420,35"/></map></td></tr>
96
+ <tr><td><img src="inherit__graph__21.png" border="0" alt="" usemap="#Passenger_1_1MessageServer_1_1Handler_map"/>
97
+ <map name="Passenger_1_1MessageServer_1_1Handler_map" id="Passenger_1_1MessageServer_1_1Handler">
98
+ <area shape="rect" id="node1" href="classPassenger_1_1MessageServer_1_1Handler.html" title="An abstract message handler class." alt="" coords="5,5,259,35"/></map></td></tr>
99
+ <tr><td><img src="inherit__graph__22.png" border="0" alt="" usemap="#Passenger_1_1PoolOptions_map"/>
100
+ <map name="Passenger_1_1PoolOptions_map" id="Passenger_1_1PoolOptions">
101
+ <area shape="rect" id="node1" href="structPassenger_1_1PoolOptions.html" title="This struct encapsulates information for ApplicationPool::get() and for SpawnManager::spawn()..." alt="" coords="7,5,177,35"/></map></td></tr>
102
+ <tr><td><img src="inherit__graph__23.png" border="0" alt="" usemap="#Passenger_1_1Process_map"/>
103
+ <map name="Passenger_1_1Process_map" id="Passenger_1_1Process">
104
+ <area shape="rect" id="node1" href="classPassenger_1_1Process.html" title="Represents a single application process, as spawned by SpawnManager or by ApplicationPool::Interface..." alt="" coords="5,5,152,35"/></map></td></tr>
105
+ <tr><td><img src="inherit__graph__24.png" border="0" alt="" usemap="#Passenger_1_1RandomGenerator_map"/>
106
+ <map name="Passenger_1_1RandomGenerator_map" id="Passenger_1_1RandomGenerator">
107
+ <area shape="rect" id="node1" href="classPassenger_1_1RandomGenerator.html" title="A random data generator." alt="" coords="7,5,220,35"/></map></td></tr>
108
+ <tr><td><img src="inherit__graph__25.png" border="0" alt="" usemap="#Passenger_1_1ResourceLocator_map"/>
109
+ <map name="Passenger_1_1ResourceLocator_map" id="Passenger_1_1ResourceLocator">
110
+ <area shape="rect" id="node1" href="classPassenger_1_1ResourceLocator.html" title="Locates various Phusion Passenger resources on the filesystem." alt="" coords="7,5,209,35"/></map></td></tr>
111
+ <tr><td><img src="inherit__graph__26.png" border="0" alt="" usemap="#Passenger_1_1RuntimeException_map"/>
112
+ <map name="Passenger_1_1RuntimeException_map" id="Passenger_1_1RuntimeException">
113
+ <area shape="rect" id="node1" href="classPassenger_1_1RuntimeException.html" title="A generic runtime exception." alt="" coords="7,5,217,35"/></map></td></tr>
114
+ <tr><td><img src="inherit__graph__27.png" border="0" alt="" usemap="#Passenger_1_1SafeLibev_map"/>
115
+ <map name="Passenger_1_1SafeLibev_map" id="Passenger_1_1SafeLibev">
116
+ <area shape="rect" id="node1" href="classPassenger_1_1SafeLibev.html" title="Class for thread&#45;safely using libev." alt="" coords="7,5,164,35"/></map></td></tr>
117
+ <tr><td><img src="inherit__graph__28.png" border="0" alt="" usemap="#Passenger_1_1ScalarMessage_map"/>
118
+ <map name="Passenger_1_1ScalarMessage_map" id="Passenger_1_1ScalarMessage">
119
+ <area shape="rect" id="node1" href="classPassenger_1_1ScalarMessage.html" title="Class for reading a scalar message." alt="" coords="7,5,199,35"/></map></td></tr>
120
+ <tr><td><img src="inherit__graph__29.png" border="0" alt="" usemap="#Passenger_1_1ScgiRequestParser_map"/>
121
+ <map name="Passenger_1_1ScgiRequestParser_map" id="Passenger_1_1ScgiRequestParser">
122
+ <area shape="rect" id="node1" href="classPassenger_1_1ScgiRequestParser.html" title="A parser for SCGI requests." alt="" coords="5,5,221,35"/></map></td></tr>
123
+ <tr><td><img src="inherit__graph__30.png" border="0" alt="" usemap="#Passenger_1_1SecurityException_map"/>
124
+ <map name="Passenger_1_1SecurityException_map" id="Passenger_1_1SecurityException">
125
+ <area shape="rect" id="node1" href="classPassenger_1_1SecurityException.html" title="Represents some kind of security error." alt="" coords="5,5,216,35"/></map></td></tr>
126
+ <tr><td><img src="inherit__graph__31.png" border="0" alt="" usemap="#Passenger_1_1Session_map"/>
127
+ <map name="Passenger_1_1Session_map" id="Passenger_1_1Session">
128
+ <area shape="rect" id="node1" href="classPassenger_1_1Session.html" title="Represents a single request/response pair of an application process." alt="" coords="5,5,152,35"/><area shape="rect" id="node3" href="classPassenger_1_1StandardSession.html" title="A &quot;standard&quot; implementation of Session." alt="" coords="200,5,405,35"/></map></td></tr>
129
+ <tr><td><img src="inherit__graph__32.png" border="0" alt="" usemap="#Passenger_1_1SpawnException_map"/>
130
+ <map name="Passenger_1_1SpawnException_map" id="Passenger_1_1SpawnException">
131
+ <area shape="rect" id="node1" href="classPassenger_1_1SpawnException.html" title="Thrown when SpawnManager or ApplicationPool fails to spawn an application instance..." alt="" coords="5,5,205,35"/></map></td></tr>
132
+ <tr><td><img src="inherit__graph__33.png" border="0" alt="" usemap="#Passenger_1_1StaticString_map"/>
133
+ <map name="Passenger_1_1StaticString_map" id="Passenger_1_1StaticString">
134
+ <area shape="rect" id="node1" href="classPassenger_1_1StaticString.html" title="An immutable, static byte buffer." alt="" coords="7,5,177,35"/></map></td></tr>
135
+ <tr><td><img src="inherit__graph__34.png" border="0" alt="" usemap="#Passenger_1_1StaticString_1_1Hash_map"/>
136
+ <map name="Passenger_1_1StaticString_1_1Hash_map" id="Passenger_1_1StaticString_1_1Hash">
137
+ <area shape="rect" id="node1" href="structPassenger_1_1StaticString_1_1Hash.html" title="A hash function object for StaticString." alt="" coords="7,5,217,35"/></map></td></tr>
138
+ <tr><td><img src="inherit__graph__35.png" border="0" alt="" usemap="#Passenger_1_1SyntaxError_map"/>
139
+ <map name="Passenger_1_1SyntaxError_map" id="Passenger_1_1SyntaxError">
140
+ <area shape="rect" id="node1" href="classPassenger_1_1SyntaxError.html" title="A parser detected a syntax error." alt="" coords="7,5,177,35"/></map></td></tr>
141
+ <tr><td><img src="inherit__graph__36.png" border="0" alt="" usemap="#Passenger_1_1SystemException_map"/>
142
+ <map name="Passenger_1_1SystemException_map" id="Passenger_1_1SystemException">
143
+ <area shape="rect" id="node1" href="classPassenger_1_1SystemException.html" title="Represents an error returned by a system call or a standard library call." alt="" coords="5,32,213,61"/><area shape="rect" id="node3" href="classPassenger_1_1FileSystemException.html" title="A filesystem error, as returned by the operating system." alt="" coords="271,5,497,35"/><area shape="rect" id="node5" href="classPassenger_1_1TimeRetrievalException.html" title="Unable to retrieve the system time using time()." alt="" coords="263,59,505,88"/></map></td></tr>
144
+ <tr><td><img src="inherit__graph__37.png" border="0" alt="" usemap="#Passenger_1_1TimeoutException_map"/>
145
+ <map name="Passenger_1_1TimeoutException_map" id="Passenger_1_1TimeoutException">
146
+ <area shape="rect" id="node1" href="classPassenger_1_1TimeoutException.html" title="An exception indicating that some timeout expired." alt="" coords="5,5,216,35"/></map></td></tr>
147
+ <tr><td><img src="inherit__graph__38.png" border="0" alt="" usemap="#Passenger_1_1Uint16Message_map"/>
148
+ <map name="Passenger_1_1Uint16Message_map" id="Passenger_1_1Uint16Message">
149
+ <area shape="rect" id="node1" href="classPassenger_1_1Uint16Message.html" title="For 16&#45;bit big&#45;endian integers." alt="" coords="7,5,201,35"/></map></td></tr>
150
+ <tr><td><img src="inherit__graph__39.png" border="0" alt="" usemap="#Passenger_1_1Uint32Message_map"/>
151
+ <map name="Passenger_1_1Uint32Message_map" id="Passenger_1_1Uint32Message">
152
+ <area shape="rect" id="node1" href="classPassenger_1_1Uint32Message.html" title="For 32&#45;bit big&#45;endian integers." alt="" coords="7,5,201,35"/></map></td></tr>
153
+ <tr><td><img src="inherit__graph__40.png" border="0" alt="" usemap="#Server_map"/>
154
+ <map name="Server_map" id="Server">
155
+ <area shape="rect" id="node1" href="classServer.html" title="A representation of the Server responsible for handling Client instances." alt="" coords="5,5,69,35"/></map></td></tr>
156
+ <tr><td><img src="inherit__graph__41.png" border="0" alt="" usemap="#ServerInstanceDirToucher_map"/>
157
+ <map name="ServerInstanceDirToucher_map" id="ServerInstanceDirToucher">
158
+ <area shape="rect" id="node1" href="classServerInstanceDirToucher.html" title="Touch all files in the server instance dir every 6 hours in order to prevent /tmp..." alt="" coords="7,5,191,35"/></map></td></tr>
159
+ </table>
160
+ </div>
161
+ <hr size="1"/><address style="text-align: right;"><small>Generated by&nbsp;
162
+ <a href="http://www.doxygen.org/index.html">
163
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
164
+ </body>
165
+ </html>
@@ -0,0 +1,28 @@
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: Main Page</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 class="current"><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><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>
22
+ <div class="contents">
23
+ <h1>Passenger Documentation</h1></div>
24
+ <hr size="1"/><address style="text-align: right;"><small>Generated by&nbsp;
25
+ <a href="http://www.doxygen.org/index.html">
26
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
27
+ </body>
28
+ </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: Module Index</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 class="current"><a href="modules.html"><span>Modules</span></a></li>
16
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
17
+ <li><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>
22
+ <div class="contents">
23
+ <h1>Modules</h1>Here is a list of all modules:<ul>
24
+ <li><a class="el" href="group__Core.html">Core Apache-related classes and functions</a><ul>
25
+ <li><a class="el" href="group__Hooks.html">Apache hooks</a></li>
26
+ </ul>
27
+ </li>
28
+ <li><a class="el" href="group__Support.html">Apache-independent support classes and function</a></li>
29
+ <li><a class="el" href="group__Exceptions.html">Exceptions</a></li>
30
+ </ul>
31
+ </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,553 @@
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 Namespace 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 class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
17
+ <li><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="namespaces.html"><span>Namespace&nbsp;List</span></a></li>
24
+ <li><a href="namespacemembers.html"><span>Namespace&nbsp;Members</span></a></li>
25
+ </ul>
26
+ </div>
27
+ </div>
28
+ <div class="contents">
29
+ <h1>Passenger Namespace Reference</h1>
30
+ <p>Common code for all agents.
31
+ <a href="#_details">More...</a></p>
32
+ <table border="0" cellpadding="0" cellspacing="0">
33
+ <tr><td colspan="2"><h2>Classes</h2></td></tr>
34
+ <tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1DirectoryMapper.html">DirectoryMapper</a></td></tr>
35
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Utility class for determining URI-to-application directory mappings. <a href="classPassenger_1_1DirectoryMapper.html#_details">More...</a><br/></td></tr>
36
+ <tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1AbstractSpawnManager.html">AbstractSpawnManager</a></td></tr>
37
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Spawning of application processes. <a href="classPassenger_1_1AbstractSpawnManager.html#_details">More...</a><br/></td></tr>
38
+ <tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1EventedClient.html">EventedClient</a></td></tr>
39
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A utility class for making I/O handling in non-blocking libev evented servers much easier. <a href="classPassenger_1_1EventedClient.html#_details">More...</a><br/></td></tr>
40
+ <tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1EventedMessageServer.html">EventedMessageServer</a></td></tr>
41
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Note when overriding onNewClient: call the parent method first! It does some initialization but might disconnect the client if that initialization fails. <a href="classPassenger_1_1EventedMessageServer.html#_details">More...</a><br/></td></tr>
42
+ <tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1EventedServer.html">EventedServer</a></td></tr>
43
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A base class for writing single-threaded, evented servers that use non-blocking I/O. <a href="classPassenger_1_1EventedServer.html#_details">More...</a><br/></td></tr>
44
+ <tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1SystemException.html">SystemException</a></td></tr>
45
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Represents an error returned by a system call or a standard library call. <a href="classPassenger_1_1SystemException.html#_details">More...</a><br/></td></tr>
46
+ <tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1FileSystemException.html">FileSystemException</a></td></tr>
47
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A filesystem error, as returned by the operating system. <a href="classPassenger_1_1FileSystemException.html#_details">More...</a><br/></td></tr>
48
+ <tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1TimeRetrievalException.html">TimeRetrievalException</a></td></tr>
49
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Unable to retrieve the system time using <code>time()</code>. <a href="classPassenger_1_1TimeRetrievalException.html#_details">More...</a><br/></td></tr>
50
+ <tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1IOException.html">IOException</a></td></tr>
51
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Represents an error that occured during an I/O operation. <a href="classPassenger_1_1IOException.html#_details">More...</a><br/></td></tr>
52
+ <tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1FileNotFoundException.html">FileNotFoundException</a></td></tr>
53
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Thrown when a certain file cannot be found. <a href="classPassenger_1_1FileNotFoundException.html#_details">More...</a><br/></td></tr>
54
+ <tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1EOFException.html">EOFException</a></td></tr>
55
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">An unexpected end-of-file I/O error. <a href="classPassenger_1_1EOFException.html#_details">More...</a><br/></td></tr>
56
+ <tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1ConfigurationException.html">ConfigurationException</a></td></tr>
57
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Thrown when an invalid configuration is given. <a href="classPassenger_1_1ConfigurationException.html#_details">More...</a><br/></td></tr>
58
+ <tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1SpawnException.html">SpawnException</a></td></tr>
59
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Thrown when <a class="el" href="classPassenger_1_1SpawnManager.html" title="An AbstractSpawnManager implementation.">SpawnManager</a> or ApplicationPool fails to spawn an application instance. <a href="classPassenger_1_1SpawnException.html#_details">More...</a><br/></td></tr>
60
+ <tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1ArgumentException.html">ArgumentException</a></td></tr>
61
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Indicates that a specified argument is incorrect or violates a requirement. <a href="classPassenger_1_1ArgumentException.html#_details">More...</a><br/></td></tr>
62
+ <tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1RuntimeException.html">RuntimeException</a></td></tr>
63
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A generic runtime exception. <a href="classPassenger_1_1RuntimeException.html#_details">More...</a><br/></td></tr>
64
+ <tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1TimeoutException.html">TimeoutException</a></td></tr>
65
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">An exception indicating that some timeout expired. <a href="classPassenger_1_1TimeoutException.html#_details">More...</a><br/></td></tr>
66
+ <tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1SecurityException.html">SecurityException</a></td></tr>
67
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Represents some kind of security error. <a href="classPassenger_1_1SecurityException.html#_details">More...</a><br/></td></tr>
68
+ <tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1BusyException.html">BusyException</a></td></tr>
69
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The application pool is too busy and cannot fulfill a get() request. <a href="classPassenger_1_1BusyException.html#_details">More...</a><br/></td></tr>
70
+ <tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1SyntaxError.html">SyntaxError</a></td></tr>
71
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A parser detected a syntax error. <a href="classPassenger_1_1SyntaxError.html#_details">More...</a><br/></td></tr>
72
+ <tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1FileDescriptor.html">FileDescriptor</a></td></tr>
73
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Wrapper class around a file descriptor integer, for RAII behavior. <a href="classPassenger_1_1FileDescriptor.html#_details">More...</a><br/></td></tr>
74
+ <tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1FileDescriptorPair.html">FileDescriptorPair</a></td></tr>
75
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A structure containing two <a class="el" href="classPassenger_1_1FileDescriptor.html" title="Wrapper class around a file descriptor integer, for RAII behavior.">FileDescriptor</a> objects. <a href="classPassenger_1_1FileDescriptorPair.html#_details">More...</a><br/></td></tr>
76
+ <tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1EventFd.html">EventFd</a></td></tr>
77
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A synchronization mechanism that's implemented with file descriptors, and as such can be used in combination with select() and friends. <a href="classPassenger_1_1EventFd.html#_details">More...</a><br/></td></tr>
78
+ <tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1MessageChannel.html">MessageChannel</a></td></tr>
79
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convenience class for I/O operations on file descriptors. <a href="classPassenger_1_1MessageChannel.html#_details">More...</a><br/></td></tr>
80
+ <tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Uint16Message.html">Uint16Message</a></td></tr>
81
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">For 16-bit big-endian integers. <a href="classPassenger_1_1Uint16Message.html#_details">More...</a><br/></td></tr>
82
+ <tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Uint32Message.html">Uint32Message</a></td></tr>
83
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">For 32-bit big-endian integers. <a href="classPassenger_1_1Uint32Message.html#_details">More...</a><br/></td></tr>
84
+ <tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1ArrayMessage.html">ArrayMessage</a></td></tr>
85
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">For array messages. <a href="classPassenger_1_1ArrayMessage.html#_details">More...</a><br/></td></tr>
86
+ <tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1ScalarMessage.html">ScalarMessage</a></td></tr>
87
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Class for reading a scalar message. <a href="classPassenger_1_1ScalarMessage.html#_details">More...</a><br/></td></tr>
88
+ <tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1MessageServer.html">MessageServer</a></td></tr>
89
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Simple pluggable request/response messaging server framework. <a href="classPassenger_1_1MessageServer.html#_details">More...</a><br/></td></tr>
90
+ <tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPassenger_1_1PoolOptions.html">PoolOptions</a></td></tr>
91
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This struct encapsulates information for ApplicationPool::get() and for <a class="el" href="classPassenger_1_1SpawnManager.html#a88a94ba4d41dab492cb1dc8a0f998973" title="Spawn a new application process.">SpawnManager::spawn()</a>, such as which application is to be spawned. <a href="structPassenger_1_1PoolOptions.html#_details">More...</a><br/></td></tr>
92
+ <tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Process.html">Process</a></td></tr>
93
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Represents a single application process, as spawned by <a class="el" href="classPassenger_1_1SpawnManager.html" title="An AbstractSpawnManager implementation.">SpawnManager</a> or by ApplicationPool::Interface::get(). <a href="classPassenger_1_1Process.html#_details">More...</a><br/></td></tr>
94
+ <tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1RandomGenerator.html">RandomGenerator</a></td></tr>
95
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A random data generator. <a href="classPassenger_1_1RandomGenerator.html#_details">More...</a><br/></td></tr>
96
+ <tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1ResourceLocator.html">ResourceLocator</a></td></tr>
97
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Locates various Phusion <a class="el" href="namespacePassenger.html" title="Common code for all agents.">Passenger</a> resources on the filesystem. <a href="classPassenger_1_1ResourceLocator.html#_details">More...</a><br/></td></tr>
98
+ <tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1SafeLibev.html">SafeLibev</a></td></tr>
99
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Class for thread-safely using libev. <a href="classPassenger_1_1SafeLibev.html#_details">More...</a><br/></td></tr>
100
+ <tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Session.html">Session</a></td></tr>
101
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Represents a single request/response pair of an application process. <a href="classPassenger_1_1Session.html#_details">More...</a><br/></td></tr>
102
+ <tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1StandardSession.html">StandardSession</a></td></tr>
103
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A "standard" implementation of <a class="el" href="classPassenger_1_1Session.html" title="Represents a single request/response pair of an application process.">Session</a>. <a href="classPassenger_1_1StandardSession.html#_details">More...</a><br/></td></tr>
104
+ <tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1SpawnManager.html">SpawnManager</a></td></tr>
105
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">An <a class="el" href="classPassenger_1_1AbstractSpawnManager.html" title="Spawning of application processes.">AbstractSpawnManager</a> implementation. <a href="classPassenger_1_1SpawnManager.html#_details">More...</a><br/></td></tr>
106
+ <tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1StaticString.html">StaticString</a></td></tr>
107
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">An immutable, static byte buffer. <a href="classPassenger_1_1StaticString.html#_details">More...</a><br/></td></tr>
108
+ <tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1BufferedUpload.html">BufferedUpload</a></td></tr>
109
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Represents a buffered upload file. <a href="classPassenger_1_1BufferedUpload.html#_details">More...</a><br/></td></tr>
110
+ <tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1HttpStatusExtractor.html">HttpStatusExtractor</a></td></tr>
111
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Utility class for extracting the HTTP status value from an HTTP response. <a href="classPassenger_1_1HttpStatusExtractor.html#_details">More...</a><br/></td></tr>
112
+ <tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1ScgiRequestParser.html">ScgiRequestParser</a></td></tr>
113
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A parser for SCGI requests. <a href="classPassenger_1_1ScgiRequestParser.html#_details">More...</a><br/></td></tr>
114
+ <tr><td colspan="2"><h2>Typedefs</h2></td></tr>
115
+ <tr><td class="memItemLeft" align="right" valign="top">typedef shared_ptr<br class="typebreak"/>
116
+ &lt; <a class="el" href="classPassenger_1_1AbstractSpawnManager.html">AbstractSpawnManager</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacePassenger.html#afd60d942a89fbb7f306e330d75704570">AbstractSpawnManagerPtr</a></td></tr>
117
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convenient alias for <a class="el" href="classPassenger_1_1AbstractSpawnManager.html" title="Spawning of application processes.">AbstractSpawnManager</a> smart pointer. <a href="#afd60d942a89fbb7f306e330d75704570"></a><br/></td></tr>
118
+ <tr><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; <a class="el" href="classPassenger_1_1Process.html">Process</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacePassenger.html#aced1f248465136b313c6dec5fe6ca492">ProcessPtr</a></td></tr>
119
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convenient alias for <a class="el" href="classPassenger_1_1Process.html" title="Represents a single application process, as spawned by SpawnManager or by ApplicationPool::Interface...">Process</a> smart pointer. <a href="#aced1f248465136b313c6dec5fe6ca492"></a><br/></td></tr>
120
+ <tr><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; <a class="el" href="classPassenger_1_1SpawnManager.html">SpawnManager</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacePassenger.html#a6ab2d566ff87a2676c23d8aa40204587">SpawnManagerPtr</a></td></tr>
121
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convenient alias for <a class="el" href="classPassenger_1_1SpawnManager.html" title="An AbstractSpawnManager implementation.">SpawnManager</a> smart pointer. <a href="#a6ab2d566ff87a2676c23d8aa40204587"></a><br/></td></tr>
122
+ <tr><td colspan="2"><h2>Enumerations</h2></td></tr>
123
+ <tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacePassenger.html#a14174b712df6046cb823cde43d7ef07d">FileType</a> { <a class="el" href="namespacePassenger.html#a14174b712df6046cb823cde43d7ef07da9fc66834fe96c52799397496b8df8486">FT_NONEXISTANT</a>,
124
+ <a class="el" href="namespacePassenger.html#a14174b712df6046cb823cde43d7ef07da1538596a928321d1a282c6bb06e80563">FT_REGULAR</a>,
125
+ <a class="el" href="namespacePassenger.html#a14174b712df6046cb823cde43d7ef07dabb09dbba1071b4770913363db2462eee">FT_DIRECTORY</a>,
126
+ <a class="el" href="namespacePassenger.html#a14174b712df6046cb823cde43d7ef07da3e89b9a7be074975e007d9f7cd77f4ff">FT_OTHER</a>
127
+ }</td></tr>
128
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>Enumeration which indicates what kind of file a file is. </p>
129
+ <a href="namespacePassenger.html#a14174b712df6046cb823cde43d7ef07d">More...</a><br/></td></tr>
130
+ <tr><td colspan="2"><h2>Functions</h2></td></tr>
131
+ <tr><td class="memItemLeft" align="right" valign="top">apr_bucket *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacePassenger.html#a35b11c8ce90e90d01380f182d82f8cac">passenger_bucket_create</a> (SessionPtr session, PassengerBucketStatePtr state, apr_bucket_alloc_t *list)</td></tr>
132
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">We used to use an apr_bucket_pipe for forwarding the backend process's response to the HTTP client. <a href="#a35b11c8ce90e90d01380f182d82f8cac"></a><br/></td></tr>
133
+ <tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Support.html#ga2a62e38a72c6c65992e3361f6d80c7ef">fileExists</a> (const <a class="el" href="classPassenger_1_1StaticString.html">StaticString</a> &amp;filename, CachedFileStat *cstat=0, unsigned int throttleRate=0)</td></tr>
134
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Check whether the specified file exists. <a href="group__Support.html#ga2a62e38a72c6c65992e3361f6d80c7ef"></a><br/></td></tr>
135
+ <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacePassenger.html#a14174b712df6046cb823cde43d7ef07d">FileType</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Support.html#ga15298b031377d3ecb80295bd5b1a8180">getFileType</a> (const <a class="el" href="classPassenger_1_1StaticString.html">StaticString</a> &amp;filename, CachedFileStat *cstat=0, unsigned int throttleRate=0)</td></tr>
136
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Check whether 'filename' exists and what kind of file it is. <a href="group__Support.html#ga15298b031377d3ecb80295bd5b1a8180"></a><br/></td></tr>
137
+ <tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Support.html#ga6f414070373465da2e12947463f69953">createFile</a> (const string &amp;filename, const <a class="el" href="classPassenger_1_1StaticString.html">StaticString</a> &amp;contents, mode_t permissions=S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH, uid_t owner=USER_NOT_GIVEN, gid_t group=GROUP_NOT_GIVEN, bool overwrite=true)</td></tr>
138
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create the given file with the given contents, permissions and ownership. <a href="group__Support.html#ga6f414070373465da2e12947463f69953"></a><br/></td></tr>
139
+ <tr><td class="memItemLeft" align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Support.html#gaf3b0a483f0a252ae08d9de9f8b267d36">canonicalizePath</a> (const string &amp;path)</td></tr>
140
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns a canonical version of the specified path. <a href="group__Support.html#gaf3b0a483f0a252ae08d9de9f8b267d36"></a><br/></td></tr>
141
+ <tr><td class="memItemLeft" align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Support.html#gac3d2b3d608188527d888e63d22c5163c">resolveSymlink</a> (const string &amp;path)</td></tr>
142
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">If <em>path</em> refers to a symlink, then this function resolves the symlink for 1 level. <a href="group__Support.html#gac3d2b3d608188527d888e63d22c5163c"></a><br/></td></tr>
143
+ <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae651ece5281f22dc5fc974079f7c9187"></a><!-- doxytag: member="Passenger::extractDirName" ref="gae651ece5281f22dc5fc974079f7c9187" args="(const StaticString &amp;path)" -->
144
+ string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Support.html#gae651ece5281f22dc5fc974079f7c9187">extractDirName</a> (const <a class="el" href="classPassenger_1_1StaticString.html">StaticString</a> &amp;path)</td></tr>
145
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Given a path, extracts its directory name. <br/></td></tr>
146
+ <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaeb750234207485fa57609174ca8d4359"></a><!-- doxytag: member="Passenger::extractBaseName" ref="gaeb750234207485fa57609174ca8d4359" args="(const StaticString &amp;path)" -->
147
+ string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Support.html#gaeb750234207485fa57609174ca8d4359">extractBaseName</a> (const <a class="el" href="classPassenger_1_1StaticString.html">StaticString</a> &amp;path)</td></tr>
148
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Given a path, extracts its base name. <br/></td></tr>
149
+ <tr><td class="memItemLeft" align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Support.html#gae74addedf73782a1eb1f6dd48d6fce06">escapeForXml</a> (const string &amp;input)</td></tr>
150
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Escape the given raw string into an XML value. <a href="group__Support.html#gae74addedf73782a1eb1f6dd48d6fce06"></a><br/></td></tr>
151
+ <tr><td class="memItemLeft" align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacePassenger.html#ade80218e8b836b796f8b960b6225b439">getProcessUsername</a> ()</td></tr>
152
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the username of the user that the current process is running as. <a href="#ade80218e8b836b796f8b960b6225b439"></a><br/></td></tr>
153
+ <tr><td class="memItemLeft" align="right" valign="top">mode_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacePassenger.html#ada53f5a9bdcf3d22d4a710e7ea3678e9">parseModeString</a> (const <a class="el" href="classPassenger_1_1StaticString.html">StaticString</a> &amp;mode)</td></tr>
154
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Converts a mode string into a mode_t value. <a href="#ada53f5a9bdcf3d22d4a710e7ea3678e9"></a><br/></td></tr>
155
+ <tr><td class="memItemLeft" align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Support.html#ga68f4105c5a8e510520b5ea3eecb66213">getSystemTempDir</a> ()</td></tr>
156
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the path name for the directory in which the system stores general temporary files. <a href="group__Support.html#ga68f4105c5a8e510520b5ea3eecb66213"></a><br/></td></tr>
157
+ <tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacePassenger.html#a448f25263af0b37b91caee3d294ec4aa">makeDirTree</a> (const string &amp;path, const <a class="el" href="classPassenger_1_1StaticString.html">StaticString</a> &amp;mode=&quot;u=rwx,g=,o=&quot;, uid_t owner=USER_NOT_GIVEN, gid_t group=GROUP_NOT_GIVEN)</td></tr>
158
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create the directory at the given path, creating intermediate directories if necessary. <a href="#a448f25263af0b37b91caee3d294ec4aa"></a><br/></td></tr>
159
+ <tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacePassenger.html#a8422d210cbd2f62d21254415b5a7f747">removeDirTree</a> (const string &amp;path)</td></tr>
160
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Remove an entire directory tree recursively. <a href="#a8422d210cbd2f62d21254415b5a7f747"></a><br/></td></tr>
161
+ <tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Support.html#ga5e6bc7ff22b7c61238d7913521936f71">verifyRailsDir</a> (const string &amp;dir, CachedFileStat *cstat=0, unsigned int throttleRate=0)</td></tr>
162
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Check whether the specified directory is a valid Ruby on Rails application root directory. <a href="group__Support.html#ga5e6bc7ff22b7c61238d7913521936f71"></a><br/></td></tr>
163
+ <tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Support.html#ga53969f8e3ee68d1d99ffe75af8db9be8">verifyRackDir</a> (const string &amp;dir, CachedFileStat *cstat=0, unsigned int throttleRate=0)</td></tr>
164
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Check whether the specified directory is a valid Rack application root directory. <a href="group__Support.html#ga53969f8e3ee68d1d99ffe75af8db9be8"></a><br/></td></tr>
165
+ <tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Support.html#gaaec51d2912999d611994c49341f36247">verifyWSGIDir</a> (const string &amp;dir, CachedFileStat *cstat=0, unsigned int throttleRate=0)</td></tr>
166
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Check whether the specified directory is a valid WSGI application root directory. <a href="group__Support.html#gaaec51d2912999d611994c49341f36247"></a><br/></td></tr>
167
+ <tr><td class="memItemLeft" align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacePassenger.html#a1d0a66b0e207c46dc6124ff3b2f331e6">getHostName</a> ()</td></tr>
168
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the system's host name. <a href="#a1d0a66b0e207c46dc6124ff3b2f331e6"></a><br/></td></tr>
169
+ <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a979cb43cef743bf261c329b13e712366"></a><!-- doxytag: member="Passenger::getSignalName" ref="a979cb43cef743bf261c329b13e712366" args="(int sig)" -->
170
+ string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacePassenger.html#a979cb43cef743bf261c329b13e712366">getSignalName</a> (int sig)</td></tr>
171
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convert a signal number to its associated name. <br/></td></tr>
172
+ <tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacePassenger.html#a2029ad8cb57611ab161b20ef9df39c86">resetSignalHandlersAndMask</a> ()</td></tr>
173
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Resets the current process's signal handler disposition and signal mask to default values. <a href="#a2029ad8cb57611ab161b20ef9df39c86"></a><br/></td></tr>
174
+ <tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacePassenger.html#af116b11276c90901729b6ce541dd2a07">closeAllFileDescriptors</a> (int lastToKeepOpen)</td></tr>
175
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Close all file descriptors that are higher than <em>lastToKeepOpen</em>. <a href="#af116b11276c90901729b6ce541dd2a07"></a><br/></td></tr>
176
+ <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
177
+ <tr><td class="memTemplItemLeft" align="right" valign="top">shared_ptr&lt; T &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__Support.html#ga41b6c4a82fed72531a147de0505a8396">ptr</a> (T *pointer)</td></tr>
178
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convenience shortcut for creating a <code>shared_ptr</code>. <a href="group__Support.html#ga41b6c4a82fed72531a147de0505a8396"></a><br/></td></tr>
179
+ </table>
180
+ <hr/><a name="_details"></a><h2>Detailed Description</h2>
181
+ <p>Common code for all agents. </p>
182
+ <p>A random.</p>
183
+ <p>This file provides a bunch of classes for reading and writing messages in the <a class="el" href="classPassenger_1_1MessageChannel.html" title="Convenience class for I/O operations on file descriptors.">MessageChannel</a> format.</p>
184
+ <p>Unlike <a class="el" href="classPassenger_1_1MessageChannel.html" title="Convenience class for I/O operations on file descriptors.">MessageChannel</a>, whose operations take control over the I/O handle and may block, these classes act like parsers and data generators. To read messages one must feed data to them. To write messages one must instruct the classes to generate a bunch of data. These classes will never block, making them ideal for use in evented servers.</p>
185
+ <h2>Reading messages</h2>
186
+ <p>To read a single message, one must instantiate a message object and feed network data to it with the feed() method. This method returns the number of bytes actually processed by the message object (i.e. the number of bytes that it has recognized as part of the message).</p>
187
+ <p>When the message object has either successfully parsed the data or encountered an error, it will indicate so via the done() method. With hasError() one can check whether an error was encountered or whether the reader succeeded, and with errorCode() one can obtain the exact error reason. Not all message objects support hasError() and errorCode() because some of them can never encounter errors and some of them can only fail for a single reason.</p>
188
+ <p>When successful, the parsed message can be obtained with value(). This method may only be called when done() is true and there is no error, otherwise the return value is undefined.</p>
189
+ <p>At this point, the message object cannot process any more data and feed() will always return 0. To reuse the object for processing another message, one must reset its state by calling reset().</p>
190
+ <p>The following example demonstrates how to read a continuous stream of 32-bit integers: </p>
191
+ <div class="fragment"><pre class="fragment"> Uint32Message intMessage;
192
+ <span class="keywordflow">while</span> (<span class="keyword">true</span>) {
193
+ <span class="comment">// Read a bunch of network data...</span>
194
+ <span class="keywordtype">char</span> buf[1024];
195
+ ssize_t size = recv(fd, buf, <span class="keyword">sizeof</span>(buf));
196
+ <span class="keywordtype">size_t</span> consumed = 0;
197
+
198
+ <span class="comment">// ...and process it all. We only feed data to the message object</span>
199
+ <span class="comment">// that hasn&#39;t already been fed.</span>
200
+ <span class="keywordflow">while</span> (consumed &lt; size) {
201
+ consumed += intReader.feed(buf + consumed, size - consumed);
202
+ <span class="keywordflow">if</span> (intMessage.done()) {
203
+ printf(<span class="stringliteral">&quot;Integer: %d\n&quot;</span>, (<span class="keywordtype">int</span>) intMessage.value());
204
+ <span class="comment">// The state must be reset before the reader can be reused.</span>
205
+ intMessage.reset();
206
+ }
207
+ }
208
+ }
209
+ </pre></div><p>Some message objects return non-primitive values in their value() methods, such as <a class="el" href="classPassenger_1_1ArrayMessage.html" title="For array messages.">ArrayMessage</a> and <a class="el" href="classPassenger_1_1ScalarMessage.html" title="Class for reading a scalar message.">ScalarMessage</a> which return <code>const vector&lt;StaticString&gt; &amp;</code> and <code><a class="el" href="classPassenger_1_1StaticString.html" title="An immutable, static byte buffer.">StaticString</a></code>, respectively. These values are only valid until either of the following things occur:</p>
210
+ <ul>
211
+ <li>The buffer containing last the fed data has been destroyed or modified.</li>
212
+ <li>The message object itself has been destroyed.</li>
213
+ </ul>
214
+ <p>This is because the message objects try to apply copy-zero optimizations whenever possible. For example, in case of <a class="el" href="classPassenger_1_1ScalarMessage.html" title="Class for reading a scalar message.">ScalarMessage</a>, it'll check whether the data that has been fed in the first feed() call already contains a full scalar message. If so then it'll just return a <a class="el" href="classPassenger_1_1StaticString.html" title="An immutable, static byte buffer.">StaticString</a> that points to the scalar message in the fed data; it will not copy the fed data. In this case it is important that the buffer containing the fed data is not modified or destroyed while the <a class="el" href="classPassenger_1_1StaticString.html" title="An immutable, static byte buffer.">StaticString</a> is in use. If the first feed() call does not supply a full scalar message then it will buffer all fed data until the buffer contains a full scalar message, and the result will point to this buffer. Because the buffer is owned by the message object, the result will be invalidated as soon as the message object is destroyed. </p>
215
+ <hr/><h2>Typedef Documentation</h2>
216
+ <a class="anchor" id="afd60d942a89fbb7f306e330d75704570"></a><!-- doxytag: member="Passenger::AbstractSpawnManagerPtr" ref="afd60d942a89fbb7f306e330d75704570" args="" -->
217
+ <div class="memitem">
218
+ <div class="memproto">
219
+ <table class="memname">
220
+ <tr>
221
+ <td class="memname">typedef shared_ptr&lt;<a class="el" href="classPassenger_1_1AbstractSpawnManager.html">AbstractSpawnManager</a>&gt; <a class="el" href="namespacePassenger.html#afd60d942a89fbb7f306e330d75704570">Passenger::AbstractSpawnManagerPtr</a></td>
222
+ </tr>
223
+ </table>
224
+ </div>
225
+ <div class="memdoc">
226
+
227
+ <p>Convenient alias for <a class="el" href="classPassenger_1_1AbstractSpawnManager.html" title="Spawning of application processes.">AbstractSpawnManager</a> smart pointer. </p>
228
+
229
+ </div>
230
+ </div>
231
+ <a class="anchor" id="aced1f248465136b313c6dec5fe6ca492"></a><!-- doxytag: member="Passenger::ProcessPtr" ref="aced1f248465136b313c6dec5fe6ca492" args="" -->
232
+ <div class="memitem">
233
+ <div class="memproto">
234
+ <table class="memname">
235
+ <tr>
236
+ <td class="memname">typedef shared_ptr&lt;<a class="el" href="classPassenger_1_1Process.html">Process</a>&gt; <a class="el" href="namespacePassenger.html#aced1f248465136b313c6dec5fe6ca492">Passenger::ProcessPtr</a></td>
237
+ </tr>
238
+ </table>
239
+ </div>
240
+ <div class="memdoc">
241
+
242
+ <p>Convenient alias for <a class="el" href="classPassenger_1_1Process.html" title="Represents a single application process, as spawned by SpawnManager or by ApplicationPool::Interface...">Process</a> smart pointer. </p>
243
+
244
+ </div>
245
+ </div>
246
+ <a class="anchor" id="a6ab2d566ff87a2676c23d8aa40204587"></a><!-- doxytag: member="Passenger::SpawnManagerPtr" ref="a6ab2d566ff87a2676c23d8aa40204587" args="" -->
247
+ <div class="memitem">
248
+ <div class="memproto">
249
+ <table class="memname">
250
+ <tr>
251
+ <td class="memname">typedef shared_ptr&lt;<a class="el" href="classPassenger_1_1SpawnManager.html">SpawnManager</a>&gt; <a class="el" href="namespacePassenger.html#a6ab2d566ff87a2676c23d8aa40204587">Passenger::SpawnManagerPtr</a></td>
252
+ </tr>
253
+ </table>
254
+ </div>
255
+ <div class="memdoc">
256
+
257
+ <p>Convenient alias for <a class="el" href="classPassenger_1_1SpawnManager.html" title="An AbstractSpawnManager implementation.">SpawnManager</a> smart pointer. </p>
258
+
259
+ </div>
260
+ </div>
261
+ <hr/><h2>Enumeration Type Documentation</h2>
262
+ <a class="anchor" id="a14174b712df6046cb823cde43d7ef07d"></a><!-- doxytag: member="Passenger::FileType" ref="a14174b712df6046cb823cde43d7ef07d" args="" -->
263
+ <div class="memitem">
264
+ <div class="memproto">
265
+ <table class="memname">
266
+ <tr>
267
+ <td class="memname">enum <a class="el" href="namespacePassenger.html#a14174b712df6046cb823cde43d7ef07d">Passenger::FileType</a></td>
268
+ </tr>
269
+ </table>
270
+ </div>
271
+ <div class="memdoc">
272
+
273
+ <p>Enumeration which indicates what kind of file a file is. </p>
274
+ <dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
275
+ <tr><td valign="top"><em><a class="anchor" id="a14174b712df6046cb823cde43d7ef07da9fc66834fe96c52799397496b8df8486"></a><!-- doxytag: member="FT_NONEXISTANT" ref="a14174b712df6046cb823cde43d7ef07da9fc66834fe96c52799397496b8df8486" args="" -->FT_NONEXISTANT</em>&nbsp;</td><td>
276
+ <p>The file doesn't exist. </p>
277
+ </td></tr>
278
+ <tr><td valign="top"><em><a class="anchor" id="a14174b712df6046cb823cde43d7ef07da1538596a928321d1a282c6bb06e80563"></a><!-- doxytag: member="FT_REGULAR" ref="a14174b712df6046cb823cde43d7ef07da1538596a928321d1a282c6bb06e80563" args="" -->FT_REGULAR</em>&nbsp;</td><td>
279
+ <p>A regular file or a symlink to a regular file. </p>
280
+ </td></tr>
281
+ <tr><td valign="top"><em><a class="anchor" id="a14174b712df6046cb823cde43d7ef07dabb09dbba1071b4770913363db2462eee"></a><!-- doxytag: member="FT_DIRECTORY" ref="a14174b712df6046cb823cde43d7ef07dabb09dbba1071b4770913363db2462eee" args="" -->FT_DIRECTORY</em>&nbsp;</td><td>
282
+ <p>A directory. </p>
283
+ </td></tr>
284
+ <tr><td valign="top"><em><a class="anchor" id="a14174b712df6046cb823cde43d7ef07da3e89b9a7be074975e007d9f7cd77f4ff"></a><!-- doxytag: member="FT_OTHER" ref="a14174b712df6046cb823cde43d7ef07da3e89b9a7be074975e007d9f7cd77f4ff" args="" -->FT_OTHER</em>&nbsp;</td><td>
285
+ <p>Something else, e.g. </p>
286
+ <p>a pipe or a socket. </p>
287
+ </td></tr>
288
+ </table>
289
+ </dd>
290
+ </dl>
291
+
292
+ </div>
293
+ </div>
294
+ <hr/><h2>Function Documentation</h2>
295
+ <a class="anchor" id="af116b11276c90901729b6ce541dd2a07"></a><!-- doxytag: member="Passenger::closeAllFileDescriptors" ref="af116b11276c90901729b6ce541dd2a07" args="(int lastToKeepOpen)" -->
296
+ <div class="memitem">
297
+ <div class="memproto">
298
+ <table class="memname">
299
+ <tr>
300
+ <td class="memname">void Passenger::closeAllFileDescriptors </td>
301
+ <td>(</td>
302
+ <td class="paramtype">int&nbsp;</td>
303
+ <td class="paramname"> <em>lastToKeepOpen</em></td>
304
+ <td>&nbsp;)&nbsp;</td>
305
+ <td></td>
306
+ </tr>
307
+ </table>
308
+ </div>
309
+ <div class="memdoc">
310
+
311
+ <p>Close all file descriptors that are higher than <em>lastToKeepOpen</em>. </p>
312
+ <p>This function is async-signal safe. But make sure there are no other threads running that might open file descriptors! </p>
313
+
314
+ </div>
315
+ </div>
316
+ <a class="anchor" id="a1d0a66b0e207c46dc6124ff3b2f331e6"></a><!-- doxytag: member="Passenger::getHostName" ref="a1d0a66b0e207c46dc6124ff3b2f331e6" args="()" -->
317
+ <div class="memitem">
318
+ <div class="memproto">
319
+ <table class="memname">
320
+ <tr>
321
+ <td class="memname">string Passenger::getHostName </td>
322
+ <td>(</td>
323
+ <td class="paramname"></td>
324
+ <td>&nbsp;)&nbsp;</td>
325
+ <td></td>
326
+ </tr>
327
+ </table>
328
+ </div>
329
+ <div class="memdoc">
330
+
331
+ <p>Returns the system's host name. </p>
332
+ <dl><dt><b>Exceptions:</b></dt><dd>
333
+ <table border="0" cellspacing="2" cellpadding="0">
334
+ <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>The host name cannot be retrieved. </td></tr>
335
+ </table>
336
+ </dd>
337
+ </dl>
338
+
339
+ </div>
340
+ </div>
341
+ <a class="anchor" id="ade80218e8b836b796f8b960b6225b439"></a><!-- doxytag: member="Passenger::getProcessUsername" ref="ade80218e8b836b796f8b960b6225b439" args="()" -->
342
+ <div class="memitem">
343
+ <div class="memproto">
344
+ <table class="memname">
345
+ <tr>
346
+ <td class="memname">string Passenger::getProcessUsername </td>
347
+ <td>(</td>
348
+ <td class="paramname"></td>
349
+ <td>&nbsp;)&nbsp;</td>
350
+ <td></td>
351
+ </tr>
352
+ </table>
353
+ </div>
354
+ <div class="memdoc">
355
+
356
+ <p>Returns the username of the user that the current process is running as. </p>
357
+ <p>If the user has no associated username, then "UID xxxx" is returned, where xxxx is the current UID. </p>
358
+
359
+ </div>
360
+ </div>
361
+ <a class="anchor" id="a448f25263af0b37b91caee3d294ec4aa"></a><!-- doxytag: member="Passenger::makeDirTree" ref="a448f25263af0b37b91caee3d294ec4aa" args="(const string &amp;path, const StaticString &amp;mode=&quot;u=rwx,g=,o=&quot;, uid_t owner=USER_NOT_GIVEN, gid_t group=GROUP_NOT_GIVEN)" -->
362
+ <div class="memitem">
363
+ <div class="memproto">
364
+ <table class="memname">
365
+ <tr>
366
+ <td class="memname">void Passenger::makeDirTree </td>
367
+ <td>(</td>
368
+ <td class="paramtype">const string &amp;&nbsp;</td>
369
+ <td class="paramname"> <em>path</em>, </td>
370
+ </tr>
371
+ <tr>
372
+ <td class="paramkey"></td>
373
+ <td></td>
374
+ <td class="paramtype">const StaticString &amp;&nbsp;</td>
375
+ <td class="paramname"> <em>mode</em> = <code>&quot;u=rwx,g=,o=&quot;</code>, </td>
376
+ </tr>
377
+ <tr>
378
+ <td class="paramkey"></td>
379
+ <td></td>
380
+ <td class="paramtype">uid_t&nbsp;</td>
381
+ <td class="paramname"> <em>owner</em> = <code>USER_NOT_GIVEN</code>, </td>
382
+ </tr>
383
+ <tr>
384
+ <td class="paramkey"></td>
385
+ <td></td>
386
+ <td class="paramtype">gid_t&nbsp;</td>
387
+ <td class="paramname"> <em>group</em> = <code>GROUP_NOT_GIVEN</code></td><td>&nbsp;</td>
388
+ </tr>
389
+ <tr>
390
+ <td></td>
391
+ <td>)</td>
392
+ <td></td><td></td><td></td>
393
+ </tr>
394
+ </table>
395
+ </div>
396
+ <div class="memdoc">
397
+
398
+ <p>Create the directory at the given path, creating intermediate directories if necessary. </p>
399
+ <p>The created directories' permissions are exactly as specified by the 'mode' parameter (i.e. the umask will be ignored). You can specify this directory's owner and group through the 'owner' and 'group' parameters. A value of USER_NOT_GIVEN for 'owner' and/or GROUP_NOT_GIVEN 'group' means that the owner/group should not be changed.</p>
400
+ <p>If 'path' already exists, then nothing will happen.</p>
401
+ <dl><dt><b>Parameters:</b></dt><dd>
402
+ <table border="0" cellspacing="2" cellpadding="0">
403
+ <tr><td valign="top"></td><td valign="top"><em>mode</em>&nbsp;</td><td>A mode string, as supported by <a class="el" href="namespacePassenger.html#ada53f5a9bdcf3d22d4a710e7ea3678e9" title="Converts a mode string into a mode_t value.">parseModeString()</a>. </td></tr>
404
+ </table>
405
+ </dd>
406
+ </dl>
407
+ <dl><dt><b>Exceptions:</b></dt><dd>
408
+ <table border="0" cellspacing="2" cellpadding="0">
409
+ <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classPassenger_1_1FileSystemException.html" title="A filesystem error, as returned by the operating system.">FileSystemException</a></em>&nbsp;</td><td>Something went wrong. </td></tr>
410
+ <tr><td valign="top"></td><td valign="top"><em>InvalidModeStringException</em>&nbsp;</td><td>The mode string cannot be parsed. </td></tr>
411
+ </table>
412
+ </dd>
413
+ </dl>
414
+
415
+ </div>
416
+ </div>
417
+ <a class="anchor" id="ada53f5a9bdcf3d22d4a710e7ea3678e9"></a><!-- doxytag: member="Passenger::parseModeString" ref="ada53f5a9bdcf3d22d4a710e7ea3678e9" args="(const StaticString &amp;mode)" -->
418
+ <div class="memitem">
419
+ <div class="memproto">
420
+ <table class="memname">
421
+ <tr>
422
+ <td class="memname">mode_t Passenger::parseModeString </td>
423
+ <td>(</td>
424
+ <td class="paramtype">const StaticString &amp;&nbsp;</td>
425
+ <td class="paramname"> <em>mode</em></td>
426
+ <td>&nbsp;)&nbsp;</td>
427
+ <td></td>
428
+ </tr>
429
+ </table>
430
+ </div>
431
+ <div class="memdoc">
432
+
433
+ <p>Converts a mode string into a mode_t value. </p>
434
+ <p>At this time only the symbolic mode strings are supported, e.g. something like looks this: "u=rwx,g=w,o=rx". The grammar is as follows: </p>
435
+ <div class="fragment"><pre class="fragment"> mode ::= (clause (<span class="stringliteral">&quot;,&quot;</span> clause)*)?
436
+ clause ::= who <span class="stringliteral">&quot;=&quot;</span> permission*
437
+ who ::= <span class="stringliteral">&quot;u&quot;</span> | <span class="stringliteral">&quot;g&quot;</span> | <span class="stringliteral">&quot;o&quot;</span>
438
+ permission ::= <span class="stringliteral">&quot;r&quot;</span> | <span class="stringliteral">&quot;w&quot;</span> | <span class="stringliteral">&quot;x&quot;</span> | <span class="stringliteral">&quot;s&quot;</span>
439
+ </pre></div><p>Notes:</p>
440
+ <ul>
441
+ <li>The mode value starts with 0. So if you specify "u=rwx", then the group and world permissions will be empty (set to 0).</li>
442
+ <li>The "s" permission is only allowed for who == "u" or who == "g".</li>
443
+ <li>The return value does not depend on the umask.</li>
444
+ </ul>
445
+ <dl><dt><b>Exceptions:</b></dt><dd>
446
+ <table border="0" cellspacing="2" cellpadding="0">
447
+ <tr><td valign="top"></td><td valign="top"><em>InvalidModeStringException</em>&nbsp;</td><td>The mode string cannot be parsed. </td></tr>
448
+ </table>
449
+ </dd>
450
+ </dl>
451
+
452
+ </div>
453
+ </div>
454
+ <a class="anchor" id="a35b11c8ce90e90d01380f182d82f8cac"></a><!-- doxytag: member="Passenger::passenger_bucket_create" ref="a35b11c8ce90e90d01380f182d82f8cac" args="(SessionPtr session, PassengerBucketStatePtr state, apr_bucket_alloc_t *list)" -->
455
+ <div class="memitem">
456
+ <div class="memproto">
457
+ <table class="memname">
458
+ <tr>
459
+ <td class="memname">apr_bucket * Passenger::passenger_bucket_create </td>
460
+ <td>(</td>
461
+ <td class="paramtype">SessionPtr&nbsp;</td>
462
+ <td class="paramname"> <em>session</em>, </td>
463
+ </tr>
464
+ <tr>
465
+ <td class="paramkey"></td>
466
+ <td></td>
467
+ <td class="paramtype">PassengerBucketStatePtr&nbsp;</td>
468
+ <td class="paramname"> <em>state</em>, </td>
469
+ </tr>
470
+ <tr>
471
+ <td class="paramkey"></td>
472
+ <td></td>
473
+ <td class="paramtype">apr_bucket_alloc_t *&nbsp;</td>
474
+ <td class="paramname"> <em>list</em></td><td>&nbsp;</td>
475
+ </tr>
476
+ <tr>
477
+ <td></td>
478
+ <td>)</td>
479
+ <td></td><td></td><td></td>
480
+ </tr>
481
+ </table>
482
+ </div>
483
+ <div class="memdoc">
484
+
485
+ <p>We used to use an apr_bucket_pipe for forwarding the backend process's response to the HTTP client. </p>
486
+ <p>However, apr_bucket_pipe has a number of issues:</p>
487
+ <ul>
488
+ <li>It closes the pipe's file descriptor when it has reached end-of-stream, but not when an error has occurred. This behavior is undesirable because it can easily cause file descriptor leaks.</li>
489
+ <li>It does weird non-blocking-I/O related things which can cause it to read less data than can actually be read.</li>
490
+ </ul>
491
+ <p>PassengerBucket is like apr_bucket_pipe, but:</p>
492
+ <ul>
493
+ <li>It also holds a reference to a <a class="el" href="classPassenger_1_1Session.html" title="Represents a single request/response pair of an application process.">Session</a>. When a read error has occured or when end-of-stream has been reached, the <a class="el" href="classPassenger_1_1Session.html" title="Represents a single request/response pair of an application process.">Session</a> will be dereferenced, so that the underlying file descriptor is closed.</li>
494
+ <li>It ignores the APR_NONBLOCK_READ flag because that's known to cause strange I/O problems.</li>
495
+ <li>It can store its current state in a PassengerBucketState data structure. </li>
496
+ </ul>
497
+
498
+ </div>
499
+ </div>
500
+ <a class="anchor" id="a8422d210cbd2f62d21254415b5a7f747"></a><!-- doxytag: member="Passenger::removeDirTree" ref="a8422d210cbd2f62d21254415b5a7f747" args="(const string &amp;path)" -->
501
+ <div class="memitem">
502
+ <div class="memproto">
503
+ <table class="memname">
504
+ <tr>
505
+ <td class="memname">void Passenger::removeDirTree </td>
506
+ <td>(</td>
507
+ <td class="paramtype">const string &amp;&nbsp;</td>
508
+ <td class="paramname"> <em>path</em></td>
509
+ <td>&nbsp;)&nbsp;</td>
510
+ <td></td>
511
+ </tr>
512
+ </table>
513
+ </div>
514
+ <div class="memdoc">
515
+
516
+ <p>Remove an entire directory tree recursively. </p>
517
+ <p>If the directory doesn't exist then this function does nothing.</p>
518
+ <dl><dt><b>Exceptions:</b></dt><dd>
519
+ <table border="0" cellspacing="2" cellpadding="0">
520
+ <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classPassenger_1_1FileSystemException.html" title="A filesystem error, as returned by the operating system.">FileSystemException</a></em>&nbsp;</td><td>Something went wrong. </td></tr>
521
+ </table>
522
+ </dd>
523
+ </dl>
524
+
525
+ </div>
526
+ </div>
527
+ <a class="anchor" id="a2029ad8cb57611ab161b20ef9df39c86"></a><!-- doxytag: member="Passenger::resetSignalHandlersAndMask" ref="a2029ad8cb57611ab161b20ef9df39c86" args="()" -->
528
+ <div class="memitem">
529
+ <div class="memproto">
530
+ <table class="memname">
531
+ <tr>
532
+ <td class="memname">void Passenger::resetSignalHandlersAndMask </td>
533
+ <td>(</td>
534
+ <td class="paramname"></td>
535
+ <td>&nbsp;)&nbsp;</td>
536
+ <td></td>
537
+ </tr>
538
+ </table>
539
+ </div>
540
+ <div class="memdoc">
541
+
542
+ <p>Resets the current process's signal handler disposition and signal mask to default values. </p>
543
+ <p>One should call this every time one forks a child process; non-default signal masks/handler dispositions can cause all kinds of weird quirks, like waitpid() malfunctioning on OS X.</p>
544
+ <p>This function is async-signal safe. </p>
545
+
546
+ </div>
547
+ </div>
548
+ </div>
549
+ <hr size="1"/><address style="text-align: right;"><small>Generated by&nbsp;
550
+ <a href="http://www.doxygen.org/index.html">
551
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
552
+ </body>
553
+ </html>