passenger 2.1.3 → 2.2.0

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 (398) hide show
  1. data/DEVELOPERS.TXT +2 -0
  2. data/INSTALL +3 -1
  3. data/LICENSE +19 -355
  4. data/NEWS +3 -0
  5. data/README +11 -4
  6. data/Rakefile +435 -236
  7. data/bin/passenger-config +20 -14
  8. data/bin/passenger-install-apache2-module +67 -201
  9. data/bin/passenger-install-nginx-module +477 -0
  10. data/bin/passenger-make-enterprisey +17 -12
  11. data/bin/passenger-memory-stats +33 -23
  12. data/bin/passenger-spawn-server +17 -12
  13. data/bin/passenger-status +18 -13
  14. data/bin/passenger-stress-test +17 -12
  15. data/doc/{Users guide.html → Users guide Apache.html } +79 -61
  16. data/doc/{Users guide.txt → Users guide Apache.txt } +43 -939
  17. data/doc/Users guide Nginx.html +2276 -0
  18. data/doc/Users guide Nginx.txt +776 -0
  19. data/doc/cxxapi/ApplicationPoolServer_8h-source.html +9 -4
  20. data/doc/cxxapi/ApplicationPool_8h-source.html +9 -4
  21. data/doc/cxxapi/Application_8h-source.html +26 -21
  22. data/doc/cxxapi/Bucket_8h-source.html +54 -44
  23. data/doc/cxxapi/CachedFileStat_8h-source.html +9 -4
  24. data/doc/cxxapi/Configuration_8h-source.html +357 -339
  25. data/doc/cxxapi/DirectoryMapper_8h-source.html +294 -280
  26. data/doc/cxxapi/DummySpawnManager_8h-source.html +9 -4
  27. data/doc/cxxapi/Exceptions_8h-source.html +9 -4
  28. data/doc/cxxapi/FileChecker_8h-source.html +9 -4
  29. data/doc/cxxapi/Hooks_8h-source.html +50 -40
  30. data/doc/cxxapi/Logging_8h-source.html +9 -4
  31. data/doc/cxxapi/MessageChannel_8h-source.html +20 -15
  32. data/doc/cxxapi/PoolOptions_8h-source.html +10 -5
  33. data/doc/cxxapi/SpawnManager_8h-source.html +9 -4
  34. data/doc/cxxapi/StandardApplicationPool_8h-source.html +10 -5
  35. data/doc/cxxapi/SystemTime_8h-source.html +9 -4
  36. data/doc/cxxapi/Utils_8h-source.html +242 -214
  37. data/doc/cxxapi/annotated.html +4 -28
  38. data/doc/cxxapi/classClient-members.html +4 -4
  39. data/doc/cxxapi/classClient.html +14 -11
  40. data/doc/cxxapi/classHooks-members.html +4 -5
  41. data/doc/cxxapi/classHooks.html +26 -24
  42. data/doc/cxxapi/classPassenger_1_1Application-members.html +4 -4
  43. data/doc/cxxapi/classPassenger_1_1Application.html +40 -37
  44. data/doc/cxxapi/classPassenger_1_1ApplicationPool-members.html +4 -4
  45. data/doc/cxxapi/classPassenger_1_1ApplicationPool.html +95 -92
  46. data/doc/cxxapi/classPassenger_1_1ApplicationPoolServer-members.html +4 -4
  47. data/doc/cxxapi/classPassenger_1_1ApplicationPoolServer.html +26 -23
  48. data/doc/cxxapi/classPassenger_1_1ApplicationPool__inherit__graph.map +1 -1
  49. data/doc/cxxapi/classPassenger_1_1ApplicationPool__inherit__graph.md5 +1 -1
  50. data/doc/cxxapi/classPassenger_1_1ApplicationPool__inherit__graph.png +0 -0
  51. data/doc/cxxapi/classPassenger_1_1Application_1_1Session-members.html +17 -17
  52. data/doc/cxxapi/classPassenger_1_1Application_1_1Session.html +139 -136
  53. data/doc/cxxapi/classPassenger_1_1BufferedUpload-members.html +4 -4
  54. data/doc/cxxapi/classPassenger_1_1BufferedUpload.html +13 -10
  55. data/doc/cxxapi/classPassenger_1_1BusyException-members.html +4 -4
  56. data/doc/cxxapi/classPassenger_1_1BusyException.html +11 -8
  57. data/doc/cxxapi/classPassenger_1_1ConfigurationException-members.html +4 -4
  58. data/doc/cxxapi/classPassenger_1_1ConfigurationException.html +11 -8
  59. data/doc/cxxapi/classPassenger_1_1DirectoryMapper-members.html +4 -5
  60. data/doc/cxxapi/classPassenger_1_1DirectoryMapper.html +45 -43
  61. data/doc/cxxapi/classPassenger_1_1DummySpawnManager-members.html +4 -4
  62. data/doc/cxxapi/classPassenger_1_1DummySpawnManager.html +13 -10
  63. data/doc/cxxapi/classPassenger_1_1FileChecker-members.html +4 -4
  64. data/doc/cxxapi/classPassenger_1_1FileChecker.html +22 -19
  65. data/doc/cxxapi/classPassenger_1_1FileNotFoundException-members.html +4 -4
  66. data/doc/cxxapi/classPassenger_1_1FileNotFoundException.html +12 -9
  67. data/doc/cxxapi/classPassenger_1_1FileNotFoundException__inherit__graph.map +1 -1
  68. data/doc/cxxapi/classPassenger_1_1FileNotFoundException__inherit__graph.md5 +1 -1
  69. data/doc/cxxapi/classPassenger_1_1FileNotFoundException__inherit__graph.png +0 -0
  70. data/doc/cxxapi/classPassenger_1_1FileSystemException-members.html +4 -4
  71. data/doc/cxxapi/classPassenger_1_1FileSystemException.html +14 -11
  72. data/doc/cxxapi/classPassenger_1_1FileSystemException__inherit__graph.map +1 -1
  73. data/doc/cxxapi/classPassenger_1_1FileSystemException__inherit__graph.md5 +1 -1
  74. data/doc/cxxapi/classPassenger_1_1FileSystemException__inherit__graph.png +0 -0
  75. data/doc/cxxapi/classPassenger_1_1IOException-members.html +4 -4
  76. data/doc/cxxapi/classPassenger_1_1IOException.html +12 -9
  77. data/doc/cxxapi/classPassenger_1_1IOException__inherit__graph.map +1 -1
  78. data/doc/cxxapi/classPassenger_1_1IOException__inherit__graph.md5 +1 -1
  79. data/doc/cxxapi/classPassenger_1_1IOException__inherit__graph.png +0 -0
  80. data/doc/cxxapi/classPassenger_1_1MessageChannel-members.html +4 -4
  81. data/doc/cxxapi/classPassenger_1_1MessageChannel.html +228 -225
  82. data/doc/cxxapi/classPassenger_1_1RuntimeException-members.html +4 -4
  83. data/doc/cxxapi/classPassenger_1_1RuntimeException.html +11 -8
  84. data/doc/cxxapi/classPassenger_1_1SpawnException-members.html +4 -4
  85. data/doc/cxxapi/classPassenger_1_1SpawnException.html +14 -11
  86. data/doc/cxxapi/classPassenger_1_1SpawnManager-members.html +4 -4
  87. data/doc/cxxapi/classPassenger_1_1SpawnManager.html +50 -47
  88. data/doc/cxxapi/classPassenger_1_1StandardApplicationPool-members.html +4 -4
  89. data/doc/cxxapi/classPassenger_1_1StandardApplicationPool.html +73 -70
  90. data/doc/cxxapi/classPassenger_1_1StandardApplicationPool__inherit__graph.map +1 -1
  91. data/doc/cxxapi/classPassenger_1_1StandardApplicationPool__inherit__graph.md5 +1 -1
  92. data/doc/cxxapi/classPassenger_1_1StandardApplicationPool__inherit__graph.png +0 -0
  93. data/doc/cxxapi/classPassenger_1_1SystemException-members.html +4 -4
  94. data/doc/cxxapi/classPassenger_1_1SystemException.html +17 -14
  95. data/doc/cxxapi/classPassenger_1_1SystemException__inherit__graph.map +1 -1
  96. data/doc/cxxapi/classPassenger_1_1SystemException__inherit__graph.md5 +1 -1
  97. data/doc/cxxapi/classPassenger_1_1SystemException__inherit__graph.png +0 -0
  98. data/doc/cxxapi/classPassenger_1_1SystemTime-members.html +4 -4
  99. data/doc/cxxapi/classPassenger_1_1SystemTime.html +14 -11
  100. data/doc/cxxapi/classes.html +35 -0
  101. data/doc/cxxapi/definitions_8h-source.html +9 -4
  102. data/doc/cxxapi/doxygen.css +311 -303
  103. data/doc/cxxapi/files.html +9 -18
  104. data/doc/cxxapi/functions.html +5 -224
  105. data/doc/cxxapi/functions_func.html +5 -185
  106. data/doc/cxxapi/functions_type.html +4 -4
  107. data/doc/cxxapi/functions_vars.html +4 -4
  108. data/doc/cxxapi/graph_legend.dot +19 -19
  109. data/doc/cxxapi/graph_legend.html +5 -5
  110. data/doc/cxxapi/graph_legend.png +0 -0
  111. data/doc/cxxapi/group__Configuration.html +11 -13
  112. data/doc/cxxapi/group__Configuration.png +0 -0
  113. data/doc/cxxapi/group__Core.html +10 -12
  114. data/doc/cxxapi/group__Core.png +0 -0
  115. data/doc/cxxapi/group__Exceptions.html +5 -7
  116. data/doc/cxxapi/group__Hooks.html +5 -7
  117. data/doc/cxxapi/group__Hooks.png +0 -0
  118. data/doc/cxxapi/group__Support.html +5 -624
  119. data/doc/cxxapi/hierarchy.html +6 -6
  120. data/doc/cxxapi/inherit__graph__0.map +1 -1
  121. data/doc/cxxapi/inherit__graph__0.md5 +1 -1
  122. data/doc/cxxapi/inherit__graph__0.png +0 -0
  123. data/doc/cxxapi/inherit__graph__1.map +1 -1
  124. data/doc/cxxapi/inherit__graph__1.md5 +1 -1
  125. data/doc/cxxapi/inherit__graph__1.png +0 -0
  126. data/doc/cxxapi/inherit__graph__10.map +1 -1
  127. data/doc/cxxapi/inherit__graph__10.md5 +1 -1
  128. data/doc/cxxapi/inherit__graph__10.png +0 -0
  129. data/doc/cxxapi/inherit__graph__11.map +1 -1
  130. data/doc/cxxapi/inherit__graph__11.md5 +1 -1
  131. data/doc/cxxapi/inherit__graph__11.png +0 -0
  132. data/doc/cxxapi/inherit__graph__12.map +1 -1
  133. data/doc/cxxapi/inherit__graph__12.md5 +1 -1
  134. data/doc/cxxapi/inherit__graph__12.png +0 -0
  135. data/doc/cxxapi/inherit__graph__13.map +1 -2
  136. data/doc/cxxapi/inherit__graph__13.md5 +1 -1
  137. data/doc/cxxapi/inherit__graph__13.png +0 -0
  138. data/doc/cxxapi/inherit__graph__14.map +2 -1
  139. data/doc/cxxapi/inherit__graph__14.md5 +1 -1
  140. data/doc/cxxapi/inherit__graph__14.png +0 -0
  141. data/doc/cxxapi/inherit__graph__15.map +1 -1
  142. data/doc/cxxapi/inherit__graph__15.md5 +1 -1
  143. data/doc/cxxapi/inherit__graph__15.png +0 -0
  144. data/doc/cxxapi/inherit__graph__16.map +1 -1
  145. data/doc/cxxapi/inherit__graph__16.md5 +1 -1
  146. data/doc/cxxapi/inherit__graph__16.png +0 -0
  147. data/doc/cxxapi/inherit__graph__17.map +1 -1
  148. data/doc/cxxapi/inherit__graph__17.md5 +1 -1
  149. data/doc/cxxapi/inherit__graph__17.png +0 -0
  150. data/doc/cxxapi/inherit__graph__18.map +1 -1
  151. data/doc/cxxapi/inherit__graph__18.md5 +1 -1
  152. data/doc/cxxapi/inherit__graph__18.png +0 -0
  153. data/doc/cxxapi/inherit__graph__19.map +1 -1
  154. data/doc/cxxapi/inherit__graph__19.md5 +1 -1
  155. data/doc/cxxapi/inherit__graph__19.png +0 -0
  156. data/doc/cxxapi/inherit__graph__2.map +1 -1
  157. data/doc/cxxapi/inherit__graph__2.md5 +1 -1
  158. data/doc/cxxapi/inherit__graph__2.png +0 -0
  159. data/doc/cxxapi/inherit__graph__20.map +2 -2
  160. data/doc/cxxapi/inherit__graph__20.md5 +1 -1
  161. data/doc/cxxapi/inherit__graph__20.png +0 -0
  162. data/doc/cxxapi/inherit__graph__21.map +1 -1
  163. data/doc/cxxapi/inherit__graph__21.md5 +1 -1
  164. data/doc/cxxapi/inherit__graph__21.png +0 -0
  165. data/doc/cxxapi/inherit__graph__3.map +1 -1
  166. data/doc/cxxapi/inherit__graph__3.md5 +1 -1
  167. data/doc/cxxapi/inherit__graph__3.png +0 -0
  168. data/doc/cxxapi/inherit__graph__4.map +1 -1
  169. data/doc/cxxapi/inherit__graph__4.md5 +1 -1
  170. data/doc/cxxapi/inherit__graph__4.png +0 -0
  171. data/doc/cxxapi/inherit__graph__5.map +1 -2
  172. data/doc/cxxapi/inherit__graph__5.md5 +1 -1
  173. data/doc/cxxapi/inherit__graph__5.png +0 -0
  174. data/doc/cxxapi/inherit__graph__6.map +2 -1
  175. data/doc/cxxapi/inherit__graph__6.md5 +1 -1
  176. data/doc/cxxapi/inherit__graph__6.png +0 -0
  177. data/doc/cxxapi/inherit__graph__7.map +1 -1
  178. data/doc/cxxapi/inherit__graph__7.md5 +1 -1
  179. data/doc/cxxapi/inherit__graph__7.png +0 -0
  180. data/doc/cxxapi/inherit__graph__8.map +1 -1
  181. data/doc/cxxapi/inherit__graph__8.md5 +1 -1
  182. data/doc/cxxapi/inherit__graph__8.png +0 -0
  183. data/doc/cxxapi/inherit__graph__9.map +1 -1
  184. data/doc/cxxapi/inherit__graph__9.md5 +1 -1
  185. data/doc/cxxapi/inherit__graph__9.png +0 -0
  186. data/doc/cxxapi/inherits.html +41 -41
  187. data/doc/cxxapi/main.html +4 -4
  188. data/doc/cxxapi/modules.html +4 -5
  189. data/doc/cxxapi/structPassenger_1_1AnythingToString-members.html +4 -4
  190. data/doc/cxxapi/structPassenger_1_1AnythingToString.html +13 -10
  191. data/doc/cxxapi/structPassenger_1_1AnythingToString_3_01vector_3_01string_01_4_01_4-members.html +5 -5
  192. data/doc/cxxapi/structPassenger_1_1AnythingToString_3_01vector_3_01string_01_4_01_4.html +16 -13
  193. data/doc/cxxapi/structPassenger_1_1PoolOptions-members.html +4 -4
  194. data/doc/cxxapi/structPassenger_1_1PoolOptions.html +63 -60
  195. data/doc/cxxapi/tabs.css +5 -2
  196. data/doc/cxxapi/tree.html +7 -81
  197. data/doc/rdoc/classes/ConditionVariable.html +59 -59
  198. data/doc/rdoc/classes/Exception.html +11 -11
  199. data/doc/rdoc/classes/GC.html +4 -4
  200. data/doc/rdoc/classes/IO.html +14 -14
  201. data/doc/rdoc/classes/PhusionPassenger.html +75 -20
  202. data/doc/rdoc/classes/PhusionPassenger/AbstractInstaller.html +153 -0
  203. data/doc/rdoc/classes/PhusionPassenger/AbstractRequestHandler.html +125 -130
  204. data/doc/rdoc/classes/PhusionPassenger/AbstractServer.html +236 -236
  205. data/doc/rdoc/classes/PhusionPassenger/AbstractServerCollection.html +213 -213
  206. data/doc/rdoc/classes/PhusionPassenger/AdminTools.html +28 -28
  207. data/doc/rdoc/classes/PhusionPassenger/AdminTools/ControlProcess.html +91 -75
  208. data/doc/rdoc/classes/PhusionPassenger/AppInitError.html +10 -10
  209. data/doc/rdoc/classes/PhusionPassenger/Application.html +64 -64
  210. data/doc/rdoc/classes/PhusionPassenger/ConsoleTextTemplate.html +34 -34
  211. data/doc/rdoc/classes/PhusionPassenger/FrameworkInitError.html +13 -13
  212. data/doc/rdoc/classes/PhusionPassenger/HTMLTemplate.html +30 -30
  213. data/doc/rdoc/classes/PhusionPassenger/InitializationError.html +10 -10
  214. data/doc/rdoc/classes/PhusionPassenger/MessageChannel.html +136 -136
  215. data/doc/rdoc/classes/PhusionPassenger/NativeSupport.html +24 -24
  216. data/doc/rdoc/classes/PhusionPassenger/Rack/ApplicationSpawner.html +42 -42
  217. data/doc/rdoc/classes/PhusionPassenger/Rack/RequestHandler.html +55 -53
  218. data/doc/rdoc/classes/PhusionPassenger/Railz.html +1 -1
  219. data/doc/rdoc/classes/PhusionPassenger/Railz/ApplicationSpawner.html +25 -30
  220. data/doc/rdoc/classes/PhusionPassenger/Railz/CGIFixed.html +23 -23
  221. data/doc/rdoc/classes/PhusionPassenger/Railz/FrameworkSpawner.html +116 -117
  222. data/doc/rdoc/classes/PhusionPassenger/Railz/RequestHandler.html +22 -22
  223. data/doc/rdoc/classes/PhusionPassenger/SpawnManager.html +118 -124
  224. data/doc/rdoc/classes/PhusionPassenger/UnknownError.html +10 -10
  225. data/doc/rdoc/classes/PhusionPassenger/Utils.html +354 -354
  226. data/doc/rdoc/classes/PhusionPassenger/VersionNotFound.html +9 -9
  227. data/doc/rdoc/classes/PhusionPassenger/WSGI/ApplicationSpawner.html +37 -37
  228. data/doc/rdoc/classes/PlatformInfo.html +282 -261
  229. data/doc/rdoc/classes/RakeExtensions.html +7 -7
  230. data/doc/rdoc/classes/Signal.html +26 -26
  231. data/doc/rdoc/created.rid +1 -1
  232. data/doc/rdoc/files/DEVELOPERS_TXT.html +6 -1
  233. data/doc/rdoc/files/README.html +15 -6
  234. data/doc/rdoc/files/ext/phusion_passenger/native_support_c.html +1 -1
  235. data/doc/rdoc/files/lib/phusion_passenger/abstract_installer_rb.html +129 -0
  236. data/doc/rdoc/files/lib/phusion_passenger/abstract_request_handler_rb.html +20 -13
  237. data/doc/rdoc/files/lib/phusion_passenger/abstract_server_collection_rb.html +19 -13
  238. data/doc/rdoc/files/lib/phusion_passenger/abstract_server_rb.html +19 -13
  239. data/doc/rdoc/files/lib/phusion_passenger/admin_tools/control_process_rb.html +31 -1
  240. data/doc/rdoc/files/lib/phusion_passenger/admin_tools_rb.html +31 -1
  241. data/doc/rdoc/files/lib/phusion_passenger/application_rb.html +19 -13
  242. data/doc/rdoc/files/lib/phusion_passenger/console_text_template_rb.html +19 -13
  243. data/doc/rdoc/files/lib/phusion_passenger/constants_rb.html +21 -12
  244. data/doc/rdoc/files/lib/phusion_passenger/dependencies_rb.html +19 -13
  245. data/doc/rdoc/files/lib/phusion_passenger/events_rb.html +19 -13
  246. data/doc/rdoc/files/lib/phusion_passenger/exceptions_rb.html +19 -13
  247. data/doc/rdoc/files/lib/phusion_passenger/html_template_rb.html +19 -13
  248. data/doc/rdoc/files/lib/phusion_passenger/message_channel_rb.html +19 -13
  249. data/doc/rdoc/files/lib/phusion_passenger/packaging_rb.html +122 -0
  250. data/doc/rdoc/files/lib/phusion_passenger/platform_info_rb.html +19 -13
  251. data/doc/rdoc/files/lib/phusion_passenger/rack/application_spawner_rb.html +22 -12
  252. data/doc/rdoc/files/lib/phusion_passenger/rack/request_handler_rb.html +21 -12
  253. data/doc/rdoc/files/lib/phusion_passenger/railz/application_spawner_rb.html +19 -13
  254. data/doc/rdoc/files/lib/phusion_passenger/railz/cgi_fixed_rb.html +1 -1
  255. data/doc/rdoc/files/lib/phusion_passenger/railz/framework_spawner_rb.html +19 -13
  256. data/doc/rdoc/files/lib/phusion_passenger/railz/request_handler_rb.html +21 -12
  257. data/doc/rdoc/files/lib/phusion_passenger/simple_benchmarking_rb.html +19 -13
  258. data/doc/rdoc/files/lib/phusion_passenger/spawn_manager_rb.html +19 -13
  259. data/doc/rdoc/files/lib/phusion_passenger/utils_rb.html +27 -21
  260. data/doc/rdoc/files/lib/phusion_passenger/wsgi/application_spawner_rb.html +21 -12
  261. data/doc/rdoc/files/misc/rake/extensions_rb.html +21 -12
  262. data/doc/rdoc/fr_class_index.html +1 -0
  263. data/doc/rdoc/fr_file_index.html +2 -0
  264. data/doc/rdoc/fr_method_index.html +116 -112
  265. data/doc/users_guide_snippets/analysis_and_system_maintenance_tools.txt +144 -0
  266. data/doc/users_guide_snippets/appendix_a_about.txt +13 -0
  267. data/doc/users_guide_snippets/appendix_b_terminology.txt +63 -0
  268. data/doc/users_guide_snippets/appendix_c_spawning_methods.txt +304 -0
  269. data/doc/users_guide_snippets/global_queueing_explained.txt +78 -0
  270. data/doc/users_guide_snippets/rackup_specifications.txt +75 -0
  271. data/doc/users_guide_snippets/rails_spawn_method.txt +48 -0
  272. data/doc/users_guide_snippets/tips.txt +173 -0
  273. data/ext/apache2/Bucket.cpp +17 -12
  274. data/ext/apache2/Bucket.h +17 -12
  275. data/ext/apache2/Configuration.cpp +17 -12
  276. data/ext/apache2/Configuration.h +27 -14
  277. data/ext/apache2/DirectoryMapper.h +21 -12
  278. data/ext/apache2/Hooks.cpp +67 -21
  279. data/ext/apache2/Hooks.h +17 -12
  280. data/ext/apache2/mod_passenger.c +17 -12
  281. data/ext/{apache2 → common}/Application.h +19 -14
  282. data/ext/{apache2 → common}/ApplicationPool.h +17 -12
  283. data/ext/{apache2 → common}/ApplicationPoolServer.h +18 -72
  284. data/ext/{apache2 → common}/ApplicationPoolServerExecutable.cpp +45 -104
  285. data/ext/common/ApplicationPoolStatusReporter.h +212 -0
  286. data/ext/{apache2 → common}/CachedFileStat.cpp +17 -12
  287. data/ext/{apache2 → common}/CachedFileStat.h +17 -12
  288. data/ext/{apache2 → common}/DummySpawnManager.h +17 -12
  289. data/ext/{apache2 → common}/Exceptions.h +17 -12
  290. data/ext/{apache2 → common}/FileChecker.h +17 -12
  291. data/ext/common/Logging.cpp +65 -0
  292. data/ext/{apache2 → common}/Logging.h +17 -12
  293. data/ext/{apache2 → common}/MessageChannel.h +17 -12
  294. data/ext/{apache2 → common}/PoolOptions.h +17 -12
  295. data/ext/{apache2 → common}/SpawnManager.h +17 -12
  296. data/ext/{apache2 → common}/StandardApplicationPool.h +17 -12
  297. data/ext/common/StaticString.h +147 -0
  298. data/ext/common/SystemTime.cpp +33 -0
  299. data/ext/{apache2 → common}/SystemTime.h +17 -12
  300. data/ext/{apache2 → common}/Utils.cpp +69 -12
  301. data/ext/{apache2 → common}/Utils.h +41 -12
  302. data/ext/nginx/Configuration.c +1091 -0
  303. data/ext/nginx/Configuration.h +71 -0
  304. data/ext/nginx/ContentHandler.c +1154 -0
  305. data/ext/nginx/ContentHandler.h +64 -0
  306. data/ext/nginx/HelperServer.cpp +857 -0
  307. data/ext/nginx/HttpStatusExtractor.h +161 -0
  308. data/ext/nginx/ScgiRequestParser.h +317 -0
  309. data/ext/nginx/StaticContentHandler.c +222 -0
  310. data/ext/nginx/StaticContentHandler.h +37 -0
  311. data/ext/nginx/config +41 -0
  312. data/ext/nginx/ngx_http_passenger_module.c +572 -0
  313. data/ext/nginx/ngx_http_passenger_module.h +72 -0
  314. data/ext/oxt/backtrace.cpp +8 -1
  315. data/ext/oxt/system_calls.cpp +40 -0
  316. data/ext/oxt/system_calls.hpp +14 -7
  317. data/ext/phusion_passenger/extconf.rb +17 -12
  318. data/ext/phusion_passenger/native_support.c +19 -12
  319. data/lib/phusion_passenger/abstract_installer.rb +196 -0
  320. data/lib/phusion_passenger/abstract_request_handler.rb +19 -24
  321. data/lib/phusion_passenger/abstract_server.rb +17 -12
  322. data/lib/phusion_passenger/abstract_server_collection.rb +17 -12
  323. data/lib/phusion_passenger/admin_tools.rb +23 -0
  324. data/lib/phusion_passenger/admin_tools/control_process.rb +39 -13
  325. data/lib/phusion_passenger/application.rb +17 -12
  326. data/lib/phusion_passenger/console_text_template.rb +17 -12
  327. data/lib/phusion_passenger/constants.rb +22 -11
  328. data/lib/phusion_passenger/dependencies.rb +47 -12
  329. data/lib/phusion_passenger/events.rb +17 -12
  330. data/lib/phusion_passenger/exceptions.rb +17 -12
  331. data/lib/phusion_passenger/html_template.rb +17 -12
  332. data/lib/phusion_passenger/message_channel.rb +17 -12
  333. data/lib/phusion_passenger/packaging.rb +39 -0
  334. data/lib/phusion_passenger/platform_info.rb +48 -22
  335. data/lib/phusion_passenger/rack/application_spawner.rb +22 -11
  336. data/lib/phusion_passenger/rack/request_handler.rb +21 -12
  337. data/lib/phusion_passenger/railz/application_spawner.rb +23 -23
  338. data/lib/phusion_passenger/railz/framework_spawner.rb +18 -14
  339. data/lib/phusion_passenger/railz/request_handler.rb +18 -11
  340. data/lib/phusion_passenger/simple_benchmarking.rb +17 -12
  341. data/lib/phusion_passenger/spawn_manager.rb +17 -20
  342. data/lib/phusion_passenger/templates/{apache_must_be_compiled_with_compatible_mpm.txt.erb → apache2/apache_must_be_compiled_with_compatible_mpm.txt.erb} +0 -0
  343. data/lib/phusion_passenger/templates/{apache2_config_snippets.txt.erb → apache2/config_snippets.txt.erb} +0 -0
  344. data/lib/phusion_passenger/templates/{deployment_example.txt.erb → apache2/deployment_example.txt.erb} +0 -0
  345. data/lib/phusion_passenger/templates/{no_write_permission_to_passenger_root.txt.erb → apache2/no_write_permission_to_passenger_root.txt.erb} +0 -0
  346. data/lib/phusion_passenger/templates/{possible_solutions_for_compilation_and_installation_problems.txt.erb → apache2/possible_solutions_for_compilation_and_installation_problems.txt.erb} +0 -0
  347. data/lib/phusion_passenger/templates/{run_installer_as_root.txt.erb → apache2/run_installer_as_root.txt.erb} +0 -0
  348. data/lib/phusion_passenger/templates/{welcome.txt.erb → apache2/welcome.txt.erb} +0 -0
  349. data/lib/phusion_passenger/templates/nginx/ask_for_extra_configure_flags.txt.erb +8 -0
  350. data/lib/phusion_passenger/templates/nginx/cannot_write_to_dir.txt.erb +11 -0
  351. data/lib/phusion_passenger/templates/nginx/config_snippets.txt.erb +17 -0
  352. data/lib/phusion_passenger/templates/nginx/config_snippets_inserted.txt.erb +20 -0
  353. data/lib/phusion_passenger/templates/nginx/confirm_extra_configure_flags.txt.erb +5 -0
  354. data/lib/phusion_passenger/templates/nginx/deployment_example.txt.erb +22 -0
  355. data/lib/phusion_passenger/templates/nginx/pcre_could_not_be_downloaded.txt.erb +11 -0
  356. data/lib/phusion_passenger/templates/nginx/pcre_could_not_be_extracted.txt.erb +11 -0
  357. data/lib/phusion_passenger/templates/nginx/possible_solutions_for_compilation_and_installation_problems.txt.erb +11 -0
  358. data/lib/phusion_passenger/templates/nginx/possible_solutions_for_download_and_extraction_problems.txt.erb +20 -0
  359. data/lib/phusion_passenger/templates/nginx/query_download_and_install.txt.erb +21 -0
  360. data/lib/phusion_passenger/templates/nginx/run_installer_as_root.txt.erb +8 -0
  361. data/lib/phusion_passenger/templates/nginx/welcome.txt.erb +15 -0
  362. data/lib/phusion_passenger/utils.rb +20 -15
  363. data/lib/phusion_passenger/wsgi/application_spawner.rb +18 -11
  364. data/lib/phusion_passenger/wsgi/request_handler.py +23 -0
  365. data/misc/copy_boost_headers.rb +23 -0
  366. data/misc/find_owner_pipe_leaks.rb +18 -11
  367. data/misc/rake/cplusplus.rb +18 -11
  368. data/misc/rake/extensions.rb +21 -14
  369. data/misc/render_error_pages.rb +18 -11
  370. data/test/ApplicationPoolServerTest.cpp +1 -3
  371. data/test/ApplicationPoolServer_ApplicationPoolTest.cpp +1 -1
  372. data/test/CxxTestMain.cpp +19 -3
  373. data/test/HttpStatusExtractorTest.cpp +181 -0
  374. data/test/ScgiRequestParserTest.cpp +337 -0
  375. data/test/StaticStringTest.cpp +51 -0
  376. data/test/UtilsTest.cpp +32 -0
  377. data/test/config.yml.example +5 -0
  378. data/test/{integration_tests.rb → integration_tests/apache2_tests.rb} +7 -299
  379. data/test/integration_tests/hello_world_rack_spec.rb +36 -0
  380. data/test/integration_tests/hello_world_wsgi_spec.rb +41 -0
  381. data/test/integration_tests/mycook_spec.rb +192 -0
  382. data/test/integration_tests/nginx_tests.rb +98 -0
  383. data/test/ruby/rack/application_spawner_spec.rb +40 -0
  384. data/test/stub/nginx/koi-utf +109 -0
  385. data/test/stub/nginx/koi-win +103 -0
  386. data/test/stub/nginx/mime.types +70 -0
  387. data/test/stub/nginx/nginx.conf.erb +57 -0
  388. data/test/stub/nginx/win-utf +126 -0
  389. data/test/stub/rails_apps/mycook/app/controllers/uploads_controller.rb +4 -0
  390. data/test/stub/rails_apps/mycook/config/routes.rb +1 -1
  391. data/test/stub/wsgi/passenger_wsgi.pyc +0 -0
  392. data/test/support/Support.h +40 -0
  393. data/test/support/nginx_controller.rb +98 -0
  394. data/test/support/test_helper.rb +79 -0
  395. metadata +1091 -1028
  396. data/benchmark/DummyRequestHandler.cpp +0 -101
  397. data/ext/apache2/Logging.cpp +0 -60
  398. data/ext/apache2/SystemTime.cpp +0 -28
