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
@@ -77,10 +77,10 @@
77
77
 
78
78
  <div class="description"><p>
79
79
  Modifies CGI so that we can use it. Main thing it does is expose the <a
80
- href="CGIFixed.html#M000043">stdinput</a> and <a
81
- href="CGIFixed.html#M000044">stdoutput</a> so <a
80
+ href="CGIFixed.html#M000046">stdinput</a> and <a
81
+ href="CGIFixed.html#M000047">stdoutput</a> so <a
82
82
  href="RequestHandler.html">RequestHandler</a> can connect them to the right
83
- sources. It also exposes the <a href="CGIFixed.html#M000042">env_table</a>
83
+ sources. It also exposes the <a href="CGIFixed.html#M000045">env_table</a>
84
84
  so that <a href="RequestHandler.html">RequestHandler</a> can hook the
85
85
  request parameters into the environment table.
86
86
  </p>
@@ -94,11 +94,11 @@ backwards compatibility is removed.
94
94
 
95
95
  <div class="sectiontitle">Methods</div>
96
96
  <ul>
97
- <li><a href="#M000041">args</a></li>
98
- <li><a href="#M000042">env_table</a></li>
99
- <li><a href="#M000040">new</a></li>
100
- <li><a href="#M000043">stdinput</a></li>
101
- <li><a href="#M000044">stdoutput</a></li>
97
+ <li><a href="#M000044">args</a></li>
98
+ <li><a href="#M000045">env_table</a></li>
99
+ <li><a href="#M000043">new</a></li>
100
+ <li><a href="#M000046">stdinput</a></li>
101
+ <li><a href="#M000047">stdoutput</a></li>
102
102
  </ul>
103
103
 
104
104
 
@@ -109,11 +109,11 @@ backwards compatibility is removed.
109
109
  <div class="sectiontitle">Public Class methods</div>
110
110
  <div class="method">
111
111
  <div class="title">
112
- <a name="M000040"></a><b>new</b>(params, input, output, *args)
112
+ <a name="M000043"></a><b>new</b>(params, input, output, *args)
113
113
  </div>
114
114
  <div class="sourcecode">
115
- <p class="source-link">[ <a href="javascript:toggleSource('M000040_source')" id="l_M000040_source">show source</a> ]</p>
116
- <div id="M000040_source" class="dyn-source">
115
+ <p class="source-link">[ <a href="javascript:toggleSource('M000043_source')" id="l_M000043_source">show source</a> ]</p>
116
+ <div id="M000043_source" class="dyn-source">
117
117
  <pre>
118
118
  <span class="ruby-comment cmt"># File lib/phusion_passenger/railz/cgi_fixed.rb, line 42</span>
119
119
  42: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">params</span>, <span class="ruby-identifier">input</span>, <span class="ruby-identifier">output</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
@@ -130,11 +130,11 @@ backwards compatibility is removed.
130
130
  <div class="sectiontitle">Public Instance methods</div>
131
131
  <div class="method">
132
132
  <div class="title">
133
- <a name="M000041"></a><b>args</b>()
133
+ <a name="M000044"></a><b>args</b>()
134
134
  </div>
135
135
  <div class="sourcecode">
136
- <p class="source-link">[ <a href="javascript:toggleSource('M000041_source')" id="l_M000041_source">show source</a> ]</p>
137
- <div id="M000041_source" class="dyn-source">
136
+ <p class="source-link">[ <a href="javascript:toggleSource('M000044_source')" id="l_M000044_source">show source</a> ]</p>
137
+ <div id="M000044_source" class="dyn-source">
138
138
  <pre>
139
139
  <span class="ruby-comment cmt"># File lib/phusion_passenger/railz/cgi_fixed.rb, line 50</span>
140
140
  50: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">args</span>
@@ -146,11 +146,11 @@ backwards compatibility is removed.
146
146
  </div>
147
147
  <div class="method">
148
148
  <div class="title">
149
- <a name="M000042"></a><b>env_table</b>()
149
+ <a name="M000045"></a><b>env_table</b>()
150
150
  </div>
151
151
  <div class="sourcecode">
152
- <p class="source-link">[ <a href="javascript:toggleSource('M000042_source')" id="l_M000042_source">show source</a> ]</p>
153
- <div id="M000042_source" class="dyn-source">
152
+ <p class="source-link">[ <a href="javascript:toggleSource('M000045_source')" id="l_M000045_source">show source</a> ]</p>
153
+ <div id="M000045_source" class="dyn-source">
154
154
  <pre>
155
155
  <span class="ruby-comment cmt"># File lib/phusion_passenger/railz/cgi_fixed.rb, line 54</span>
156
156
  54: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">env_table</span>
@@ -162,11 +162,11 @@ backwards compatibility is removed.
162
162
  </div>
163
163
  <div class="method">
164
164
  <div class="title">
165
- <a name="M000043"></a><b>stdinput</b>()
165
+ <a name="M000046"></a><b>stdinput</b>()
166
166
  </div>
167
167
  <div class="sourcecode">
168
- <p class="source-link">[ <a href="javascript:toggleSource('M000043_source')" id="l_M000043_source">show source</a> ]</p>
169
- <div id="M000043_source" class="dyn-source">
168
+ <p class="source-link">[ <a href="javascript:toggleSource('M000046_source')" id="l_M000046_source">show source</a> ]</p>
169
+ <div id="M000046_source" class="dyn-source">
170
170
  <pre>
