passenger 2.2.15 → 3.0.0.pre1

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 (1338) hide show
  1. data/DEVELOPERS.TXT +21 -12
  2. data/LICENSE +1 -1
  3. data/NEWS +8 -1
  4. data/PACKAGING.TXT +25 -0
  5. data/Rakefile +28 -891
  6. data/bin/passenger +32 -0
  7. data/bin/passenger-config +5 -5
  8. data/bin/passenger-install-apache2-module +37 -24
  9. data/bin/passenger-install-nginx-module +48 -46
  10. data/bin/passenger-make-enterprisey +8 -9
  11. data/bin/passenger-memory-stats +20 -150
  12. data/bin/passenger-status +130 -44
  13. data/bin/passenger-stress-test +5 -4
  14. data/build/agents.rb +73 -0
  15. data/build/apache2.rb +165 -0
  16. data/build/basics.rb +81 -0
  17. data/build/common_library.rb +198 -0
  18. data/build/config.rb +35 -0
  19. data/{misc/rake/cplusplus.rb → build/cplusplus_support.rb} +1 -1
  20. data/build/cxx_tests.rb +205 -0
  21. data/build/documentation.rb +77 -0
  22. data/{misc/rake → build}/gempackagetask.rb +1 -1
  23. data/build/integration_tests.rb +57 -0
  24. data/build/misc.rb +146 -0
  25. data/build/nginx.rb +64 -0
  26. data/build/oxt_tests.rb +52 -0
  27. data/{misc/rake → build}/packagetask.rb +0 -0
  28. data/build/packaging.rb +189 -0
  29. data/{misc/rake/extensions.rb → build/rake_extensions.rb} +1 -1
  30. data/{misc/rake → build}/rdoctask.rb +0 -0
  31. data/build/ruby_extension.rb +46 -0
  32. data/build/ruby_tests.rb +42 -0
  33. data/build/test_basics.rb +31 -0
  34. data/doc/ApplicationPool algorithm.txt +447 -234
  35. data/doc/Architectural overview.html +47 -56
  36. data/doc/Doxyfile +1 -1
  37. data/doc/Security of user switching support.html +46 -57
  38. data/doc/Users guide Apache.html +1033 -306
  39. data/doc/Users guide Apache.txt +419 -99
  40. data/doc/Users guide Nginx.html +1252 -253
  41. data/doc/Users guide Nginx.txt +711 -87
  42. data/doc/Users guide Standalone.html +603 -0
  43. data/doc/Users guide Standalone.txt +40 -0
  44. data/doc/cxxapi/AbstractSpawnManager_8h_source.html +141 -0
  45. data/doc/cxxapi/Account_8h_source.html +206 -0
  46. data/doc/cxxapi/AccountsDatabase_8h_source.html +161 -0
  47. data/doc/cxxapi/AgentBase_8h_source.html +70 -0
  48. data/doc/cxxapi/AgentsStarter_8h_source.html +112 -0
  49. data/doc/cxxapi/BCrypt_8h_source.html +104 -0
  50. data/doc/cxxapi/Blowfish_8h_source.html +134 -0
  51. data/doc/cxxapi/Bucket_8h_source.html +4 -3
  52. data/doc/cxxapi/Constants_8h_source.html +79 -0
  53. data/doc/cxxapi/ContentHandler_8h_source.html +95 -0
  54. data/doc/cxxapi/DirectoryMapper_8h_source.html +9 -8
  55. data/doc/cxxapi/EventedClient_8h_source.html +629 -0
  56. data/doc/cxxapi/EventedMessageServer_8h_source.html +358 -0
  57. data/doc/cxxapi/EventedServer_8h_source.html +326 -0
  58. data/doc/cxxapi/Exceptions_8h_source.html +366 -0
  59. data/doc/cxxapi/FileDescriptor_8h_source.html +260 -0
  60. data/doc/cxxapi/Hooks_8h_source.html +2 -1
  61. data/doc/cxxapi/HttpStatusExtractor_8h_source.html +382 -0
  62. data/doc/cxxapi/Logging_8h_source.html +726 -0
  63. data/doc/cxxapi/MessageChannel_8h_source.html +852 -0
  64. data/doc/cxxapi/MessageClient_8h_source.html +328 -0
  65. data/doc/cxxapi/MessageReadersWriters_8h_source.html +539 -0
  66. data/doc/cxxapi/MessageServer_8h_source.html +606 -0
  67. data/doc/cxxapi/PoolOptions_8h_source.html +548 -0
  68. data/doc/cxxapi/Process_8h_source.html +286 -0
  69. data/doc/cxxapi/RandomGenerator_8h_source.html +191 -0
  70. data/doc/cxxapi/ResourceLocator_8h_source.html +115 -0
  71. data/doc/cxxapi/ScgiRequestParser_8h_source.html +406 -0
  72. data/doc/cxxapi/ServerInstanceDir_8h_source.html +374 -0
  73. data/doc/cxxapi/Session_8h_source.html +501 -0
  74. data/doc/cxxapi/SpawnManager_8h_source.html +647 -0
  75. data/doc/cxxapi/StaticContentHandler_8h_source.html +68 -0
  76. data/doc/cxxapi/StaticString_8h_source.html +254 -0
  77. data/doc/cxxapi/StringListCreator_8h_source.html +114 -0
  78. data/doc/cxxapi/Utils_8h_source.html +442 -0
  79. data/doc/cxxapi/annotated.html +46 -0
  80. data/doc/cxxapi/apache2_2Configuration_8h_source.html +82 -0
  81. data/doc/cxxapi/classAgentWatcher-members.html +30 -26
  82. data/doc/cxxapi/classAgentWatcher.html +168 -194
  83. data/doc/cxxapi/classClient-members.html +14 -11
  84. data/doc/cxxapi/classClient.html +35 -35
  85. data/doc/cxxapi/classHooks-members.html +2 -0
  86. data/doc/cxxapi/classHooks.html +2 -0
  87. data/doc/cxxapi/classPassenger_1_1AbstractSpawnManager-members.html +16 -13
  88. data/doc/cxxapi/classPassenger_1_1AbstractSpawnManager.html +78 -82
  89. data/doc/cxxapi/classPassenger_1_1ArgumentException-members.html +12 -9
  90. data/doc/cxxapi/classPassenger_1_1ArgumentException.html +26 -22
  91. data/doc/cxxapi/classPassenger_1_1ArrayMessage-members.html +37 -0
  92. data/doc/cxxapi/classPassenger_1_1ArrayMessage.html +113 -0
  93. data/doc/cxxapi/classPassenger_1_1BufferedUpload-members.html +14 -11
  94. data/doc/cxxapi/classPassenger_1_1BufferedUpload.html +41 -42
  95. data/doc/cxxapi/classPassenger_1_1BusyException-members.html +12 -9
  96. data/doc/cxxapi/classPassenger_1_1BusyException.html +24 -20
  97. data/doc/cxxapi/classPassenger_1_1ConfigurationException-members.html +12 -9
  98. data/doc/cxxapi/classPassenger_1_1ConfigurationException.html +23 -19
  99. data/doc/cxxapi/classPassenger_1_1DirectoryMapper-members.html +2 -0
  100. data/doc/cxxapi/classPassenger_1_1DirectoryMapper.html +8 -6
  101. data/doc/cxxapi/classPassenger_1_1EOFException-members.html +12 -9
  102. data/doc/cxxapi/classPassenger_1_1EOFException.html +27 -23
  103. data/doc/cxxapi/classPassenger_1_1EventFd-members.html +12 -9
  104. data/doc/cxxapi/classPassenger_1_1EventFd.html +24 -21
  105. data/doc/cxxapi/classPassenger_1_1EventedClient-members.html +54 -0
  106. data/doc/cxxapi/classPassenger_1_1EventedClient.html +436 -0
  107. data/doc/cxxapi/classPassenger_1_1EventedMessageServer-members.html +37 -0
  108. data/doc/cxxapi/classPassenger_1_1EventedMessageServer.html +59 -0
  109. data/doc/cxxapi/classPassenger_1_1EventedMessageServer__inherit__graph.map +3 -0
  110. data/doc/cxxapi/classPassenger_1_1EventedMessageServer__inherit__graph.md5 +1 -0
  111. data/doc/cxxapi/classPassenger_1_1EventedMessageServer__inherit__graph.png +0 -0
  112. data/doc/cxxapi/classPassenger_1_1EventedServer-members.html +37 -0
  113. data/doc/cxxapi/classPassenger_1_1EventedServer.html +93 -0
  114. data/doc/cxxapi/classPassenger_1_1EventedServer__inherit__graph.map +3 -0
  115. data/doc/cxxapi/classPassenger_1_1EventedServer__inherit__graph.md5 +1 -0
  116. data/doc/cxxapi/classPassenger_1_1EventedServer__inherit__graph.png +0 -0
  117. data/doc/cxxapi/classPassenger_1_1FileDescriptor-members.html +16 -13
  118. data/doc/cxxapi/classPassenger_1_1FileDescriptor.html +63 -70
  119. data/doc/cxxapi/classPassenger_1_1FileNotFoundException-members.html +12 -9
  120. data/doc/cxxapi/classPassenger_1_1FileNotFoundException.html +26 -22
  121. data/doc/cxxapi/classPassenger_1_1FileSystemException-members.html +17 -14
  122. data/doc/cxxapi/classPassenger_1_1FileSystemException.html +32 -30
  123. data/doc/cxxapi/classPassenger_1_1HttpStatusExtractor-members.html +15 -12
  124. data/doc/cxxapi/classPassenger_1_1HttpStatusExtractor.html +59 -59
  125. data/doc/cxxapi/classPassenger_1_1IOException-members.html +12 -9
  126. data/doc/cxxapi/classPassenger_1_1IOException.html +27 -23
  127. data/doc/cxxapi/classPassenger_1_1MessageChannel-members.html +36 -33
  128. data/doc/cxxapi/classPassenger_1_1MessageChannel.html +326 -344
  129. data/doc/cxxapi/classPassenger_1_1MessageServer-members.html +25 -22
  130. data/doc/cxxapi/classPassenger_1_1MessageServer.html +160 -191
  131. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1ClientContext-members.html +12 -9
  132. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1ClientContext.html +29 -27
  133. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1ClientContext__inherit__graph.map +3 -1
  134. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1ClientContext__inherit__graph.md5 +1 -1
  135. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1ClientContext__inherit__graph.png +0 -0
  136. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1CommonClientContext-members.html +17 -14
  137. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1CommonClientContext.html +69 -79
  138. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1CommonClientContext__inherit__graph.map +3 -1
  139. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1CommonClientContext__inherit__graph.md5 +1 -1
  140. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1CommonClientContext__inherit__graph.png +0 -0
  141. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1Handler-members.html +15 -12
  142. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1Handler.html +60 -63
  143. data/doc/cxxapi/classPassenger_1_1Process-members.html +20 -17
  144. data/doc/cxxapi/classPassenger_1_1Process.html +88 -95
  145. data/doc/cxxapi/classPassenger_1_1RandomGenerator-members.html +13 -10
  146. data/doc/cxxapi/classPassenger_1_1RandomGenerator.html +36 -35
  147. data/doc/cxxapi/classPassenger_1_1RuntimeException-members.html +12 -9
  148. data/doc/cxxapi/classPassenger_1_1RuntimeException.html +24 -20
  149. data/doc/cxxapi/classPassenger_1_1ScalarMessage-members.html +37 -0
  150. data/doc/cxxapi/classPassenger_1_1ScalarMessage.html +76 -0
  151. data/doc/cxxapi/classPassenger_1_1ScgiRequestParser-members.html +26 -23
  152. data/doc/cxxapi/classPassenger_1_1ScgiRequestParser.html +121 -138
  153. data/doc/cxxapi/classPassenger_1_1SecurityException-members.html +12 -9
  154. data/doc/cxxapi/classPassenger_1_1SecurityException.html +26 -22
  155. data/doc/cxxapi/classPassenger_1_1Session-members.html +29 -26
  156. data/doc/cxxapi/classPassenger_1_1Session.html +219 -240
  157. data/doc/cxxapi/classPassenger_1_1SpawnException-members.html +14 -11
  158. data/doc/cxxapi/classPassenger_1_1SpawnException.html +36 -37
  159. data/doc/cxxapi/classPassenger_1_1SpawnManager-members.html +18 -15
  160. data/doc/cxxapi/classPassenger_1_1SpawnManager.html +115 -110
  161. data/doc/cxxapi/classPassenger_1_1StandardSession-members.html +30 -27
  162. data/doc/cxxapi/classPassenger_1_1StandardSession.html +163 -184
  163. data/doc/cxxapi/classPassenger_1_1StaticString-members.html +12 -9
  164. data/doc/cxxapi/classPassenger_1_1StaticString.html +27 -25
  165. data/doc/cxxapi/classPassenger_1_1SystemException-members.html +16 -13
  166. data/doc/cxxapi/classPassenger_1_1SystemException.html +65 -67
  167. data/doc/cxxapi/classPassenger_1_1TimeRetrievalException-members.html +16 -13
  168. data/doc/cxxapi/classPassenger_1_1TimeRetrievalException.html +27 -23
  169. data/doc/cxxapi/classPassenger_1_1TimeoutException-members.html +12 -9
  170. data/doc/cxxapi/classPassenger_1_1TimeoutException.html +24 -20
  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 +12 -9
  176. data/doc/cxxapi/classServer.html +23 -20
  177. data/doc/cxxapi/classServerInstanceDirToucher-members.html +12 -9
  178. data/doc/cxxapi/classServerInstanceDirToucher.html +21 -17
  179. data/doc/cxxapi/classes.html +18 -4
  180. data/doc/cxxapi/definitions_8h_source.html +1 -0
  181. data/doc/cxxapi/files.html +36 -1
  182. data/doc/cxxapi/functions.html +53 -21
  183. data/doc/cxxapi/functions_0x62.html +82 -0
  184. data/doc/cxxapi/functions_0x63.html +99 -0
  185. data/doc/cxxapi/functions_0x64.html +95 -0
  186. data/doc/cxxapi/functions_0x65.html +88 -0
  187. data/doc/cxxapi/functions_0x66.html +100 -0
  188. data/doc/cxxapi/functions_0x67.html +170 -0
  189. data/doc/cxxapi/functions_0x68.html +88 -0
  190. data/doc/cxxapi/functions_0x69.html +93 -0
  191. data/doc/cxxapi/functions_0x6b.html +80 -0
  192. data/doc/cxxapi/functions_0x6c.html +88 -0
  193. data/doc/cxxapi/functions_0x6d.html +88 -0
  194. data/doc/cxxapi/functions_0x6e.html +86 -0
  195. data/doc/cxxapi/functions_0x6f.html +94 -0
  196. data/doc/cxxapi/functions_0x70.html +94 -0
  197. data/doc/cxxapi/functions_0x72.html +110 -0
  198. data/doc/cxxapi/functions_0x73.html +171 -0
  199. data/doc/cxxapi/functions_0x74.html +85 -0
  200. data/doc/cxxapi/functions_0x75.html +85 -0
  201. data/doc/cxxapi/functions_0x77.html +92 -0
  202. data/doc/cxxapi/functions_0x7e.html +79 -0
  203. data/doc/cxxapi/functions_enum.html +14 -12
  204. data/doc/cxxapi/functions_eval.html +22 -16
  205. data/doc/cxxapi/functions_func.html +460 -1
  206. data/doc/cxxapi/functions_vars.html +163 -63
  207. data/doc/cxxapi/graph_legend.html +1 -0
  208. data/doc/cxxapi/graph_legend.png +0 -0
  209. data/doc/cxxapi/group__Core.html +2 -2
  210. data/doc/cxxapi/group__Core.map +1 -2
  211. data/doc/cxxapi/group__Core.png +0 -0
  212. data/doc/cxxapi/group__Exceptions.html +32 -40
  213. data/doc/cxxapi/group__Hooks.html +2 -1
  214. data/doc/cxxapi/group__Hooks.map +1 -1
  215. data/doc/cxxapi/group__Hooks.png +0 -0
  216. data/doc/cxxapi/group__Support.html +509 -0
  217. data/doc/cxxapi/hierarchy.html +66 -62
  218. data/doc/cxxapi/inherit__graph__10.map +3 -1
  219. data/doc/cxxapi/inherit__graph__10.md5 +1 -1
  220. data/doc/cxxapi/inherit__graph__10.png +0 -0
  221. data/doc/cxxapi/inherit__graph__11.map +4 -1
  222. data/doc/cxxapi/inherit__graph__11.md5 +1 -1
  223. data/doc/cxxapi/inherit__graph__11.png +0 -0
  224. data/doc/cxxapi/inherit__graph__12.map +3 -1
  225. data/doc/cxxapi/inherit__graph__12.md5 +1 -1
  226. data/doc/cxxapi/inherit__graph__12.png +0 -0
  227. data/doc/cxxapi/inherit__graph__13.map +3 -1
  228. data/doc/cxxapi/inherit__graph__13.md5 +1 -1
  229. data/doc/cxxapi/inherit__graph__13.png +0 -0
  230. data/doc/cxxapi/inherit__graph__14.map +3 -1
  231. data/doc/cxxapi/inherit__graph__14.md5 +1 -1
  232. data/doc/cxxapi/inherit__graph__14.png +0 -0
  233. data/doc/cxxapi/inherit__graph__15.map +5 -1
  234. data/doc/cxxapi/inherit__graph__15.md5 +1 -1
  235. data/doc/cxxapi/inherit__graph__15.png +0 -0
  236. data/doc/cxxapi/inherit__graph__16.map +3 -3
  237. data/doc/cxxapi/inherit__graph__16.md5 +1 -1
  238. data/doc/cxxapi/inherit__graph__16.png +0 -0
  239. data/doc/cxxapi/inherit__graph__17.map +3 -1
  240. data/doc/cxxapi/inherit__graph__17.md5 +1 -1
  241. data/doc/cxxapi/inherit__graph__17.png +0 -0
  242. data/doc/cxxapi/inherit__graph__18.map +4 -1
  243. data/doc/cxxapi/inherit__graph__18.md5 +1 -1
  244. data/doc/cxxapi/inherit__graph__18.png +0 -0
  245. data/doc/cxxapi/inherit__graph__19.map +3 -1
  246. data/doc/cxxapi/inherit__graph__19.md5 +1 -1
  247. data/doc/cxxapi/inherit__graph__19.png +0 -0
  248. data/doc/cxxapi/inherit__graph__20.map +3 -2
  249. data/doc/cxxapi/inherit__graph__20.md5 +1 -1
  250. data/doc/cxxapi/inherit__graph__20.png +0 -0
  251. data/doc/cxxapi/inherit__graph__21.map +3 -1
  252. data/doc/cxxapi/inherit__graph__21.md5 +1 -1
  253. data/doc/cxxapi/inherit__graph__21.png +0 -0
  254. data/doc/cxxapi/inherit__graph__22.map +3 -1
  255. data/doc/cxxapi/inherit__graph__22.md5 +1 -1
  256. data/doc/cxxapi/inherit__graph__22.png +0 -0
  257. data/doc/cxxapi/inherit__graph__23.map +3 -1
  258. data/doc/cxxapi/inherit__graph__23.md5 +1 -1
  259. data/doc/cxxapi/inherit__graph__23.png +0 -0
  260. data/doc/cxxapi/inherit__graph__24.map +3 -1
  261. data/doc/cxxapi/inherit__graph__24.md5 +1 -1
  262. data/doc/cxxapi/inherit__graph__24.png +0 -0
  263. data/doc/cxxapi/inherit__graph__25.map +3 -1
  264. data/doc/cxxapi/inherit__graph__25.md5 +1 -1
  265. data/doc/cxxapi/inherit__graph__25.png +0 -0
  266. data/doc/cxxapi/inherit__graph__26.map +3 -1
  267. data/doc/cxxapi/inherit__graph__26.md5 +1 -1
  268. data/doc/cxxapi/inherit__graph__26.png +0 -0
  269. data/doc/cxxapi/inherit__graph__27.map +3 -1
  270. data/doc/cxxapi/inherit__graph__27.md5 +1 -1
  271. data/doc/cxxapi/inherit__graph__27.png +0 -0
  272. data/doc/cxxapi/inherit__graph__28.map +4 -1
  273. data/doc/cxxapi/inherit__graph__28.md5 +1 -1
  274. data/doc/cxxapi/inherit__graph__28.png +0 -0
  275. data/doc/cxxapi/inherit__graph__29.map +3 -1
  276. data/doc/cxxapi/inherit__graph__29.md5 +1 -1
  277. data/doc/cxxapi/inherit__graph__29.png +0 -0
  278. data/doc/cxxapi/inherit__graph__30.map +3 -2
  279. data/doc/cxxapi/inherit__graph__30.md5 +1 -1
  280. data/doc/cxxapi/inherit__graph__30.png +0 -0
  281. data/doc/cxxapi/inherit__graph__31.map +3 -1
  282. data/doc/cxxapi/inherit__graph__31.md5 +1 -1
  283. data/doc/cxxapi/inherit__graph__31.png +0 -0
  284. data/doc/cxxapi/inherit__graph__32.map +5 -1
  285. data/doc/cxxapi/inherit__graph__32.md5 +1 -1
  286. data/doc/cxxapi/inherit__graph__32.png +0 -0
  287. data/doc/cxxapi/inherit__graph__33.map +3 -1
  288. data/doc/cxxapi/inherit__graph__33.md5 +1 -1
  289. data/doc/cxxapi/inherit__graph__33.png +0 -0
  290. data/doc/cxxapi/inherit__graph__34.map +3 -3
  291. data/doc/cxxapi/inherit__graph__34.md5 +1 -1
  292. data/doc/cxxapi/inherit__graph__34.png +0 -0
  293. data/doc/cxxapi/inherit__graph__35.map +3 -1
  294. data/doc/cxxapi/inherit__graph__35.md5 +1 -1
  295. data/doc/cxxapi/inherit__graph__35.png +0 -0
  296. data/doc/cxxapi/inherit__graph__36.map +3 -1
  297. data/doc/cxxapi/inherit__graph__36.md5 +1 -1
  298. data/doc/cxxapi/inherit__graph__36.png +0 -0
  299. data/doc/cxxapi/inherit__graph__37.map +3 -1
  300. data/doc/cxxapi/inherit__graph__37.md5 +1 -1
  301. data/doc/cxxapi/inherit__graph__37.png +0 -0
  302. data/doc/cxxapi/inherit__graph__4.map +3 -1
  303. data/doc/cxxapi/inherit__graph__4.md5 +1 -1
  304. data/doc/cxxapi/inherit__graph__4.png +0 -0
  305. data/doc/cxxapi/inherit__graph__5.map +3 -1
  306. data/doc/cxxapi/inherit__graph__5.md5 +1 -1
  307. data/doc/cxxapi/inherit__graph__5.png +0 -0
  308. data/doc/cxxapi/inherit__graph__6.map +3 -1
  309. data/doc/cxxapi/inherit__graph__6.md5 +1 -1
  310. data/doc/cxxapi/inherit__graph__6.png +0 -0
  311. data/doc/cxxapi/inherit__graph__7.map +3 -1
  312. data/doc/cxxapi/inherit__graph__7.md5 +1 -1
  313. data/doc/cxxapi/inherit__graph__7.png +0 -0
  314. data/doc/cxxapi/inherit__graph__8.map +3 -1
  315. data/doc/cxxapi/inherit__graph__8.md5 +1 -1
  316. data/doc/cxxapi/inherit__graph__8.png +0 -0
  317. data/doc/cxxapi/inherit__graph__9.map +3 -1
  318. data/doc/cxxapi/inherit__graph__9.md5 +1 -1
  319. data/doc/cxxapi/inherit__graph__9.png +0 -0
  320. data/doc/cxxapi/inherits.html +123 -126
  321. data/doc/cxxapi/main.html +1 -0
  322. data/doc/cxxapi/modules.html +2 -1
  323. data/doc/cxxapi/namespacePassenger.html +263 -492
  324. data/doc/cxxapi/namespacemembers.html +68 -96
  325. data/doc/cxxapi/namespacemembers_enum.html +14 -12
  326. data/doc/cxxapi/namespacemembers_eval.html +20 -15
  327. data/doc/cxxapi/namespacemembers_func.html +52 -88
  328. data/doc/cxxapi/namespacemembers_type.html +18 -14
  329. data/doc/cxxapi/namespaces.html +12 -9
  330. data/doc/cxxapi/nginx_2Configuration_8h_source.html +125 -0
  331. data/doc/cxxapi/ngx__http__passenger__module_8h_source.html +94 -0
  332. data/doc/cxxapi/structPassenger_1_1MessageServer_1_1DisconnectEventBroadcastGuard-members.html +12 -9
  333. data/doc/cxxapi/structPassenger_1_1MessageServer_1_1DisconnectEventBroadcastGuard.html +24 -22
  334. data/doc/cxxapi/structPassenger_1_1PoolOptions-members.html +43 -38
  335. data/doc/cxxapi/structPassenger_1_1PoolOptions.html +275 -325
  336. data/doc/cxxapi/structPassenger_1_1StaticString_1_1Hash-members.html +12 -9
  337. data/doc/cxxapi/structPassenger_1_1StaticString_1_1Hash.html +24 -22
  338. data/doc/cxxapi/tree.html +152 -7
  339. data/doc/users_guide_snippets/{analysis_and_system_maintenance_tools.txt → analysis_and_system_maintenance.txt} +58 -1
  340. data/doc/users_guide_snippets/appendix_c_spawning_methods.txt +1 -2
  341. data/doc/users_guide_snippets/global_queueing_explained.txt +1 -5
  342. data/doc/users_guide_snippets/{rails_spawn_method.txt → passenger_spawn_method.txt} +9 -8
  343. data/doc/users_guide_snippets/tips.txt +12 -6
  344. data/doc/users_guide_snippets/under_the_hood/page_caching_support.txt +22 -0
  345. data/ext/apache2/Bucket.cpp +4 -4
  346. data/ext/apache2/Bucket.h +3 -3
  347. data/ext/apache2/Configuration.cpp +278 -381
  348. data/ext/apache2/Configuration.h +3 -357
  349. data/ext/apache2/Configuration.hpp +461 -0
  350. data/ext/apache2/DirectoryMapper.h +3 -3
  351. data/ext/apache2/HelperAgent.cpp +359 -0
  352. data/ext/apache2/Hooks.cpp +339 -226
  353. data/ext/apache2/Hooks.h +1 -1
  354. data/ext/apache2/mod_passenger.c +10 -4
  355. data/ext/boost/algorithm/string/case_conv.hpp +4 -4
  356. data/ext/boost/algorithm/string/concept.hpp +2 -2
  357. data/ext/boost/algorithm/string/detail/case_conv.hpp +18 -9
  358. data/ext/boost/algorithm/string/detail/find_format.hpp +44 -43
  359. data/ext/boost/algorithm/string/detail/find_format_all.hpp +56 -56
  360. data/ext/boost/algorithm/string/detail/find_format_store.hpp +7 -0
  361. data/ext/boost/algorithm/string/detail/finder.hpp +14 -14
  362. data/ext/boost/algorithm/string/detail/formatter.hpp +2 -2
  363. data/ext/boost/algorithm/string/detail/replace_storage.hpp +3 -3
  364. data/ext/boost/algorithm/string/detail/sequence.hpp +3 -3
  365. data/ext/boost/algorithm/string/erase.hpp +98 -98
  366. data/ext/boost/algorithm/string/find_format.hpp +56 -38
  367. data/ext/boost/algorithm/string/finder.hpp +6 -6
  368. data/ext/boost/algorithm/string/formatter.hpp +1 -1
  369. data/ext/boost/algorithm/string/replace.hpp +99 -99
  370. data/ext/boost/bind.hpp +5 -1670
  371. data/ext/boost/bind/bind.hpp +1751 -0
  372. data/ext/boost/bind/bind_mf2_cc.hpp +228 -0
  373. data/ext/boost/bind/mem_fn.hpp +389 -0
  374. data/ext/boost/bind/mem_fn_template.hpp +54 -27
  375. data/ext/boost/bind/placeholders.hpp +3 -2
  376. data/ext/boost/concept_check.hpp +10 -0
  377. data/ext/boost/config/abi/msvc_prefix.hpp +15 -1
  378. data/ext/boost/config/abi_prefix.hpp +1 -1
  379. data/ext/boost/config/abi_suffix.hpp +3 -2
  380. data/ext/boost/config/auto_link.hpp +6 -1
  381. data/ext/boost/config/compiler/borland.hpp +75 -17
  382. data/ext/boost/config/compiler/codegear.hpp +163 -0
  383. data/ext/boost/config/compiler/common_edg.hpp +35 -0
  384. data/ext/boost/config/compiler/digitalmars.hpp +26 -0
  385. data/ext/boost/config/compiler/gcc.hpp +69 -14
  386. data/ext/boost/config/compiler/hp_acc.hpp +32 -0
  387. data/ext/boost/config/compiler/intel.hpp +13 -2
  388. data/ext/boost/config/compiler/kai.hpp +0 -2
  389. data/ext/boost/config/compiler/metrowerks.hpp +29 -1
  390. data/ext/boost/config/compiler/mpw.hpp +30 -0
  391. data/ext/boost/config/compiler/pgi.hpp +37 -0
  392. data/ext/boost/config/compiler/sgi_mipspro.hpp +1 -0
  393. data/ext/boost/config/compiler/sunpro_cc.hpp +39 -7
  394. data/ext/boost/config/compiler/vacpp.hpp +31 -3
  395. data/ext/boost/config/compiler/visualc.hpp +72 -5
  396. data/ext/boost/config/no_tr1/cmath.hpp +28 -0
  397. data/ext/boost/config/platform/bsd.hpp +16 -3
  398. data/ext/boost/config/platform/hpux.hpp +3 -0
  399. data/ext/boost/config/platform/macos.hpp +8 -0
  400. data/ext/boost/config/platform/solaris.hpp +7 -0
  401. data/ext/boost/config/platform/vxworks.hpp +31 -0
  402. data/ext/boost/config/select_compiler_config.hpp +4 -0
  403. data/ext/boost/config/select_platform_config.hpp +6 -2
  404. data/ext/boost/config/select_stdlib_config.hpp +17 -8
  405. data/ext/boost/config/stdlib/dinkumware.hpp +34 -2
  406. data/ext/boost/config/stdlib/libcomo.hpp +25 -0
  407. data/ext/boost/config/stdlib/libstdcpp3.hpp +56 -2
  408. data/ext/boost/config/stdlib/modena.hpp +25 -0
  409. data/ext/boost/config/stdlib/msl.hpp +24 -0
  410. data/ext/boost/config/stdlib/roguewave.hpp +26 -0
  411. data/ext/boost/config/stdlib/sgi.hpp +25 -0
  412. data/ext/boost/config/stdlib/stlport.hpp +36 -1
  413. data/ext/boost/config/stdlib/vacpp.hpp +25 -0
  414. data/ext/boost/config/suffix.hpp +67 -32
  415. data/ext/boost/config/warning_disable.hpp +47 -0
  416. data/ext/boost/cstdint.hpp +62 -36
  417. data/ext/boost/date_time/c_time.hpp +28 -12
  418. data/ext/boost/date_time/compiler_config.hpp +27 -5
  419. data/ext/boost/date_time/constrained_value.hpp +36 -13
  420. data/ext/boost/date_time/date.hpp +44 -33
  421. data/ext/boost/date_time/date_duration.hpp +13 -14
  422. data/ext/boost/date_time/date_facet.hpp +215 -226
  423. data/ext/boost/date_time/date_generator_formatter.hpp +22 -20
  424. data/ext/boost/date_time/date_generator_parser.hpp +52 -51
  425. data/ext/boost/date_time/date_generators.hpp +16 -16
  426. data/ext/boost/date_time/date_parsing.hpp +115 -98
  427. data/ext/boost/date_time/filetime_functions.hpp +133 -41
  428. data/ext/boost/date_time/format_date_parser.hpp +22 -10
  429. data/ext/boost/date_time/gregorian/conversion.hpp +32 -39
  430. data/ext/boost/date_time/gregorian/greg_calendar.hpp +15 -14
  431. data/ext/boost/date_time/gregorian/greg_date.hpp +19 -18
  432. data/ext/boost/date_time/gregorian/greg_duration.hpp +106 -10
  433. data/ext/boost/date_time/gregorian/greg_duration_types.hpp +16 -7
  434. data/ext/boost/date_time/gregorian/greg_weekday.hpp +2 -2
  435. data/ext/boost/date_time/gregorian/gregorian_io.hpp +11 -4
  436. data/ext/boost/date_time/gregorian_calendar.hpp +8 -8
  437. data/ext/boost/date_time/gregorian_calendar.ipp +30 -30
  438. data/ext/boost/date_time/int_adapter.hpp +4 -2
  439. data/ext/boost/date_time/microsec_time_clock.hpp +39 -117
  440. data/ext/boost/date_time/period_parser.hpp +17 -15
  441. data/ext/boost/date_time/posix_time/conversion.hpp +28 -29
  442. data/ext/boost/date_time/posix_time/posix_time_config.hpp +19 -19
  443. data/ext/boost/date_time/posix_time/posix_time_io.hpp +31 -38
  444. data/ext/boost/date_time/posix_time/time_formatters.hpp +32 -32
  445. data/ext/boost/date_time/string_parse_tree.hpp +46 -46
  446. data/ext/boost/date_time/strings_from_facet.hpp +7 -5
  447. data/ext/boost/date_time/time.hpp +7 -6
  448. data/ext/boost/date_time/time_defs.hpp +12 -2
  449. data/ext/boost/date_time/time_duration.hpp +27 -26
  450. data/ext/boost/date_time/time_facet.hpp +386 -321
  451. data/ext/boost/date_time/time_formatting_streams.hpp +8 -5
  452. data/ext/boost/date_time/time_resolution_traits.hpp +29 -25
  453. data/ext/boost/date_time/time_system_split.hpp +7 -13
  454. data/ext/boost/date_time/wrapping_int.hpp +21 -15
  455. data/ext/boost/detail/call_traits.hpp +1 -1
  456. data/ext/boost/detail/endian.hpp +4 -4
  457. data/ext/boost/detail/no_exceptions_support.hpp +87 -0
  458. data/ext/boost/detail/sp_typeinfo.hpp +50 -4
  459. data/ext/boost/detail/workaround.hpp +63 -3
  460. data/ext/boost/enable_shared_from_this.hpp +4 -59
  461. data/ext/boost/exception/current_exception_cast.hpp +43 -0
  462. data/ext/boost/exception/detail/attribute_noreturn.hpp +17 -0
  463. data/ext/boost/exception/detail/error_info_impl.hpp +75 -0
  464. data/ext/boost/exception/detail/exception_ptr.hpp +490 -0
  465. data/ext/boost/exception/detail/is_output_streamable.hpp +47 -0
  466. data/ext/boost/exception/detail/object_hex_dump.hpp +50 -0
  467. data/ext/boost/exception/detail/type_info.hpp +79 -0
  468. data/ext/boost/exception/diagnostic_information.hpp +182 -0
  469. data/ext/boost/exception/exception.hpp +422 -0
  470. data/ext/boost/exception/get_error_info.hpp +130 -0
  471. data/ext/boost/exception/info.hpp +167 -0
  472. data/ext/boost/exception/to_string.hpp +83 -0
  473. data/ext/boost/exception/to_string_stub.hpp +109 -0
  474. data/ext/boost/exception_ptr.hpp +11 -0
  475. data/ext/boost/function/detail/prologue.hpp +2 -1
  476. data/ext/boost/function/function_base.hpp +270 -128
  477. data/ext/boost/function/function_fwd.hpp +70 -0
  478. data/ext/boost/function/function_template.hpp +319 -130
  479. data/ext/boost/get_pointer.hpp +5 -1
  480. data/ext/boost/integer.hpp +253 -0
  481. data/ext/boost/integer_fwd.hpp +174 -0
  482. data/ext/boost/integer_traits.hpp +26 -1
  483. data/ext/boost/io/ios_state.hpp +8 -0
  484. data/ext/boost/iterator/detail/config_def.hpp +4 -2
  485. data/ext/boost/iterator/iterator_adaptor.hpp +7 -2
  486. data/ext/boost/iterator/iterator_facade.hpp +1 -2
  487. data/ext/boost/lexical_cast.hpp +113 -105
  488. data/ext/boost/limits.hpp +1 -1
  489. data/ext/boost/mem_fn.hpp +5 -370
  490. data/ext/boost/memory_order.hpp +53 -0
  491. data/ext/boost/mpl/always.hpp +3 -3
  492. data/ext/boost/mpl/and.hpp +3 -3
  493. data/ext/boost/mpl/apply.hpp +3 -3
  494. data/ext/boost/mpl/apply_fwd.hpp +3 -3
  495. data/ext/boost/mpl/apply_wrap.hpp +37 -6
  496. data/ext/boost/mpl/arg.hpp +3 -3
  497. data/ext/boost/mpl/arg_fwd.hpp +3 -3
  498. data/ext/boost/mpl/assert.hpp +6 -6
  499. data/ext/boost/mpl/aux_/adl_barrier.hpp +3 -3
  500. data/ext/boost/mpl/aux_/arg_typedef.hpp +3 -3
  501. data/ext/boost/mpl/aux_/arity.hpp +3 -3
  502. data/ext/boost/mpl/aux_/arity_spec.hpp +3 -3
  503. data/ext/boost/mpl/aux_/common_name_wknd.hpp +3 -3
  504. data/ext/boost/mpl/aux_/config/adl.hpp +4 -4
  505. data/ext/boost/mpl/aux_/config/arrays.hpp +4 -4
  506. data/ext/boost/mpl/aux_/config/bcc.hpp +28 -0
  507. data/ext/boost/mpl/aux_/config/bind.hpp +4 -4
  508. data/ext/boost/mpl/aux_/config/compiler.hpp +8 -6
  509. data/ext/boost/mpl/aux_/config/ctps.hpp +3 -3
  510. data/ext/boost/mpl/aux_/config/dtp.hpp +5 -5
  511. data/ext/boost/mpl/aux_/config/eti.hpp +3 -3
  512. data/ext/boost/mpl/aux_/config/gcc.hpp +3 -3
  513. data/ext/boost/mpl/aux_/config/has_apply.hpp +3 -3
  514. data/ext/boost/mpl/aux_/config/has_xxx.hpp +3 -3
  515. data/ext/boost/mpl/aux_/config/integral.hpp +4 -4
  516. data/ext/boost/mpl/aux_/config/intel.hpp +3 -3
  517. data/ext/boost/mpl/aux_/config/lambda.hpp +3 -3
  518. data/ext/boost/mpl/aux_/config/msvc.hpp +3 -3
  519. data/ext/boost/mpl/aux_/config/msvc_typename.hpp +3 -3
  520. data/ext/boost/mpl/aux_/config/nttp.hpp +3 -3
  521. data/ext/boost/mpl/aux_/config/overload_resolution.hpp +3 -3
  522. data/ext/boost/mpl/aux_/config/pp_counter.hpp +3 -3
  523. data/ext/boost/mpl/aux_/config/preprocessor.hpp +4 -4
  524. data/ext/boost/mpl/aux_/config/static_constant.hpp +3 -3
  525. data/ext/boost/mpl/aux_/config/ttp.hpp +4 -4
  526. data/ext/boost/mpl/aux_/config/use_preprocessed.hpp +3 -3
  527. data/ext/boost/mpl/aux_/config/workaround.hpp +3 -3
  528. data/ext/boost/mpl/aux_/full_lambda.hpp +3 -3
  529. data/ext/boost/mpl/aux_/has_apply.hpp +3 -3
  530. data/ext/boost/mpl/aux_/has_type.hpp +3 -3
  531. data/ext/boost/mpl/aux_/include_preprocessed.hpp +3 -3
  532. data/ext/boost/mpl/aux_/integral_wrapper.hpp +3 -3
  533. data/ext/boost/mpl/aux_/lambda_arity_param.hpp +3 -3
  534. data/ext/boost/mpl/aux_/lambda_support.hpp +4 -4
  535. data/ext/boost/mpl/aux_/msvc_never_true.hpp +3 -3
  536. data/ext/boost/mpl/aux_/na.hpp +3 -3
  537. data/ext/boost/mpl/aux_/na_assert.hpp +3 -3
  538. data/ext/boost/mpl/aux_/na_fwd.hpp +3 -3
  539. data/ext/boost/mpl/aux_/na_spec.hpp +3 -3
  540. data/ext/boost/mpl/aux_/nested_type_wknd.hpp +3 -3
  541. data/ext/boost/mpl/aux_/nttp_decl.hpp +3 -3
  542. data/ext/boost/mpl/aux_/preprocessor/def_params_tail.hpp +3 -3
  543. data/ext/boost/mpl/aux_/preprocessor/enum.hpp +3 -3
  544. data/ext/boost/mpl/aux_/preprocessor/filter_params.hpp +3 -3
  545. data/ext/boost/mpl/aux_/preprocessor/params.hpp +3 -3
  546. data/ext/boost/mpl/aux_/preprocessor/sub.hpp +3 -3
  547. data/ext/boost/mpl/aux_/static_cast.hpp +3 -3
  548. data/ext/boost/mpl/aux_/template_arity.hpp +3 -3
  549. data/ext/boost/mpl/aux_/template_arity_fwd.hpp +3 -3
  550. data/ext/boost/mpl/aux_/type_wrapper.hpp +3 -3
  551. data/ext/boost/mpl/aux_/value_wknd.hpp +3 -3
  552. data/ext/boost/mpl/aux_/yes_no.hpp +3 -3
  553. data/ext/boost/mpl/bind.hpp +3 -3
  554. data/ext/boost/mpl/bind_fwd.hpp +3 -3
  555. data/ext/boost/mpl/bool.hpp +3 -3
  556. data/ext/boost/mpl/bool_fwd.hpp +3 -3
  557. data/ext/boost/mpl/eval_if.hpp +3 -3
  558. data/ext/boost/mpl/has_xxx.hpp +10 -8
  559. data/ext/boost/mpl/identity.hpp +3 -3
  560. data/ext/boost/mpl/if.hpp +3 -3
  561. data/ext/boost/mpl/int.hpp +3 -3
  562. data/ext/boost/mpl/int_fwd.hpp +3 -3
  563. data/ext/boost/mpl/integral_c.hpp +3 -3
  564. data/ext/boost/mpl/integral_c_fwd.hpp +3 -3
  565. data/ext/boost/mpl/integral_c_tag.hpp +3 -3
  566. data/ext/boost/mpl/lambda.hpp +3 -3
  567. data/ext/boost/mpl/lambda_fwd.hpp +3 -3
  568. data/ext/boost/mpl/limits/arity.hpp +3 -3
  569. data/ext/boost/mpl/logical.hpp +3 -3
  570. data/ext/boost/mpl/next.hpp +3 -3
  571. data/ext/boost/mpl/next_prior.hpp +3 -3
  572. data/ext/boost/mpl/not.hpp +3 -3
  573. data/ext/boost/mpl/or.hpp +3 -3
  574. data/ext/boost/mpl/placeholders.hpp +3 -3
  575. data/ext/boost/mpl/protect.hpp +3 -3
  576. data/ext/boost/mpl/quote.hpp +18 -7
  577. data/ext/boost/mpl/size_t.hpp +3 -3
  578. data/ext/boost/mpl/size_t_fwd.hpp +3 -3
  579. data/ext/boost/mpl/void.hpp +3 -3
  580. data/ext/boost/mpl/void_fwd.hpp +3 -3
  581. data/ext/boost/non_type.hpp +27 -27
  582. data/ext/boost/operators.hpp +51 -18
  583. data/ext/boost/preprocessor/arithmetic/detail/div_base.hpp +61 -0
  584. data/ext/boost/preprocessor/arithmetic/mod.hpp +39 -0
  585. data/ext/boost/preprocessor/comparison/less_equal.hpp +39 -0
  586. data/ext/boost/preprocessor/control/deduce_d.hpp +22 -0
  587. data/ext/boost/preprocessor/logical/not.hpp +30 -0
  588. data/ext/boost/preprocessor/seq/cat.hpp +48 -0
  589. data/ext/boost/preprocessor/seq/fold_left.hpp +1070 -0
  590. data/ext/boost/preprocessor/seq/transform.hpp +48 -0
  591. data/ext/boost/range/as_literal.hpp +10 -14
  592. data/ext/boost/range/begin.hpp +4 -4
  593. data/ext/boost/range/detail/implementation_help.hpp +4 -0
  594. data/ext/boost/range/end.hpp +4 -4
  595. data/ext/boost/range/iterator_range.hpp +31 -15
  596. data/ext/boost/ref.hpp +12 -1
  597. data/ext/boost/scoped_array.hpp +16 -0
  598. data/ext/boost/scoped_ptr.hpp +16 -0
  599. data/ext/boost/shared_ptr.hpp +2 -602
  600. data/ext/boost/{detail → smart_ptr}/bad_weak_ptr.hpp +4 -4
  601. data/ext/boost/{detail → smart_ptr/detail}/atomic_count.hpp +14 -19
  602. data/ext/boost/{detail → smart_ptr/detail}/atomic_count_gcc.hpp +13 -9
  603. data/ext/boost/{detail → smart_ptr/detail}/atomic_count_gcc_x86.hpp +5 -12
  604. data/ext/boost/{detail → smart_ptr/detail}/atomic_count_pthreads.hpp +5 -5
  605. data/ext/boost/{detail → smart_ptr/detail}/atomic_count_solaris.hpp +3 -3
  606. data/ext/boost/{detail → smart_ptr/detail}/atomic_count_sync.hpp +9 -5
  607. data/ext/boost/{detail → smart_ptr/detail}/atomic_count_win32.hpp +3 -3
  608. data/ext/boost/smart_ptr/detail/operator_bool.hpp +56 -0
  609. data/ext/boost/{detail → smart_ptr/detail}/shared_count.hpp +86 -17
  610. data/ext/boost/smart_ptr/detail/sp_convertible.hpp +76 -0
  611. data/ext/boost/smart_ptr/detail/sp_counted_base.hpp +70 -0
  612. data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_acc_ia64.hpp +4 -4
  613. data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_cw_ppc.hpp +4 -4
  614. data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_cw_x86.hpp +4 -4
  615. data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_gcc_ia64.hpp +4 -4
  616. data/ext/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp +172 -0
  617. data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_gcc_ppc.hpp +4 -4
  618. data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_gcc_sparc.hpp +7 -7
  619. data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_gcc_x86.hpp +4 -4
  620. data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_nt.hpp +4 -4
  621. data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_pt.hpp +4 -4
  622. data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_solaris.hpp +4 -4
  623. data/ext/boost/smart_ptr/detail/sp_counted_base_spin.hpp +131 -0
  624. data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_sync.hpp +8 -4
  625. data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_w32.hpp +4 -4
  626. data/ext/boost/{detail → smart_ptr/detail}/sp_counted_impl.hpp +5 -5
  627. data/ext/boost/smart_ptr/detail/sp_has_sync.hpp +49 -0
  628. data/ext/boost/smart_ptr/detail/spinlock.hpp +53 -0
  629. data/ext/boost/smart_ptr/detail/spinlock_gcc_arm.hpp +85 -0
  630. data/ext/boost/smart_ptr/detail/spinlock_nt.hpp +89 -0
  631. data/ext/boost/smart_ptr/detail/spinlock_pool.hpp +87 -0
  632. data/ext/boost/smart_ptr/detail/spinlock_pt.hpp +79 -0
  633. data/ext/boost/smart_ptr/detail/spinlock_sync.hpp +87 -0
  634. data/ext/boost/smart_ptr/detail/yield_k.hpp +149 -0
  635. data/ext/boost/smart_ptr/enable_shared_from_this.hpp +79 -0
  636. data/ext/boost/smart_ptr/scoped_array.hpp +107 -0
  637. data/ext/boost/smart_ptr/scoped_ptr.hpp +131 -0
  638. data/ext/boost/smart_ptr/shared_ptr.hpp +701 -0
  639. data/ext/boost/smart_ptr/weak_ptr.hpp +230 -0
  640. data/ext/boost/src/pthread/thread.cpp +115 -203
  641. data/ext/boost/src/tss_null.cpp +1 -1
  642. data/ext/boost/static_assert.hpp +14 -4
  643. data/ext/boost/thread.hpp +7 -2
  644. data/ext/boost/thread/barrier.hpp +63 -0
  645. data/ext/boost/thread/detail/force_cast.hpp +39 -0
  646. data/ext/boost/thread/detail/move.hpp +29 -2
  647. data/ext/boost/thread/detail/platform.hpp +3 -3
  648. data/ext/boost/thread/detail/singleton.hpp +59 -0
  649. data/ext/boost/thread/detail/thread.hpp +496 -0
  650. data/ext/boost/thread/detail/thread_group.hpp +105 -0
  651. data/ext/boost/thread/detail/thread_heap_alloc.hpp +23 -0
  652. data/ext/boost/thread/detail/thread_interruption.hpp +35 -0
  653. data/ext/boost/thread/detail/tss_hooks.hpp +82 -0
  654. data/ext/boost/thread/exceptions.hpp +174 -60
  655. data/ext/boost/thread/future.hpp +1364 -0
  656. data/ext/boost/thread/locks.hpp +899 -32
  657. data/ext/boost/thread/once.hpp +4 -0
  658. data/ext/boost/thread/pthread/condition_variable.hpp +16 -21
  659. data/ext/boost/thread/pthread/condition_variable_fwd.hpp +37 -3
  660. data/ext/boost/thread/pthread/mutex.hpp +20 -7
  661. data/ext/boost/thread/pthread/once.hpp +7 -2
  662. data/ext/boost/thread/pthread/pthread_mutex_scoped_lock.hpp +5 -1
  663. data/ext/boost/thread/pthread/recursive_mutex.hpp +22 -5
  664. data/ext/boost/thread/pthread/shared_mutex.hpp +303 -0
  665. data/ext/boost/thread/pthread/thread_data.hpp +37 -10
  666. data/ext/boost/thread/pthread/thread_heap_alloc.hpp +242 -0
  667. data/ext/boost/thread/pthread/timespec.hpp +11 -3
  668. data/ext/boost/thread/shared_mutex.hpp +21 -0
  669. data/ext/boost/thread/thread.hpp +8 -3
  670. data/ext/boost/thread/thread_time.hpp +4 -0
  671. data/ext/boost/thread/tss.hpp +106 -13
  672. data/ext/boost/thread/xtime.hpp +6 -2
  673. data/ext/boost/throw_exception.hpp +36 -7
  674. data/ext/boost/token_functions.hpp +1 -1
  675. data/ext/boost/tokenizer.hpp +1 -1
  676. data/ext/boost/type_traits/add_pointer.hpp +1 -1
  677. data/ext/boost/type_traits/add_volatile.hpp +47 -0
  678. data/ext/boost/type_traits/alignment_of.hpp +29 -1
  679. data/ext/boost/type_traits/config.hpp +1 -1
  680. data/ext/boost/type_traits/conversion_traits.hpp +1 -1
  681. data/ext/boost/type_traits/has_trivial_destructor.hpp +42 -0
  682. data/ext/boost/type_traits/intrinsics.hpp +88 -1
  683. data/ext/boost/type_traits/is_abstract.hpp +14 -5
  684. data/ext/boost/type_traits/is_arithmetic.hpp +8 -0
  685. data/ext/boost/type_traits/is_array.hpp +3 -2
  686. data/ext/boost/type_traits/is_base_and_derived.hpp +254 -0
  687. data/ext/boost/type_traits/is_base_of.hpp +51 -0
  688. data/ext/boost/type_traits/is_class.hpp +12 -0
  689. data/ext/boost/type_traits/is_const.hpp +6 -2
  690. data/ext/boost/type_traits/is_convertible.hpp +14 -2
  691. data/ext/boost/type_traits/is_enum.hpp +10 -1
  692. data/ext/boost/type_traits/is_function.hpp +11 -3
  693. data/ext/boost/type_traits/is_fundamental.hpp +45 -0
  694. data/ext/boost/type_traits/is_integral.hpp +5 -0
  695. data/ext/boost/type_traits/is_member_function_pointer.hpp +5 -3
  696. data/ext/boost/type_traits/is_member_pointer.hpp +4 -2
  697. data/ext/boost/type_traits/is_pointer.hpp +3 -1
  698. data/ext/boost/type_traits/is_reference.hpp +4 -2
  699. data/ext/boost/type_traits/is_signed.hpp +135 -0
  700. data/ext/boost/type_traits/is_unsigned.hpp +130 -0
  701. data/ext/boost/type_traits/is_void.hpp +5 -0
  702. data/ext/boost/type_traits/is_volatile.hpp +4 -2
  703. data/ext/boost/type_traits/make_unsigned.hpp +137 -0
  704. data/ext/boost/type_traits/remove_reference.hpp +1 -1
  705. data/ext/boost/type_traits/type_with_alignment.hpp +106 -1
  706. data/ext/boost/utility.hpp +2 -1
  707. data/ext/boost/utility/addressof.hpp +61 -17
  708. data/ext/boost/utility/binary.hpp +708 -0
  709. data/ext/boost/utility/enable_if.hpp +2 -2
  710. data/ext/boost/weak_ptr.hpp +4 -174
  711. data/ext/common/AbstractSpawnManager.h +110 -0
  712. data/ext/common/Account.h +175 -0
  713. data/ext/common/AccountsDatabase.cpp +81 -0
  714. data/ext/common/AccountsDatabase.h +130 -0
  715. data/ext/common/AgentBase.cpp +323 -0
  716. data/ext/common/{Version.h → AgentBase.h} +14 -6
  717. data/ext/common/AgentsStarter.cpp +154 -0
  718. data/ext/common/AgentsStarter.h +81 -0
  719. data/ext/common/AgentsStarter.hpp +619 -0
  720. data/ext/common/ApplicationPool/Client.h +796 -0
  721. data/ext/common/{ApplicationPool.h → ApplicationPool/Interface.h} +108 -18
  722. data/ext/common/ApplicationPool/Pool.h +1315 -0
  723. data/ext/common/ApplicationPool/Server.h +475 -0
  724. data/ext/common/BCrypt.cpp +343 -0
  725. data/ext/common/BCrypt.h +73 -0
  726. data/ext/common/Blowfish.c +685 -0
  727. data/ext/common/Blowfish.h +103 -0
  728. data/ext/common/Constants.h +48 -0
  729. data/ext/common/EventedClient.h +598 -0
  730. data/ext/common/EventedMessageServer.h +327 -0
  731. data/ext/common/EventedServer.h +295 -0
  732. data/ext/common/Exceptions.h +78 -1
  733. data/ext/common/FileDescriptor.h +229 -0
  734. data/ext/common/HelperAgent/BacktracesServer.h +59 -0
  735. data/ext/common/Logging.cpp +8 -9
  736. data/ext/common/Logging.h +593 -21
  737. data/ext/common/LoggingAgent/ChangeNotifier.h +63 -0
  738. data/ext/common/LoggingAgent/DataStoreId.h +177 -0
  739. data/ext/common/LoggingAgent/LoggingServer.h +1343 -0
  740. data/ext/common/LoggingAgent/Main.cpp +278 -0
  741. data/ext/common/LoggingAgent/RemoteSender.h +457 -0
  742. data/ext/common/MessageChannel.h +196 -34
  743. data/ext/common/MessageClient.h +297 -0
  744. data/ext/common/MessageReadersWriters.h +508 -0
  745. data/ext/common/MessageServer.h +575 -0
  746. data/ext/common/PoolOptions.h +279 -117
  747. data/ext/common/Process.h +255 -0
  748. data/ext/common/RandomGenerator.h +160 -0
  749. data/ext/common/ResourceLocator.h +84 -0
  750. data/ext/common/ServerInstanceDir.h +343 -0
  751. data/ext/common/Session.h +470 -0
  752. data/ext/common/SpawnManager.h +256 -201
  753. data/ext/common/StaticString.h +79 -4
  754. data/ext/common/StringListCreator.h +2 -2
  755. data/ext/common/Utils.cpp +385 -397
  756. data/ext/common/Utils.h +79 -165
  757. data/ext/common/{Base64.cpp → Utils/Base64.cpp} +0 -0
  758. data/ext/common/{Base64.h → Utils/Base64.h} +27 -1
  759. data/ext/common/Utils/BlockingQueue.h +136 -0
  760. data/ext/common/Utils/BlockingScalar.h +50 -0
  761. data/ext/common/{CachedFileStat.cpp → Utils/CachedFileStat.cpp} +1 -1
  762. data/ext/common/{CachedFileStat.h → Utils/CachedFileStat.h} +1 -1
  763. data/ext/common/{CachedFileStat.hpp → Utils/CachedFileStat.hpp} +1 -1
  764. data/ext/common/{FileChangeChecker.h → Utils/FileChangeChecker.h} +1 -1
  765. data/ext/common/Utils/FileHandleGuard.h +81 -0
  766. data/ext/common/Utils/IOUtils.cpp +754 -0
  767. data/ext/common/Utils/IOUtils.h +253 -0
  768. data/ext/common/Utils/MD5.cpp +406 -0
  769. data/ext/common/Utils/MD5.h +98 -0
  770. data/ext/common/Utils/MemZeroGuard.h +103 -0
  771. data/ext/common/Utils/ProcessMetricsCollector.h +462 -0
  772. data/ext/common/Utils/ScopeGuard.h +72 -0
  773. data/ext/common/Utils/StrIntUtils.cpp +329 -0
  774. data/ext/common/Utils/StrIntUtils.h +228 -0
  775. data/ext/common/{SystemTime.cpp → Utils/SystemTime.cpp} +5 -1
  776. data/ext/common/Utils/SystemTime.h +201 -0
  777. data/ext/common/{Timer.h → Utils/Timer.h} +58 -18
  778. data/ext/common/Utils/VariantMap.h +363 -0
  779. data/ext/common/Utils/foo.cpp +10 -0
  780. data/ext/common/Watchdog.cpp +1034 -0
  781. data/ext/google/COPYING +28 -0
  782. data/ext/google/ChangeLog +167 -0
  783. data/ext/google/dense_hash_map +310 -0
  784. data/ext/google/dense_hash_set +287 -0
  785. data/ext/google/sparse_hash_map +294 -0
  786. data/ext/google/sparse_hash_set +275 -0
  787. data/ext/google/sparsehash/densehashtable.h +1062 -0
  788. data/ext/google/sparsehash/sparseconfig.h +55 -0
  789. data/ext/google/sparsehash/sparsehashtable.h +1015 -0
  790. data/ext/google/sparsetable +1468 -0
  791. data/ext/google/type_traits.h +250 -0
  792. data/ext/libev/Changes +302 -0
  793. data/ext/libev/LICENSE +36 -0
  794. data/ext/libev/Makefile.am +18 -0
  795. data/ext/libev/Makefile.in +685 -0
  796. data/ext/libev/README +58 -0
  797. data/ext/libev/aclocal.m4 +7549 -0
  798. data/ext/libev/autogen.sh +6 -0
  799. data/ext/libev/config.guess +1526 -0
  800. data/ext/libev/config.h +122 -0
  801. data/ext/libev/config.h.in +121 -0
  802. data/ext/libev/config.sub +1658 -0
  803. data/ext/libev/configure +22156 -0
  804. data/ext/libev/configure.ac +18 -0
  805. data/ext/libev/ev++.h +800 -0
  806. data/ext/libev/ev.c +3694 -0
  807. data/ext/libev/ev.h +705 -0
  808. data/ext/libev/ev_epoll.c +228 -0
  809. data/ext/libev/ev_kqueue.c +196 -0
  810. data/ext/libev/ev_poll.c +144 -0
  811. data/ext/libev/ev_port.c +165 -0
  812. data/ext/libev/ev_select.c +308 -0
  813. data/ext/libev/ev_vars.h +187 -0
  814. data/ext/libev/ev_win32.c +153 -0
  815. data/ext/libev/ev_wrap.h +178 -0
  816. data/ext/libev/event.c +401 -0
  817. data/ext/libev/event.h +158 -0
  818. data/ext/libev/install-sh +294 -0
  819. data/ext/libev/libev.m4 +38 -0
  820. data/ext/libev/ltmain.sh +6871 -0
  821. data/ext/libev/missing +336 -0
  822. data/ext/libev/mkinstalldirs +111 -0
  823. data/ext/nginx/Configuration.c +532 -182
  824. data/ext/nginx/Configuration.h +33 -10
  825. data/ext/nginx/ContentHandler.c +188 -53
  826. data/ext/nginx/ContentHandler.h +1 -1
  827. data/ext/nginx/{HelperServer.cpp → HelperAgent.cpp} +433 -299
  828. data/ext/nginx/HttpStatusExtractor.h +1 -1
  829. data/ext/nginx/ScgiRequestParser.h +68 -11
  830. data/ext/nginx/StaticContentHandler.c +4 -1
  831. data/ext/nginx/StaticContentHandler.h +1 -1
  832. data/ext/nginx/config +5 -5
  833. data/ext/nginx/ngx_http_passenger_module.c +315 -469
  834. data/ext/nginx/ngx_http_passenger_module.h +8 -17
  835. data/ext/oxt/backtrace.cpp +49 -41
  836. data/ext/oxt/backtrace.hpp +1 -1
  837. data/ext/oxt/detail/backtrace_disabled.hpp +1 -1
  838. data/ext/oxt/detail/backtrace_enabled.hpp +16 -15
  839. data/ext/oxt/detail/spin_lock_darwin.hpp +69 -0
  840. data/ext/oxt/detail/spin_lock_gcc_x86.hpp +3 -4
  841. data/ext/oxt/detail/spin_lock_portable.hpp +1 -1
  842. data/ext/oxt/detail/spin_lock_pthreads.hpp +1 -1
  843. data/ext/oxt/detail/tracable_exception_disabled.hpp +1 -1
  844. data/ext/oxt/detail/tracable_exception_enabled.hpp +1 -1
  845. data/ext/oxt/dynamic_thread_group.hpp +195 -0
  846. data/ext/oxt/macros.hpp +1 -1
  847. data/ext/oxt/spin_lock.hpp +4 -2
  848. data/ext/oxt/system_calls.cpp +129 -13
  849. data/ext/oxt/system_calls.hpp +16 -2
  850. data/ext/oxt/thread.cpp +1 -1
  851. data/ext/oxt/thread.hpp +49 -14
  852. data/ext/oxt/tracable_exception.cpp +5 -5
  853. data/ext/oxt/tracable_exception.hpp +1 -1
  854. data/ext/phusion_passenger/extconf.rb +7 -2
  855. data/ext/phusion_passenger/native_support.c +733 -33
  856. data/{bin → helper-scripts}/passenger-spawn-server +50 -12
  857. data/helper-scripts/prespawn +63 -0
  858. data/lib/phusion_passenger.rb +113 -0
  859. data/lib/phusion_passenger/abstract_installer.rb +50 -12
  860. data/lib/phusion_passenger/abstract_request_handler.rb +432 -171
  861. data/lib/phusion_passenger/abstract_server.rb +125 -122
  862. data/lib/phusion_passenger/abstract_server_collection.rb +51 -22
  863. data/lib/phusion_passenger/admin_tools.rb +1 -1
  864. data/lib/phusion_passenger/admin_tools/memory_stats.rb +299 -0
  865. data/lib/phusion_passenger/admin_tools/server_instance.rb +334 -0
  866. data/lib/phusion_passenger/analytics_logger.rb +342 -0
  867. data/lib/phusion_passenger/{application.rb → app_process.rb} +73 -24
  868. data/lib/phusion_passenger/classic_rails/application_spawner.rb +344 -0
  869. data/lib/phusion_passenger/{railz → classic_rails}/cgi_fixed.rb +2 -2
  870. data/lib/phusion_passenger/{railz → classic_rails}/framework_spawner.rb +75 -98
  871. data/lib/phusion_passenger/{railz → classic_rails}/request_handler.rb +8 -6
  872. data/lib/phusion_passenger/classic_rails_extensions/analytics_logging/ac_base_extension.rb +65 -0
  873. data/lib/phusion_passenger/classic_rails_extensions/analytics_logging/ac_benchmarking_extension.rb +48 -0
  874. data/lib/phusion_passenger/classic_rails_extensions/analytics_logging/ac_rescue_extension.rb +59 -0
  875. data/lib/phusion_passenger/classic_rails_extensions/analytics_logging/ar_abstract_adapter_extension.rb +54 -0
  876. data/lib/phusion_passenger/classic_rails_extensions/analytics_logging/as_cache_extension.rb +130 -0
  877. data/lib/phusion_passenger/classic_rails_extensions/analytics_logging/av_benchmark_helper_extension.rb +47 -0
  878. data/lib/phusion_passenger/classic_rails_extensions/init.rb +123 -0
  879. data/lib/phusion_passenger/console_text_template.rb +1 -1
  880. data/lib/phusion_passenger/constants.rb +9 -5
  881. data/lib/phusion_passenger/debug_logging.rb +104 -0
  882. data/lib/phusion_passenger/dependencies.rb +187 -4
  883. data/lib/phusion_passenger/exceptions.rb +4 -4
  884. data/lib/phusion_passenger/html_template.rb +6 -8
  885. data/lib/phusion_passenger/message_channel.rb +137 -21
  886. data/lib/phusion_passenger/message_client.rb +173 -0
  887. data/lib/phusion_passenger/native_support.rb +108 -0
  888. data/lib/phusion_passenger/packaging.rb +82 -13
  889. data/lib/phusion_passenger/platform_info.rb +84 -475
  890. data/lib/phusion_passenger/platform_info/apache.rb +329 -0
  891. data/lib/phusion_passenger/platform_info/binary_compatibility.rb +187 -0
  892. data/lib/phusion_passenger/platform_info/compiler.rb +154 -0
  893. data/lib/phusion_passenger/{events.rb → platform_info/curl.rb} +26 -23
  894. data/lib/phusion_passenger/platform_info/documentation_tools.rb +35 -0
  895. data/lib/phusion_passenger/platform_info/linux.rb +77 -0
  896. data/lib/phusion_passenger/platform_info/operating_system.rb +51 -0
  897. data/lib/phusion_passenger/platform_info/ruby.rb +198 -0
  898. data/lib/phusion_passenger/platform_info/zlib.rb +38 -0
  899. data/lib/phusion_passenger/plugin.rb +96 -0
  900. data/lib/phusion_passenger/public_api.rb +112 -0
  901. data/lib/phusion_passenger/rack/application_spawner.rb +146 -71
  902. data/lib/phusion_passenger/rack/request_handler.rb +36 -13
  903. data/lib/phusion_passenger/rails3_extensions/init.rb +204 -0
  904. data/lib/phusion_passenger/simple_benchmarking.rb +1 -1
  905. data/lib/phusion_passenger/spawn_manager.rb +137 -141
  906. data/lib/phusion_passenger/standalone/app_finder.rb +153 -0
  907. data/lib/phusion_passenger/standalone/command.rb +237 -0
  908. data/lib/phusion_passenger/standalone/config_file.rb +119 -0
  909. data/lib/phusion_passenger/standalone/help_command.rb +57 -0
  910. data/lib/phusion_passenger/standalone/main.rb +101 -0
  911. data/lib/phusion_passenger/standalone/package_runtime_command.rb +92 -0
  912. data/lib/phusion_passenger/standalone/runtime_installer.rb +466 -0
  913. data/lib/phusion_passenger/standalone/start_command.rb +510 -0
  914. data/lib/phusion_passenger/standalone/status_command.rb +62 -0
  915. data/lib/phusion_passenger/standalone/stop_command.rb +74 -0
  916. data/lib/phusion_passenger/standalone/utils.rb +42 -0
  917. data/lib/phusion_passenger/standalone/version_command.rb +42 -0
  918. data/lib/phusion_passenger/templates/framework_init_error.html.erb +1 -1
  919. data/lib/phusion_passenger/templates/standalone/cannot_write_to_dir.txt.erb +11 -0
  920. data/lib/phusion_passenger/templates/standalone/config.erb +69 -0
  921. data/lib/phusion_passenger/templates/standalone/possible_solutions_for_download_and_extraction_problems.txt.erb +17 -0
  922. data/lib/phusion_passenger/templates/standalone/run_installer_as_root.txt.erb +8 -0
  923. data/lib/phusion_passenger/templates/standalone/welcome.txt.erb +8 -0
  924. data/lib/phusion_passenger/templates/standalone_default_root/index.html +1 -0
  925. data/lib/phusion_passenger/templates/version_not_found.html.erb +2 -2
  926. data/lib/phusion_passenger/utils.rb +476 -125
  927. data/lib/phusion_passenger/utils/file_system_watcher.rb +186 -0
  928. data/lib/phusion_passenger/utils/hosts_file_parser.rb +130 -0
  929. data/lib/phusion_passenger/utils/tmpdir.rb +70 -0
  930. data/lib/phusion_passenger/utils/unseekable_socket.rb +196 -0
  931. data/lib/phusion_passenger/wsgi/application_spawner.rb +24 -20
  932. data/lib/phusion_passenger/wsgi/request_handler.py +1 -1
  933. data/misc/copy_boost_headers.rb +36 -9
  934. data/misc/find_owner_pipe_leaks.rb +1 -1
  935. data/misc/render_error_pages.rb +1 -1
  936. data/misc/union_station_gateway.crt +32 -0
  937. data/test/config.yml.example +24 -13
  938. data/test/cxx/ApplicationPool_PoolTest.cpp +33 -0
  939. data/test/cxx/ApplicationPool_PoolTestCases.cpp +1029 -0
  940. data/test/cxx/ApplicationPool_ServerTest.cpp +308 -0
  941. data/test/cxx/ApplicationPool_Server_PoolTest.cpp +80 -0
  942. data/test/{Base64Test.cpp → cxx/Base64Test.cpp} +4 -2
  943. data/test/{CachedFileStatTest.cpp → cxx/CachedFileStatTest.cpp} +3 -3
  944. data/test/{CxxTestMain.cpp → cxx/CxxTestMain.cpp} +6 -27
  945. data/test/cxx/EventedClientTest.cpp +386 -0
  946. data/test/{FileChangeCheckerTest.cpp → cxx/FileChangeCheckerTest.cpp} +3 -5
  947. data/test/cxx/FileDescriptorTest.cpp +69 -0
  948. data/test/{HttpStatusExtractorTest.cpp → cxx/HttpStatusExtractorTest.cpp} +1 -1
  949. data/test/cxx/IOUtilsTest.cpp +398 -0
  950. data/test/cxx/LoggingTest.cpp +914 -0
  951. data/test/cxx/MessageChannelTest.cpp +672 -0
  952. data/test/cxx/MessageReadersWritersTest.cpp +574 -0
  953. data/test/cxx/MessageServerTest.cpp +383 -0
  954. data/test/{PoolOptionsTest.cpp → cxx/PoolOptionsTest.cpp} +2 -3
  955. data/test/{ScgiRequestParserTest.cpp → cxx/ScgiRequestParserTest.cpp} +53 -1
  956. data/test/cxx/ServerInstanceDirTest.cpp +186 -0
  957. data/test/cxx/SpawnManagerTest.cpp +161 -0
  958. data/test/cxx/StaticStringTest.cpp +86 -0
  959. data/test/{SystemTimeTest.cpp → cxx/SystemTimeTest.cpp} +2 -2
  960. data/test/cxx/TestSupport.cpp +166 -0
  961. data/test/cxx/TestSupport.h +254 -0
  962. data/test/cxx/UtilsTest.cpp +521 -0
  963. data/test/cxx/VariantMapTest.cpp +179 -0
  964. data/test/integration_tests/apache2_tests.rb +198 -127
  965. data/test/integration_tests/cgi_environment_spec.rb +26 -0
  966. data/test/integration_tests/mycook_spec.rb +2 -28
  967. data/test/integration_tests/nginx_tests.rb +125 -16
  968. data/test/integration_tests/spec_helper.rb +19 -0
  969. data/test/oxt/backtrace_test.cpp +19 -59
  970. data/test/oxt/counter.hpp +55 -0
  971. data/test/oxt/dynamic_thread_group_test.cpp +131 -0
  972. data/test/oxt/oxt_test_main.cpp +2 -2
  973. data/test/oxt/spin_lock_test.cpp +59 -0
  974. data/test/oxt/syscall_interruption_test.cpp +1 -1
  975. data/test/ruby/abstract_request_handler_spec.rb +346 -25
  976. data/test/ruby/abstract_server_collection_spec.rb +4 -3
  977. data/test/ruby/abstract_server_spec.rb +37 -27
  978. data/test/ruby/admin_tools_spec.rb +362 -0
  979. data/test/ruby/analytics_logger_spec.rb +253 -0
  980. data/test/ruby/{application_spec.rb → app_process_spec.rb} +14 -14
  981. data/test/ruby/classic_rails/application_spawner_spec.rb +89 -0
  982. data/test/ruby/classic_rails/framework_spawner_spec.rb +92 -0
  983. data/test/ruby/debug_logging_spec.rb +141 -0
  984. data/test/ruby/message_channel_spec.rb +51 -25
  985. data/test/ruby/rack/application_spawner_spec.rb +99 -82
  986. data/test/ruby/shared/abstract_server_spec.rb +23 -0
  987. data/test/ruby/shared/rails/analytics_logging_extensions_spec.rb +375 -0
  988. data/test/ruby/shared/spawners/classic_rails/framework_spawner_spec.rb +38 -0
  989. data/test/ruby/shared/spawners/classic_rails/lack_of_rails_gem_version_spec.rb +19 -0
  990. data/test/ruby/shared/spawners/classic_rails/spawner_spec.rb +15 -0
  991. data/test/ruby/shared/spawners/non_preloading_spawner_spec.rb +27 -0
  992. data/test/ruby/shared/spawners/preloading_spawner_spec.rb +29 -0
  993. data/test/ruby/shared/spawners/reload_all_spec.rb +36 -0
  994. data/test/ruby/shared/spawners/reload_single_spec.rb +52 -0
  995. data/test/ruby/shared/spawners/spawn_server_spec.rb +28 -0
  996. data/test/ruby/shared/spawners/spawner_spec.rb +273 -0
  997. data/test/ruby/shared/utils/pseudo_io_spec.rb +60 -0
  998. data/test/ruby/spawn_manager_spec.rb +104 -175
  999. data/test/ruby/spec_helper.rb +104 -0
  1000. data/test/ruby/utils/file_system_watcher_spec.rb +221 -0
  1001. data/test/ruby/utils/hosts_file_parser.rb +258 -0
  1002. data/test/ruby/utils/unseekable_socket_spec.rb +66 -0
  1003. data/test/ruby/utils_spec.rb +410 -59
  1004. data/test/ruby/wsgi/application_spawner_spec.rb +16 -20
  1005. data/test/stub/apache2/httpd.conf.erb +11 -6
  1006. data/test/stub/message_channel.rb +3 -1
  1007. data/test/stub/message_channel_2.rb +3 -1
  1008. data/test/stub/message_channel_3.rb +5 -3
  1009. data/test/stub/nginx/nginx.conf.erb +3 -2
  1010. data/test/stub/rails_apps/1.2/empty/Rakefile +10 -0
  1011. data/test/stub/rails_apps/1.2/empty/app/controllers/application.rb +7 -0
  1012. data/test/stub/rails_apps/{foobar → 1.2/empty}/app/helpers/application_helper.rb +0 -0
  1013. data/test/stub/rails_apps/{mycook → 1.2/empty}/config/boot.rb +3 -3
  1014. data/test/stub/rails_apps/1.2/empty/config/database.yml +31 -0
  1015. data/test/stub/rails_apps/1.2/empty/config/environment.rb +66 -0
  1016. data/test/stub/rails_apps/1.2/empty/config/environments/development.rb +21 -0
  1017. data/test/stub/rails_apps/{foobar → 1.2/empty}/config/environments/production.rb +0 -0
  1018. data/test/stub/rails_apps/1.2/empty/config/environments/staging.rb +18 -0
  1019. data/test/stub/rails_apps/1.2/empty/config/environments/test.rb +19 -0
  1020. data/test/stub/rails_apps/1.2/empty/config/routes.rb +23 -0
  1021. data/test/stub/rails_apps/1.2/empty/doc/README_FOR_APP +2 -0
  1022. data/test/stub/rails_apps/{mycook → 1.2/empty}/public/404.html +0 -0
  1023. data/test/stub/rails_apps/1.2/empty/public/500.html +30 -0
  1024. data/test/stub/rails_apps/1.2/empty/public/dispatch.cgi +10 -0
  1025. data/test/stub/rails_apps/1.2/empty/public/dispatch.fcgi +24 -0
  1026. data/test/stub/rails_apps/1.2/empty/public/dispatch.rb +10 -0
  1027. data/test/stub/rails_apps/{mycook → 1.2/empty}/public/favicon.ico +0 -0
  1028. data/test/stub/rails_apps/{mycook → 1.2/empty}/public/images/rails.png +0 -0
  1029. data/test/stub/rails_apps/1.2/empty/public/robots.txt +1 -0
  1030. data/test/stub/rails_apps/1.2/empty/script/about +3 -0
  1031. data/test/stub/rails_apps/1.2/empty/script/breakpointer +3 -0
  1032. data/test/stub/rails_apps/1.2/empty/script/console +3 -0
  1033. data/test/stub/rails_apps/1.2/empty/script/destroy +3 -0
  1034. data/test/stub/rails_apps/1.2/empty/script/generate +3 -0
  1035. data/test/stub/rails_apps/1.2/empty/script/performance/benchmarker +3 -0
  1036. data/test/stub/rails_apps/1.2/empty/script/performance/profiler +3 -0
  1037. data/test/stub/rails_apps/1.2/empty/script/plugin +3 -0
  1038. data/test/stub/rails_apps/1.2/empty/script/process/inspector +3 -0
  1039. data/test/stub/rails_apps/1.2/empty/script/process/reaper +3 -0
  1040. data/test/stub/rails_apps/1.2/empty/script/process/spawner +3 -0
  1041. data/test/stub/rails_apps/1.2/empty/script/runner +3 -0
  1042. data/test/stub/rails_apps/1.2/empty/script/server +3 -0
  1043. data/test/stub/rails_apps/1.2/empty/test/test_helper.rb +28 -0
  1044. data/test/stub/rails_apps/2.0/empty/Rakefile +10 -0
  1045. data/test/stub/rails_apps/2.0/empty/app/controllers/application.rb +10 -0
  1046. data/test/stub/rails_apps/{mycook → 2.0/empty}/app/helpers/application_helper.rb +0 -0
  1047. data/test/stub/rails_apps/{foobar → 2.0/empty}/config/boot.rb +3 -3
  1048. data/test/stub/rails_apps/2.0/empty/config/database.yml +31 -0
  1049. data/test/stub/rails_apps/2.0/empty/config/environment.rb +59 -0
  1050. data/test/stub/rails_apps/{mycook → 2.0/empty}/config/environments/development.rb +1 -1
  1051. data/test/stub/rails_apps/2.0/empty/config/environments/production.rb +18 -0
  1052. data/test/stub/rails_apps/2.0/empty/config/environments/staging.rb +18 -0
  1053. data/test/stub/rails_apps/2.0/empty/config/environments/test.rb +22 -0
  1054. data/test/stub/rails_apps/{foobar → 2.0/empty}/config/initializers/inflections.rb +0 -0
  1055. data/test/stub/rails_apps/{foobar → 2.0/empty}/config/initializers/mime_types.rb +0 -0
  1056. data/test/stub/rails_apps/{foobar → 2.0/empty}/config/routes.rb +0 -0
  1057. data/test/stub/rails_apps/2.0/empty/doc/README_FOR_APP +2 -0
  1058. data/test/stub/rails_apps/2.0/empty/public/404.html +30 -0
  1059. data/test/stub/rails_apps/{mycook → 2.0/empty}/public/422.html +0 -0
  1060. data/test/stub/rails_apps/{mycook → 2.0/empty}/public/500.html +0 -0
  1061. data/test/stub/rails_apps/2.0/empty/public/dispatch.cgi +10 -0
  1062. data/test/stub/rails_apps/2.0/empty/public/dispatch.fcgi +24 -0
  1063. data/test/stub/rails_apps/2.0/empty/public/dispatch.rb +10 -0
  1064. data/test/stub/rails_apps/2.0/empty/public/favicon.ico +0 -0
  1065. data/test/stub/rails_apps/2.0/empty/public/images/rails.png +0 -0
  1066. data/test/stub/rails_apps/{mycook → 2.0/empty}/public/robots.txt +0 -0
  1067. data/test/stub/rails_apps/2.0/empty/script/about +3 -0
  1068. data/test/stub/rails_apps/2.0/empty/script/console +3 -0
  1069. data/test/stub/rails_apps/2.0/empty/script/destroy +3 -0
  1070. data/test/stub/rails_apps/2.0/empty/script/generate +3 -0
  1071. data/test/stub/rails_apps/2.0/empty/script/performance/benchmarker +3 -0
  1072. data/test/stub/rails_apps/2.0/empty/script/performance/profiler +3 -0
  1073. data/test/stub/rails_apps/2.0/empty/script/performance/request +3 -0
  1074. data/test/stub/rails_apps/2.0/empty/script/plugin +3 -0
  1075. data/test/stub/rails_apps/2.0/empty/script/process/inspector +3 -0
  1076. data/test/stub/rails_apps/2.0/empty/script/process/reaper +3 -0
  1077. data/test/stub/rails_apps/2.0/empty/script/process/spawner +3 -0
  1078. data/test/stub/rails_apps/2.0/empty/script/runner +3 -0
  1079. data/test/stub/rails_apps/2.0/empty/script/server +3 -0
  1080. data/test/stub/rails_apps/2.0/empty/test/test_helper.rb +38 -0
  1081. data/test/stub/rails_apps/2.2/empty/Rakefile +10 -0
  1082. data/test/stub/rails_apps/2.2/empty/app/controllers/application.rb +15 -0
  1083. data/test/stub/rails_apps/2.2/empty/app/helpers/application_helper.rb +3 -0
  1084. data/test/stub/rails_apps/2.2/empty/config/boot.rb +109 -0
  1085. data/test/stub/rails_apps/2.2/empty/config/database.yml +31 -0
  1086. data/test/stub/rails_apps/2.2/empty/config/environment.rb +75 -0
  1087. data/test/stub/rails_apps/{foobar → 2.2/empty}/config/environments/development.rb +0 -0
  1088. data/test/stub/rails_apps/2.2/empty/config/environments/production.rb +24 -0
  1089. data/test/stub/rails_apps/2.2/empty/config/environments/staging.rb +24 -0
  1090. data/test/stub/rails_apps/2.2/empty/config/environments/test.rb +22 -0
  1091. data/test/stub/rails_apps/2.2/empty/config/initializers/inflections.rb +10 -0
  1092. data/test/stub/rails_apps/{mycook → 2.2/empty}/config/initializers/mime_types.rb +0 -0
  1093. data/test/stub/rails_apps/2.2/empty/config/initializers/new_rails_defaults.rb +17 -0
  1094. data/test/stub/rails_apps/2.2/empty/config/locales/en.yml +5 -0
  1095. data/test/stub/rails_apps/2.2/empty/config/routes.rb +43 -0
  1096. data/test/stub/rails_apps/2.2/empty/doc/README_FOR_APP +5 -0
  1097. data/test/stub/rails_apps/2.2/empty/public/404.html +30 -0
  1098. data/test/stub/rails_apps/2.2/empty/public/422.html +30 -0
  1099. data/test/stub/rails_apps/2.2/empty/public/500.html +33 -0
  1100. data/test/stub/rails_apps/2.2/empty/public/dispatch.cgi +10 -0
  1101. data/test/stub/rails_apps/2.2/empty/public/dispatch.fcgi +24 -0
  1102. data/test/stub/rails_apps/2.2/empty/public/dispatch.rb +10 -0
  1103. data/test/stub/rails_apps/2.2/empty/public/favicon.ico +0 -0
  1104. data/test/stub/rails_apps/2.2/empty/public/images/rails.png +0 -0
  1105. data/test/stub/rails_apps/2.2/empty/public/robots.txt +5 -0
  1106. data/test/stub/rails_apps/2.2/empty/script/about +4 -0
  1107. data/test/stub/rails_apps/2.2/empty/script/console +3 -0
  1108. data/test/stub/rails_apps/2.2/empty/script/dbconsole +3 -0
  1109. data/test/stub/rails_apps/2.2/empty/script/destroy +3 -0
  1110. data/test/stub/rails_apps/2.2/empty/script/generate +3 -0
  1111. data/test/stub/rails_apps/2.2/empty/script/performance/benchmarker +3 -0
  1112. data/test/stub/rails_apps/2.2/empty/script/performance/profiler +3 -0
  1113. data/test/stub/rails_apps/2.2/empty/script/performance/request +3 -0
  1114. data/test/stub/rails_apps/2.2/empty/script/plugin +3 -0
  1115. data/test/stub/rails_apps/2.2/empty/script/process/inspector +3 -0
  1116. data/test/stub/rails_apps/2.2/empty/script/process/reaper +3 -0
  1117. data/test/stub/rails_apps/2.2/empty/script/process/spawner +3 -0
  1118. data/test/stub/rails_apps/2.2/empty/script/runner +3 -0
  1119. data/test/stub/rails_apps/2.2/empty/script/server +3 -0
  1120. data/test/stub/rails_apps/2.2/empty/test/performance/browsing_test.rb +9 -0
  1121. data/test/stub/rails_apps/2.2/empty/test/test_helper.rb +38 -0
  1122. data/test/stub/rails_apps/2.3/empty/Rakefile +10 -0
  1123. data/test/stub/rails_apps/2.3/empty/app/controllers/application_controller.rb +10 -0
  1124. data/test/stub/rails_apps/2.3/empty/app/helpers/application_helper.rb +3 -0
  1125. data/test/stub/rails_apps/2.3/empty/config/boot.rb +110 -0
  1126. data/test/stub/rails_apps/2.3/empty/config/database.yml +31 -0
  1127. data/test/stub/rails_apps/2.3/empty/config/environment.rb +41 -0
  1128. data/test/stub/rails_apps/2.3/empty/config/environments/development.rb +17 -0
  1129. data/test/stub/rails_apps/2.3/empty/config/environments/production.rb +28 -0
  1130. data/test/stub/rails_apps/2.3/empty/config/environments/staging.rb +28 -0
  1131. data/test/stub/rails_apps/2.3/empty/config/environments/test.rb +28 -0
  1132. data/test/stub/rails_apps/2.3/empty/config/initializers/backtrace_silencers.rb +7 -0
  1133. data/test/stub/rails_apps/2.3/empty/config/initializers/inflections.rb +10 -0
  1134. data/test/stub/rails_apps/2.3/empty/config/initializers/mime_types.rb +5 -0
  1135. data/test/stub/rails_apps/2.3/empty/config/initializers/new_rails_defaults.rb +21 -0
  1136. data/test/stub/rails_apps/2.3/empty/config/initializers/session_store.rb +15 -0
  1137. data/test/stub/rails_apps/2.3/empty/config/locales/en.yml +5 -0
  1138. data/test/stub/rails_apps/2.3/empty/config/routes.rb +43 -0
  1139. data/test/stub/rails_apps/2.3/empty/db/seeds.rb +7 -0
  1140. data/test/stub/rails_apps/2.3/empty/doc/README_FOR_APP +2 -0
  1141. data/test/stub/rails_apps/2.3/empty/public/404.html +30 -0
  1142. data/test/stub/rails_apps/2.3/empty/public/422.html +30 -0
  1143. data/test/stub/rails_apps/2.3/empty/public/500.html +30 -0
  1144. data/test/stub/rails_apps/2.3/empty/public/favicon.ico +0 -0
  1145. data/test/stub/rails_apps/2.3/empty/public/images/rails.png +0 -0
  1146. data/test/stub/rails_apps/2.3/empty/public/robots.txt +5 -0
  1147. data/test/stub/rails_apps/2.3/empty/script/about +4 -0
  1148. data/test/stub/rails_apps/2.3/empty/script/console +3 -0
  1149. data/test/stub/rails_apps/2.3/empty/script/dbconsole +3 -0
  1150. data/test/stub/rails_apps/2.3/empty/script/destroy +3 -0
  1151. data/test/stub/rails_apps/2.3/empty/script/generate +3 -0
  1152. data/test/stub/rails_apps/2.3/empty/script/performance/benchmarker +3 -0
  1153. data/test/stub/rails_apps/2.3/empty/script/performance/profiler +3 -0
  1154. data/test/stub/rails_apps/2.3/empty/script/plugin +3 -0
  1155. data/test/stub/rails_apps/2.3/empty/script/runner +3 -0
  1156. data/test/stub/rails_apps/2.3/empty/script/server +3 -0
  1157. data/test/stub/rails_apps/2.3/empty/test/performance/browsing_test.rb +9 -0
  1158. data/test/stub/rails_apps/2.3/empty/test/test_helper.rb +38 -0
  1159. data/test/stub/rails_apps/2.3/foobar/Rakefile +10 -0
  1160. data/test/stub/rails_apps/{foobar/app/controllers/application.rb → 2.3/foobar/app/controllers/application_controller.rb} +0 -0
  1161. data/test/stub/rails_apps/{foobar → 2.3/foobar}/app/controllers/bar_controller_1.rb +0 -0
  1162. data/test/stub/rails_apps/{foobar → 2.3/foobar}/app/controllers/bar_controller_2.rb +0 -0
  1163. data/test/stub/rails_apps/{foobar → 2.3/foobar}/app/controllers/foo_controller.rb +0 -0
  1164. data/test/stub/rails_apps/2.3/foobar/app/helpers/application_helper.rb +3 -0
  1165. data/test/stub/rails_apps/2.3/foobar/config/boot.rb +110 -0
  1166. data/test/stub/rails_apps/{foobar → 2.3/foobar}/config/database.yml +0 -0
  1167. data/test/stub/rails_apps/{foobar → 2.3/foobar}/config/environment.rb +1 -1
  1168. data/test/stub/rails_apps/2.3/foobar/config/environments/development.rb +17 -0
  1169. data/test/stub/rails_apps/2.3/foobar/config/environments/production.rb +18 -0
  1170. data/test/stub/rails_apps/2.3/foobar/config/environments/staging.rb +18 -0
  1171. data/test/stub/rails_apps/{mycook → 2.3/foobar}/config/initializers/inflections.rb +0 -0
  1172. data/test/stub/rails_apps/2.3/foobar/config/initializers/mime_types.rb +5 -0
  1173. data/test/stub/rails_apps/2.3/foobar/config/routes.rb +35 -0
  1174. data/test/stub/rails_apps/2.3/foobar/script/about +3 -0
  1175. data/test/stub/rails_apps/2.3/foobar/script/console +3 -0
  1176. data/test/stub/rails_apps/2.3/foobar/script/dbconsole +3 -0
  1177. data/test/stub/rails_apps/2.3/foobar/script/destroy +3 -0
  1178. data/test/stub/rails_apps/2.3/foobar/script/generate +3 -0
  1179. data/test/stub/rails_apps/2.3/foobar/script/performance/benchmarker +3 -0
  1180. data/test/stub/rails_apps/2.3/foobar/script/performance/profiler +3 -0
  1181. data/test/stub/rails_apps/2.3/foobar/script/performance/request +3 -0
  1182. data/test/stub/rails_apps/2.3/foobar/script/plugin +3 -0
  1183. data/test/stub/rails_apps/2.3/foobar/script/process/inspector +3 -0
  1184. data/test/stub/rails_apps/2.3/foobar/script/process/reaper +3 -0
  1185. data/test/stub/rails_apps/2.3/foobar/script/process/spawner +3 -0
  1186. data/test/stub/rails_apps/2.3/foobar/script/runner +3 -0
  1187. data/test/stub/rails_apps/2.3/foobar/script/server +3 -0
  1188. data/test/stub/rails_apps/2.3/mycook/Rakefile +10 -0
  1189. data/test/stub/rails_apps/{mycook/app/controllers/application.rb → 2.3/mycook/app/controllers/application_controller.rb} +0 -0
  1190. data/test/stub/rails_apps/{mycook → 2.3/mycook}/app/controllers/recipes_controller.rb +0 -0
  1191. data/test/stub/rails_apps/{mycook → 2.3/mycook}/app/controllers/uploads_controller.rb +0 -0
  1192. data/test/stub/rails_apps/{mycook → 2.3/mycook}/app/controllers/welcome_controller.rb +0 -0
  1193. data/test/stub/rails_apps/2.3/mycook/app/helpers/application_helper.rb +3 -0
  1194. data/test/stub/rails_apps/{mycook → 2.3/mycook}/app/views/layouts/default.rhtml +0 -0
  1195. data/test/stub/rails_apps/{mycook → 2.3/mycook}/app/views/recipes/create.rhtml +0 -0
  1196. data/test/stub/rails_apps/{mycook → 2.3/mycook}/app/views/recipes/index.rhtml +0 -0
  1197. data/test/stub/rails_apps/{mycook → 2.3/mycook}/app/views/recipes/new.rhtml +0 -0
  1198. data/test/stub/rails_apps/{mycook → 2.3/mycook}/app/views/uploads/index.rhtml +0 -0
  1199. data/test/stub/rails_apps/{mycook → 2.3/mycook}/app/views/uploads/new.html.erb +0 -0
  1200. data/test/stub/rails_apps/{mycook → 2.3/mycook}/app/views/welcome/cached.rhtml +0 -0
  1201. data/test/stub/rails_apps/{mycook → 2.3/mycook}/app/views/welcome/index.rhtml +0 -0
  1202. data/test/stub/rails_apps/2.3/mycook/config/boot.rb +110 -0
  1203. data/test/stub/rails_apps/{mycook → 2.3/mycook}/config/database.yml +0 -0
  1204. data/test/stub/rails_apps/{mycook → 2.3/mycook}/config/environment.rb +1 -1
  1205. data/test/stub/rails_apps/2.3/mycook/config/environments/development.rb +18 -0
  1206. data/test/stub/rails_apps/{mycook → 2.3/mycook}/config/environments/production.rb +0 -0
  1207. data/test/stub/rails_apps/2.3/mycook/config/initializers/inflections.rb +10 -0
  1208. data/test/stub/rails_apps/2.3/mycook/config/initializers/mime_types.rb +5 -0
  1209. data/test/stub/rails_apps/{mycook → 2.3/mycook}/config/routes.rb +0 -0
  1210. data/test/stub/rails_apps/{mycook → 2.3/mycook}/log/useless.txt +0 -0
  1211. data/test/stub/rails_apps/2.3/mycook/public/404.html +30 -0
  1212. data/test/stub/rails_apps/2.3/mycook/public/422.html +30 -0
  1213. data/test/stub/rails_apps/2.3/mycook/public/500.html +30 -0
  1214. data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/dispatch.cgi +0 -0
  1215. data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/dispatch.fcgi +0 -0
  1216. data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/dispatch.rb +1 -1
  1217. data/test/stub/rails_apps/2.3/mycook/public/favicon.ico +0 -0
  1218. data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/images/angrywizard.gif +0 -0
  1219. data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/images/cookbook.gif +0 -0
  1220. data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/images/header.png +0 -0
  1221. data/test/stub/rails_apps/2.3/mycook/public/images/rails.png +0 -0
  1222. data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/javascripts/application.js +0 -0
  1223. data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/javascripts/controls.js +73 -73
  1224. data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/javascripts/dragdrop.js +166 -165
  1225. data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/javascripts/effects.js +174 -166
  1226. data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/javascripts/prototype.js +362 -267
  1227. data/test/stub/rails_apps/2.3/mycook/public/robots.txt +5 -0
  1228. data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/uploads.html +0 -0
  1229. data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/welcome/cached.html +0 -0
  1230. data/test/stub/rails_apps/2.3/mycook/script/about +3 -0
  1231. data/test/stub/rails_apps/2.3/mycook/script/console +3 -0
  1232. data/test/stub/rails_apps/2.3/mycook/script/dbconsole +3 -0
  1233. data/test/stub/rails_apps/2.3/mycook/script/destroy +3 -0
  1234. data/test/stub/rails_apps/2.3/mycook/script/generate +3 -0
  1235. data/test/stub/rails_apps/2.3/mycook/script/performance/benchmarker +3 -0
  1236. data/test/stub/rails_apps/2.3/mycook/script/performance/profiler +3 -0
  1237. data/test/stub/rails_apps/2.3/mycook/script/performance/request +3 -0
  1238. data/test/stub/rails_apps/2.3/mycook/script/plugin +3 -0
  1239. data/test/stub/rails_apps/2.3/mycook/script/process/inspector +3 -0
  1240. data/test/stub/rails_apps/2.3/mycook/script/process/reaper +3 -0
  1241. data/test/stub/rails_apps/2.3/mycook/script/process/spawner +3 -0
  1242. data/test/stub/rails_apps/2.3/mycook/script/runner +3 -0
  1243. data/test/stub/rails_apps/2.3/mycook/script/server +3 -0
  1244. data/test/stub/rails_apps/{mycook → 2.3/mycook}/sites/some.site/public/uploads.html +0 -0
  1245. data/test/stub/rails_apps/{mycook → 2.3/mycook}/sites/some.site/public/welcome/cached.html +0 -0
  1246. data/test/stub/rails_apps/{mycook → 2.3/mycook}/tmp/cache/useless.txt +0 -0
  1247. data/test/stub/rails_apps/{mycook → 2.3/mycook}/tmp/pids/useless.txt +0 -0
  1248. data/test/stub/rails_apps/{mycook → 2.3/mycook}/tmp/sessions/useless.txt +0 -0
  1249. data/test/stub/rails_apps/{mycook → 2.3/mycook}/tmp/sockets/useless.txt +0 -0
  1250. data/test/stub/rails_apps/3.0/empty/Gemfile +22 -0
  1251. data/test/stub/rails_apps/3.0/empty/Rakefile +10 -0
  1252. data/test/stub/rails_apps/3.0/empty/app/controllers/application_controller.rb +4 -0
  1253. data/test/stub/rails_apps/3.0/empty/app/helpers/application_helper.rb +2 -0
  1254. data/test/stub/rails_apps/3.0/empty/app/views/layouts/application.html.erb +14 -0
  1255. data/test/stub/rails_apps/3.0/empty/config.ru +4 -0
  1256. data/test/stub/rails_apps/3.0/empty/config/application.rb +48 -0
  1257. data/test/stub/rails_apps/3.0/empty/config/boot.rb +13 -0
  1258. data/test/stub/rails_apps/3.0/empty/config/database.yml +22 -0
  1259. data/test/stub/rails_apps/3.0/empty/config/environment.rb +5 -0
  1260. data/test/stub/rails_apps/3.0/empty/config/environments/development.rb +19 -0
  1261. data/test/stub/rails_apps/3.0/empty/config/environments/production.rb +48 -0
  1262. data/test/stub/rails_apps/3.0/empty/config/environments/test.rb +32 -0
  1263. data/test/stub/rails_apps/3.0/empty/config/initializers/backtrace_silencers.rb +7 -0
  1264. data/test/stub/rails_apps/3.0/empty/config/initializers/inflections.rb +10 -0
  1265. data/test/stub/rails_apps/3.0/empty/config/initializers/mime_types.rb +5 -0
  1266. data/test/stub/rails_apps/3.0/empty/config/initializers/passenger.rb +1 -0
  1267. data/test/stub/rails_apps/3.0/empty/config/initializers/secret_token.rb +7 -0
  1268. data/test/stub/rails_apps/3.0/empty/config/initializers/session_store.rb +8 -0
  1269. data/test/stub/rails_apps/3.0/empty/config/locales/en.yml +5 -0
  1270. data/test/stub/rails_apps/3.0/empty/config/routes.rb +58 -0
  1271. data/test/stub/rails_apps/3.0/empty/db/seeds.rb +7 -0
  1272. data/test/stub/rails_apps/3.0/empty/doc/README_FOR_APP +2 -0
  1273. data/test/stub/rails_apps/3.0/empty/log/development.log +3 -0
  1274. data/test/stub/rails_apps/3.0/empty/public/404.html +26 -0
  1275. data/test/stub/rails_apps/3.0/empty/public/422.html +26 -0
  1276. data/test/stub/rails_apps/3.0/empty/public/500.html +26 -0
  1277. data/test/stub/rails_apps/3.0/empty/public/favicon.ico +0 -0
  1278. data/test/stub/rails_apps/3.0/empty/public/index.html +279 -0
  1279. data/test/stub/rails_apps/3.0/empty/public/robots.txt +5 -0
  1280. data/test/stub/rails_apps/3.0/empty/script/rails +9 -0
  1281. data/test/stub/rails_apps/3.0/empty/test/performance/browsing_test.rb +9 -0
  1282. data/test/stub/rails_apps/3.0/empty/test/test_helper.rb +13 -0
  1283. data/test/stub/spawn_server.rb +4 -2
  1284. data/test/stub/vendor_rails/minimal/actionpack/lib/action_controller.rb +3 -0
  1285. data/test/stub/vendor_rails/minimal/railties/lib/initializer.rb +7 -2
  1286. data/test/support/apache2_controller.rb +10 -2
  1287. data/test/support/nginx_controller.rb +3 -2
  1288. data/test/support/test_helper.rb +282 -46
  1289. data/test/{support → tut}/tut.h +6 -0
  1290. data/test/{support → tut}/tut_reporter.h +0 -0
  1291. metadata +824 -266
  1292. data/benchmark/ApplicationPool.cpp +0 -52
  1293. data/benchmark/accept_vs_socketpair_vs_named_pipes.rb +0 -126
  1294. data/benchmark/dispatcher.rb +0 -42
  1295. data/benchmark/overhead_of_password_checking.rb +0 -81
  1296. data/benchmark/socket_connections_vs_persistent_pipe.rb +0 -99
  1297. data/benchmark/unix_sockets_vs_pipes.rb +0 -83
  1298. data/ext/boost/LICENSE.TXT +0 -23
  1299. data/ext/boost/VERSION.TXT +0 -1
  1300. data/ext/boost/detail/sp_counted_base.hpp +0 -81
  1301. data/ext/boost/src/pthread/exceptions.cpp +0 -146
  1302. data/ext/boost/src/win32/exceptions.cpp +0 -124
  1303. data/ext/boost/src/win32/thread.cpp +0 -629
  1304. data/ext/boost/src/win32/timeconv.inl +0 -130
  1305. data/ext/boost/src/win32/tss_dll.cpp +0 -72
  1306. data/ext/boost/src/win32/tss_pe.cpp +0 -269
  1307. data/ext/boost/thread/pthread/thread.hpp +0 -339
  1308. data/ext/boost/thread/pthread/tss.hpp +0 -103
  1309. data/ext/common/Application.h +0 -511
  1310. data/ext/common/ApplicationPoolServer.h +0 -794
  1311. data/ext/common/ApplicationPoolServerExecutable.cpp +0 -743
  1312. data/ext/common/ApplicationPoolStatusReporter.h +0 -336
  1313. data/ext/common/DummySpawnManager.h +0 -108
  1314. data/ext/common/StandardApplicationPool.h +0 -821
  1315. data/ext/common/SystemTime.h +0 -88
  1316. data/lib/phusion_passenger/admin_tools/control_process.rb +0 -150
  1317. data/lib/phusion_passenger/railz/application_spawner.rb +0 -463
  1318. data/lib/phusion_passenger/templates/invalid_app_root.html.erb +0 -9
  1319. data/test/ApplicationPoolServerTest.cpp +0 -114
  1320. data/test/ApplicationPoolServer_ApplicationPoolTest.cpp +0 -33
  1321. data/test/ApplicationPoolTest.cpp +0 -599
  1322. data/test/MessageChannelTest.cpp +0 -320
  1323. data/test/SpawnManagerTest.cpp +0 -64
  1324. data/test/StandardApplicationPoolTest.cpp +0 -27
  1325. data/test/StaticStringTest.cpp +0 -51
  1326. data/test/UtilsTest.cpp +0 -257
  1327. data/test/ruby/rails/application_spawner_spec.rb +0 -159
  1328. data/test/ruby/rails/framework_spawner_spec.rb +0 -133
  1329. data/test/ruby/rails/minimal_spawner_spec.rb +0 -93
  1330. data/test/ruby/rails/spawner_error_handling_spec.rb +0 -107
  1331. data/test/ruby/rails/spawner_privilege_lowering_spec.rb +0 -97
  1332. data/test/ruby/spawn_server_spec.rb +0 -26
  1333. data/test/stub/MessageServer.dSYM/Contents/Info.plist +0 -25
  1334. data/test/stub/MessageServer.dSYM/Contents/Resources/DWARF/MessageServer +0 -0
  1335. data/test/support/Support.cpp +0 -84
  1336. data/test/support/Support.h +0 -118
  1337. data/test/support/config.rb +0 -38
  1338. data/test/support/run_rspec_tests.rb +0 -10