@@ -1,10 +1,10 @@
1
1
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
2
  <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
3
3
  <title>Passenger: Class List</title>
4
- <link href="doxygen.css" rel="stylesheet" type="text/css">
5
4
  <link href="tabs.css" rel="stylesheet" type="text/css">
5
+ <link href="doxygen.css" rel="stylesheet" type="text/css">
6
6
  </head><body>
7
- <!-- Generated by Doxygen 1.5.5 -->
7
+ <!-- Generated by Doxygen 1.5.8 -->
8
8
  <div class="navigation" id="top">
9
9
  <div class="tabs">
10
10
  <ul>
@@ -17,42 +17,18 @@
17
17
  <div class="tabs">
18
18
  <ul>
19
19
  <li class="current"><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
20
- <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
21
20
  <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
22
21
  </ul>
23
22
  </div>
24
23
  </div>
25
24
  <div class="contents">
26
25
  <h1>Class List</h1>Here are the classes, structs, unions and interfaces with brief descriptions:<table>
27
- <tr><td class="indexkey"><a class="el" href="structPassenger_1_1AnythingToString.html">Passenger::AnythingToString&lt; T &gt;</a></td><td class="indexvalue">Used internally by <a class="el" href="group__Support.html#gf6fab368d70c18fdf16bf5a24f630407" title="Convert anything to a string.">toString()</a> </td></tr>
28
- <tr><td class="indexkey"><a class="el" href="structPassenger_1_1AnythingToString_3_01vector_3_01string_01_4_01_4.html">Passenger::Passenger::AnythingToString&lt; vector&lt; string &gt; &gt;</a></td><td class="indexvalue">Used internally by <a class="el" href="group__Support.html#gf6fab368d70c18fdf16bf5a24f630407" title="Convert anything to a string.">toString()</a> </td></tr>
29
- <tr><td class="indexkey"><a class="el" href="classPassenger_1_1Application.html">Passenger::Application</a></td><td class="indexvalue">Represents a single Ruby on Rails or Rack application instance </td></tr>
30
- <tr><td class="indexkey"><a class="el" href="classPassenger_1_1Application_1_1Session.html">Passenger::Application::Session</a></td><td class="indexvalue">Represents the life time of a single request/response pair of a Ruby on Rails or Rack application </td></tr>
31
- <tr><td class="indexkey"><a class="el" href="classPassenger_1_1ApplicationPool.html">Passenger::ApplicationPool</a></td><td class="indexvalue">A persistent pool of Applications </td></tr>
32
- <tr><td class="indexkey"><a class="el" href="classPassenger_1_1ApplicationPoolServer.html">Passenger::ApplicationPoolServer</a></td><td class="indexvalue">Multi-process usage support for <a class="el" href="classPassenger_1_1ApplicationPool.html" title="A persistent pool of Applications.">ApplicationPool</a> </td></tr>
33
- <tr><td class="indexkey"><a class="el" href="classPassenger_1_1BufferedUpload.html">Passenger::BufferedUpload</a></td><td class="indexvalue">Represents a buffered upload file </td></tr>
34
- <tr><td class="indexkey"><a class="el" href="classPassenger_1_1BusyException.html">Passenger::BusyException</a></td><td class="indexvalue">The application pool is too busy and cannot fulfill a get() request </td></tr>
35
- <tr><td class="indexkey"><a class="el" href="classClient.html">Client</a></td><td class="indexvalue">Represents a single ApplicationPool client, connected to this server </td></tr>
36
- <tr><td class="indexkey"><a class="el" href="classPassenger_1_1ConfigurationException.html">Passenger::ConfigurationException</a></td><td class="indexvalue">Thrown when an invalid configuration is given </td></tr>
37
26
  <tr><td class="indexkey"><a class="el" href="classPassenger_1_1DirectoryMapper.html">Passenger::DirectoryMapper</a></td><td class="indexvalue">Utility class for determining URI-to-application directory mappings </td></tr>