171
171
  <span class="ruby-comment cmt"># File lib/phusion_passenger/railz/cgi_fixed.rb, line 58</span>
172
172
  58: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">stdinput</span>
@@ -178,11 +178,11 @@ backwards compatibility is removed.
178
178
  </div>
179
179
  <div class="method">
180
180
  <div class="title">
181
- <a name="M000044"></a><b>stdoutput</b>()
181
+ <a name="M000047"></a><b>stdoutput</b>()
182
182
  </div>
183
183
  <div class="sourcecode">
184
- <p class="source-link">[ <a href="javascript:toggleSource('M000044_source')" id="l_M000044_source">show source</a> ]</p>
185
- <div id="M000044_source" class="dyn-source">
184
+ <p class="source-link">[ <a href="javascript:toggleSource('M000047_source')" id="l_M000047_source">show source</a> ]</p>
185
+ <div id="M000047_source" class="dyn-source">
186
186
  <pre>
187
187
  <span class="ruby-comment cmt"># File lib/phusion_passenger/railz/cgi_fixed.rb, line 62</span>
188
188
  62: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">stdoutput</span>
@@ -95,9 +95,9 @@ href="ApplicationSpawner.html">ApplicationSpawner</a> internally.
95
95
  <p>
96
96
  <b>Note</b>: <a href="FrameworkSpawner.html">FrameworkSpawner</a> may only
97
97
  be started asynchronously with <a
98
- href="../AbstractServer.html#M000124">AbstractServer#start</a>. Starting it
98
+ href="../AbstractServer.html#M000126">AbstractServer#start</a>. Starting it
99
99
  synchronously with <a
100
- href="../AbstractServer.html#M000125">AbstractServer#start_synchronously</a>
100
+ href="../AbstractServer.html#M000127">AbstractServer#start_synchronously</a>
101
101
  has not been tested.
102
102
  </p>
103
103
  </div>
@@ -106,10 +106,10 @@ has not been tested.
106
106
 
107
107
  <div class="sectiontitle">Methods</div>
108
108
  <ul>
109
- <li><a href="#M000036">new</a></li>
110
- <li><a href="#M000039">reload</a></li>
111
- <li><a href="#M000038">spawn_application</a></li>
112
- <li><a href="#M000037">start</a></li>
109
+ <li><a href="#M000039">new</a></li>
110
+ <li><a href="#M000042">reload</a></li>
111
+ <li><a href="#M000041">spawn_application</a></li>
112
+ <li><a href="#M000040">start</a></li>
113
113
  </ul>
114
114
 
115
115
  <div class="sectiontitle">Included Modules</div>
@@ -127,11 +127,11 @@ has not been tested.
127
127
  <div class="sectiontitle">Public Class methods</div>
128
128
  <div class="method">
129
129
  <div class="title">
130
- <a name="M000036"></a><b>new</b>(options = {})
130
+ <a name="M000039"></a><b>new</b>(options = {})
131
131
  </div>
132
132
  <div class="description">
133
133
  <p>
134
- Creates a <a href="FrameworkSpawner.html#M000036">new</a> instance of <a
134
+ Creates a <a href="FrameworkSpawner.html#M000039">new</a> instance of <a
135
135
  href="FrameworkSpawner.html">FrameworkSpawner</a>.
136
136
  </p>
137
137
  <p>
@@ -158,34 +158,34 @@ href="RequestHandler.html">RequestHandler</a>.
158
158
  <p>
159
159
  Note that the specified Rails framework will be loaded during the entire
160
160
  life time of the <a href="FrameworkSpawner.html">FrameworkSpawner</a>
161
- server. If you wish to <a href="FrameworkSpawner.html#M000039">reload</a>
161
+ server. If you wish to <a href="FrameworkSpawner.html#M000042">reload</a>
162
162
  the Rails framework&#8216;s code, then restart the server by calling <a
163
- href="../AbstractServer.html#M000126">AbstractServer#stop</a> and <a
164
- href="../AbstractServer.html#M000124">AbstractServer#start</a>.
163
+ href="../AbstractServer.html#M000128">AbstractServer#stop</a> and <a
164
+ href="../AbstractServer.html#M000126">AbstractServer#start</a>.
165
165
  </p>
166
166
  </div>
167
167
  <div class="sourcecode">
168
- <p class="source-link">[ <a href="javascript:toggleSource('M000036_source')" id="l_M000036_source">show source</a> ]</p>
169
- <div id="M000036_source" class="dyn-source">
168
+ <p class="source-link">[ <a href="javascript:toggleSource('M000039_source')" id="l_M000039_source">show source</a> ]</p>
169
+ <div id="M000039_source" class="dyn-source">
170
170
  <pre>