@@ -1,10 +1,13 @@
1
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
- <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
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"/>
3
5
  <title>Passenger: Member List</title>
4
- <link href="tabs.css" rel="stylesheet" type="text/css">
5
- <link href="doxygen.css" rel="stylesheet" type="text/css">
6
- </head><body>
7
- <!-- Generated by Doxygen 1.5.8 -->
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 -->
8
11
  <div class="navigation" id="top">
9
12
  <div class="tabs">
10
13
  <ul>
@@ -24,10 +27,10 @@
24
27
  </div>
25
28
  </div>
26
29
  <div class="contents">
27
- <h1>Passenger::SecurityException Member List</h1>This is the complete list of members for <a class="el" href="classPassenger_1_1SecurityException.html">Passenger::SecurityException</a>, including all inherited members.<p><table>
30
+ <h1>Passenger::SecurityException Member List</h1>This is the complete list of members for <a class="el" href="classPassenger_1_1SecurityException.html">Passenger::SecurityException</a>, including all inherited members.<table>
28
31
  </table></div>
29
- <hr size="1"><address style="text-align: right;"><small>Generated on Sun Mar 28 14:11:59 2010 for Passenger by&nbsp;
32
+ <hr size="1"/><address style="text-align: right;"><small>Generated by&nbsp;
30
33
  <a href="http://www.doxygen.org/index.html">