38
- <tr><td class="indexkey"><a class="el" href="classPassenger_1_1DummySpawnManager.html">Passenger::DummySpawnManager</a></td><td class="indexvalue">A dummy <a class="el" href="classPassenger_1_1SpawnManager.html" title="Spawning of Ruby on Rails/Rack application instances.">SpawnManager</a> replacement for testing/debugging purposes </td></tr>
39
- <tr><td class="indexkey"><a class="el" href="classPassenger_1_1FileChecker.html">Passenger::FileChecker</a></td><td class="indexvalue">Utility class for checking for file changes </td></tr>
40
- <tr><td class="indexkey"><a class="el" href="classPassenger_1_1FileNotFoundException.html">Passenger::FileNotFoundException</a></td><td class="indexvalue">Thrown when a certain file cannot be found </td></tr>
41
- <tr><td class="indexkey"><a class="el" href="classPassenger_1_1FileSystemException.html">Passenger::FileSystemException</a></td><td class="indexvalue">A filesystem error, as returned by the operating system </td></tr>
42
27
  <tr><td class="indexkey"><a class="el" href="classHooks.html">Hooks</a></td><td class="indexvalue">Apache hook functions, wrapped in a class </td></tr>
43
- <tr><td class="indexkey"><a class="el" href="classPassenger_1_1IOException.html">Passenger::IOException</a></td><td class="indexvalue">Represents an error that occured during an I/O operation </td></tr>
44
- <tr><td class="indexkey"><a class="el" href="classPassenger_1_1MessageChannel.html">Passenger::MessageChannel</a></td><td class="indexvalue">Convenience class for I/O operations on file descriptors </td></tr>
45
- <tr><td class="indexkey"><a class="el" href="structPassenger_1_1PoolOptions.html">Passenger::PoolOptions</a></td><td class="indexvalue">This struct encapsulates information for <a class="el" href="classPassenger_1_1ApplicationPool.html#0b206eb4eb2869423d75c042a0653c67" title="Open a new session with the application specified by PoolOptions.appRoot.">ApplicationPool::get()</a> and for <a class="el" href="classPassenger_1_1SpawnManager.html#af035d564cc4e6683508939c9d6dbb64" title="Spawn a new instance of an application.">SpawnManager::spawn()</a>, such as which application is to be spawned </td></tr>
46
- <tr><td class="indexkey"><a class="el" href="classPassenger_1_1RuntimeException.html">Passenger::RuntimeException</a></td><td class="indexvalue">A generic runtime exception </td></tr>
47
- <tr><td class="indexkey"><a class="el" href="classPassenger_1_1SpawnException.html">Passenger::SpawnException</a></td><td class="indexvalue">Thrown when <a class="el" href="classPassenger_1_1SpawnManager.html" title="Spawning of Ruby on Rails/Rack application instances.">SpawnManager</a> or <a class="el" href="classPassenger_1_1ApplicationPool.html" title="A persistent pool of Applications.">ApplicationPool</a> fails to spawn an application instance </td></tr>
48
- <tr><td class="indexkey"><a class="el" href="classPassenger_1_1SpawnManager.html">Passenger::SpawnManager</a></td><td class="indexvalue">Spawning of Ruby on Rails/Rack application instances </td></tr>
49
- <tr><td class="indexkey"><a class="el" href="classPassenger_1_1StandardApplicationPool.html">Passenger::StandardApplicationPool</a></td><td class="indexvalue">A standard implementation of <a class="el" href="classPassenger_1_1ApplicationPool.html" title="A persistent pool of Applications.">ApplicationPool</a> for single-process environments </td></tr>
50
- <tr><td class="indexkey"><a class="el" href="classPassenger_1_1SystemException.html">Passenger::SystemException</a></td><td class="indexvalue">Represents an error returned by a system call or a standard library call </td></tr>
51
- <tr><td class="indexkey"><a class="el" href="classPassenger_1_1SystemTime.html">Passenger::SystemTime</a></td><td class="indexvalue">This class allows one to obtain the system time, similar to time() </td></tr>
52
28
  </table>