171
- <span class="ruby-comment cmt"># File lib/phusion_passenger/railz/framework_spawner.rb, line 64</span>
172
- 64: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">options</span> = {})
173
- 65: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">options</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-value str">'[]'</span><span class="ruby-value str">'[]'</span>)
174
- 66: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-value str">&quot;The 'options' argument not seem to be an options hash&quot;</span>
175
- 67: <span class="ruby-keyword kw">end</span>
176
- 68: <span class="ruby-ivar">@version</span> = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:version</span>]
177
- 69: <span class="ruby-ivar">@vendor</span> = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:vendor</span>]
178
- 70: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@version</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@vendor</span>
179
- 71: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-value str">&quot;Either the 'version' or the 'vendor' option must specified&quot;</span>
180
- 72: <span class="ruby-keyword kw">elsif</span> <span class="ruby-ivar">@version</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@vendor</span>
181
- 73: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-value str">&quot;It is not allowed to specify both the 'version' and the 'vendor' options&quot;</span>
182
- 74: <span class="ruby-keyword kw">end</span>
183
- 75:
184
- 76: <span class="ruby-keyword kw">super</span>()
185
- 77: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">max_idle_time</span> = <span class="ruby-constant">DEFAULT_FRAMEWORK_SPAWNER_MAX_IDLE_TIME</span>
186
- 78: <span class="ruby-identifier">define_message_handler</span>(<span class="ruby-identifier">:spawn_application</span>, <span class="ruby-identifier">:handle_spawn_application</span>)
187
- 79: <span class="ruby-identifier">define_message_handler</span>(<span class="ruby-identifier">:reload</span>, <span class="ruby-identifier">:handle_reload</span>)
188
- 80: <span class="ruby-keyword kw">end</span>
171
+ <span class="ruby-comment cmt"># File lib/phusion_passenger/railz/framework_spawner.rb, line 69</span>
172
+ 69: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">options</span> = {})
173
+ 70: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">options</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-value str">'[]'</span><span class="ruby-value str">'[]'</span>)
174
+ 71: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-value str">&quot;The 'options' argument not seem to be an options hash&quot;</span>
175
+ 72: <span class="ruby-keyword kw">end</span>
176
+ 73: <span class="ruby-ivar">@version</span> = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:version</span>]
177
+ 74: <span class="ruby-ivar">@vendor</span> = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:vendor</span>]
178
+ 75: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@version</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@vendor</span>
179
+ 76: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-value str">&quot;Either the 'version' or the 'vendor' option must specified&quot;</span>
180
+ 77: <span class="ruby-keyword kw">elsif</span> <span class="ruby-ivar">@version</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@vendor</span>
181
+ 78: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-value str">&quot;It is not allowed to specify both the 'version' and the 'vendor' options&quot;</span>
182
+ 79: <span class="ruby-keyword kw">end</span>
183
+ 80:
184
+ 81: <span class="ruby-keyword kw">super</span>()
185
+ 82: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">max_idle_time</span> = <span class="ruby-constant">DEFAULT_FRAMEWORK_SPAWNER_MAX_IDLE_TIME</span>
186
+ 83: <span class="ruby-identifier">define_message_handler</span>(<span class="ruby-identifier">:spawn_application</span>, <span class="ruby-identifier">:handle_spawn_application</span>)
187
+ 84: <span class="ruby-identifier">define_message_handler</span>(<span class="ruby-identifier">:reload</span>, <span class="ruby-identifier">:handle_reload</span>)
188
+ 85: <span class="ruby-keyword kw">end</span>
189
189
  </pre>
190
190
  </div>
191
191
  </div>
@@ -193,7 +193,7 @@ href="../AbstractServer.html#M000124">AbstractServer#start</a>.
193
193
  <div class="sectiontitle">Public Instance methods</div>
194
194
  <div class="method">
195
195
  <div class="title">
196
- <a name="M000039"></a><b>reload</b>(app_root = nil)
196
+ <a name="M000042"></a><b>reload</b>(app_root = nil)
197
197
  </div>
198
198
  <div class="description">
199
199
  <p>
@@ -205,9 +205,9 @@ will be removed, no matter the application root.
205
205
  <b>Long description:</b> <a href="../Application.html">Application</a> code
206
206
  might be cached in memory by a <a
207
207
  href="FrameworkSpawner.html">FrameworkSpawner</a>. But once it a while, it
208
- will be necessary to <a href="FrameworkSpawner.html#M000039">reload</a> the
208
+ will be necessary to <a href="FrameworkSpawner.html#M000042">reload</a> the
209
209
  code for an application, such as after deploying a <a
210
- href="FrameworkSpawner.html#M000036">new</a> version of the application.
210
+ href="FrameworkSpawner.html#M000039">new</a> version of the application.
211
211
  This method makes sure that any cached application code is removed, so that
212
212
  the next time an application instance is spawned, the application code will
213
213
  be freshly loaded into memory.
@@ -228,26 +228,26 @@ unexpectedly.
228
228
  </ul>
229
229
  </div>
230
230
  <div class="sourcecode">
231
- <p class="source-link">[ <a href="javascript:toggleSource('M000039_source')" id="l_M000039_source">show source</a> ]</p>
232
- <div id="M000039_source" class="dyn-source">
231
+ <p class="source-link">[ <a href="javascript:toggleSource('M000042_source')" id="l_M000042_source">show source</a> ]</p>
232
+ <div id="M000042_source" class="dyn-source">
233
233
  <pre>