31
- <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
34
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
32
35
  </body>
33
36
  </html>
@@ -1,10 +1,13 @@
1
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
- <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
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"/>
3
5
  <title>Passenger: Passenger::SecurityException Class Reference</title>
4
- <link href="tabs.css" rel="stylesheet" type="text/css">
5
- <link href="doxygen.css" rel="stylesheet" type="text/css">
6
- </head><body>
7
- <!-- Generated by Doxygen 1.5.8 -->
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 -->
8
11
  <div class="navigation" id="top">
9
12
  <div class="tabs">
10
13
  <ul>
@@ -26,27 +29,28 @@
26
29
  </div>
27
30
  </div>
28
31
  <div class="contents">
29
- <h1>Passenger::SecurityException Class Reference<br>
32
+ <h1>Passenger::SecurityException Class Reference<br/>
30
33
  <small>
31
34
  [<a class="el" href="group__Exceptions.html">Exceptions</a>]</small>
32
- </h1><!-- doxytag: class="Passenger::SecurityException" -->Represents some kind of security error.
33
- <a href="#_details">More...</a>
34
- <p>
35
- <code>#include &lt;<a class="el" href="Exceptions_8h-source.html">Exceptions.h</a>&gt;</code>
36
- <p>
37
- Inherited by Passenger::NonExistentGroupException, and Passenger::NonExistentUserException.
38
- <p>
35
+ </h1><!-- doxytag: class="Passenger::SecurityException" -->
36
+ <p>Represents some kind of security error.
37
+ <a href="#_details">More...</a></p>
39
38
 