53
29
  </div>
54
- <hr size="1"><address style="text-align: right;"><small>Generated on Tue Mar 31 14:00:28 2009 for Passenger by&nbsp;
30
+ <hr size="1"><address style="text-align: right;"><small>Generated on Thu Apr 16 19:48:18 2009 for Passenger by&nbsp;
55
31
  <a href="http://www.doxygen.org/index.html">
56
- <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
32
+ <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
57
33
  </body>
58
34
  </html>
@@ -1,10 +1,10 @@
1
1
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
2
  <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
3
3
  <title>Passenger: Member List</title>
4
- <link href="doxygen.css" rel="stylesheet" type="text/css">
5
4
  <link href="tabs.css" rel="stylesheet" type="text/css">
5
+ <link href="doxygen.css" rel="stylesheet" type="text/css">
6
6
  </head><body>
7
- <!-- Generated by Doxygen 1.5.5 -->
7
+ <!-- Generated by Doxygen 1.5.8 -->
8
8
  <div class="navigation" id="top">
9
9
  <div class="tabs">
10
10
  <ul>
@@ -27,8 +27,8 @@
27
27
  <tr class="memlist"><td><a class="el" href="classClient.html#e625bb32c95bde75bfa4bdfdb8ee56db">Client</a>(Server &amp;the_server, int connection)</td><td><a class="el" href="classClient.html">Client</a></td><td><code> [inline]</code></td></tr>