234
- <span class="ruby-comment cmt"># File lib/phusion_passenger/railz/framework_spawner.rb, line 199</span>
235
- 199: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">reload</span>(<span class="ruby-identifier">app_root</span> = <span class="ruby-keyword kw">nil</span>)
236
- 200: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">app_root</span>.<span class="ruby-identifier">nil?</span>
237
- 201: <span class="ruby-identifier">server</span>.<span class="ruby-identifier">write</span>(<span class="ruby-value str">&quot;reload&quot;</span>)
238
- 202: <span class="ruby-keyword kw">else</span>
239
- 203: <span class="ruby-identifier">server</span>.<span class="ruby-identifier">write</span>(<span class="ruby-value str">&quot;reload&quot;</span>, <span class="ruby-identifier">normalize_path</span>(<span class="ruby-identifier">app_root</span>))
240
- 204: <span class="ruby-keyword kw">end</span>
241
- 205: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">SystemCallError</span>, <span class="ruby-constant">IOError</span>, <span class="ruby-constant">SocketError</span>
242
- 206: <span class="ruby-identifier">raise</span> <span class="ruby-constant">Error</span>, <span class="ruby-value str">&quot;The framework spawner server exited unexpectedly&quot;</span>
243
- 207: <span class="ruby-keyword kw">end</span>
234
+ <span class="ruby-comment cmt"># File lib/phusion_passenger/railz/framework_spawner.rb, line 203</span>
235
+ 203: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">reload</span>(<span class="ruby-identifier">app_root</span> = <span class="ruby-keyword kw">nil</span>)
236
+ 204: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">app_root</span>.<span class="ruby-identifier">nil?</span>
237
+ 205: <span class="ruby-identifier">server</span>.<span class="ruby-identifier">write</span>(<span class="ruby-value str">&quot;reload&quot;</span>)
238
+ 206: <span class="ruby-keyword kw">else</span>
239
+ 207: <span class="ruby-identifier">server</span>.<span class="ruby-identifier">write</span>(<span class="ruby-value str">&quot;reload&quot;</span>, <span class="ruby-identifier">app_root</span>)
240
+ 208: <span class="ruby-keyword kw">end</span>
241
+ 209: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">SystemCallError</span>, <span class="ruby-constant">IOError</span>, <span class="ruby-constant">SocketError</span>
242
+ 210: <span class="ruby-identifier">raise</span> <span class="ruby-constant">Error</span>, <span class="ruby-value str">&quot;The framework spawner server exited unexpectedly&quot;</span>
243
+ 211: <span class="ruby-keyword kw">end</span>
244
244
  </pre>
245
245
  </div>
246
246
  </div>
247
247
  </div>
248
248
  <div class="method">
249
249
  <div class="title">
250
- <a name="M000038"></a><b>spawn_application</b>(app_root, options = {})
250
+ <a name="M000041"></a><b>spawn_application</b>(app_root, options = {})
251
251
  </div>
252
252
  <div class="description">
253
253
  <p>
@@ -295,12 +295,12 @@ you must do one of these things:
295
295
  </p>
296
296
  <ul>
297
297
  <li>Restart this <a href="FrameworkSpawner.html">FrameworkSpawner</a> by
298
- calling <a href="../AbstractServer.html#M000126">AbstractServer#stop</a>,
299
- then <a href="../AbstractServer.html#M000124">AbstractServer#start</a>.
298
+ calling <a href="../AbstractServer.html#M000128">AbstractServer#stop</a>,
299
+ then <a href="../AbstractServer.html#M000126">AbstractServer#start</a>.
300
300
 
301
301
  </li>
302
302
  <li>Reload the application by calling <a
303
- href="FrameworkSpawner.html#M000039">reload</a> with the correct app_root
303
+ href="FrameworkSpawner.html#M000042">reload</a> with the correct app_root
304
304
  argument.
305
305
 
306
306
  </li>
@@ -336,54 +336,53 @@ unexpectedly.
336
336
  </ul>
337
337
  </div>
338
338
  <div class="sourcecode">
339
- <p class="source-link">[ <a href="javascript:toggleSource('M000038_source')" id="l_M000038_source">show source</a> ]</p>
340
- <div id="M000038_source" class="dyn-source">
339
+ <p class="source-link">[ <a href="javascript:toggleSource('M000041_source')" id="l_M000041_source">show source</a> ]</p>
340
+ <div id="M000041_source" class="dyn-source">
341
341
  <pre>