40
- <p>
41
- <a href="classPassenger_1_1SecurityException-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
42
- <tr><td></td></tr>
39
+ <p><code>#include &lt;<a class="el" href="Exceptions_8h_source.html">Exceptions.h</a>&gt;</code></p>
40
+
41
+ <p>Inherited by Passenger::NonExistentGroupException, and Passenger::NonExistentUserException.</p>
42
+
43
+ <p><a href="classPassenger_1_1SecurityException-members.html">List of all members.</a></p>
44
+ <table border="0" cellpadding="0" cellspacing="0">
43
45
  </table>
44
- <hr><a name="_details"></a><h2>Detailed Description</h2>
45
- Represents some kind of security error. <hr>The documentation for this class was generated from the following file:<ul>
46
- <li><a class="el" href="Exceptions_8h-source.html">Exceptions.h</a></ul>
46
+ <hr/><a name="_details"></a><h2>Detailed Description</h2>
47
+ <p>Represents some kind of security error. </p>
48
+ <hr/>The documentation for this class was generated from the following file:<ul>
49
+ <li><a class="el" href="Exceptions_8h_source.html">Exceptions.h</a></li>
50
+ </ul>
47
51
  </div>
48
- <hr size="1"><address style="text-align: right;"><small>Generated on Sun Mar 28 14:11:59 2010 for Passenger by&nbsp;
52
+ <hr size="1"/><address style="text-align: right;"><small>Generated by&nbsp;
49
53
  <a href="http://www.doxygen.org/index.html">