28
28
  <tr class="memlist"><td><a class="el" href="classClient.html#c0a8dd9e23393c045064b109355a7daf">start</a>(const weak_ptr&lt; Client &gt; self)</td><td><a class="el" href="classClient.html">Client</a></td><td><code> [inline]</code></td></tr>
29
29
  </table></div>
30
- <hr size="1"><address style="text-align: right;"><small>Generated on Tue Mar 31 14:00:28 2009 for Passenger by&nbsp;
30
+ <hr size="1"><address style="text-align: right;"><small>Generated on Wed Apr 8 22:35:11 2009 for Passenger by&nbsp;
31
31
  <a href="http://www.doxygen.org/index.html">
32
- <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
32
+ <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
33
33
  </body>
34
34
  </html>
@@ -1,10 +1,10 @@
1
1
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
2
  <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
3
3
  <title>Passenger: Client Class Reference</title>
4
- <link href="doxygen.css" rel="stylesheet" type="text/css">
5
4
  <link href="tabs.css" rel="stylesheet" type="text/css">
5
+ <link href="doxygen.css" rel="stylesheet" type="text/css">
6
6
  </head><body>
7
- <!-- Generated by Doxygen 1.5.5 -->
7
+ <!-- Generated by Doxygen 1.5.8 -->
8
8
  <div class="navigation" id="top">
9
9
  <div class="tabs">
10
10
  <ul>