342
- <span class="ruby-comment cmt"># File lib/phusion_passenger/railz/framework_spawner.rb, line 150</span>
343
- 150: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">spawn_application</span>(<span class="ruby-identifier">app_root</span>, <span class="ruby-identifier">options</span> = {})
344
- 151: <span class="ruby-identifier">app_root</span> = <span class="ruby-identifier">normalize_path</span>(<span class="ruby-identifier">app_root</span>)
345
- 152: <span class="ruby-identifier">assert_valid_app_root</span>(<span class="ruby-identifier">app_root</span>)
346
- 153: <span class="ruby-identifier">options</span> = <span class="ruby-identifier">sanitize_spawn_options</span>(<span class="ruby-identifier">options</span>)
347
- 154: <span class="ruby-identifier">options</span>[<span class="ruby-value str">&quot;app_root&quot;</span>] = <span class="ruby-identifier">app_root</span>
348
- 155:
349
- 156: <span class="ruby-identifier">exception_to_propagate</span> = <span class="ruby-keyword kw">nil</span>
350
- 157: <span class="ruby-keyword kw">begin</span>
351
- 158: <span class="ruby-identifier">server</span>.<span class="ruby-identifier">write</span>(<span class="ruby-value str">&quot;spawn_application&quot;</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">options</span>.<span class="ruby-identifier">to_a</span>.<span class="ruby-identifier">flatten</span>)
352
- 159: <span class="ruby-identifier">result</span> = <span class="ruby-identifier">server</span>.<span class="ruby-identifier">read</span>
353
- 160: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">result</span>.<span class="ruby-identifier">nil?</span>
354
- 161: <span class="ruby-identifier">raise</span> <span class="ruby-constant">IOError</span>, <span class="ruby-value str">&quot;Connection closed&quot;</span>
355
- 162: <span class="ruby-keyword kw">end</span>
356
- 163: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">result</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">'exception'</span>
357
- 164: <span class="ruby-identifier">e</span> = <span class="ruby-identifier">unmarshal_exception</span>(<span class="ruby-identifier">server</span>.<span class="ruby-identifier">read_scalar</span>)
358
- 165: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">e</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">:child_exception</span>) <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">e</span>.<span class="ruby-identifier">child_exception</span>
359
- 166: <span class="ruby-comment cmt">#print_exception(self.class.to_s, e.child_exception)</span>
360
- 167: <span class="ruby-keyword kw">end</span>
361
- 168: <span class="ruby-identifier">raise</span> <span class="ruby-identifier">e</span>
362
- 169: <span class="ruby-keyword kw">else</span>
363
- 170: <span class="ruby-identifier">pid</span>, <span class="ruby-identifier">listen_socket_name</span>, <span class="ruby-identifier">socket_type</span> = <span class="ruby-identifier">server</span>.<span class="ruby-identifier">read</span>
364
- 171: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">pid</span>.<span class="ruby-identifier">nil?</span>
365
- 172: <span class="ruby-identifier">raise</span> <span class="ruby-constant">IOError</span>, <span class="ruby-value str">&quot;Connection closed&quot;</span>
366
- 173: <span class="ruby-keyword kw">end</span>
367
- 174: <span class="ruby-identifier">owner_pipe</span> = <span class="ruby-identifier">server</span>.<span class="ruby-identifier">recv_io</span>
368
- 175: <span class="ruby-keyword kw">return</span> <span class="ruby-constant">Application</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">app_root</span>, <span class="ruby-identifier">pid</span>, <span class="ruby-identifier">listen_socket_name</span>,
369
- 176: <span class="ruby-identifier">socket_type</span>, <span class="ruby-identifier">owner_pipe</span>)
370
- 177: <span class="ruby-keyword kw">end</span>
371
- 178: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">SystemCallError</span>, <span class="ruby-constant">IOError</span>, <span class="ruby-constant">SocketError</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">e</span>
372
- 179: <span class="ruby-identifier">raise</span> <span class="ruby-constant">Error</span>, <span class="ruby-value str">&quot;The framework spawner server exited unexpectedly&quot;</span>
373
- 180: <span class="ruby-keyword kw">end</span>
374
- 181: <span class="ruby-keyword kw">end</span>
342
+ <span class="ruby-comment cmt"># File lib/phusion_passenger/railz/framework_spawner.rb, line 155</span>
343
+ 155: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">spawn_application</span>(<span class="ruby-identifier">app_root</span>, <span class="ruby-identifier">options</span> = {})
344
+ 156: <span class="ruby-identifier">assert_valid_app_root</span>(<span class="ruby-identifier">app_root</span>)
345
+ 157: <span class="ruby-identifier">options</span> = <span class="ruby-identifier">sanitize_spawn_options</span>(<span class="ruby-identifier">options</span>)
346
+ 158: <span class="ruby-identifier">options</span>[<span class="ruby-value str">&quot;app_root&quot;</span>] = <span class="ruby-identifier">app_root</span>
347
+ 159:
348
+ 160: <span class="ruby-identifier">exception_to_propagate</span> = <span class="ruby-keyword kw">nil</span>
349
+ 161: <span class="ruby-keyword kw">begin</span>
350
+ 162: <span class="ruby-identifier">server</span>.<span class="ruby-identifier">write</span>(<span class="ruby-value str">&quot;spawn_application&quot;</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">options</span>.<span class="ruby-identifier">to_a</span>.<span class="ruby-identifier">flatten</span>)
351
+ 163: <span class="ruby-identifier">result</span> = <span class="ruby-identifier">server</span>.<span class="ruby-identifier">read</span>
352
+ 164: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">result</span>.<span class="ruby-identifier">nil?</span>
353
+ 165: <span class="ruby-identifier">raise</span> <span class="ruby-constant">IOError</span>, <span class="ruby-value str">&quot;Connection closed&quot;</span>
354
+ 166: <span class="ruby-keyword kw">end</span>
355
+ 167: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">result</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">'exception'</span>
356
+ 168: <span class="ruby-identifier">e</span> = <span class="ruby-identifier">unmarshal_exception</span>(<span class="ruby-identifier">server</span>.<span class="ruby-identifier">read_scalar</span>)
357
+ 169: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">e</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">:child_exception</span>) <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">e</span>.<span class="ruby-identifier">child_exception</span>
358
+ 170: <span class="ruby-comment cmt">#print_exception(self.class.to_s, e.child_exception)</span>
359
+ 171: <span class="ruby-keyword kw">end</span>
360
+ 172: <span class="ruby-identifier">raise</span> <span class="ruby-identifier">e</span>
361
+ 173: <span class="ruby-keyword kw">else</span>
362
+ 174: <span class="ruby-identifier">pid</span>, <span class="ruby-identifier">listen_socket_name</span>, <span class="ruby-identifier">socket_type</span> = <span class="ruby-identifier">server</span>.<span class="ruby-identifier">read</span>
363
+ 175: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">pid</span>.<span class="ruby-identifier">nil?</span>
364
+ 176: <span class="ruby-identifier">raise</span> <span class="ruby-constant">IOError</span>, <span class="ruby-value str">&quot;Connection closed&quot;</span>
365
+ 177: <span class="ruby-keyword kw">end</span>
366
+ 178: <span class="ruby-identifier">owner_pipe</span> = <span class="ruby-identifier">server</span>.<span class="ruby-identifier">recv_io</span>
367
+ 179: <span class="ruby-keyword kw">return</span> <span class="ruby-constant">Application</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">app_root</span>, <span class="ruby-identifier">pid</span>, <span class="ruby-identifier">listen_socket_name</span>,
368
+ 180: <span class="ruby-identifier">socket_type</span>, <span class="ruby-identifier">owner_pipe</span>)
369
+ 181: <span class="ruby-keyword kw">end</span>
370
+ 182: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">SystemCallError</span>, <span class="ruby-constant">IOError</span>, <span class="ruby-constant">SocketError</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">e</span>
371
+ 183: <span class="ruby-identifier">raise</span> <span class="ruby-constant">Error</span>, <span class="ruby-value str">&quot;The framework spawner server exited unexpectedly&quot;</span>
372
+ 184: <span class="ruby-keyword kw">end</span>
373
+ 185: <span class="ruby-keyword kw">end</span>
375
374
  </pre>