50
- <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
54
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
51
55
  </body>
52
56
  </html>
@@ -1,10 +1,13 @@
1
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
- <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
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"/>
3
5
  <title>Passenger: Member List</title>
4
- <link href="tabs.css" rel="stylesheet" type="text/css">
5
- <link href="doxygen.css" rel="stylesheet" type="text/css">
6
- </head><body>
7
- <!-- Generated by Doxygen 1.5.8 -->
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 -->
8
11
  <div class="navigation" id="top">
9
12
  <div class="tabs">
10
13
  <ul>
@@ -24,27 +27,27 @@
24
27
  </div>
25
28
  </div>
26
29
  <div class="contents">
27
- <h1>Passenger::Session Member List</h1>This is the complete list of members for <a class="el" href="classPassenger_1_1Session.html">Passenger::Session</a>, including all inherited members.<p><table>
28
- <tr class="memlist"><td><a class="el" href="classPassenger_1_1Session.html#7ab85388f15388cb8e65873d1ad310a5">closeStream</a>()=0</td><td><a class="el" href="classPassenger_1_1Session.html">Passenger::Session</a></td><td><code> [pure virtual]</code></td></tr>
29
- <tr class="memlist"><td><a class="el" href="classPassenger_1_1Session.html#75344fdfb3c693323877e32884efaa31">discardStream</a>()=0</td><td><a class="el" href="classPassenger_1_1Session.html">Passenger::Session</a></td><td><code> [pure virtual]</code></td></tr>
30
- <tr class="memlist"><td><a class="el" href="classPassenger_1_1Session.html#eaf4f7097f7b3430dc88e8070cad5899">getConnectPassword</a>() const </td><td><a class="el" href="classPassenger_1_1Session.html">Passenger::Session</a></td><td><code> [inline]</code></td></tr>
31
- <tr class="memlist"><td><a class="el" href="classPassenger_1_1Session.html#1b58af5493a61bfe4efbd725dcef61a3">getPid</a>() const =0</td><td><a class="el" href="classPassenger_1_1Session.html">Passenger::Session</a></td><td><code> [pure virtual]</code></td></tr>
32
- <tr class="memlist"><td><a class="el" href="classPassenger_1_1Session.html#7b8a632ebde11544a8ab98fde89954bb">getSocketName</a>() const =0</td><td><a class="el" href="classPassenger_1_1Session.html">Passenger::Session</a></td><td><code> [pure virtual]</code></td></tr>
33
- <tr class="memlist"><td><a class="el" href="classPassenger_1_1Session.html#b8f084ab143d44f1a9ef8e8ccc841485">getSocketType</a>() const =0</td><td><a class="el" href="classPassenger_1_1Session.html">Passenger::Session</a></td><td><code> [pure virtual]</code></td></tr>
34
- <tr class="memlist"><td><a class="el" href="classPassenger_1_1Session.html#949c7a46f4bb0c628730ded2041d2489">getStream</a>() const =0</td><td><a class="el" href="classPassenger_1_1Session.html">Passenger::Session</a></td><td><code> [pure virtual]</code></td></tr>
35
- <tr class="memlist"><td><a class="el" href="classPassenger_1_1Session.html#bbcfa3eb48d38dead20c0d32cab4850b">initiate</a>()=0</td><td><a class="el" href="classPassenger_1_1Session.html">Passenger::Session</a></td><td><code> [pure virtual]</code></td></tr>
36
- <tr class="memlist"><td><a class="el" href="classPassenger_1_1Session.html#bf1b6ba182a0fc66c8e617f74afafb92">initiated</a>() const =0</td><td><a class="el" href="classPassenger_1_1Session.html">Passenger::Session</a></td><td><code> [pure virtual]</code></td></tr>
37
- <tr class="memlist"><td><a class="el" href="classPassenger_1_1Session.html#2203d81e25fe5066aed351608deecf7b">sendBodyBlock</a>(const char *block, unsigned int size)</td><td><a class="el" href="classPassenger_1_1Session.html">Passenger::Session</a></td><td><code> [inline, virtual]</code></td></tr>
38
- <tr class="memlist"><td><a class="el" href="classPassenger_1_1Session.html#8f8a39f78dd2672b00f1ff01e4d6d671">sendHeaders</a>(const char *headers, unsigned int size)</td><td><a class="el" href="classPassenger_1_1Session.html">Passenger::Session</a></td><td><code> [inline, virtual]</code></td></tr>
39
- <tr class="memlist"><td><a class="el" href="classPassenger_1_1Session.html#8253d81e64adc0dc72b1dc65a5117aba">sendHeaders</a>(const StaticString &amp;headers)</td><td><a class="el" href="classPassenger_1_1Session.html">Passenger::Session</a></td><td><code> [inline, virtual]</code></td></tr>
40
- <tr class="memlist"><td><a class="el" href="classPassenger_1_1Session.html#5accbd8f7cce66d0ef6695481fdaa39c">setReaderTimeout</a>(unsigned int msec)=0</td><td><a class="el" href="classPassenger_1_1Session.html">Passenger::Session</a></td><td><code> [pure virtual]</code></td></tr>
41
- <tr class="memlist"><td><a class="el" href="classPassenger_1_1Session.html#21dd749c0c8d22f65c6a914ec2f97c94">setWriterTimeout</a>(unsigned int msec)=0</td><td><a class="el" href="classPassenger_1_1Session.html">Passenger::Session</a></td><td><code> [pure virtual]</code></td></tr>
42
- <tr class="memlist"><td><a class="el" href="classPassenger_1_1Session.html#c579d233ddc82542c336b2af1f40c4dd">shutdownReader</a>()=0</td><td><a class="el" href="classPassenger_1_1Session.html">Passenger::Session</a></td><td><code> [pure virtual]</code></td></tr>
43
- <tr class="memlist"><td><a class="el" href="classPassenger_1_1Session.html#8263c568a8ac4567b33728d820cbd920">shutdownWriter</a>()=0</td><td><a class="el" href="classPassenger_1_1Session.html">Passenger::Session</a></td><td><code> [pure virtual]</code></td></tr>
44
- <tr class="memlist"><td><a class="el" href="classPassenger_1_1Session.html#c982015e84f64dbec70daef8fdbd31d9">~Session</a>()</td><td><a class="el" href="classPassenger_1_1Session.html">Passenger::Session</a></td><td><code> [inline, virtual]</code></td></tr>
30
+ <h1>Passenger::Session Member List</h1>This is the complete list of members for <a class="el" href="classPassenger_1_1Session.html">Passenger::Session</a>, including all inherited members.<table>
31
+ <tr class="memlist"><td><a class="el" href="classPassenger_1_1Session.html#a7ab85388f15388cb8e65873d1ad310a5">closeStream</a>()=0</td><td><a class="el" href="classPassenger_1_1Session.html">Passenger::Session</a></td><td><code> [pure virtual]</code></td></tr>
32
+ <tr class="memlist"><td><a class="el" href="classPassenger_1_1Session.html#a75344fdfb3c693323877e32884efaa31">discardStream</a>()=0</td><td><a class="el" href="classPassenger_1_1Session.html">Passenger::Session</a></td><td><code> [pure virtual]</code></td></tr>
33
+ <tr class="memlist"><td><a class="el" href="classPassenger_1_1Session.html#aeaf4f7097f7b3430dc88e8070cad5899">getConnectPassword</a>() const </td><td><a class="el" href="classPassenger_1_1Session.html">Passenger::Session</a></td><td><code> [inline]</code></td></tr>
34
+ <tr class="memlist"><td><a class="el" href="classPassenger_1_1Session.html#a1b58af5493a61bfe4efbd725dcef61a3">getPid</a>() const =0</td><td><a class="el" href="classPassenger_1_1Session.html">Passenger::Session</a></td><td><code> [pure virtual]</code></td></tr>
35
+ <tr class="memlist"><td><a class="el" href="classPassenger_1_1Session.html#a7b8a632ebde11544a8ab98fde89954bb">getSocketName</a>() const =0</td><td><a class="el" href="classPassenger_1_1Session.html">Passenger::Session</a></td><td><code> [pure virtual]</code></td></tr>
36
+ <tr class="memlist"><td><a class="el" href="classPassenger_1_1Session.html#ab8f084ab143d44f1a9ef8e8ccc841485">getSocketType</a>() const =0</td><td><a class="el" href="classPassenger_1_1Session.html">Passenger::Session</a></td><td><code> [pure virtual]</code></td></tr>
37
+ <tr class="memlist"><td><a class="el" href="classPassenger_1_1Session.html#a949c7a46f4bb0c628730ded2041d2489">getStream</a>() const =0</td><td><a class="el" href="classPassenger_1_1Session.html">Passenger::Session</a></td><td><code> [pure virtual]</code></td></tr>
38
+ <tr class="memlist"><td><a class="el" href="classPassenger_1_1Session.html#abbcfa3eb48d38dead20c0d32cab4850b">initiate</a>()=0</td><td><a class="el" href="classPassenger_1_1Session.html">Passenger::Session</a></td><td><code> [pure virtual]</code></td></tr>
39
+ <tr class="memlist"><td><a class="el" href="classPassenger_1_1Session.html#abf1b6ba182a0fc66c8e617f74afafb92">initiated</a>() const =0</td><td><a class="el" href="classPassenger_1_1Session.html">Passenger::Session</a></td><td><code> [pure virtual]</code></td></tr>
40
+ <tr class="memlist"><td><a class="el" href="classPassenger_1_1Session.html#a2203d81e25fe5066aed351608deecf7b">sendBodyBlock</a>(const char *block, unsigned int size)</td><td><a class="el" href="classPassenger_1_1Session.html">Passenger::Session</a></td><td><code> [inline, virtual]</code></td></tr>
41
+ <tr class="memlist"><td><a class="el" href="classPassenger_1_1Session.html#a8f8a39f78dd2672b00f1ff01e4d6d671">sendHeaders</a>(const char *headers, unsigned int size)</td><td><a class="el" href="classPassenger_1_1Session.html">Passenger::Session</a></td><td><code> [inline, virtual]</code></td></tr>
42
+ <tr class="memlist"><td><a class="el" href="classPassenger_1_1Session.html#a8253d81e64adc0dc72b1dc65a5117aba">sendHeaders</a>(const StaticString &amp;headers)</td><td><a class="el" href="classPassenger_1_1Session.html">Passenger::Session</a></td><td><code> [inline, virtual]</code></td></tr>
43
+ <tr class="memlist"><td><a class="el" href="classPassenger_1_1Session.html#a5accbd8f7cce66d0ef6695481fdaa39c">setReaderTimeout</a>(unsigned int msec)=0</td><td><a class="el" href="classPassenger_1_1Session.html">Passenger::Session</a></td><td><code> [pure virtual]</code></td></tr>
44
+ <tr class="memlist"><td><a class="el" href="classPassenger_1_1Session.html#a21dd749c0c8d22f65c6a914ec2f97c94">setWriterTimeout</a>(unsigned int msec)=0</td><td><a class="el" href="classPassenger_1_1Session.html">Passenger::Session</a></td><td><code> [pure virtual]</code></td></tr>
45
+ <tr class="memlist"><td><a class="el" href="classPassenger_1_1Session.html#ac579d233ddc82542c336b2af1f40c4dd">shutdownReader</a>()=0</td><td><a class="el" href="classPassenger_1_1Session.html">Passenger::Session</a></td><td><code> [pure virtual]</code></td></tr>
46
+ <tr class="memlist"><td><a class="el" href="classPassenger_1_1Session.html#a8263c568a8ac4567b33728d820cbd920">shutdownWriter</a>()=0</td><td><a class="el" href="classPassenger_1_1Session.html">Passenger::Session</a></td><td><code> [pure virtual]</code></td></tr>
47
+ <tr class="memlist"><td><a class="el" href="classPassenger_1_1Session.html#ac982015e84f64dbec70daef8fdbd31d9">~Session</a>()</td><td><a class="el" href="classPassenger_1_1Session.html">Passenger::Session</a></td><td><code> [inline, virtual]</code></td></tr>
45
48
  </table></div>