@@ -23,13 +23,12 @@
23
23
  </div>
24
24
  </div>
25
25
  <div class="contents">
26
- <h1>Client Class Reference</h1><!-- doxytag: class="Client" -->
26
+ <h1>Client Class Reference</h1><!-- doxytag: class="Client" -->Represents a single ApplicationPool client, connected to this server.
27
+ <a href="#_details">More...</a>
27
28
  <p>
28
- <a href="classClient-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
29
- Represents a single ApplicationPool client, connected to this server.
29
+
30
30
  <p>
31
- <dl class="invariant" compact><dt><b>Invariant:</b></dt><dd>The life time of a <a class="el" href="classClient.html" title="Represents a single ApplicationPool client, connected to this server.">Client</a> object is guaranteed to be less than that of its associated Server object. </dd></dl>
32
- <table border="0" cellpadding="0" cellspacing="0">
31
+ <a href="classClient-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
33
32
  <tr><td></td></tr>
34
33
  <tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
35
34
  <tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classClient.html#e625bb32c95bde75bfa4bdfdb8ee56db">Client</a> (Server &amp;the_server, int connection)</td></tr>
@@ -39,6 +38,10 @@ Represents a single ApplicationPool client, connected to this server.
39
38
 
40
39
  <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Start the thread for handling the connection with this client. <a href="#c0a8dd9e23393c045064b109355a7daf"></a><br></td></tr>
41
40
  </table>
41
+ <hr><a name="_details"></a><h2>Detailed Description</h2>
42
+ Represents a single ApplicationPool client, connected to this server.
43
+ <p>
44
+ <dl class="invariant" compact><dt><b>Invariant:</b></dt><dd>The life time of a <a class="el" href="classClient.html" title="Represents a single ApplicationPool client, connected to this server.">Client</a> object is guaranteed to be less than that of its associated Server object. </dd></dl>
42
45
  <hr><h2>Constructor &amp; Destructor Documentation</h2>
43
46
  <a class="anchor" name="e625bb32c95bde75bfa4bdfdb8ee56db"></a><!-- doxytag: member="Client::Client" ref="e625bb32c95bde75bfa4bdfdb8ee56db" args="(Server &amp;the_server, int connection)" -->
44
47
  <div class="memitem">
@@ -59,7 +62,7 @@ Represents a single ApplicationPool client, connected to this server.
59
62
  <tr>
60
63
  <td></td>
61
64
  <td>)</td>
62
- <td></td><td></td><td width="100%"><code> [inline]</code></td>
65
+ <td></td><td></td><td><code> [inline]</code></td>
63
66
  </tr>
64
67
  </table>
65
68
  </div>
@@ -89,7 +92,7 @@ Create a new <a class="el" href="classClient.html" title="Represents a single Ap
89
92
  <td class="paramtype">const weak_ptr&lt; <a class="el" href="classClient.html">Client</a> &gt;&nbsp;</td>
90
93
  <td class="paramname"> <em>self</em> </td>
91
94
  <td>&nbsp;)&nbsp;</td>
92
- <td width="100%"><code> [inline]</code></td>
95
+ <td><code> [inline]</code></td>
93
96
  </tr>
94
97
  </table>
95
98
  </div>
@@ -109,8 +112,8 @@ Start the thread for handling the connection with this client.
109
112
  <hr>The documentation for this class was generated from the following file:<ul>
110
113
  <li>ApplicationPoolServerExecutable.cpp</ul>
111
114
  </div>
112
- <hr size="1"><address style="text-align: right;"><small>Generated on Tue Mar 31 14:00:28 2009 for Passenger by&nbsp;
115
+ <hr size="1"><address style="text-align: right;"><small>Generated on Wed Apr 8 22:35:11 2009 for Passenger by&nbsp;
113
116
  <a href="http://www.doxygen.org/index.html">
114
- <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
117
+ <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
115
118
  </body>
116
119
  </html>
@@ -1,10 +1,10 @@
1
1
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
2
  <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
3
3
  <title>Passenger: Member List</title>
4
- <link href="doxygen.css" rel="stylesheet" type="text/css">
5
4
  <link href="tabs.css" rel="stylesheet" type="text/css">
5
+ <link href="doxygen.css" rel="stylesheet" type="text/css">
6
6
  </head><body>
7
- <!-- Generated by Doxygen 1.5.5 -->
7
+ <!-- Generated by Doxygen 1.5.8 -->
8
8
  <div class="navigation" id="top">
9
9
  <div class="tabs">
10
10
  <ul>
@@ -17,7 +17,6 @@
17
17
  <div class="tabs">
18
18
  <ul>
19
19
  <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
20
- <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
21
20
  <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
22
21
  </ul>
23
22
  </div>
@@ -29,8 +28,8 @@
29
28
  <tr class="memlist"><td><a class="el" href="classHooks.html#d6cca64be8a9075b4b92efdb4d9020a5">startBlockingModAutoIndex</a>(request_rec *r)</td><td><a class="el" href="classHooks.html">Hooks</a></td><td><code> [inline]</code></td></tr>
30
29
  <tr class="memlist"><td><a class="el" href="classHooks.html#e3091c57c95b2f8269f566099802f0ec">startBlockingModDir</a>(request_rec *r)</td><td><a class="el" href="classHooks.html">Hooks</a></td><td><code> [inline]</code></td></tr>
31
30
  </table></div>
32
- <hr size="1"><address style="text-align: right;"><small>Generated on Tue Mar 31 14:00:28 2009 for Passenger by&nbsp;
31
+ <hr size="1"><address style="text-align: right;"><small>Generated on Thu Apr 16 19:48:18 2009 for Passenger by&nbsp;
33
32
  <a href="http://www.doxygen.org/index.html">
34
- <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
33
+ <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
35
34
  </body>
36
35
  </html>
@@ -1,10 +1,10 @@
1
1
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
2
  <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
3
3
  <title>Passenger: Hooks Class Reference</title>
4
- <link href="doxygen.css" rel="stylesheet" type="text/css">
5
4
  <link href="tabs.css" rel="stylesheet" type="text/css">
5
+ <link href="doxygen.css" rel="stylesheet" type="text/css">
6
6
  </head><body>
7
- <!-- Generated by Doxygen 1.5.5 -->
7
+ <!-- Generated by Doxygen 1.5.8 -->
8
8
  <div class="navigation" id="top">
9
9
  <div class="tabs">
10
10
  <ul>
@@ -17,7 +17,6 @@
17
17
  <div class="tabs">
18
18
  <ul>
19
19
  <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
20
- <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
21
20
  <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
22
21
  </ul>
23
22
  </div>
@@ -26,10 +25,12 @@
26
25
  <h1>Hooks Class Reference<br>
27
26
  <small>
28
27
  [<a class="el" href="group__Core.html">Core Apache-related classes and functions</a>]</small>
29
- </h1><!-- doxytag: class="Hooks" -->
28
+ </h1><!-- doxytag: class="Hooks" -->Apache hook functions, wrapped in a class.
29
+ <a href="#_details">More...</a>
30
+ <p>
31
+
30
32
  <p>
31
- <a href="classHooks-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
32
- Apache hook functions, wrapped in a class. <table border="0" cellpadding="0" cellspacing="0">
33
+ <a href="classHooks-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
33
34
  <tr><td></td></tr>
34
35
  <tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
35
36
  <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classHooks.html#64333270a19c93451c33dcb8fe1666de">saveOriginalFilename</a> (request_rec *r)</td></tr>
@@ -45,7 +46,8 @@ Apache hook functions, wrapped in a class. <table border="0" cellpadding="0" cel
45
46
 
46
47
  <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">mod_autoindex will try to display a directory index for URIs that map to a directory. <a href="#d6cca64be8a9075b4b92efdb4d9020a5"></a><br></td></tr>
47
48
  </table>
48
- <hr><h2>Member Function Documentation</h2>
49
+ <hr><a name="_details"></a><h2>Detailed Description</h2>
50
+ Apache hook functions, wrapped in a class. <hr><h2>Member Function Documentation</h2>
49
51
  <a class="anchor" name="64333270a19c93451c33dcb8fe1666de"></a><!-- doxytag: member="Hooks::saveOriginalFilename" ref="64333270a19c93451c33dcb8fe1666de" args="(request_rec *r)" -->
50
52
  <div class="memitem">
51
53
  <div class="memproto">
@@ -56,7 +58,7 @@ Apache hook functions, wrapped in a class. <table border="0" cellpadding="0" cel
56
58
  <td class="paramtype">request_rec *&nbsp;</td>
57
59
  <td class="paramname"> <em>r</em> </td>
58
60
  <td>&nbsp;)&nbsp;</td>
59
- <td width="100%"><code> [inline]</code></td>
61
+ <td><code> [inline]</code></td>
60
62
  </tr>
61
63
  </table>