376
375
  </div>
377
376
  </div>
378
377
  </div>
379
378
  <div class="method">
380
379
  <div class="title">
381
- <a name="M000037"></a><b>start</b>()
380
+ <a name="M000040"></a><b>start</b>()
382
381
  </div>
383
382
  <div class="description">
384
383
  <p>
385
384
  Overrided from <a
386
- href="../AbstractServer.html#M000124">AbstractServer#start</a>.
385
+ href="../AbstractServer.html#M000126">AbstractServer#start</a>.
387
386
  </p>
388
387
  <p>
389
388
  May raise these additional exceptions:
@@ -401,37 +400,37 @@ unexpectedly.
401
400
  </ul>
402
401
  </div>
403
402
  <div class="sourcecode">
404
- <p class="source-link">[ <a href="javascript:toggleSource('M000037_source')" id="l_M000037_source">show source</a> ]</p>
405
- <div id="M000037_source" class="dyn-source">
403
+ <p class="source-link">[ <a href="javascript:toggleSource('M000040_source')" id="l_M000040_source">show source</a> ]</p>
404
+ <div id="M000040_source" class="dyn-source">
406
405
  <pre>
407
- <span class="ruby-comment cmt"># File lib/phusion_passenger/railz/framework_spawner.rb, line 87</span>
408
- 87: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">start</span>
409
- 88: <span class="ruby-keyword kw">super</span>
410
- 89: <span class="ruby-keyword kw">begin</span>
411
- 90: <span class="ruby-identifier">result</span> = <span class="ruby-identifier">server</span>.<span class="ruby-identifier">read</span>
412
- 91: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">result</span>.<span class="ruby-identifier">nil?</span>
413
- 92: <span class="ruby-identifier">raise</span> <span class="ruby-constant">Error</span>, <span class="ruby-value str">&quot;The framework spawner server exited unexpectedly.&quot;</span>
414
- 93: <span class="ruby-keyword kw">else</span>
415
- 94: <span class="ruby-identifier">status</span> = <span class="ruby-identifier">result</span>[<span class="ruby-value">0</span>]
416
- 95: <span class="ruby-keyword kw">end</span>
417
- 96: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">status</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'exception'</span>
418
- 97: <span class="ruby-identifier">child_exception</span> = <span class="ruby-identifier">unmarshal_exception</span>(<span class="ruby-identifier">server</span>.<span class="ruby-identifier">read_scalar</span>)
419
- 98: <span class="ruby-identifier">stop</span>
420
- 99: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@version</span>
421
- 100: <span class="ruby-identifier">message</span> = <span class="ruby-node">&quot;Could not load Ruby on Rails framework version #{@version}: &quot;</span> <span class="ruby-operator">&lt;&lt;</span>
422
- 101: <span class="ruby-node">&quot;#{child_exception.class} (#{child_exception.message})&quot;</span>
423
- 102: <span class="ruby-keyword kw">else</span>
424
- 103: <span class="ruby-identifier">message</span> = <span class="ruby-node">&quot;Could not load Ruby on Rails framework at '#{@vendor}': &quot;</span> <span class="ruby-operator">&lt;&lt;</span>
425
- 104: <span class="ruby-node">&quot;#{child_exception.class} (#{child_exception.message})&quot;</span>
426
- 105: <span class="ruby-keyword kw">end</span>
427
- 106: <span class="ruby-identifier">options</span> = { <span class="ruby-identifier">:vendor</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@vendor</span>, <span class="ruby-identifier">:version</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@version</span> }
428
- 107: <span class="ruby-identifier">raise</span> <span class="ruby-constant">FrameworkInitError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">message</span>, <span class="ruby-identifier">child_exception</span>, <span class="ruby-identifier">options</span>)
429
- 108: <span class="ruby-keyword kw">end</span>
430
- 109: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">IOError</span>, <span class="ruby-constant">SystemCallError</span>, <span class="ruby-constant">SocketError</span>
431
- 110: <span class="ruby-identifier">stop</span>
432
- 111: <span class="ruby-identifier">raise</span> <span class="ruby-constant">Error</span>, <span class="ruby-value str">&quot;The framework spawner server exited unexpectedly&quot;</span>
433
- 112: <span class="ruby-keyword kw">end</span>
434
- 113: <span class="ruby-keyword kw">end</span>
406
+ <span class="ruby-comment cmt"># File lib/phusion_passenger/railz/framework_spawner.rb, line 92</span>
407
+ 92: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">start</span>
408
+ 93: <span class="ruby-keyword kw">super</span>
409
+ 94: <span class="ruby-keyword kw">begin</span>
410
+ 95: <span class="ruby-identifier">result</span> = <span class="ruby-identifier">server</span>.<span class="ruby-identifier">read</span>
411
+ 96: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">result</span>.<span class="ruby-identifier">nil?</span>
412
+ 97: <span class="ruby-identifier">raise</span> <span class="ruby-constant">Error</span>, <span class="ruby-value str">&quot;The framework spawner server exited unexpectedly.&quot;</span>
413
+ 98: <span class="ruby-keyword kw">else</span>
414
+ 99: <span class="ruby-identifier">status</span> = <span class="ruby-identifier">result</span>[<span class="ruby-value">0</span>]
415
+ 100: <span class="ruby-keyword kw">end</span>
416
+ 101: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">status</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'exception'</span>
417
+ 102: <span class="ruby-identifier">child_exception</span> = <span class="ruby-identifier">unmarshal_exception</span>(<span class="ruby-identifier">server</span>.<span class="ruby-identifier">read_scalar</span>)
418
+ 103: <span class="ruby-identifier">stop</span>
419
+ 104: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@version</span>
420
+ 105: <span class="ruby-identifier">message</span> = <span class="ruby-node">&quot;Could not load Ruby on Rails framework version #{@version}: &quot;</span> <span class="ruby-operator">&lt;&lt;</span>
421
+ 106: <span class="ruby-node">&quot;#{child_exception.class} (#{child_exception.message})&quot;</span>
422
+ 107: <span class="ruby-keyword kw">else</span>
423
+ 108: <span class="ruby-identifier">message</span> = <span class="ruby-node">&quot;Could not load Ruby on Rails framework at '#{@vendor}': &quot;</span> <span class="ruby-operator">&lt;&lt;</span>
424
+ 109: <span class="ruby-node">&quot;#{child_exception.class} (#{child_exception.message})&quot;</span>
425
+ 110: <span class="ruby-keyword kw">end</span>
426
+ 111: <span class="ruby-identifier">options</span> = { <span class="ruby-identifier">:vendor</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@vendor</span>, <span class="ruby-identifier">:version</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@version</span> }
427
+ 112: <span class="ruby-identifier">raise</span> <span class="ruby-constant">FrameworkInitError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">message</span>, <span class="ruby-identifier">child_exception</span>, <span class="ruby-identifier">options</span>)
428
+ 113: <span class="ruby-keyword kw">end</span>
429
+ 114: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">IOError</span>, <span class="ruby-constant">SystemCallError</span>, <span class="ruby-constant">SocketError</span>
430
+ 115: <span class="ruby-identifier">stop</span>
431
+ 116: <span class="ruby-identifier">raise</span> <span class="ruby-constant">Error</span>, <span class="ruby-value str">&quot;The framework spawner server exited unexpectedly&quot;</span>
432
+ 117: <span class="ruby-keyword kw">end</span>
433
+ 118: <span class="ruby-keyword kw">end</span>
435
434
  </pre>