46
- <hr size="1"><address style="text-align: right;"><small>Generated on Sun Mar 28 14:11:59 2010 for Passenger by&nbsp;
49
+ <hr size="1"/><address style="text-align: right;"><small>Generated by&nbsp;
47
50
  <a href="http://www.doxygen.org/index.html">
48
- <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
51
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
49
52
  </body>
50
53
  </html>
@@ -1,10 +1,13 @@
1
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
- <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
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"/>
3
5
  <title>Passenger: Passenger::Session Class Reference</title>
4
- <link href="tabs.css" rel="stylesheet" type="text/css">
5
- <link href="doxygen.css" rel="stylesheet" type="text/css">
6
- </head><body>
7
- <!-- Generated by Doxygen 1.5.8 -->
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 -->
8
11
  <div class="navigation" id="top">
9
12
  <div class="tabs">
10
13
  <ul>
@@ -26,96 +29,82 @@
26
29
  </div>
27
30
  </div>
28
31
  <div class="contents">
29
- <h1>Passenger::Session Class Reference</h1><!-- doxytag: class="Passenger::Session" -->Represents a single request/response pair of an application process.
30
- <a href="#_details">More...</a>
31
- <p>
32
- <code>#include &lt;<a class="el" href="Session_8h-source.html">Session.h</a>&gt;</code>
33
- <p>
32
+ <h1>Passenger::Session Class Reference</h1><!-- doxytag: class="Passenger::Session" -->
33
+ <p>Represents a single request/response pair of an application process.
34
+ <a href="#_details">More...</a></p>
35
+
36
+ <p><code>#include &lt;<a class="el" href="Session_8h_source.html">Session.h</a>&gt;</code></p>
34
37
  <div class="dynheader">
35
38
  Inheritance diagram for Passenger::Session:</div>
36
39
  <div class="dynsection">
37
- <p><center><img src="classPassenger_1_1Session__inherit__graph.png" border="0" usemap="#Passenger_1_1Session__inherit__map" alt="Inheritance graph"></center>
38
- <map name="Passenger_1_1Session__inherit__map">
40
+ <div class="center"><img src="classPassenger_1_1Session__inherit__graph.png" border="0" usemap="#Passenger_1_1Session_inherit__map" alt="Inheritance graph"/></div>
41
+ <map name="Passenger_1_1Session_inherit__map" id="Passenger_1_1Session_inherit__map">
39
42
  <area shape="rect" href="classPassenger_1_1StandardSession.html" title="A &quot;standard&quot; implementation of Session." alt="" coords="5,80,203,107"></map>
40
- <center><font size="2">[<a target="top" href="graph_legend.html">legend</a>]</font></center></div>
41
-
42
- <p>
43
- <a href="classPassenger_1_1Session-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
44
- <tr><td></td></tr>
45
- <tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
46
- <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="c982015e84f64dbec70daef8fdbd31d9"></a><!-- doxytag: member="Passenger::Session::~Session" ref="c982015e84f64dbec70daef8fdbd31d9" args="()" -->
47
- virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Session.html#c982015e84f64dbec70daef8fdbd31d9">~Session</a> ()</td></tr>
48
-
49
- <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Concrete classes might throw arbitrary exceptions. <br></td></tr>
50
- <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Session.html#bbcfa3eb48d38dead20c0d32cab4850b">initiate</a> ()=0</td></tr>
51
-
52
- <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initiate the session by connecting to the associated process. <a href="#bbcfa3eb48d38dead20c0d32cab4850b"></a><br></td></tr>
53
- <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="bf1b6ba182a0fc66c8e617f74afafb92"></a><!-- doxytag: member="Passenger::Session::initiated" ref="bf1b6ba182a0fc66c8e617f74afafb92" args="() const =0" -->
54
- virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Session.html#bf1b6ba182a0fc66c8e617f74afafb92">initiated</a> () const =0</td></tr>
55
-
56
- <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns whether this session has been initiated (that is, whether <a class="el" href="classPassenger_1_1Session.html#bbcfa3eb48d38dead20c0d32cab4850b" title="Initiate the session by connecting to the associated process.">initiate()</a> had been called in the past). <br></td></tr>
57
- <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Session.html#b8f084ab143d44f1a9ef8e8ccc841485">getSocketType</a> () const =0</td></tr>
58
-
59
- <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the type of the socket that this session is served from, e.g. <a href="#b8f084ab143d44f1a9ef8e8ccc841485"></a><br></td></tr>
60
- <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Session.html#7b8a632ebde11544a8ab98fde89954bb">getSocketName</a> () const =0</td></tr>
61
-
62
- <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the address of the socket that this session is served from. <a href="#7b8a632ebde11544a8ab98fde89954bb"></a><br></td></tr>
63
- <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Session.html#8f8a39f78dd2672b00f1ff01e4d6d671">sendHeaders</a> (const char *headers, unsigned int size)</td></tr>
64
-
65
- <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Send HTTP request headers to the application. <a href="#8f8a39f78dd2672b00f1ff01e4d6d671"></a><br></td></tr>
66
- <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Session.html#8253d81e64adc0dc72b1dc65a5117aba">sendHeaders</a> (const <a class="el" href="classPassenger_1_1StaticString.html">StaticString</a> &amp;headers)</td></tr>
67
-
68
- <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convenience shortcut for <a class="el" href="classPassenger_1_1Session.html#8f8a39f78dd2672b00f1ff01e4d6d671" title="Send HTTP request headers to the application.">sendHeaders(const char *, unsigned int)</a>. <a href="#8253d81e64adc0dc72b1dc65a5117aba"></a><br></td></tr>
69
- <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Session.html#2203d81e25fe5066aed351608deecf7b">sendBodyBlock</a> (const char *block, unsigned int size)</td></tr>
70
-
71
- <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Send a chunk of HTTP request body data to the application. <a href="#2203d81e25fe5066aed351608deecf7b"></a><br></td></tr>
72
- <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Session.html#949c7a46f4bb0c628730ded2041d2489">getStream</a> () const =0</td></tr>
73
-
74
- <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns this session's channel's file descriptor. <a href="#949c7a46f4bb0c628730ded2041d2489"></a><br></td></tr>
75
- <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Session.html#5accbd8f7cce66d0ef6695481fdaa39c">setReaderTimeout</a> (unsigned int msec)=0</td></tr>
76
-
77
- <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the timeout value for reading data from the I/O channel. <a href="#5accbd8f7cce66d0ef6695481fdaa39c"></a><br></td></tr>
78
- <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Session.html#21dd749c0c8d22f65c6a914ec2f97c94">setWriterTimeout</a> (unsigned int msec)=0</td></tr>
79
-
80
- <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the timeout value for writing data from the I/O channel. <a href="#21dd749c0c8d22f65c6a914ec2f97c94"></a><br></td></tr>
81
- <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Session.html#c579d233ddc82542c336b2af1f40c4dd">shutdownReader</a> ()=0</td></tr>
82
-
83
- <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Indicate that we don't want to read data anymore from the I/O channel. <a href="#c579d233ddc82542c336b2af1f40c4dd"></a><br></td></tr>
84
- <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Session.html#8263c568a8ac4567b33728d820cbd920">shutdownWriter</a> ()=0</td></tr>
85
-
86
- <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Indicate that we don't want to write data anymore to the I/O channel. <a href="#8263c568a8ac4567b33728d820cbd920"></a><br></td></tr>
87
- <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Session.html#7ab85388f15388cb8e65873d1ad310a5">closeStream</a> ()=0</td></tr>
88
-
89
- <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Close the I/O stream. <a href="#7ab85388f15388cb8e65873d1ad310a5"></a><br></td></tr>
90
- <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Session.html#75344fdfb3c693323877e32884efaa31">discardStream</a> ()=0</td></tr>
91
-
92
- <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Discard the I/O channel's file descriptor, so that the destructor won't automatically close it. <a href="#75344fdfb3c693323877e32884efaa31"></a><br></td></tr>
93
- <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="1b58af5493a61bfe4efbd725dcef61a3"></a><!-- doxytag: member="Passenger::Session::getPid" ref="1b58af5493a61bfe4efbd725dcef61a3" args="() const =0" -->
94
- virtual pid_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Session.html#1b58af5493a61bfe4efbd725dcef61a3">getPid</a> () const =0</td></tr>
95
-
96
- <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the process ID of the application process that this session belongs to. <br></td></tr>
97
- <tr><td class="memItemLeft" nowrap align="right" valign="top">const string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Session.html#eaf4f7097f7b3430dc88e8070cad5899">getConnectPassword</a> () const </td></tr>
98
-
99
- <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns this session's process's connect password. <a href="#eaf4f7097f7b3430dc88e8070cad5899"></a><br></td></tr>
43
+ <center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
44
+
45
+ <p><a href="classPassenger_1_1Session-members.html">List of all members.</a></p>
46
+ <table border="0" cellpadding="0" cellspacing="0">
47
+ <tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
48
+ <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac982015e84f64dbec70daef8fdbd31d9"></a><!-- doxytag: member="Passenger::Session::~Session" ref="ac982015e84f64dbec70daef8fdbd31d9" args="()" -->
49
+ virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Session.html#ac982015e84f64dbec70daef8fdbd31d9">~Session</a> ()</td></tr>
50
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Concrete classes might throw arbitrary exceptions. <br/></td></tr>
51
+ <tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Session.html#abbcfa3eb48d38dead20c0d32cab4850b">initiate</a> ()=0</td></tr>
52
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initiate the session by connecting to the associated process. <a href="#abbcfa3eb48d38dead20c0d32cab4850b"></a><br/></td></tr>
53
+ <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abf1b6ba182a0fc66c8e617f74afafb92"></a><!-- doxytag: member="Passenger::Session::initiated" ref="abf1b6ba182a0fc66c8e617f74afafb92" args="() const =0" -->
54
+ virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Session.html#abf1b6ba182a0fc66c8e617f74afafb92">initiated</a> () const =0</td></tr>
55
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns whether this session has been initiated (that is, whether <a class="el" href="classPassenger_1_1Session.html#abbcfa3eb48d38dead20c0d32cab4850b" title="Initiate the session by connecting to the associated process.">initiate()</a> had been called in the past). <br/></td></tr>
56
+ <tr><td class="memItemLeft" align="right" valign="top">virtual string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Session.html#ab8f084ab143d44f1a9ef8e8ccc841485">getSocketType</a> () const =0</td></tr>
57
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the type of the socket that this session is served from, e.g. <a href="#ab8f084ab143d44f1a9ef8e8ccc841485"></a><br/></td></tr>
58
+ <tr><td class="memItemLeft" align="right" valign="top">virtual string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Session.html#a7b8a632ebde11544a8ab98fde89954bb">getSocketName</a> () const =0</td></tr>
59
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the address of the socket that this session is served from. <a href="#a7b8a632ebde11544a8ab98fde89954bb"></a><br/></td></tr>
60
+ <tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Session.html#a8f8a39f78dd2672b00f1ff01e4d6d671">sendHeaders</a> (const char *headers, unsigned int size)</td></tr>
61
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Send HTTP request headers to the application. <a href="#a8f8a39f78dd2672b00f1ff01e4d6d671"></a><br/></td></tr>
62
+ <tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Session.html#a8253d81e64adc0dc72b1dc65a5117aba">sendHeaders</a> (const <a class="el" href="classPassenger_1_1StaticString.html">StaticString</a> &amp;headers)</td></tr>
63
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convenience shortcut for <a class="el" href="classPassenger_1_1Session.html#a8f8a39f78dd2672b00f1ff01e4d6d671" title="Send HTTP request headers to the application.">sendHeaders(const char *, unsigned int)</a>. <a href="#a8253d81e64adc0dc72b1dc65a5117aba"></a><br/></td></tr>
64
+ <tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Session.html#a2203d81e25fe5066aed351608deecf7b">sendBodyBlock</a> (const char *block, unsigned int size)</td></tr>
65
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Send a chunk of HTTP request body data to the application. <a href="#a2203d81e25fe5066aed351608deecf7b"></a><br/></td></tr>
66
+ <tr><td class="memItemLeft" align="right" valign="top">virtual int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Session.html#a949c7a46f4bb0c628730ded2041d2489">getStream</a> () const =0</td></tr>
67
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns this session's channel's file descriptor. <a href="#a949c7a46f4bb0c628730ded2041d2489"></a><br/></td></tr>
68
+ <tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Session.html#a5accbd8f7cce66d0ef6695481fdaa39c">setReaderTimeout</a> (unsigned int msec)=0</td></tr>
69
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the timeout value for reading data from the I/O channel. <a href="#a5accbd8f7cce66d0ef6695481fdaa39c"></a><br/></td></tr>
70
+ <tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Session.html#a21dd749c0c8d22f65c6a914ec2f97c94">setWriterTimeout</a> (unsigned int msec)=0</td></tr>
71
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the timeout value for writing data from the I/O channel. <a href="#a21dd749c0c8d22f65c6a914ec2f97c94"></a><br/></td></tr>
72
+ <tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Session.html#ac579d233ddc82542c336b2af1f40c4dd">shutdownReader</a> ()=0</td></tr>
73
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Indicate that we don't want to read data anymore from the I/O channel. <a href="#ac579d233ddc82542c336b2af1f40c4dd"></a><br/></td></tr>
74
+ <tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Session.html#a8263c568a8ac4567b33728d820cbd920">shutdownWriter</a> ()=0</td></tr>
75
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Indicate that we don't want to write data anymore to the I/O channel. <a href="#a8263c568a8ac4567b33728d820cbd920"></a><br/></td></tr>
76
+ <tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Session.html#a7ab85388f15388cb8e65873d1ad310a5">closeStream</a> ()=0</td></tr>
77
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Close the I/O stream. <a href="#a7ab85388f15388cb8e65873d1ad310a5"></a><br/></td></tr>
78
+ <tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Session.html#a75344fdfb3c693323877e32884efaa31">discardStream</a> ()=0</td></tr>
79
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Discard the I/O channel's file descriptor, so that the destructor won't automatically close it. <a href="#a75344fdfb3c693323877e32884efaa31"></a><br/></td></tr>
80
+ <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1b58af5493a61bfe4efbd725dcef61a3"></a><!-- doxytag: member="Passenger::Session::getPid" ref="a1b58af5493a61bfe4efbd725dcef61a3" args="() const =0" -->
81
+ virtual pid_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Session.html#a1b58af5493a61bfe4efbd725dcef61a3">getPid</a> () const =0</td></tr>
82
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the process ID of the application process that this session belongs to. <br/></td></tr>
83
+ <tr><td class="memItemLeft" align="right" valign="top">const string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Session.html#aeaf4f7097f7b3430dc88e8070cad5899">getConnectPassword</a> () const </td></tr>
84
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns this session's process's connect password. <a href="#aeaf4f7097f7b3430dc88e8070cad5899"></a><br/></td></tr>
100
85
  </table>
101
- <hr><a name="_details"></a><h2>Detailed Description</h2>
102
- Represents a single request/response pair of an application process.
103
- <p>
104
- <a class="el" href="classPassenger_1_1Session.html" title="Represents a single request/response pair of an application process.">Session</a> is used to forward a single HTTP request to an application process, and to read back the HTTP response. A <a class="el" href="classPassenger_1_1Session.html" title="Represents a single request/response pair of an application process.">Session</a> object is to be used in the following manner:<p>
105
- <ol type=1>
106
- <li>Serialize the HTTP request headers into a format as expected by <a class="el" href="classPassenger_1_1Session.html#8f8a39f78dd2672b00f1ff01e4d6d671" title="Send HTTP request headers to the application.">sendHeaders()</a>, then send that string by calling <a class="el" href="classPassenger_1_1Session.html#8f8a39f78dd2672b00f1ff01e4d6d671" title="Send HTTP request headers to the application.">sendHeaders()</a>.</li><li>In case of a POST of PUT request, send the HTTP request body by calling <a class="el" href="classPassenger_1_1Session.html#2203d81e25fe5066aed351608deecf7b" title="Send a chunk of HTTP request body data to the application.">sendBodyBlock()</a>, possibly multiple times.</li><li>Shutdown the writer end of the session channel (<a class="el" href="classPassenger_1_1Session.html#8263c568a8ac4567b33728d820cbd920" title="Indicate that we don&#39;t want to write data anymore to the I/O channel.">shutdownWriter()</a>) since you're now done sending data.</li><li>The HTTP response can now be read through the session channel (<a class="el" href="classPassenger_1_1Session.html#949c7a46f4bb0c628730ded2041d2489" title="Returns this session&#39;s channel&#39;s file descriptor.">getStream()</a>).</li><li>When the HTTP response has been read, the session must be closed. This is done by destroying the <a class="el" href="classPassenger_1_1Session.html" title="Represents a single request/response pair of an application process.">Session</a> object.</li></ol>
107
- <p>
108
- A usage example is shown in <a class="el" href="classPassenger_1_1Process.html#4df3ce126ba64c864c1759d916f25635" title="Request a new session from this application process by connecting to its main server...">Process::newSession()</a>.<p>
109
- <a class="el" href="classPassenger_1_1Session.html" title="Represents a single request/response pair of an application process.">Session</a> is an abstract base class. Concrete implementations can be found in <a class="el" href="classPassenger_1_1StandardSession.html" title="A &quot;standard&quot; implementation of Session.">StandardSession</a> and ApplicationPool::Client::RemoteSession.<p>
110
- <a class="el" href="classPassenger_1_1Session.html" title="Represents a single request/response pair of an application process.">Session</a> is not guaranteed to be thread-safe. <hr><h2>Member Function Documentation</h2>
111
- <a class="anchor" name="7ab85388f15388cb8e65873d1ad310a5"></a><!-- doxytag: member="Passenger::Session::closeStream" ref="7ab85388f15388cb8e65873d1ad310a5" args="()=0" -->
86
+ <hr/><a name="_details"></a><h2>Detailed Description</h2>
87
+ <p>Represents a single request/response pair of an application process. </p>
88
+ <p><a class="el" href="classPassenger_1_1Session.html" title="Represents a single request/response pair of an application process.">Session</a> is used to forward a single HTTP request to an application process, and to read back the HTTP response. A <a class="el" href="classPassenger_1_1Session.html" title="Represents a single request/response pair of an application process.">Session</a> object is to be used in the following manner:</p>
89
+ <ol type="1">
90
+ <li>Serialize the HTTP request headers into a format as expected by <a class="el" href="classPassenger_1_1Session.html#a8f8a39f78dd2672b00f1ff01e4d6d671" title="Send HTTP request headers to the application.">sendHeaders()</a>, then send that string by calling <a class="el" href="classPassenger_1_1Session.html#a8f8a39f78dd2672b00f1ff01e4d6d671" title="Send HTTP request headers to the application.">sendHeaders()</a>.</li>
91
+ <li>In case of a POST of PUT request, send the HTTP request body by calling <a class="el" href="classPassenger_1_1Session.html#a2203d81e25fe5066aed351608deecf7b" title="Send a chunk of HTTP request body data to the application.">sendBodyBlock()</a>, possibly multiple times.</li>
92
+ <li>Shutdown the writer end of the session channel (<a class="el" href="classPassenger_1_1Session.html#a8263c568a8ac4567b33728d820cbd920" title="Indicate that we don&#39;t want to write data anymore to the I/O channel.">shutdownWriter()</a>) since you're now done sending data.</li>
93
+ <li>The HTTP response can now be read through the session channel (<a class="el" href="classPassenger_1_1Session.html#a949c7a46f4bb0c628730ded2041d2489" title="Returns this session&#39;s channel&#39;s file descriptor.">getStream()</a>).</li>
94
+ <li>When the HTTP response has been read, the session must be closed. This is done by destroying the <a class="el" href="classPassenger_1_1Session.html" title="Represents a single request/response pair of an application process.">Session</a> object.</li>
95
+ </ol>
96
+ <p>A usage example is shown in <a class="el" href="classPassenger_1_1Process.html#a4df3ce126ba64c864c1759d916f25635" title="Request a new session from this application process by connecting to its main server...">Process::newSession()</a>.</p>
97
+ <p><a class="el" href="classPassenger_1_1Session.html" title="Represents a single request/response pair of an application process.">Session</a> is an abstract base class. Concrete implementations can be found in <a class="el" href="classPassenger_1_1StandardSession.html" title="A &quot;standard&quot; implementation of Session.">StandardSession</a> and ApplicationPool::Client::RemoteSession.</p>
98
+ <p><a class="el" href="classPassenger_1_1Session.html" title="Represents a single request/response pair of an application process.">Session</a> is not guaranteed to be thread-safe. </p>
99
+ <hr/><h2>Member Function Documentation</h2>
100
+ <a class="anchor" id="a7ab85388f15388cb8e65873d1ad310a5"></a><!-- doxytag: member="Passenger::Session::closeStream" ref="a7ab85388f15388cb8e65873d1ad310a5" args="()=0" -->
112
101
  <div class="memitem">