62
64
  </div>
@@ -83,7 +85,7 @@ We obviously don't want this to happen because it'll interfere with our page cac
83
85
  <td class="paramtype">request_rec *&nbsp;</td>
84
86
  <td class="paramname"> <em>r</em> </td>
85
87
  <td>&nbsp;)&nbsp;</td>
86
- <td width="100%"><code> [inline]</code></td>
88
+ <td><code> [inline]</code></td>
87
89
  </tr>
88
90
  </table>
89
91
  </div>
@@ -96,58 +98,58 @@ RewriteEngine on RewriteRule ^$ index.html [QSA] RewriteRule ^([^.]+)$ $1.html [
96
98
  As a result, all requests that do not map to a filename will be redirected to dispatch.cgi (or dispatch.fcgi, if the user so specified). We don't want that to happen, so before mod_rewrite applies its rules, we save the current state. After mod_rewrite has applied its rules, undoRedirectionToDispatchCgi() will check whether mod_rewrite attempted to perform an internal redirection to dispatch.(f)cgi. If so, then it will revert the state to the way it was before mod_rewrite took place.
97
99
  </div>
98
100
  </div><p>
99
- <a class="anchor" name="e3091c57c95b2f8269f566099802f0ec"></a><!-- doxytag: member="Hooks::startBlockingModDir" ref="e3091c57c95b2f8269f566099802f0ec" args="(request_rec *r)" -->
101
+ <a class="anchor" name="d6cca64be8a9075b4b92efdb4d9020a5"></a><!-- doxytag: member="Hooks::startBlockingModAutoIndex" ref="d6cca64be8a9075b4b92efdb4d9020a5" args="(request_rec *r)" -->
100
102
  <div class="memitem">
101
103
  <div class="memproto">
102
104
  <table class="memname">
103
105
  <tr>
104
- <td class="memname">int Hooks::startBlockingModDir </td>
106
+ <td class="memname">int Hooks::startBlockingModAutoIndex </td>
105
107
  <td>(</td>
106
108
  <td class="paramtype">request_rec *&nbsp;</td>
107
109
  <td class="paramname"> <em>r</em> </td>
108
110
  <td>&nbsp;)&nbsp;</td>
109
- <td width="100%"><code> [inline]</code></td>
111
+ <td><code> [inline]</code></td>
110
112
  </tr>
111
113
  </table>
112
114
  </div>
113
115
  <div class="memdoc">
114
116
 
115
117
  <p>
116
- mod_dir does the following: If r-&gt;filename is a directory, and the URI doesn't end with a slash, then it will redirect the browser to an URI with a slash.
118
+ mod_autoindex will try to display a directory index for URIs that map to a directory.
117
119
  <p>
118
- For example, if you go to <a href="http://foo.com/images,">http://foo.com/images,</a> then it will redirect you to <a href="http://foo.com/images/.">http://foo.com/images/.</a><p>
119
- This behavior is undesired. Suppose that there is an ImagesController, and there's also a 'public/images' folder used for storing page cache files. Then we don't want mod_dir to perform the redirection.<p>
120
- So in <a class="el" href="classHooks.html#e3091c57c95b2f8269f566099802f0ec" title="mod_dir does the following: If r-&gt;filename is a directory, and the URI doesn&#39;t...">startBlockingModDir()</a>, we temporarily change some fields in the request structure in order to block mod_dir. In endBlockingModDir() we revert those fields to their old value.
120
+ This is undesired because of page caching semantics. Suppose that a Rails application has an ImagesController which has page caching enabled, and thus also a 'public/images' directory. When the visitor visits /images we'll want the request to be forwarded to the Rails application, instead of displaying a directory index.<p>
121
+ So in this hook method, we temporarily change some fields in the request structure in order to block mod_autoindex. In endBlockingModAutoIndex(), we restore the request structure to its former state.
121
122
  </div>
122
123
  </div><p>
123
- <a class="anchor" name="d6cca64be8a9075b4b92efdb4d9020a5"></a><!-- doxytag: member="Hooks::startBlockingModAutoIndex" ref="d6cca64be8a9075b4b92efdb4d9020a5" args="(request_rec *r)" -->
124
+ <a class="anchor" name="e3091c57c95b2f8269f566099802f0ec"></a><!-- doxytag: member="Hooks::startBlockingModDir" ref="e3091c57c95b2f8269f566099802f0ec" args="(request_rec *r)" -->
124
125
  <div class="memitem">
125
126
  <div class="memproto">
126
127
  <table class="memname">
127
128
  <tr>
128
- <td class="memname">int Hooks::startBlockingModAutoIndex </td>
129
+ <td class="memname">int Hooks::startBlockingModDir </td>
129
130
  <td>(</td>
130
131
  <td class="paramtype">request_rec *&nbsp;</td>
131
132
  <td class="paramname"> <em>r</em> </td>
132
133
  <td>&nbsp;)&nbsp;</td>
133
- <td width="100%"><code> [inline]</code></td>
134
+ <td><code> [inline]</code></td>
134
135
  </tr>
135
136
  </table>
136
137
  </div>
137
138
  <div class="memdoc">
138
139
 
139
140
  <p>
140
- mod_autoindex will try to display a directory index for URIs that map to a directory.
141
+ mod_dir does the following: If r-&gt;filename is a directory, and the URI doesn't end with a slash, then it will redirect the browser to an URI with a slash.
141
142
  <p>
142
- This is undesired because of page caching semantics. Suppose that a Rails application has an ImagesController which has page caching enabled, and thus also a 'public/images' directory. When the visitor visits /images we'll want the request to be forwarded to the Rails application, instead of displaying a directory index.<p>
143
- So in this hook method, we temporarily change some fields in the request structure in order to block mod_autoindex. In endBlockingModAutoIndex(), we restore the request structure to its former state.
143
+ For example, if you go to <a href="http://foo.com/images,">http://foo.com/images,</a> then it will redirect you to <a href="http://foo.com/images/.">http://foo.com/images/.</a><p>
144
+ This behavior is undesired. Suppose that there is an ImagesController, and there's also a 'public/images' folder used for storing page cache files. Then we don't want mod_dir to perform the redirection.<p>
145
+ So in <a class="el" href="classHooks.html#e3091c57c95b2f8269f566099802f0ec" title="mod_dir does the following: If r-&gt;filename is a directory, and the URI doesn&#39;t...">startBlockingModDir()</a>, we temporarily change some fields in the request structure in order to block mod_dir. In endBlockingModDir() we revert those fields to their old value.
144
146
  </div>
145
147
  </div><p>
146
148
  <hr>The documentation for this class was generated from the following file:<ul>
147
149
  <li>Hooks.cpp</ul>
148
150
  </div>
149
- <hr size="1"><address style="text-align: right;"><small>Generated on Tue Mar 31 14:00:28 2009 for Passenger by&nbsp;
151
+ <hr size="1"><address style="text-align: right;"><small>Generated on Thu Apr 16 19:48:18 2009 for Passenger by&nbsp;
150
152
  <a href="http://www.doxygen.org/index.html">
151
- <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
153
+ <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
152
154
  </body>
153
155
  </html>
@@ -1,10 +1,10 @@
1
1
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
2
  <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
3
3
  <title>Passenger: Member List</title>
4
- <link href="doxygen.css" rel="stylesheet" type="text/css">
5
4
  <link href="tabs.css" rel="stylesheet" type="text/css">
5
+ <link href="doxygen.css" rel="stylesheet" type="text/css">
6
6
  </head><body>
7
- <!-- Generated by Doxygen 1.5.5 -->
7
+ <!-- Generated by Doxygen 1.5.8 -->
8
8
  <div class="navigation" id="top">
9
9
  <div class="tabs">
10
10
  <ul>
@@ -30,8 +30,8 @@
30
30
  <tr class="memlist"><td><a class="el" href="classPassenger_1_1Application.html#94d2cce1c2c1d3441325f1498a22bf02">getPid</a>() const </td><td><a class="el" href="classPassenger_1_1Application.html">Passenger::Application</a></td><td><code> [inline]</code></td></tr>
31
31
  <tr class="memlist"><td><a class="el" href="classPassenger_1_1Application.html#d14f673494991460b16246a527ad8ad9">SessionPtr</a> typedef</td><td><a class="el" href="classPassenger_1_1Application.html">Passenger::Application</a></td><td></td></tr>
32
32
  </table></div>
33
- <hr size="1"><address style="text-align: right;"><small>Generated on Tue Mar 31 14:00:30 2009 for Passenger by&nbsp;
33
+ <hr size="1"><address style="text-align: right;"><small>Generated on Wed Apr 8 22:35:12 2009 for Passenger by&nbsp;
34
34
  <a href="http://www.doxygen.org/index.html">
35
- <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
35
+ <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
36
36
  </body>
37
37
  </html>
@@ -1,10 +1,10 @@
1
1
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
2
  <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
3
3
  <title>Passenger: Passenger::Application Class Reference</title>
4
- <link href="doxygen.css" rel="stylesheet" type="text/css">
5
4
  <link href="tabs.css" rel="stylesheet" type="text/css">
5
+ <link href="doxygen.css" rel="stylesheet" type="text/css">
6
6
  </head><body>
7
- <!-- Generated by Doxygen 1.5.5 -->
7
+ <!-- Generated by Doxygen 1.5.8 -->
8
8
  <div class="navigation" id="top">
9
9
  <div class="tabs">
10
10
  <ul>
@@ -28,13 +28,19 @@
28
28
  <h1>Passenger::Application Class Reference<br>
29
29
  <small>
30
30
  [<a class="el" href="group__Support.html">Apache-independent support classes and function</a>]</small>
31
- </h1><!-- doxytag: class="Passenger::Application" --><code>#include &lt;<a class="el" href="Application_8h-source.html">Application.h</a>&gt;</code>
31
+ </h1><!-- doxytag: class="Passenger::Application" -->Represents a single Ruby on Rails or Rack application instance.
32
+ <a href="#_details">More...</a>
33
+ <p>
34
+ <code>#include &lt;<a class="el" href="Application_8h-source.html">Application.h</a>&gt;</code>
32
35
  <p>
33
36
 
34
37
  <p>
35
- <a href="classPassenger_1_1Application-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
36
- Represents a single Ruby on Rails or Rack application instance. <table border="0" cellpadding="0" cellspacing="0">
38
+ <a href="classPassenger_1_1Application-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
37
39
  <tr><td></td></tr>
40
+ <tr><td colspan="2"><br><h2>Classes</h2></td></tr>
41
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Application_1_1Session.html">Session</a></td></tr>
42
+
43
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Represents the life time of a single request/response pair of a Ruby on Rails or Rack application. <a href="classPassenger_1_1Application_1_1Session.html#_details">More...</a><br></td></tr>
38
44
  <tr><td colspan="2"><br><h2>Public Types</h2></td></tr>
39
45
  <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef shared_ptr&lt; <a class="el" href="classPassenger_1_1Application_1_1Session.html">Session</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Application.html#d14f673494991460b16246a527ad8ad9">SessionPtr</a></td></tr>
40
46
 
@@ -53,12 +59,9 @@ pid_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="cla
53
59
  <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classPassenger_1_1Application.html#d14f673494991460b16246a527ad8ad9">SessionPtr</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Application.html#34636f796ff3924ad5ec142aaa581379">connect</a> (const function&lt; void()&gt; &amp;closeCallback) const </td></tr>
54
60
 
55
61
  <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Connect to this application instance with the purpose of sending a request to the application. <a href="#34636f796ff3924ad5ec142aaa581379"></a><br></td></tr>
56
- <tr><td colspan="2"><br><h2>Classes</h2></td></tr>
57
- <tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Application_1_1Session.html">Session</a></td></tr>
58
-
59
- <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Represents the life time of a single request/response pair of a Ruby on Rails or Rack application. <a href="classPassenger_1_1Application_1_1Session.html#_details">More...</a><br></td></tr>
60
62
  </table>
61
- <hr><h2>Member Typedef Documentation</h2>
63
+ <hr><a name="_details"></a><h2>Detailed Description</h2>
64
+ Represents a single Ruby on Rails or Rack application instance. <hr><h2>Member Typedef Documentation</h2>
62
65
  <a class="anchor" name="d14f673494991460b16246a527ad8ad9"></a><!-- doxytag: member="Passenger::Application::SessionPtr" ref="d14f673494991460b16246a527ad8ad9" args="" -->
63
66
  <div class="memitem">
64
67
  <div class="memproto">
@@ -114,7 +117,7 @@ Convenient alias for <a class="el" href="classPassenger_1_1Application_1_1Sessio
114
117
  <tr>
115
118
  <td></td>
116
119
  <td>)</td>