436
435
  </div>
437
436
  </div>
@@ -84,8 +84,8 @@ A request handler for Ruby on Rails applications.
84
84
 
85
85
  <div class="sectiontitle">Methods</div>
86
86
  <ul>
87
- <li><a href="#M000049">new</a></li>
88
- <li><a href="#M000050">process_request</a></li>
87
+ <li><a href="#M000052">new</a></li>
88
+ <li><a href="#M000053">process_request</a></li>
89
89
  </ul>
90
90
 
91
91
 
@@ -104,19 +104,19 @@ A request handler for Ruby on Rails applications.
104
104
  <div class="sectiontitle">Public Class methods</div>
105
105
  <div class="method">
106
106
  <div class="title">
107
- <a name="M000049"></a><b>new</b>(owner_pipe, options = {})
107
+ <a name="M000052"></a><b>new</b>(owner_pipe, options = {})
108
108
  </div>
109
109
  <div class="sourcecode">
110
- <p class="source-link">[ <a href="javascript:toggleSource('M000049_source')" id="l_M000049_source">show source</a> ]</p>
111
- <div id="M000049_source" class="dyn-source">
110
+ <p class="source-link">[ <a href="javascript:toggleSource('M000052_source')" id="l_M000052_source">show source</a> ]</p>
111
+ <div id="M000052_source" class="dyn-source">
112
112
  <pre>