113
102
  <div class="memproto">
114
103
  <table class="memname">
115
104
  <tr>
116
- <td class="memname">virtual void Passenger::Session::closeStream </td>
105
+ <td class="memname">virtual void Passenger::Session::closeStream </td>
117
106
  <td>(</td>
118
- <td class="paramname"> </td>
107
+ <td class="paramname"></td>
119
108
  <td>&nbsp;)&nbsp;</td>
120
109
  <td><code> [pure virtual]</code></td>
121
110
  </tr>
@@ -123,30 +112,29 @@ A usage example is shown in <a class="el" href="classPassenger_1_1Process.html#4
123
112
  </div>
124
113
  <div class="memdoc">
125
114
 
126
- <p>
127
- Close the I/O stream.
128
- <p>
129
- <dl compact><dt><b>Exceptions:</b></dt><dd>
115
+ <p>Close the I/O stream. </p>
116
+ <dl><dt><b>Exceptions:</b></dt><dd>
130
117
  <table border="0" cellspacing="2" cellpadding="0">
131
118
  <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>Something went wrong. </td></tr>
132
119
  <tr><td valign="top"></td><td valign="top"><em>boost::thread_interrupted</em>&nbsp;</td><td></td></tr>
133
120
  </table>
121
+ </dd>
134
122
  </dl>
135
- <dl class="pre" compact><dt><b>Precondition:</b></dt><dd><a class="el" href="classPassenger_1_1Session.html#bf1b6ba182a0fc66c8e617f74afafb92" title="Returns whether this session has been initiated (that is, whether initiate() had...">initiated()</a> </dd></dl>
136
- <dl class="post" compact><dt><b>Postcondition:</b></dt><dd><a class="el" href="classPassenger_1_1Session.html#949c7a46f4bb0c628730ded2041d2489" title="Returns this session&#39;s channel&#39;s file descriptor.">getStream()</a> == -1 </dd></dl>
123
+ <dl class="pre"><dt><b>Precondition:</b></dt><dd><a class="el" href="classPassenger_1_1Session.html#abf1b6ba182a0fc66c8e617f74afafb92" title="Returns whether this session has been initiated (that is, whether initiate() had...">initiated()</a> </dd></dl>
124
+ <dl class="post"><dt><b>Postcondition:</b></dt><dd><a class="el" href="classPassenger_1_1Session.html#a949c7a46f4bb0c628730ded2041d2489" title="Returns this session&#39;s channel&#39;s file descriptor.">getStream()</a> == -1 </dd></dl>
137
125
 
138
- <p>Implemented in <a class="el" href="classPassenger_1_1StandardSession.html#f5cdfa78db1fca6303ccd43ac5126b6b">Passenger::StandardSession</a>.</p>
126
+ <p>Implemented in <a class="el" href="classPassenger_1_1StandardSession.html#af5cdfa78db1fca6303ccd43ac5126b6b">Passenger::StandardSession</a>.</p>
139
127
 
140
128
  </div>
141
- </div><p>
142
- <a class="anchor" name="75344fdfb3c693323877e32884efaa31"></a><!-- doxytag: member="Passenger::Session::discardStream" ref="75344fdfb3c693323877e32884efaa31" args="()=0" -->
129
+ </div>
130
+ <a class="anchor" id="a75344fdfb3c693323877e32884efaa31"></a><!-- doxytag: member="Passenger::Session::discardStream" ref="a75344fdfb3c693323877e32884efaa31" args="()=0" -->
143
131
  <div class="memitem">
144
132
  <div class="memproto">
145
133
  <table class="memname">
146
134
  <tr>
147
- <td class="memname">virtual void Passenger::Session::discardStream </td>
135
+ <td class="memname">virtual void Passenger::Session::discardStream </td>
148
136
  <td>(</td>
149
- <td class="paramname"> </td>
137
+ <td class="paramname"></td>
150
138
  <td>&nbsp;)&nbsp;</td>
151
139
  <td><code> [pure virtual]</code></td>
152
140
  </tr>
@@ -154,24 +142,22 @@ Close the I/O stream.
154
142
  </div>
155
143
  <div class="memdoc">
156
144
 
157
- <p>
158
- Discard the I/O channel's file descriptor, so that the destructor won't automatically close it.
159
- <p>
160
- <dl class="pre" compact><dt><b>Precondition:</b></dt><dd><a class="el" href="classPassenger_1_1Session.html#bf1b6ba182a0fc66c8e617f74afafb92" title="Returns whether this session has been initiated (that is, whether initiate() had...">initiated()</a> </dd></dl>
161
- <dl class="post" compact><dt><b>Postcondition:</b></dt><dd><a class="el" href="classPassenger_1_1Session.html#949c7a46f4bb0c628730ded2041d2489" title="Returns this session&#39;s channel&#39;s file descriptor.">getStream()</a> == -1 </dd></dl>
145
+ <p>Discard the I/O channel's file descriptor, so that the destructor won't automatically close it. </p>
146
+ <dl class="pre"><dt><b>Precondition:</b></dt><dd><a class="el" href="classPassenger_1_1Session.html#abf1b6ba182a0fc66c8e617f74afafb92" title="Returns whether this session has been initiated (that is, whether initiate() had...">initiated()</a> </dd></dl>
147
+ <dl class="post"><dt><b>Postcondition:</b></dt><dd><a class="el" href="classPassenger_1_1Session.html#a949c7a46f4bb0c628730ded2041d2489" title="Returns this session&#39;s channel&#39;s file descriptor.">getStream()</a> == -1 </dd></dl>
162
148
 
163
- <p>Implemented in <a class="el" href="classPassenger_1_1StandardSession.html#3666d401df82696fe945fcbb66804785">Passenger::StandardSession</a>.</p>
149
+ <p>Implemented in <a class="el" href="classPassenger_1_1StandardSession.html#a3666d401df82696fe945fcbb66804785">Passenger::StandardSession</a>.</p>
164
150
 
165
151
  </div>
166
- </div><p>
167
- <a class="anchor" name="eaf4f7097f7b3430dc88e8070cad5899"></a><!-- doxytag: member="Passenger::Session::getConnectPassword" ref="eaf4f7097f7b3430dc88e8070cad5899" args="() const " -->
152
+ </div>
153
+ <a class="anchor" id="aeaf4f7097f7b3430dc88e8070cad5899"></a><!-- doxytag: member="Passenger::Session::getConnectPassword" ref="aeaf4f7097f7b3430dc88e8070cad5899" args="() const " -->
168
154
  <div class="memitem">
169
155
  <div class="memproto">
170
156
  <table class="memname">
171
157
  <tr>
172
- <td class="memname">const string Passenger::Session::getConnectPassword </td>
158
+ <td class="memname">const string Passenger::Session::getConnectPassword </td>
173
159
  <td>(</td>
174
- <td class="paramname"> </td>
160
+ <td class="paramname"></td>
175
161
  <td>&nbsp;)&nbsp;</td>
176
162
  <td> const<code> [inline]</code></td>
177
163
  </tr>
@@ -179,20 +165,19 @@ Discard the I/O channel's file descriptor, so that the destructor won't automati
179
165
  </div>
180
166
  <div class="memdoc">
181
167
 
182
- <p>
183
- Returns this session's process's connect password.
184
- <p>
185
- This password is guaranteed to be valid ASCII.
168
+ <p>Returns this session's process's connect password. </p>
169
+ <p>This password is guaranteed to be valid ASCII. </p>
170
+
186
171
  </div>
187
- </div><p>
188
- <a class="anchor" name="7b8a632ebde11544a8ab98fde89954bb"></a><!-- doxytag: member="Passenger::Session::getSocketName" ref="7b8a632ebde11544a8ab98fde89954bb" args="() const =0" -->
172
+ </div>
173
+ <a class="anchor" id="a7b8a632ebde11544a8ab98fde89954bb"></a><!-- doxytag: member="Passenger::Session::getSocketName" ref="a7b8a632ebde11544a8ab98fde89954bb" args="() const =0" -->
189
174
  <div class="memitem">
190
175
  <div class="memproto">
191
176
  <table class="memname">
192
177
  <tr>
193
- <td class="memname">virtual string Passenger::Session::getSocketName </td>
178
+ <td class="memname">virtual string Passenger::Session::getSocketName </td>
194
179
  <td>(</td>
195
- <td class="paramname"> </td>
180
+ <td class="paramname"></td>
196
181
  <td>&nbsp;)&nbsp;</td>
197
182
  <td> const<code> [pure virtual]</code></td>
198
183
  </tr>
@@ -200,24 +185,22 @@ This password is guaranteed to be valid ASCII.
200
185
  </div>
201
186
  <div class="memdoc">
202
187
 
203
- <p>
204
- Returns the address of the socket that this session is served from.
205
- <p>
206
- This can be a Unix socket filename or a TCP host:port string like "127.0.0.1:1234".<p>
207
- <dl class="post" compact><dt><b>Postcondition:</b></dt><dd>!result.empty() </dd></dl>
188
+ <p>Returns the address of the socket that this session is served from. </p>
189
+ <p>This can be a Unix socket filename or a TCP host:port string like "127.0.0.1:1234".</p>
190
+ <dl class="post"><dt><b>Postcondition:</b></dt><dd>!result.empty() </dd></dl>
208
191
 
209
- <p>Implemented in <a class="el" href="classPassenger_1_1StandardSession.html#720e98b8dd246eeca004c8e625c0d4d3">Passenger::StandardSession</a>.</p>
192
+ <p>Implemented in <a class="el" href="classPassenger_1_1StandardSession.html#a720e98b8dd246eeca004c8e625c0d4d3">Passenger::StandardSession</a>.</p>
210
193
 
211
194
  </div>
212
- </div><p>
213
- <a class="anchor" name="b8f084ab143d44f1a9ef8e8ccc841485"></a><!-- doxytag: member="Passenger::Session::getSocketType" ref="b8f084ab143d44f1a9ef8e8ccc841485" args="() const =0" -->
195
+ </div>
196
+ <a class="anchor" id="ab8f084ab143d44f1a9ef8e8ccc841485"></a><!-- doxytag: member="Passenger::Session::getSocketType" ref="ab8f084ab143d44f1a9ef8e8ccc841485" args="() const =0" -->
214
197
  <div class="memitem">
215
198
  <div class="memproto">
216
199
  <table class="memname">
217
200
  <tr>
218
- <td class="memname">virtual string Passenger::Session::getSocketType </td>
201
+ <td class="memname">virtual string Passenger::Session::getSocketType </td>
219
202
  <td>(</td>
220
- <td class="paramname"> </td>
203
+ <td class="paramname"></td>
221
204
  <td>&nbsp;)&nbsp;</td>
222
205
  <td> const<code> [pure virtual]</code></td>
223
206
  </tr>
@@ -225,24 +208,22 @@ This can be a Unix socket filename or a TCP host:port string like "127.0.0.1:123
225
208
  </div>
226
209
  <div class="memdoc">
227
210
 
228
- <p>
229
- Returns the type of the socket that this session is served from, e.g.
230
- <p>
231
- "unix" indicating a Unix socket.<p>
232
- <dl class="post" compact><dt><b>Postcondition:</b></dt><dd>!result.empty() </dd></dl>
211
+ <p>Returns the type of the socket that this session is served from, e.g. </p>
212
+ <p>"unix" indicating a Unix socket.</p>
213
+ <dl class="post"><dt><b>Postcondition:</b></dt><dd>!result.empty() </dd></dl>
233
214
 
234
- <p>Implemented in <a class="el" href="classPassenger_1_1StandardSession.html#3a59997280d5f7fcaa901716cd8451a2">Passenger::StandardSession</a>.</p>
215
+ <p>Implemented in <a class="el" href="classPassenger_1_1StandardSession.html#a3a59997280d5f7fcaa901716cd8451a2">Passenger::StandardSession</a>.</p>
235
216
 
236
217
  </div>
237
- </div><p>
238
- <a class="anchor" name="949c7a46f4bb0c628730ded2041d2489"></a><!-- doxytag: member="Passenger::Session::getStream" ref="949c7a46f4bb0c628730ded2041d2489" args="() const =0" -->
218
+ </div>
219
+ <a class="anchor" id="a949c7a46f4bb0c628730ded2041d2489"></a><!-- doxytag: member="Passenger::Session::getStream" ref="a949c7a46f4bb0c628730ded2041d2489" args="() const =0" -->
239
220
  <div class="memitem">
240
221
  <div class="memproto">
241
222
  <table class="memname">
242
223
  <tr>
243
- <td class="memname">virtual int Passenger::Session::getStream </td>
224
+ <td class="memname">virtual int Passenger::Session::getStream </td>
244
225
  <td>(</td>
245
- <td class="paramname"> </td>
226
+ <td class="paramname"></td>
246
227
  <td>&nbsp;)&nbsp;</td>
247
228
  <td> const<code> [pure virtual]</code></td>
248
229
  </tr>
@@ -250,25 +231,23 @@ Returns the type of the socket that this session is served from, e.g.
250
231
  </div>
251
232
  <div class="memdoc">
252
233
 
253
- <p>
254
- Returns this session's channel's file descriptor.
255
- <p>
256
- This stream is full-duplex, and will be automatically closed upon Session's destruction, unless <a class="el" href="classPassenger_1_1Session.html#75344fdfb3c693323877e32884efaa31" title="Discard the I/O channel&#39;s file descriptor, so that the destructor won&#39;t automatically...">discardStream()</a> is called.<p>
257
- <dl class="pre" compact><dt><b>Precondition:</b></dt><dd><a class="el" href="classPassenger_1_1Session.html#bf1b6ba182a0fc66c8e617f74afafb92" title="Returns whether this session has been initiated (that is, whether initiate() had...">initiated()</a> </dd></dl>
258
- <dl class="return" compact><dt><b>Returns:</b></dt><dd>The file descriptor, or -1 if the I/O channel has already been closed or discarded. </dd></dl>
234
+ <p>Returns this session's channel's file descriptor. </p>
235
+ <p>This stream is full-duplex, and will be automatically closed upon Session's destruction, unless <a class="el" href="classPassenger_1_1Session.html#a75344fdfb3c693323877e32884efaa31" title="Discard the I/O channel&#39;s file descriptor, so that the destructor won&#39;t automatically...">discardStream()</a> is called.</p>
236
+ <dl class="pre"><dt><b>Precondition:</b></dt><dd><a class="el" href="classPassenger_1_1Session.html#abf1b6ba182a0fc66c8e617f74afafb92" title="Returns whether this session has been initiated (that is, whether initiate() had...">initiated()</a> </dd></dl>
237
+ <dl class="return"><dt><b>Returns:</b></dt><dd>The file descriptor, or -1 if the I/O channel has already been closed or discarded. </dd></dl>
259
238
 
260
- <p>Implemented in <a class="el" href="classPassenger_1_1StandardSession.html#a3491d2151ba3b94c1b19a4f18bade6a">Passenger::StandardSession</a>.</p>
239
+ <p>Implemented in <a class="el" href="classPassenger_1_1StandardSession.html#aa3491d2151ba3b94c1b19a4f18bade6a">Passenger::StandardSession</a>.</p>
261
240
 
262
241
  </div>
263
- </div><p>
264
- <a class="anchor" name="bbcfa3eb48d38dead20c0d32cab4850b"></a><!-- doxytag: member="Passenger::Session::initiate" ref="bbcfa3eb48d38dead20c0d32cab4850b" args="()=0" -->
242
+ </div>
243
+ <a class="anchor" id="abbcfa3eb48d38dead20c0d32cab4850b"></a><!-- doxytag: member="Passenger::Session::initiate" ref="abbcfa3eb48d38dead20c0d32cab4850b" args="()=0" -->
265
244
  <div class="memitem">
266
245
  <div class="memproto">
267
246
  <table class="memname">
268
247
  <tr>
269
- <td class="memname">virtual void Passenger::Session::initiate </td>
248
+ <td class="memname">virtual void Passenger::Session::initiate </td>
270
249
  <td>(</td>
271
- <td class="paramname"> </td>
250
+ <td class="paramname"></td>
272
251
  <td>&nbsp;)&nbsp;</td>
273
252
  <td><code> [pure virtual]</code></td>
274
253
  </tr>
@@ -276,28 +255,27 @@ This stream is full-duplex, and will be automatically closed upon Session's dest
276
255
  </div>
277
256
  <div class="memdoc">
278
257
 
279
- <p>
280
- Initiate the session by connecting to the associated process.
281
- <p>
282
- A <a class="el" href="classPassenger_1_1Session.html" title="Represents a single request/response pair of an application process.">Session</a> is not usable until it's initiated.<p>
283
- <dl compact><dt><b>Exceptions:</b></dt><dd>
258
+ <p>Initiate the session by connecting to the associated process. </p>
259
+ <p>A <a class="el" href="classPassenger_1_1Session.html" title="Represents a single request/response pair of an application process.">Session</a> is not usable until it's initiated.</p>
260
+ <dl><dt><b>Exceptions:</b></dt><dd>
284
261
  <table border="0" cellspacing="2" cellpadding="0">
285
262
  <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>Something went wrong. </td></tr>
286
263
  <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classPassenger_1_1IOException.html" title="Represents an error that occured during an I/O operation.">IOException</a></em>&nbsp;</td><td>Something went wrong. </td></tr>
287
264
  <tr><td valign="top"></td><td valign="top"><em>boost::thread_interrupted</em>&nbsp;</td><td></td></tr>
288
265
  </table>
266
+ </dd>
289
267
  </dl>
290
268
 
291
- <p>Implemented in <a class="el" href="classPassenger_1_1StandardSession.html#c283db6faf2fcd1827baf3ebac276677">Passenger::StandardSession</a>.</p>
269
+ <p>Implemented in <a class="el" href="classPassenger_1_1StandardSession.html#ac283db6faf2fcd1827baf3ebac276677">Passenger::StandardSession</a>.</p>
292
270
 
293
271
  </div>
294
- </div><p>
295
- <a class="anchor" name="2203d81e25fe5066aed351608deecf7b"></a><!-- doxytag: member="Passenger::Session::sendBodyBlock" ref="2203d81e25fe5066aed351608deecf7b" args="(const char *block, unsigned int size)" -->
272
+ </div>
273
+ <a class="anchor" id="a2203d81e25fe5066aed351608deecf7b"></a><!-- doxytag: member="Passenger::Session::sendBodyBlock" ref="a2203d81e25fe5066aed351608deecf7b" args="(const char *block, unsigned int size)" -->
296
274
  <div class="memitem">
297
275
  <div class="memproto">
298
276
  <table class="memname">
299
277
  <tr>