117
- <td></td><td></td><td width="100%"><code> [inline]</code></td>
120
+ <td></td><td></td><td><code> [inline]</code></td>
118
121
  </tr>
119
122
  </table>
120
123
  </div>
@@ -137,27 +140,6 @@ Construct a new <a class="el" href="classPassenger_1_1Application.html" title="R
137
140
  </div>
138
141
  </div><p>
139
142
  <hr><h2>Member Function Documentation</h2>
140
- <a class="anchor" name="0a0665852e7ebc8fb8ab0772fa90bc56"></a><!-- doxytag: member="Passenger::Application::getAppRoot" ref="0a0665852e7ebc8fb8ab0772fa90bc56" args="() const " -->
141
- <div class="memitem">
142
- <div class="memproto">
143
- <table class="memname">
144
- <tr>
145
- <td class="memname">string Passenger::Application::getAppRoot </td>
146
- <td>(</td>
147
- <td class="paramname"> </td>
148
- <td>&nbsp;)&nbsp;</td>
149
- <td width="100%"> const<code> [inline]</code></td>
150
- </tr>
151
- </table>
152
- </div>
153
- <div class="memdoc">
154
-
155
- <p>
156
- Returns the application root for this application.
157
- <p>
158
- See the constructor for information about the application root.
159
- </div>
160
- </div><p>
161
143
  <a class="anchor" name="34636f796ff3924ad5ec142aaa581379"></a><!-- doxytag: member="Passenger::Application::connect" ref="34636f796ff3924ad5ec142aaa581379" args="(const function&lt; void()&gt; &amp;closeCallback) const " -->
162
144
  <div class="memitem">
163
145
  <div class="memproto">
@@ -168,7 +150,7 @@ See the constructor for information about the application root.
168
150
  <td class="paramtype">const function&lt; void()&gt; &amp;&nbsp;</td>
169
151
  <td class="paramname"> <em>closeCallback</em> </td>
170
152
  <td>&nbsp;)&nbsp;</td>
171
- <td width="100%"> const<code> [inline]</code></td>
153
+ <td> const<code> [inline]</code></td>
172
154
  </tr>
173
155
  </table>
174
156
  </div>
@@ -185,12 +167,12 @@ The use of <a class="el" href="classPassenger_1_1Application.html#34636f796ff392
185
167
  session-&gt;sendHeaders(...);
186
168
  session-&gt;sendBodyBlock(...);
187
169
  <span class="comment">// Done sending data, so we close the writer channel.</span>
188
- session-&gt;closeWriter();
170
+ session-&gt;shutdownWriter();
189
171
 
190
172
  <span class="comment">// Now read the HTTP response.</span>
191
173
  <span class="keywordtype">string</span> responseData = readAllDataFromSocket(session-&gt;getReader());
192
174
  <span class="comment">// Done reading data, so we close the reader channel.</span>
193
- session-&gt;closeReader();
175
+ session-&gt;shutdownReader();
194
176
 
195
177
  <span class="comment">// This session has now finished, so we close the session by resetting</span>
196
178
  <span class="comment">// the smart pointer to NULL (thereby destroying the Session object).</span>
@@ -216,13 +198,34 @@ You <b>must</b> close a session when you no longer need if. If you call <a class
216
198
  </table>
217
199
  </dl>
218
200
 
201
+ </div>
202
+ </div><p>
203
+ <a class="anchor" name="0a0665852e7ebc8fb8ab0772fa90bc56"></a><!-- doxytag: member="Passenger::Application::getAppRoot" ref="0a0665852e7ebc8fb8ab0772fa90bc56" args="() const " -->
204
+ <div class="memitem">
205
+ <div class="memproto">
206
+ <table class="memname">
207
+ <tr>
208
+ <td class="memname">string Passenger::Application::getAppRoot </td>
209
+ <td>(</td>
210
+ <td class="paramname"> </td>
211
+ <td>&nbsp;)&nbsp;</td>
212
+ <td> const<code> [inline]</code></td>
213
+ </tr>
214
+ </table>
215
+ </div>
216
+ <div class="memdoc">
217
+
218
+ <p>
219
+ Returns the application root for this application.
220
+ <p>
221
+ See the constructor for information about the application root.
219
222
  </div>
220
223
  </div><p>
221
224
  <hr>The documentation for this class was generated from the following file:<ul>
222
225
  <li><a class="el" href="Application_8h-source.html">Application.h</a></ul>
223
226
  </div>
224
- <hr size="1"><address style="text-align: right;"><small>Generated on Tue Mar 31 14:00:30 2009 for Passenger by&nbsp;
227
+ <hr size="1"><address style="text-align: right;"><small>Generated on Wed Apr 8 22:35:12 2009 for Passenger by&nbsp;
225
228
  <a href="http://www.doxygen.org/index.html">
226
- <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
229
+ <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
227
230
  </body>
228
231
  </html>