113
- <span class="ruby-comment cmt"># File lib/phusion_passenger/railz/request_handler.rb, line 27</span>
114
- 27: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">owner_pipe</span>, <span class="ruby-identifier">options</span> = {})
115
- 28: <span class="ruby-keyword kw">super</span>(<span class="ruby-identifier">owner_pipe</span>, <span class="ruby-identifier">options</span>)
116
- 29: <span class="ruby-constant">NINJA_PATCHING_LOCK</span>.<span class="ruby-identifier">synchronize</span> <span class="ruby-keyword kw">do</span>
117
- 30: <span class="ruby-identifier">ninja_patch_action_controller</span>
118
- 31: <span class="ruby-keyword kw">end</span>
119
- 32: <span class="ruby-keyword kw">end</span>
113
+ <span class="ruby-comment cmt"># File lib/phusion_passenger/railz/request_handler.rb, line 34</span>
114
+ 34: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">owner_pipe</span>, <span class="ruby-identifier">options</span> = {})
115
+ 35: <span class="ruby-keyword kw">super</span>(<span class="ruby-identifier">owner_pipe</span>, <span class="ruby-identifier">options</span>)
116
+ 36: <span class="ruby-constant">NINJA_PATCHING_LOCK</span>.<span class="ruby-identifier">synchronize</span> <span class="ruby-keyword kw">do</span>
117
+ 37: <span class="ruby-identifier">ninja_patch_action_controller</span>
118
+ 38: <span class="ruby-keyword kw">end</span>
119
+ 39: <span class="ruby-keyword kw">end</span>
120
120
  </pre>
121
121
  </div>
122
122
  </div>
@@ -124,7 +124,7 @@ A request handler for Ruby on Rails applications.
124
124
  <div class="sectiontitle">Protected Instance methods</div>
125
125
  <div class="method">
126
126
  <div class="title">
127
- <a name="M000050"></a><b>process_request</b>(headers, input, output)
127
+ <a name="M000053"></a><b>process_request</b>(headers, input, output)
128
128
  </div>
129
129
  <div class="description">
130
130
  <p>
@@ -132,16 +132,16 @@ Overrided method.
132
132
  </p>
133
133
  </div>
134
134
  <div class="sourcecode">
135
- <p class="source-link">[ <a href="javascript:toggleSource('M000050_source')" id="l_M000050_source">show source</a> ]</p>
136
- <div id="M000050_source" class="dyn-source">
135
+ <p class="source-link">[ <a href="javascript:toggleSource('M000053_source')" id="l_M000053_source">show source</a> ]</p>
136
+ <div id="M000053_source" class="dyn-source">
137
137
  <pre>
138
- <span class="ruby-comment cmt"># File lib/phusion_passenger/railz/request_handler.rb, line 36</span>
139
- 36: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">process_request</span>(<span class="ruby-identifier">headers</span>, <span class="ruby-identifier">input</span>, <span class="ruby-identifier">output</span>)
140
- 37: <span class="ruby-identifier">cgi</span> = <span class="ruby-constant">CGIFixed</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">headers</span>, <span class="ruby-identifier">input</span>, <span class="ruby-identifier">output</span>)
141
- 38: <span class="ruby-operator">::</span><span class="ruby-constant">Dispatcher</span>.<span class="ruby-identifier">dispatch</span>(<span class="ruby-identifier">cgi</span>,
142
- 39: <span class="ruby-operator">::</span><span class="ruby-constant">ActionController</span><span class="ruby-operator">::</span><span class="ruby-constant">CgiRequest</span><span class="ruby-operator">::</span><span class="ruby-constant">DEFAULT_SESSION_OPTIONS</span>,
143
- 40: <span class="ruby-identifier">cgi</span>.<span class="ruby-identifier">stdoutput</span>)
144
- 41: <span class="ruby-keyword kw">end</span>
138
+ <span class="ruby-comment cmt"># File lib/phusion_passenger/railz/request_handler.rb, line 43</span>
139
+ 43: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">process_request</span>(<span class="ruby-identifier">headers</span>, <span class="ruby-identifier">input</span>, <span class="ruby-identifier">output</span>)
140
+ 44: <span class="ruby-identifier">cgi</span> = <span class="ruby-constant">CGIFixed</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">headers</span>, <span class="ruby-identifier">input</span>, <span class="ruby-identifier">output</span>)
141
+ 45: <span class="ruby-operator">::</span><span class="ruby-constant">Dispatcher</span>.<span class="ruby-identifier">dispatch</span>(<span class="ruby-identifier">cgi</span>,
142
+ 46: <span class="ruby-operator">::</span><span class="ruby-constant">ActionController</span><span class="ruby-operator">::</span><span class="ruby-constant">CgiRequest</span><span class="ruby-operator">::</span><span class="ruby-constant">DEFAULT_SESSION_OPTIONS</span>,
143
+ 47: <span class="ruby-identifier">cgi</span>.<span class="ruby-identifier">stdoutput</span>)
144
+ 48: <span class="ruby-keyword kw">end</span>
145
145
  </pre>
146
146
  </div>
147
147
  </div>