300
- <td class="memname">virtual void Passenger::Session::sendBodyBlock </td>
278
+ <td class="memname">virtual void Passenger::Session::sendBodyBlock </td>
301
279
  <td>(</td>
302
280
  <td class="paramtype">const char *&nbsp;</td>
303
281
  <td class="paramname"> <em>block</em>, </td>
@@ -317,37 +295,37 @@ A <a class="el" href="classPassenger_1_1Session.html" title="Represents a single
317
295
  </div>
318
296
  <div class="memdoc">
319
297
 
320
- <p>
321
- Send a chunk of HTTP request body data to the application.
322
- <p>
323
- You can call this method as many times as is required to transfer the entire HTTP request body.<p>
324
- This method must only be called after a <a class="el" href="classPassenger_1_1Session.html#8f8a39f78dd2672b00f1ff01e4d6d671" title="Send HTTP request headers to the application.">sendHeaders()</a>, otherwise strange things may happen.<p>
325
- <dl compact><dt><b>Parameters:</b></dt><dd>
298
+ <p>Send a chunk of HTTP request body data to the application. </p>
299
+ <p>You can call this method as many times as is required to transfer the entire HTTP request body.</p>
300
+ <p>This method must only be called after a <a class="el" href="classPassenger_1_1Session.html#a8f8a39f78dd2672b00f1ff01e4d6d671" title="Send HTTP request headers to the application.">sendHeaders()</a>, otherwise strange things may happen.</p>
301
+ <dl><dt><b>Parameters:</b></dt><dd>
326
302
  <table border="0" cellspacing="2" cellpadding="0">
327
303
  <tr><td valign="top"></td><td valign="top"><em>block</em>&nbsp;</td><td>A block of HTTP request body data to send. </td></tr>
328
304
  <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>The size, in bytes, of <code>block</code>. </td></tr>
329
305
  </table>
306
+ </dd>
330
307
  </dl>
331
- <dl class="pre" compact><dt><b>Precondition:</b></dt><dd><a class="el" href="classPassenger_1_1Session.html#bf1b6ba182a0fc66c8e617f74afafb92" title="Returns whether this session has been initiated (that is, whether initiate() had...">initiated()</a> </dd></dl>
332
- <dl compact><dt><b>Exceptions:</b></dt><dd>
308
+ <dl class="pre"><dt><b>Precondition:</b></dt><dd><a class="el" href="classPassenger_1_1Session.html#abf1b6ba182a0fc66c8e617f74afafb92" title="Returns whether this session has been initiated (that is, whether initiate() had...">initiated()</a> </dd></dl>
309
+ <dl><dt><b>Exceptions:</b></dt><dd>
333
310
  <table border="0" cellspacing="2" cellpadding="0">
334
311
  <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classPassenger_1_1IOException.html" title="Represents an error that occured during an I/O operation.">IOException</a></em>&nbsp;</td><td>The I/O channel has already been closed or discarded. </td></tr>
335
312
  <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>Something went wrong during writing. </td></tr>
336
313
  <tr><td valign="top"></td><td valign="top"><em>boost::thread_interrupted</em>&nbsp;</td><td></td></tr>
337
314
  </table>
315
+ </dd>
338
316
  </dl>
339
317
 
340
318
  </div>
341
- </div><p>
342
- <a class="anchor" name="8253d81e64adc0dc72b1dc65a5117aba"></a><!-- doxytag: member="Passenger::Session::sendHeaders" ref="8253d81e64adc0dc72b1dc65a5117aba" args="(const StaticString &amp;headers)" -->
319
+ </div>
320
+ <a class="anchor" id="a8253d81e64adc0dc72b1dc65a5117aba"></a><!-- doxytag: member="Passenger::Session::sendHeaders" ref="a8253d81e64adc0dc72b1dc65a5117aba" args="(const StaticString &amp;headers)" -->
343
321
  <div class="memitem">
344
322
  <div class="memproto">
345
323
  <table class="memname">
346
324
  <tr>
347
- <td class="memname">virtual void Passenger::Session::sendHeaders </td>
325
+ <td class="memname">virtual void Passenger::Session::sendHeaders </td>
348
326
  <td>(</td>
349
327
  <td class="paramtype">const <a class="el" href="classPassenger_1_1StaticString.html">StaticString</a> &amp;&nbsp;</td>
350
- <td class="paramname"> <em>headers</em> </td>
328
+ <td class="paramname"> <em>headers</em></td>
351
329
  <td>&nbsp;)&nbsp;</td>
352
330
  <td><code> [inline, virtual]</code></td>
353
331
  </tr>
@@ -355,31 +333,31 @@ This method must only be called after a <a class="el" href="classPassenger_1_1Se
355
333
  </div>
356
334
  <div class="memdoc">
357
335
 
358
- <p>
359
- Convenience shortcut for <a class="el" href="classPassenger_1_1Session.html#8f8a39f78dd2672b00f1ff01e4d6d671" title="Send HTTP request headers to the application.">sendHeaders(const char *, unsigned int)</a>.
360
- <p>
361
- <dl compact><dt><b>Parameters:</b></dt><dd>
336
+ <p>Convenience shortcut for <a class="el" href="classPassenger_1_1Session.html#a8f8a39f78dd2672b00f1ff01e4d6d671" title="Send HTTP request headers to the application.">sendHeaders(const char *, unsigned int)</a>. </p>
337
+ <dl><dt><b>Parameters:</b></dt><dd>
362
338
  <table border="0" cellspacing="2" cellpadding="0">
363
339
  <tr><td valign="top"></td><td valign="top"><em>headers</em>&nbsp;</td><td>The headers </td></tr>
364
340
  </table>
341
+ </dd>
365
342
  </dl>
366
- <dl class="pre" compact><dt><b>Precondition:</b></dt><dd><a class="el" href="classPassenger_1_1Session.html#bf1b6ba182a0fc66c8e617f74afafb92" title="Returns whether this session has been initiated (that is, whether initiate() had...">initiated()</a> </dd></dl>
367
- <dl compact><dt><b>Exceptions:</b></dt><dd>
343
+ <dl class="pre"><dt><b>Precondition:</b></dt><dd><a class="el" href="classPassenger_1_1Session.html#abf1b6ba182a0fc66c8e617f74afafb92" title="Returns whether this session has been initiated (that is, whether initiate() had...">initiated()</a> </dd></dl>
344
+ <dl><dt><b>Exceptions:</b></dt><dd>
368
345
  <table border="0" cellspacing="2" cellpadding="0">
369
346
  <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classPassenger_1_1IOException.html" title="Represents an error that occured during an I/O operation.">IOException</a></em>&nbsp;</td><td>The I/O channel has already been closed or discarded. </td></tr>
370
347
  <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>Something went wrong during writing. </td></tr>
371
348
  <tr><td valign="top"></td><td valign="top"><em>boost::thread_interrupted</em>&nbsp;</td><td></td></tr>
372
349
  </table>
350
+ </dd>
373
351
  </dl>
374
352
 
375
353
  </div>
376
- </div><p>
377
- <a class="anchor" name="8f8a39f78dd2672b00f1ff01e4d6d671"></a><!-- doxytag: member="Passenger::Session::sendHeaders" ref="8f8a39f78dd2672b00f1ff01e4d6d671" args="(const char *headers, unsigned int size)" -->
354
+ </div>
355
+ <a class="anchor" id="a8f8a39f78dd2672b00f1ff01e4d6d671"></a><!-- doxytag: member="Passenger::Session::sendHeaders" ref="a8f8a39f78dd2672b00f1ff01e4d6d671" args="(const char *headers, unsigned int size)" -->
378
356
  <div class="memitem">
379
357
  <div class="memproto">
380
358
  <table class="memname">
381
359
  <tr>
382
- <td class="memname">virtual void Passenger::Session::sendHeaders </td>
360
+ <td class="memname">virtual void Passenger::Session::sendHeaders </td>
383
361
  <td>(</td>
384
362
  <td class="paramtype">const char *&nbsp;</td>
385
363
  <td class="paramname"> <em>headers</em>, </td>
@@ -399,10 +377,8 @@ Convenience shortcut for <a class="el" href="classPassenger_1_1Session.html#8f8a
399
377
  </div>
400
378
  <div class="memdoc">
401
379
 
402
- <p>
403
- Send HTTP request headers to the application.
404
- <p>
405
- The HTTP headers must be converted into CGI headers, and then encoded into a string that matches this grammar:<p>
380
+ <p>Send HTTP request headers to the application. </p>
381
+ <p>The HTTP headers must be converted into CGI headers, and then encoded into a string that matches this grammar:</p>
406
382
  <div class="fragment"><pre class="fragment">
407
383
  headers ::= header*
408
384
  header ::= name NUL value NUL
@@ -410,36 +386,38 @@ The HTTP headers must be converted into CGI headers, and then encoded into a str
410
386
  value ::= notnull+
411
387
  notnull ::= "\x01" | "\x02" | "\x02" | ... | "\xFF"
412
388
  NUL = "\x00"
413
- </pre></div><p>
414
- There must be a header with the name "PASSWORD_CONNECT_PASSWORD", and it must have the same value as the string returned by <a class="el" href="classPassenger_1_1Session.html#eaf4f7097f7b3430dc88e8070cad5899" title="Returns this session&#39;s process&#39;s connect password.">getConnectPassword()</a>.<p>
415
- This method should be the first one to be called during the lifetime of a <a class="el" href="classPassenger_1_1Session.html" title="Represents a single request/response pair of an application process.">Session</a> object, otherwise strange things may happen.<p>
416
- <dl compact><dt><b>Parameters:</b></dt><dd>
389
+ </pre></div><p>There must be a header with the name "PASSWORD_CONNECT_PASSWORD", and it must have the same value as the string returned by <a class="el" href="classPassenger_1_1Session.html#aeaf4f7097f7b3430dc88e8070cad5899" title="Returns this session&#39;s process&#39;s connect password.">getConnectPassword()</a>.</p>
390
+ <p>This method should be the first one to be called during the lifetime of a <a class="el" href="classPassenger_1_1Session.html" title="Represents a single request/response pair of an application process.">Session</a> object, otherwise strange things may happen.</p>
391
+ <dl><dt><b>Parameters:</b></dt><dd>
417
392
  <table border="0" cellspacing="2" cellpadding="0">
418
393
  <tr><td valign="top"></td><td valign="top"><em>headers</em>&nbsp;</td><td>The HTTP request headers, converted into CGI headers and encoded as a string, according to the description. </td></tr>
419
394
  <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>The size, in bytes, of <code>headers</code>. </td></tr>
420
395
  </table>
396
+ </dd>
421
397
  </dl>
422
- <dl class="pre" compact><dt><b>Precondition:</b></dt><dd>headers != NULL <p>
423
- <a class="el" href="classPassenger_1_1Session.html#bf1b6ba182a0fc66c8e617f74afafb92" title="Returns whether this session has been initiated (that is, whether initiate() had...">initiated()</a> </dd></dl>
424
- <dl compact><dt><b>Exceptions:</b></dt><dd>
398
+ <dl class="pre"><dt><b>Precondition:</b></dt><dd>headers != NULL </dd>
399
+ <dd>
400
+ <a class="el" href="classPassenger_1_1Session.html#abf1b6ba182a0fc66c8e617f74afafb92" title="Returns whether this session has been initiated (that is, whether initiate() had...">initiated()</a> </dd></dl>
401
+ <dl><dt><b>Exceptions:</b></dt><dd>
425
402
  <table border="0" cellspacing="2" cellpadding="0">
426
403
  <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classPassenger_1_1IOException.html" title="Represents an error that occured during an I/O operation.">IOException</a></em>&nbsp;</td><td>The I/O channel has already been closed or discarded. </td></tr>
427
404
  <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>Something went wrong during writing. </td></tr>
428
405
  <tr><td valign="top"></td><td valign="top"><em>boost::thread_interrupted</em>&nbsp;</td><td></td></tr>
429
406
  </table>
407
+ </dd>
430
408
  </dl>
431
409
 
432
410
  </div>
433
- </div><p>
434
- <a class="anchor" name="5accbd8f7cce66d0ef6695481fdaa39c"></a><!-- doxytag: member="Passenger::Session::setReaderTimeout" ref="5accbd8f7cce66d0ef6695481fdaa39c" args="(unsigned int msec)=0" -->
411
+ </div>
412
+ <a class="anchor" id="a5accbd8f7cce66d0ef6695481fdaa39c"></a><!-- doxytag: member="Passenger::Session::setReaderTimeout" ref="a5accbd8f7cce66d0ef6695481fdaa39c" args="(unsigned int msec)=0" -->
435
413
  <div class="memitem">
436
414
  <div class="memproto">
437
415
  <table class="memname">
438
416
  <tr>
439
- <td class="memname">virtual void Passenger::Session::setReaderTimeout </td>
417
+ <td class="memname">virtual void Passenger::Session::setReaderTimeout </td>
440
418
  <td>(</td>
441
419
  <td class="paramtype">unsigned int&nbsp;</td>
442
- <td class="paramname"> <em>msec</em> </td>
420
+ <td class="paramname"> <em>msec</em></td>
443
421
  <td>&nbsp;)&nbsp;</td>
444
422
  <td><code> [pure virtual]</code></td>
445
423
  </tr>
@@ -447,36 +425,37 @@ This method should be the first one to be called during the lifetime of a <a cla
447
425
  </div>
448
426
  <div class="memdoc">
449
427
 
450
- <p>
451
- Set the timeout value for reading data from the I/O channel.
452
- <p>
453
- If no data can be read within the timeout period, then the read call will fail with error EAGAIN or EWOULDBLOCK.<p>
454
- <dl class="pre" compact><dt><b>Precondition:</b></dt><dd>The I/O channel hasn't been closed or discarded. <p>
455
- <a class="el" href="classPassenger_1_1Session.html#bf1b6ba182a0fc66c8e617f74afafb92" title="Returns whether this session has been initiated (that is, whether initiate() had...">initiated()</a> </dd></dl>
456
- <dl compact><dt><b>Parameters:</b></dt><dd>
428
+ <p>Set the timeout value for reading data from the I/O channel. </p>
429
+ <p>If no data can be read within the timeout period, then the read call will fail with error EAGAIN or EWOULDBLOCK.</p>
430
+ <dl class="pre"><dt><b>Precondition:</b></dt><dd>The I/O channel hasn't been closed or discarded. </dd>
431
+ <dd>
432
+ <a class="el" href="classPassenger_1_1Session.html#abf1b6ba182a0fc66c8e617f74afafb92" title="Returns whether this session has been initiated (that is, whether initiate() had...">initiated()</a> </dd></dl>
433
+ <dl><dt><b>Parameters:</b></dt><dd>
457
434
  <table border="0" cellspacing="2" cellpadding="0">
458
435
  <tr><td valign="top"></td><td valign="top"><em>msec</em>&nbsp;</td><td>The timeout, in milliseconds. If 0 is given, there will be no timeout. </td></tr>
459
436
  </table>
437
+ </dd>
460
438
  </dl>
461
- <dl compact><dt><b>Exceptions:</b></dt><dd>
439
+ <dl><dt><b>Exceptions:</b></dt><dd>
462
440
  <table border="0" cellspacing="2" cellpadding="0">
463
441
  <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>Cannot set the timeout. </td></tr>
464
442
  </table>
443
+ </dd>
465
444
  </dl>
466
445
 
467
- <p>Implemented in <a class="el" href="classPassenger_1_1StandardSession.html#960346d8c27ff1ae9017d753e41a159a">Passenger::StandardSession</a>.</p>
446
+ <p>Implemented in <a class="el" href="classPassenger_1_1StandardSession.html#a960346d8c27ff1ae9017d753e41a159a">Passenger::StandardSession</a>.</p>
468
447
 
469
448
  </div>
470
- </div><p>
471
- <a class="anchor" name="21dd749c0c8d22f65c6a914ec2f97c94"></a><!-- doxytag: member="Passenger::Session::setWriterTimeout" ref="21dd749c0c8d22f65c6a914ec2f97c94" args="(unsigned int msec)=0" -->
449
+ </div>
450
+ <a class="anchor" id="a21dd749c0c8d22f65c6a914ec2f97c94"></a><!-- doxytag: member="Passenger::Session::setWriterTimeout" ref="a21dd749c0c8d22f65c6a914ec2f97c94" args="(unsigned int msec)=0" -->
472
451
  <div class="memitem">
473
452
  <div class="memproto">
474
453
  <table class="memname">
475
454
  <tr>
476
- <td class="memname">virtual void Passenger::Session::setWriterTimeout </td>
455
+ <td class="memname">virtual void Passenger::Session::setWriterTimeout </td>
477
456
  <td>(</td>
478
457
  <td class="paramtype">unsigned int&nbsp;</td>
479
- <td class="paramname"> <em>msec</em> </td>
458
+ <td class="paramname"> <em>msec</em></td>
480
459
  <td>&nbsp;)&nbsp;</td>
481
460
  <td><code> [pure virtual]</code></td>
482
461
  </tr>
@@ -484,35 +463,36 @@ If no data can be read within the timeout period, then the read call will fail w
484
463
  </div>
485
464
  <div class="memdoc">
486
465
 
487
- <p>
488
- Set the timeout value for writing data from the I/O channel.
489
- <p>
490
- If no data can be written within the timeout period, then the write call will fail with error EAGAIN or EWOULDBLOCK.<p>
491
- <dl class="pre" compact><dt><b>Precondition:</b></dt><dd>The I/O channel hasn't been closed or discarded. <p>
492
- <a class="el" href="classPassenger_1_1Session.html#bf1b6ba182a0fc66c8e617f74afafb92" title="Returns whether this session has been initiated (that is, whether initiate() had...">initiated()</a> </dd></dl>
493
- <dl compact><dt><b>Parameters:</b></dt><dd>
466
+ <p>Set the timeout value for writing data from the I/O channel. </p>
467
+ <p>If no data can be written within the timeout period, then the write call will fail with error EAGAIN or EWOULDBLOCK.</p>
468
+ <dl class="pre"><dt><b>Precondition:</b></dt><dd>The I/O channel hasn't been closed or discarded. </dd>
469
+ <dd>
470
+ <a class="el" href="classPassenger_1_1Session.html#abf1b6ba182a0fc66c8e617f74afafb92" title="Returns whether this session has been initiated (that is, whether initiate() had...">initiated()</a> </dd></dl>
471
+ <dl><dt><b>Parameters:</b></dt><dd>
494
472
  <table border="0" cellspacing="2" cellpadding="0">
495
473
  <tr><td valign="top"></td><td valign="top"><em>msec</em>&nbsp;</td><td>The timeout, in milliseconds. If 0 is given, there will be no timeout. </td></tr>
496
474
  </table>
475
+ </dd>
497
476
  </dl>
498
- <dl compact><dt><b>Exceptions:</b></dt><dd>
477
+ <dl><dt><b>Exceptions:</b></dt><dd>
499
478
  <table border="0" cellspacing="2" cellpadding="0">
500
479
  <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>Cannot set the timeout. </td></tr>
501
480
  </table>
481
+ </dd>
502
482
  </dl>
503
483
 
504
- <p>Implemented in <a class="el" href="classPassenger_1_1StandardSession.html#bb51c323ac0e24011191862f6dec7a75">Passenger::StandardSession</a>.</p>
484
+ <p>Implemented in <a class="el" href="classPassenger_1_1StandardSession.html#abb51c323ac0e24011191862f6dec7a75">Passenger::StandardSession</a>.</p>
505
485
 
506
486
  </div>
507
- </div><p>
508
- <a class="anchor" name="c579d233ddc82542c336b2af1f40c4dd"></a><!-- doxytag: member="Passenger::Session::shutdownReader" ref="c579d233ddc82542c336b2af1f40c4dd" args="()=0" -->
487
+ </div>
488
+ <a class="anchor" id="ac579d233ddc82542c336b2af1f40c4dd"></a><!-- doxytag: member="Passenger::Session::shutdownReader" ref="ac579d233ddc82542c336b2af1f40c4dd" args="()=0" -->
509
489
  <div class="memitem">
510
490
  <div class="memproto">
511
491
  <table class="memname">
512
492
  <tr>
513
- <td class="memname">virtual void Passenger::Session::shutdownReader </td>
493
+ <td class="memname">virtual void Passenger::Session::shutdownReader </td>
514
494
  <td>(</td>
515
- <td class="paramname"> </td>
495
+ <td class="paramname"></td>
516
496
  <td>&nbsp;)&nbsp;</td>
517
497
  <td><code> [pure virtual]</code></td>
518
498
  </tr>
@@ -520,30 +500,29 @@ If no data can be written within the timeout period, then the write call will fa
520
500
  </div>
521
501
  <div class="memdoc">
522
502
 
523
- <p>
524
- Indicate that we don't want to read data anymore from the I/O channel.
525
- <p>
526
- Calling this method after <a class="el" href="classPassenger_1_1Session.html#7ab85388f15388cb8e65873d1ad310a5" title="Close the I/O stream.">closeStream()</a>/discardStream() is called will have no effect.<p>
527
- <dl class="pre" compact><dt><b>Precondition:</b></dt><dd><a class="el" href="classPassenger_1_1Session.html#bf1b6ba182a0fc66c8e617f74afafb92" title="Returns whether this session has been initiated (that is, whether initiate() had...">initiated()</a> </dd></dl>
528
- <dl compact><dt><b>Exceptions:</b></dt><dd>
503
+ <p>Indicate that we don't want to read data anymore from the I/O channel. </p>
504
+ <p>Calling this method after <a class="el" href="classPassenger_1_1Session.html#a7ab85388f15388cb8e65873d1ad310a5" title="Close the I/O stream.">closeStream()</a>/discardStream() is called will have no effect.</p>
505
+ <dl class="pre"><dt><b>Precondition:</b></dt><dd><a class="el" href="classPassenger_1_1Session.html#abf1b6ba182a0fc66c8e617f74afafb92" title="Returns whether this session has been initiated (that is, whether initiate() had...">initiated()</a> </dd></dl>
506
+ <dl><dt><b>Exceptions:</b></dt><dd>
529
507
  <table border="0" cellspacing="2" cellpadding="0">
530
508
  <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>Something went wrong. </td></tr>
531
509
  <tr><td valign="top"></td><td valign="top"><em>boost::thread_interrupted</em>&nbsp;</td><td></td></tr>
532
510
  </table>
511
+ </dd>
533
512
  </dl>
534
513
 
535
- <p>Implemented in <a class="el" href="classPassenger_1_1StandardSession.html#c92d4d081d6145ba8d441c8cf88fae74">Passenger::StandardSession</a>.</p>
514
+ <p>Implemented in <a class="el" href="classPassenger_1_1StandardSession.html#ac92d4d081d6145ba8d441c8cf88fae74">Passenger::StandardSession</a>.</p>
536
515
 
537
516
  </div>
538
- </div><p>
539
- <a class="anchor" name="8263c568a8ac4567b33728d820cbd920"></a><!-- doxytag: member="Passenger::Session::shutdownWriter" ref="8263c568a8ac4567b33728d820cbd920" args="()=0" -->
517
+ </div>
518
+ <a class="anchor" id="a8263c568a8ac4567b33728d820cbd920"></a><!-- doxytag: member="Passenger::Session::shutdownWriter" ref="a8263c568a8ac4567b33728d820cbd920" args="()=0" -->
540
519
  <div class="memitem">
541
520
  <div class="memproto">
542
521
  <table class="memname">
543
522
  <tr>
544
- <td class="memname">virtual void Passenger::Session::shutdownWriter </td>
523
+ <td class="memname">virtual void Passenger::Session::shutdownWriter </td>
545
524
  <td>(</td>
546
- <td class="paramname"> </td>
525
+ <td class="paramname"></td>
547
526
  <td>&nbsp;)&nbsp;</td>
548
527
  <td><code> [pure virtual]</code></td>
549
528
  </tr>
@@ -551,27 +530,27 @@ Calling this method after <a class="el" href="classPassenger_1_1Session.html#7ab
551
530
  </div>
552
531
  <div class="memdoc">
553
532
 
554
- <p>
555
- Indicate that we don't want to write data anymore to the I/O channel.
556
- <p>
557
- Calling this method after <a class="el" href="classPassenger_1_1Session.html#7ab85388f15388cb8e65873d1ad310a5" title="Close the I/O stream.">closeStream()</a>/discardStream() is called will have no effect.<p>
558
- <dl class="pre" compact><dt><b>Precondition:</b></dt><dd><a class="el" href="classPassenger_1_1Session.html#bf1b6ba182a0fc66c8e617f74afafb92" title="Returns whether this session has been initiated (that is, whether initiate() had...">initiated()</a> </dd></dl>
559
- <dl compact><dt><b>Exceptions:</b></dt><dd>
533
+ <p>Indicate that we don't want to write data anymore to the I/O channel. </p>
534
+ <p>Calling this method after <a class="el" href="classPassenger_1_1Session.html#a7ab85388f15388cb8e65873d1ad310a5" title="Close the I/O stream.">closeStream()</a>/discardStream() is called will have no effect.</p>
535
+ <dl class="pre"><dt><b>Precondition:</b></dt><dd><a class="el" href="classPassenger_1_1Session.html#abf1b6ba182a0fc66c8e617f74afafb92" title="Returns whether this session has been initiated (that is, whether initiate() had...">initiated()</a> </dd></dl>
536
+ <dl><dt><b>Exceptions:</b></dt><dd>
560
537
  <table border="0" cellspacing="2" cellpadding="0">
561
538
  <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>Something went wrong. </td></tr>
562
539
  <tr><td valign="top"></td><td valign="top"><em>boost::thread_interrupted</em>&nbsp;</td><td></td></tr>
563
540
  </table>
541
+ </dd>
564
542
  </dl>
565
543
 
566
- <p>Implemented in <a class="el" href="classPassenger_1_1StandardSession.html#045a8f7f849c34086b0832fdba7a2915">Passenger::StandardSession</a>.</p>
544
+ <p>Implemented in <a class="el" href="classPassenger_1_1StandardSession.html#a045a8f7f849c34086b0832fdba7a2915">Passenger::StandardSession</a>.</p>
567
545
 
568
546
  </div>
569
- </div><p>
570
- <hr>The documentation for this class was generated from the following file:<ul>
571
- <li><a class="el" href="Session_8h-source.html">Session.h</a></ul>
572
547
  </div>
573
- <hr size="1"><address style="text-align: right;"><small>Generated on Sun Mar 28 14:11:59 2010 for Passenger by&nbsp;
548
+ <hr/>The documentation for this class was generated from the following file:<ul>
549
+ <li><a class="el" href="Session_8h_source.html">Session.h</a></li>
550
+ </ul>
551
+ </div>
552
+ <hr size="1"/><address style="text-align: right;"><small>Generated by&nbsp;
574
553
  <a href="http://www.doxygen.org/index.html">
575
- <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
554
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
576
555
  </body>
577
556
  </html>