passenger 5.2.3 → 5.3.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 (241) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +13 -0
  3. data/CONTRIBUTORS +5 -1
  4. data/build/agent.rb +22 -2
  5. data/build/cxx_tests.rb +41 -5
  6. data/build/misc.rb +4 -1
  7. data/build/support/cxx_dependency_map.rb +1746 -908
  8. data/build/support/vendor/cxx_hinted_parser/CxxHintedParser.sublime-project +8 -0
  9. data/build/support/vendor/cxx_hinted_parser/Gemfile +5 -0
  10. data/build/support/vendor/cxx_hinted_parser/Gemfile.lock +30 -0
  11. data/{src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core → build/support/vendor/cxx_hinted_parser}/LICENSE.md +1 -1
  12. data/build/support/vendor/cxx_hinted_parser/README.md +95 -0
  13. data/build/support/vendor/cxx_hinted_parser/Rakefile +4 -0
  14. data/{src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_rails/lib/union_station_hooks_rails/initialize.rb → build/support/vendor/cxx_hinted_parser/lib/cxx_hinted_parser.rb} +2 -9
  15. data/build/support/vendor/cxx_hinted_parser/lib/cxx_hinted_parser/parser.rb +239 -0
  16. data/dev/ci/README.md +15 -2
  17. data/dev/ci/lib/set-container-envvars.sh +6 -0
  18. data/dev/ci/lib/setup-container.sh +4 -1
  19. data/dev/ci/scripts/debug-console-wrapper.sh +3 -1
  20. data/dev/ci/setup-host +5 -0
  21. data/dev/ci/tests/binaries/Jenkinsfile +105 -0
  22. data/dev/ci/tests/binaries/build-linux +38 -0
  23. data/dev/ci/tests/binaries/build-macos +40 -0
  24. data/dev/ci/tests/binaries/prepare-macos +38 -0
  25. data/dev/ci/tests/binaries/test-linux +45 -0
  26. data/dev/ci/tests/binaries/test-macos +38 -0
  27. data/dev/ci/tests/debian/Jenkinsfile +2 -2
  28. data/dev/ci/tests/rpm/Jenkinsfile +1 -1
  29. data/dev/configkit-schemas/index.json +3 -24
  30. data/dev/vagrant/nginx_rakefile +0 -1
  31. data/package.json +15 -5
  32. data/resources/templates/error_renderer/.editorconfig +19 -0
  33. data/resources/templates/error_renderer/with_details/README.md +9 -0
  34. data/resources/templates/error_renderer/with_details/dist/bundle.js +33 -0
  35. data/resources/templates/error_renderer/with_details/dist/styles.css +17 -0
  36. data/resources/templates/error_renderer/with_details/src/DetailsView.jsx +52 -0
  37. data/resources/templates/error_renderer/with_details/src/GetHelpView.jsx +61 -0
  38. data/resources/templates/error_renderer/with_details/src/JourneyView.css +50 -0
  39. data/resources/templates/error_renderer/with_details/src/JourneyView.jsx +621 -0
  40. data/resources/templates/error_renderer/with_details/src/PageMain.css +114 -0
  41. data/resources/templates/error_renderer/with_details/src/PageMain.jsx +136 -0
  42. data/resources/templates/error_renderer/with_details/src/ProblemDescriptionView.jsx +14 -0
  43. data/resources/templates/error_renderer/with_details/src/ProcessDetailsView.jsx +56 -0
  44. data/resources/templates/error_renderer/with_details/src/SolutionDescriptionView.css +5 -0
  45. data/resources/templates/error_renderer/with_details/src/SolutionDescriptionView.jsx +15 -0
  46. data/resources/templates/error_renderer/with_details/src/SummaryView.jsx +35 -0
  47. data/resources/templates/error_renderer/with_details/src/SystemComponentView.css +34 -0
  48. data/resources/templates/error_renderer/with_details/src/SystemComponentView.jsx +168 -0
  49. data/resources/templates/error_renderer/with_details/src/SystemComponentsView.css +13 -0
  50. data/resources/templates/error_renderer/with_details/src/SystemComponentsView.jsx +116 -0
  51. data/resources/templates/error_renderer/with_details/src/Tab.jsx +12 -0
  52. data/resources/templates/error_renderer/with_details/src/Tabs.jsx +104 -0
  53. data/resources/templates/error_renderer/with_details/src/bootstrap/bootstrap.css +3446 -0
  54. data/resources/templates/error_renderer/with_details/src/bootstrap/bootstrap.js +293 -0
  55. data/resources/templates/error_renderer/with_details/src/bootstrap/config.json +401 -0
  56. data/resources/templates/error_renderer/with_details/src/index.html.template +22 -0
  57. data/resources/templates/error_renderer/with_details/src/index.jsx +23 -0
  58. data/resources/templates/error_renderer/with_details/webpack.config.js +47 -0
  59. data/resources/templates/error_renderer/without_details/dist/bundle.js +1 -0
  60. data/resources/templates/error_renderer/without_details/dist/styles.css +1 -0
  61. data/resources/templates/{undisclosed_error.html.template → error_renderer/without_details/src/index.html.template} +7 -11
  62. data/resources/templates/error_renderer/without_details/src/index.js +1 -0
  63. data/resources/templates/{error_layout.css → error_renderer/without_details/src/main.css} +5 -2
  64. data/resources/templates/error_renderer/without_details/webpack.config.js +42 -0
  65. data/src/agent/AgentMain.cpp +3 -3
  66. data/src/agent/Core/ApplicationPool/BasicProcessInfo.h +13 -0
  67. data/src/agent/Core/ApplicationPool/Common.h +3 -4
  68. data/src/agent/Core/ApplicationPool/Context.h +27 -17
  69. data/src/agent/Core/ApplicationPool/Group.h +3 -1
  70. data/src/agent/Core/ApplicationPool/Group/InitializationAndShutdown.cpp +2 -12
  71. data/src/agent/Core/ApplicationPool/Group/InternalUtils.cpp +55 -10
  72. data/src/agent/Core/ApplicationPool/Group/LifetimeAndBasics.cpp +1 -1
  73. data/src/agent/Core/ApplicationPool/Group/OutOfBandWork.cpp +1 -1
  74. data/src/agent/Core/ApplicationPool/Group/SpawningAndRestarting.cpp +13 -6
  75. data/src/agent/Core/ApplicationPool/Implementation.cpp +16 -100
  76. data/src/agent/Core/ApplicationPool/Options.h +8 -65
  77. data/src/agent/Core/ApplicationPool/Pool.h +4 -21
  78. data/src/agent/Core/ApplicationPool/Pool/AnalyticsCollection.cpp +1 -60
  79. data/src/agent/Core/ApplicationPool/Pool/GeneralUtils.cpp +10 -13
  80. data/src/agent/Core/ApplicationPool/Pool/InitializationAndShutdown.cpp +3 -8
  81. data/src/agent/Core/ApplicationPool/Pool/Miscellaneous.cpp +2 -34
  82. data/src/agent/Core/ApplicationPool/Pool/StateInspection.cpp +1 -1
  83. data/src/agent/Core/ApplicationPool/Process.cpp +17 -12
  84. data/src/agent/Core/ApplicationPool/Process.h +146 -93
  85. data/src/agent/Core/ApplicationPool/Session.h +2 -2
  86. data/src/agent/Core/ApplicationPool/Socket.h +28 -27
  87. data/src/agent/Core/Config.h +1 -3
  88. data/src/agent/Core/ConfigChange.cpp +2 -4
  89. data/src/agent/Core/Controller.h +2 -8
  90. data/src/agent/Core/Controller/BufferBody.cpp +0 -2
  91. data/src/agent/Core/Controller/CheckoutSession.cpp +12 -24
  92. data/src/agent/Core/Controller/Config.h +1 -9
  93. data/src/agent/Core/Controller/ForwardResponse.cpp +0 -34
  94. data/src/agent/Core/Controller/Hooks.cpp +0 -7
  95. data/src/agent/Core/Controller/InitRequest.cpp +0 -43
  96. data/src/agent/Core/Controller/InitializationAndShutdown.cpp +0 -4
  97. data/src/agent/Core/Controller/Request.h +1 -35
  98. data/src/agent/Core/Controller/SendRequest.cpp +0 -32
  99. data/src/agent/Core/CoreMain.cpp +19 -32
  100. data/src/agent/Core/SpawningKit/Config.h +329 -55
  101. data/src/agent/Core/SpawningKit/Config/AutoGeneratedCode.h +369 -0
  102. data/src/agent/Core/SpawningKit/Config/AutoGeneratedCode.h.cxxcodebuilder +307 -0
  103. data/src/agent/Core/SpawningKit/Context.h +211 -0
  104. data/src/agent/Core/SpawningKit/DirectSpawner.h +112 -122
  105. data/src/agent/Core/SpawningKit/DummySpawner.h +59 -20
  106. data/src/agent/Core/SpawningKit/ErrorRenderer.h +117 -0
  107. data/src/agent/Core/SpawningKit/Exceptions.h +1157 -0
  108. data/src/agent/Core/SpawningKit/Factory.h +24 -17
  109. data/src/agent/Core/SpawningKit/{BackgroundIOCapturer.h → Handshake/BackgroundIOCapturer.h} +48 -18
  110. data/src/agent/Core/SpawningKit/Handshake/Perform.h +1650 -0
  111. data/src/agent/Core/SpawningKit/Handshake/Prepare.h +582 -0
  112. data/src/agent/Core/SpawningKit/Handshake/Session.h +91 -0
  113. data/src/agent/Core/SpawningKit/Handshake/WorkDir.h +100 -0
  114. data/src/agent/Core/SpawningKit/Journey.h +561 -0
  115. data/src/agent/Core/SpawningKit/PipeWatcher.h +41 -18
  116. data/src/agent/Core/SpawningKit/README.md +534 -0
  117. data/src/agent/Core/SpawningKit/Result.h +182 -7
  118. data/src/agent/Core/SpawningKit/Result/AutoGeneratedCode.h +69 -0
  119. data/src/agent/Core/SpawningKit/Result/AutoGeneratedCode.h.cxxcodebuilder +110 -0
  120. data/src/agent/Core/SpawningKit/SmartSpawner.h +1027 -562
  121. data/src/agent/Core/SpawningKit/Spawner.h +70 -1134
  122. data/src/agent/Core/SpawningKit/UserSwitchingRules.h +3 -33
  123. data/src/agent/README.md +2 -3
  124. data/src/agent/Shared/ApiServerUtils.h +2 -3
  125. data/src/agent/SpawnEnvSetupper/SpawnEnvSetupperMain.cpp +932 -0
  126. data/src/agent/Watchdog/Config.h +1 -3
  127. data/src/agent/Watchdog/WatchdogMain.cpp +2 -1
  128. data/src/apache2_module/ConfigGeneral/AutoGeneratedDefinitions.cpp +5 -0
  129. data/src/apache2_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.cpp +5 -0
  130. data/src/apache2_module/ConfigGeneral/ManifestGeneration.h +22 -13
  131. data/src/apache2_module/DirConfig/AutoGeneratedCreateFunction.cpp +5 -0
  132. data/src/apache2_module/DirConfig/AutoGeneratedHeaderSerialization.cpp +3 -0
  133. data/src/apache2_module/DirConfig/AutoGeneratedManifestGeneration.cpp +13 -0
  134. data/src/apache2_module/DirConfig/AutoGeneratedMergeFunction.cpp +7 -0
  135. data/src/apache2_module/DirConfig/AutoGeneratedStruct.h +13 -0
  136. data/src/cxx_supportlib/Constants.h +3 -1
  137. data/src/cxx_supportlib/Exceptions.h +0 -121
  138. data/src/cxx_supportlib/LoggingKit/Implementation.cpp +7 -6
  139. data/src/cxx_supportlib/LoggingKit/Logging.h +3 -1
  140. data/src/cxx_supportlib/Utils.cpp +42 -0
  141. data/src/cxx_supportlib/Utils.h +7 -0
  142. data/src/cxx_supportlib/Utils/IOUtils.cpp +58 -0
  143. data/src/cxx_supportlib/Utils/IOUtils.h +13 -0
  144. data/src/cxx_supportlib/Utils/JsonUtils.h +130 -23
  145. data/src/cxx_supportlib/Utils/ScopeGuard.h +9 -4
  146. data/src/cxx_supportlib/Utils/StrIntUtils.cpp +7 -0
  147. data/src/cxx_supportlib/Utils/StrIntUtils.h +1 -0
  148. data/src/cxx_supportlib/Utils/SystemTime.h +1 -1
  149. data/src/cxx_supportlib/Utils/Timer.h +1 -1
  150. data/src/cxx_supportlib/WebSocketCommandReverseServer.h +6 -4
  151. data/src/cxx_supportlib/vendor-copy/adhoc_lve.h +1 -0
  152. data/src/helper-scripts/node-loader.js +54 -59
  153. data/src/helper-scripts/rack-loader.rb +63 -60
  154. data/src/helper-scripts/rack-preloader.rb +125 -72
  155. data/src/helper-scripts/wsgi-loader.py +100 -43
  156. data/src/nginx_module/ConfigGeneral/AutoGeneratedDefinitions.c +120 -112
  157. data/src/nginx_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.c +15 -8
  158. data/src/nginx_module/ConfigGeneral/AutoGeneratedSetterFuncs.c +142 -142
  159. data/src/nginx_module/ConfigGeneral/ManifestGeneration.c +26 -15
  160. data/src/nginx_module/ConfigGeneral/ManifestGeneration.h +3 -0
  161. data/src/nginx_module/LocationConfig/AutoGeneratedCreateFunction.c +76 -70
  162. data/src/nginx_module/LocationConfig/AutoGeneratedHeaderSerialization.c +114 -99
  163. data/src/nginx_module/LocationConfig/AutoGeneratedManifestGeneration.c +170 -156
  164. data/src/nginx_module/LocationConfig/AutoGeneratedMergeFunction.c +38 -35
  165. data/src/nginx_module/LocationConfig/AutoGeneratedStruct.h +5 -1
  166. data/src/ruby_supportlib/phusion_passenger.rb +5 -5
  167. data/src/ruby_supportlib/phusion_passenger/admin_tools/instance.rb +14 -1
  168. data/src/ruby_supportlib/phusion_passenger/apache2/config_options.rb +8 -0
  169. data/src/ruby_supportlib/phusion_passenger/common_library.rb +0 -3
  170. data/src/ruby_supportlib/phusion_passenger/config/nginx_engine_compiler.rb +0 -1
  171. data/src/ruby_supportlib/phusion_passenger/constants.rb +2 -0
  172. data/src/ruby_supportlib/phusion_passenger/loader_shared_helpers.rb +646 -238
  173. data/src/ruby_supportlib/phusion_passenger/nginx/config_options.rb +117 -95
  174. data/src/ruby_supportlib/phusion_passenger/packaging.rb +0 -1
  175. data/src/ruby_supportlib/phusion_passenger/platform_info/depcheck_specs/apache2.rb +5 -1
  176. data/src/ruby_supportlib/phusion_passenger/preloader_shared_helpers.rb +92 -69
  177. data/src/ruby_supportlib/phusion_passenger/public_api.rb +0 -17
  178. data/src/ruby_supportlib/phusion_passenger/rack/thread_handler_extension.rb +0 -3
  179. data/src/ruby_supportlib/phusion_passenger/request_handler.rb +4 -5
  180. data/src/ruby_supportlib/phusion_passenger/request_handler/thread_handler.rb +0 -22
  181. metadata +64 -67
  182. data/resources/templates/error_layout.html.template +0 -86
  183. data/resources/templates/general_error.html.template +0 -1
  184. data/resources/templates/general_error_with_html.html.template +0 -1
  185. data/src/agent/Core/ApplicationPool/ErrorRenderer.h +0 -131
  186. data/src/agent/Core/SpawningKit/Options.h +0 -41
  187. data/src/agent/Core/UnionStation/Connection.h +0 -173
  188. data/src/agent/Core/UnionStation/Context.h +0 -536
  189. data/src/agent/Core/UnionStation/StopwatchLog.h +0 -147
  190. data/src/agent/Core/UnionStation/Transaction.h +0 -249
  191. data/src/agent/SpawnPreparer/SpawnPreparerMain.cpp +0 -208
  192. data/src/cxx_supportlib/UnionStationFilterSupport.cpp +0 -67
  193. data/src/cxx_supportlib/UnionStationFilterSupport.h +0 -1622
  194. data/src/nodejs_supportlib/phusion_passenger/log_express.js +0 -106
  195. data/src/nodejs_supportlib/phusion_passenger/log_mongodb.js +0 -202
  196. data/src/nodejs_supportlib/phusion_passenger/ustreporter.js +0 -227
  197. data/src/nodejs_supportlib/phusion_passenger/ustrouter_connector.js +0 -448
  198. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/CONFIG.md +0 -37
  199. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/Gemfile +0 -17
  200. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/Gemfile.lock +0 -59
  201. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/README-API.md +0 -5
  202. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/README.md +0 -117
  203. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/Rakefile +0 -115
  204. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core.rb +0 -423
  205. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core/api.rb +0 -238
  206. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core/connection.rb +0 -67
  207. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core/context.rb +0 -281
  208. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core/lock.rb +0 -62
  209. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core/log.rb +0 -66
  210. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core/message_channel.rb +0 -157
  211. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core/request_reporter.rb +0 -150
  212. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core/request_reporter/basics.rb +0 -199
  213. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core/request_reporter/controllers.rb +0 -187
  214. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core/request_reporter/misc.rb +0 -303
  215. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core/request_reporter/view_rendering.rb +0 -91
  216. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core/simple_json.rb +0 -396
  217. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core/spec_helper.rb +0 -279
  218. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core/time_point.rb +0 -39
  219. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core/transaction.rb +0 -173
  220. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core/utils.rb +0 -177
  221. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core/version.rb +0 -32
  222. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core/version_data.rb +0 -44
  223. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/ruby_versions.yml.example +0 -16
  224. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/ruby_versions.yml.travis +0 -20
  225. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/ruby_versions.yml.travis-with-sudo +0 -18
  226. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/union_station_hooks_core.gemspec +0 -23
  227. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_rails/Gemfile +0 -14
  228. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_rails/Gemfile.lock +0 -45
  229. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_rails/LICENSE.md +0 -19
  230. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_rails/README.md +0 -104
  231. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_rails/Rakefile +0 -160
  232. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_rails/lib/union_station_hooks_rails.rb +0 -200
  233. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_rails/lib/union_station_hooks_rails/action_controller_extension.rb +0 -45
  234. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_rails/lib/union_station_hooks_rails/action_view_subscriber.rb +0 -55
  235. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_rails/lib/union_station_hooks_rails/active_record_subscriber.rb +0 -41
  236. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_rails/lib/union_station_hooks_rails/active_support_benchmarkable_extension.rb +0 -47
  237. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_rails/lib/union_station_hooks_rails/active_support_cache_subscriber.rb +0 -79
  238. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_rails/lib/union_station_hooks_rails/exception_logger.rb +0 -57
  239. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_rails/lib/union_station_hooks_rails/version.rb +0 -32
  240. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_rails/lib/union_station_hooks_rails/version_data.rb +0 -44
  241. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_rails/union_station_hooks_rails.gemspec +0 -34
@@ -46,19 +46,6 @@ generate_config_manifest_for_autogenerated_loc_conf(manifest_gen_ctx_t *ctx, pas
46
46
  PsgJsonValue *loc_options_container = NULL;
47
47
  PsgJsonValue *option_container, *hierarchy_member;
48
48
 
49
- if (plcf->autogenerated.enabled_explicitly_set) {
50
- find_or_create_manifest_app_and_loc_options_containers(ctx,
51
- plcf, cscf, clcf, &app_options_container, &loc_options_container);
52
- option_container = find_or_create_manifest_option_container(ctx,
53
- loc_options_container,
54
- "passenger_enabled",
55
- sizeof("passenger_enabled") - 1);
56
- hierarchy_member = add_manifest_option_container_hierarchy_member(option_container,
57
- &plcf->autogenerated.enabled_source_file,
58
- plcf->autogenerated.enabled_source_line);
59
- psg_json_value_set_bool(hierarchy_member, "value",
60
- plcf->autogenerated.enabled);
61
- }
62
49
  if (plcf->autogenerated.ruby_explicitly_set) {
63
50
  find_or_create_manifest_app_and_loc_options_containers(ctx,
64
51
  plcf, cscf, clcf, &app_options_container, &loc_options_container);
@@ -155,19 +142,6 @@ generate_config_manifest_for_autogenerated_loc_conf(manifest_gen_ctx_t *ctx, pas
155
142
  psg_json_value_set_uint(hierarchy_member, "value",
156
143
  plcf->autogenerated.min_instances);
157
144
  }
158
- if (plcf->autogenerated.max_requests_explicitly_set) {
159
- find_or_create_manifest_app_and_loc_options_containers(ctx,
160
- plcf, cscf, clcf, &app_options_container, &loc_options_container);
161
- option_container = find_or_create_manifest_option_container(ctx,
162
- loc_options_container,
163
- "passenger_max_requests",
164
- sizeof("passenger_max_requests") - 1);
165
- hierarchy_member = add_manifest_option_container_hierarchy_member(option_container,
166
- &plcf->autogenerated.max_requests_source_file,
167
- plcf->autogenerated.max_requests_source_line);
168
- psg_json_value_set_uint(hierarchy_member, "value",
169
- plcf->autogenerated.max_requests);
170
- }
171
145
  if (plcf->autogenerated.start_timeout_explicitly_set) {
172
146
  find_or_create_manifest_app_and_loc_options_containers(ctx,
173
147
  plcf, cscf, clcf, &app_options_container, &loc_options_container);
@@ -178,36 +152,9 @@ generate_config_manifest_for_autogenerated_loc_conf(manifest_gen_ctx_t *ctx, pas
178
152
  hierarchy_member = add_manifest_option_container_hierarchy_member(option_container,
179
153
  &plcf->autogenerated.start_timeout_source_file,
180
154
  plcf->autogenerated.start_timeout_source_line);
181
- psg_json_value_set_int(hierarchy_member, "value",
155
+ psg_json_value_set_uint(hierarchy_member, "value",
182
156
  plcf->autogenerated.start_timeout);
183
157
  }
184
- if (plcf->autogenerated.base_uris_explicitly_set) {
185
- find_or_create_manifest_app_and_loc_options_containers(ctx,
186
- plcf, cscf, clcf, &app_options_container, &loc_options_container);
187
- option_container = find_or_create_manifest_option_container(ctx,
188
- loc_options_container,
189
- "passenger_base_uri",
190
- sizeof("passenger_base_uri") - 1);
191
- hierarchy_member = add_manifest_option_container_hierarchy_member(option_container,
192
- &plcf->autogenerated.base_uris_source_file,
193
- plcf->autogenerated.base_uris_source_line);
194
- psg_json_value_set_str_array(hierarchy_member, "value",
195
- plcf->autogenerated.base_uris);
196
- }
197
- if (plcf->autogenerated.document_root_explicitly_set) {
198
- find_or_create_manifest_app_and_loc_options_containers(ctx,
199
- plcf, cscf, clcf, &app_options_container, &loc_options_container);
200
- option_container = find_or_create_manifest_option_container(ctx,
201
- loc_options_container,
202
- "passenger_document_root",
203
- sizeof("passenger_document_root") - 1);
204
- hierarchy_member = add_manifest_option_container_hierarchy_member(option_container,
205
- &plcf->autogenerated.document_root_source_file,
206
- plcf->autogenerated.document_root_source_line);
207
- psg_json_value_set_str(hierarchy_member, "value",
208
- (const char *) plcf->autogenerated.document_root.data,
209
- plcf->autogenerated.document_root.len);
210
- }
211
158
  if (plcf->autogenerated.user_explicitly_set) {
212
159
  find_or_create_manifest_app_and_loc_options_containers(ctx,
213
160
  plcf, cscf, clcf, &app_options_container, &loc_options_container);
@@ -330,6 +277,167 @@ generate_config_manifest_for_autogenerated_loc_conf(manifest_gen_ctx_t *ctx, pas
330
277
  psg_json_value_set_str_keyval(hierarchy_member, "value",
331
278
  plcf->autogenerated.env_vars);
332
279
  }
280
+ if (plcf->autogenerated.spawn_method_explicitly_set) {
281
+ find_or_create_manifest_app_and_loc_options_containers(ctx,
282
+ plcf, cscf, clcf, &app_options_container, &loc_options_container);
283
+ option_container = find_or_create_manifest_option_container(ctx,
284
+ app_options_container,
285
+ "passenger_spawn_method",
286
+ sizeof("passenger_spawn_method") - 1);
287
+ hierarchy_member = add_manifest_option_container_hierarchy_member(option_container,
288
+ &plcf->autogenerated.spawn_method_source_file,
289
+ plcf->autogenerated.spawn_method_source_line);
290
+ psg_json_value_set_str(hierarchy_member, "value",
291
+ (const char *) plcf->autogenerated.spawn_method.data,
292
+ plcf->autogenerated.spawn_method.len);
293
+ }
294
+ if (plcf->autogenerated.load_shell_envvars_explicitly_set) {
295
+ find_or_create_manifest_app_and_loc_options_containers(ctx,
296
+ plcf, cscf, clcf, &app_options_container, &loc_options_container);
297
+ option_container = find_or_create_manifest_option_container(ctx,
298
+ app_options_container,
299
+ "passenger_load_shell_envvars",
300
+ sizeof("passenger_load_shell_envvars") - 1);
301
+ hierarchy_member = add_manifest_option_container_hierarchy_member(option_container,
302
+ &plcf->autogenerated.load_shell_envvars_source_file,
303
+ plcf->autogenerated.load_shell_envvars_source_line);
304
+ psg_json_value_set_bool(hierarchy_member, "value",
305
+ plcf->autogenerated.load_shell_envvars);
306
+ }
307
+ if (plcf->autogenerated.max_request_queue_size_explicitly_set) {
308
+ find_or_create_manifest_app_and_loc_options_containers(ctx,
309
+ plcf, cscf, clcf, &app_options_container, &loc_options_container);
310
+ option_container = find_or_create_manifest_option_container(ctx,
311
+ app_options_container,
312
+ "passenger_max_request_queue_size",
313
+ sizeof("passenger_max_request_queue_size") - 1);
314
+ hierarchy_member = add_manifest_option_container_hierarchy_member(option_container,
315
+ &plcf->autogenerated.max_request_queue_size_source_file,
316
+ plcf->autogenerated.max_request_queue_size_source_line);
317
+ psg_json_value_set_uint(hierarchy_member, "value",
318
+ plcf->autogenerated.max_request_queue_size);
319
+ }
320
+ if (plcf->autogenerated.app_type_explicitly_set) {
321
+ find_or_create_manifest_app_and_loc_options_containers(ctx,
322
+ plcf, cscf, clcf, &app_options_container, &loc_options_container);
323
+ option_container = find_or_create_manifest_option_container(ctx,
324
+ app_options_container,
325
+ "passenger_app_type",
326
+ sizeof("passenger_app_type") - 1);
327
+ hierarchy_member = add_manifest_option_container_hierarchy_member(option_container,
328
+ &plcf->autogenerated.app_type_source_file,
329
+ plcf->autogenerated.app_type_source_line);
330
+ psg_json_value_set_str(hierarchy_member, "value",
331
+ (const char *) plcf->autogenerated.app_type.data,
332
+ plcf->autogenerated.app_type.len);
333
+ }
334
+ if (plcf->autogenerated.startup_file_explicitly_set) {
335
+ find_or_create_manifest_app_and_loc_options_containers(ctx,
336
+ plcf, cscf, clcf, &app_options_container, &loc_options_container);
337
+ option_container = find_or_create_manifest_option_container(ctx,
338
+ app_options_container,
339
+ "passenger_startup_file",
340
+ sizeof("passenger_startup_file") - 1);
341
+ hierarchy_member = add_manifest_option_container_hierarchy_member(option_container,
342
+ &plcf->autogenerated.startup_file_source_file,
343
+ plcf->autogenerated.startup_file_source_line);
344
+ psg_json_value_set_str(hierarchy_member, "value",
345
+ (const char *) plcf->autogenerated.startup_file.data,
346
+ plcf->autogenerated.startup_file.len);
347
+ }
348
+ if (plcf->autogenerated.restart_dir_explicitly_set) {
349
+ find_or_create_manifest_app_and_loc_options_containers(ctx,
350
+ plcf, cscf, clcf, &app_options_container, &loc_options_container);
351
+ option_container = find_or_create_manifest_option_container(ctx,
352
+ app_options_container,
353
+ "passenger_restart_dir",
354
+ sizeof("passenger_restart_dir") - 1);
355
+ hierarchy_member = add_manifest_option_container_hierarchy_member(option_container,
356
+ &plcf->autogenerated.restart_dir_source_file,
357
+ plcf->autogenerated.restart_dir_source_line);
358
+ psg_json_value_set_str(hierarchy_member, "value",
359
+ (const char *) plcf->autogenerated.restart_dir.data,
360
+ plcf->autogenerated.restart_dir.len);
361
+ }
362
+ if (plcf->autogenerated.abort_websockets_on_process_shutdown_explicitly_set) {
363
+ find_or_create_manifest_app_and_loc_options_containers(ctx,
364
+ plcf, cscf, clcf, &app_options_container, &loc_options_container);
365
+ option_container = find_or_create_manifest_option_container(ctx,
366
+ app_options_container,
367
+ "passenger_abort_websockets_on_process_shutdown",
368
+ sizeof("passenger_abort_websockets_on_process_shutdown") - 1);
369
+ hierarchy_member = add_manifest_option_container_hierarchy_member(option_container,
370
+ &plcf->autogenerated.abort_websockets_on_process_shutdown_source_file,
371
+ plcf->autogenerated.abort_websockets_on_process_shutdown_source_line);
372
+ psg_json_value_set_bool(hierarchy_member, "value",
373
+ plcf->autogenerated.abort_websockets_on_process_shutdown);
374
+ }
375
+ if (plcf->autogenerated.force_max_concurrent_requests_per_process_explicitly_set) {
376
+ find_or_create_manifest_app_and_loc_options_containers(ctx,
377
+ plcf, cscf, clcf, &app_options_container, &loc_options_container);
378
+ option_container = find_or_create_manifest_option_container(ctx,
379
+ app_options_container,
380
+ "passenger_force_max_concurrent_requests_per_process",
381
+ sizeof("passenger_force_max_concurrent_requests_per_process") - 1);
382
+ hierarchy_member = add_manifest_option_container_hierarchy_member(option_container,
383
+ &plcf->autogenerated.force_max_concurrent_requests_per_process_source_file,
384
+ plcf->autogenerated.force_max_concurrent_requests_per_process_source_line);
385
+ psg_json_value_set_int(hierarchy_member, "value",
386
+ plcf->autogenerated.force_max_concurrent_requests_per_process);
387
+ }
388
+ if (plcf->autogenerated.enabled_explicitly_set) {
389
+ find_or_create_manifest_app_and_loc_options_containers(ctx,
390
+ plcf, cscf, clcf, &app_options_container, &loc_options_container);
391
+ option_container = find_or_create_manifest_option_container(ctx,
392
+ loc_options_container,
393
+ "passenger_enabled",
394
+ sizeof("passenger_enabled") - 1);
395
+ hierarchy_member = add_manifest_option_container_hierarchy_member(option_container,
396
+ &plcf->autogenerated.enabled_source_file,
397
+ plcf->autogenerated.enabled_source_line);
398
+ psg_json_value_set_bool(hierarchy_member, "value",
399
+ plcf->autogenerated.enabled);
400
+ }
401
+ if (plcf->autogenerated.max_requests_explicitly_set) {
402
+ find_or_create_manifest_app_and_loc_options_containers(ctx,
403
+ plcf, cscf, clcf, &app_options_container, &loc_options_container);
404
+ option_container = find_or_create_manifest_option_container(ctx,
405
+ loc_options_container,
406
+ "passenger_max_requests",
407
+ sizeof("passenger_max_requests") - 1);
408
+ hierarchy_member = add_manifest_option_container_hierarchy_member(option_container,
409
+ &plcf->autogenerated.max_requests_source_file,
410
+ plcf->autogenerated.max_requests_source_line);
411
+ psg_json_value_set_uint(hierarchy_member, "value",
412
+ plcf->autogenerated.max_requests);
413
+ }
414
+ if (plcf->autogenerated.base_uris_explicitly_set) {
415
+ find_or_create_manifest_app_and_loc_options_containers(ctx,
416
+ plcf, cscf, clcf, &app_options_container, &loc_options_container);
417
+ option_container = find_or_create_manifest_option_container(ctx,
418
+ loc_options_container,
419
+ "passenger_base_uri",
420
+ sizeof("passenger_base_uri") - 1);
421
+ hierarchy_member = add_manifest_option_container_hierarchy_member(option_container,
422
+ &plcf->autogenerated.base_uris_source_file,
423
+ plcf->autogenerated.base_uris_source_line);
424
+ psg_json_value_set_str_array(hierarchy_member, "value",
425
+ plcf->autogenerated.base_uris);
426
+ }
427
+ if (plcf->autogenerated.document_root_explicitly_set) {
428
+ find_or_create_manifest_app_and_loc_options_containers(ctx,
429
+ plcf, cscf, clcf, &app_options_container, &loc_options_container);
430
+ option_container = find_or_create_manifest_option_container(ctx,
431
+ loc_options_container,
432
+ "passenger_document_root",
433
+ sizeof("passenger_document_root") - 1);
434
+ hierarchy_member = add_manifest_option_container_hierarchy_member(option_container,
435
+ &plcf->autogenerated.document_root_source_file,
436
+ plcf->autogenerated.document_root_source_line);
437
+ psg_json_value_set_str(hierarchy_member, "value",
438
+ (const char *) plcf->autogenerated.document_root.data,
439
+ plcf->autogenerated.document_root.len);
440
+ }
333
441
  if (plcf->autogenerated.headers_source_explicitly_set) {
334
442
  find_or_create_manifest_app_and_loc_options_containers(ctx,
335
443
  plcf, cscf, clcf, &app_options_container, &loc_options_container);
@@ -434,46 +542,6 @@ generate_config_manifest_for_autogenerated_loc_conf(manifest_gen_ctx_t *ctx, pas
434
542
  psg_json_value_set_bool(hierarchy_member, "value",
435
543
  plcf->upstream_config.intercept_errors);
436
544
  }
437
- if (plcf->autogenerated.spawn_method_explicitly_set) {
438
- find_or_create_manifest_app_and_loc_options_containers(ctx,
439
- plcf, cscf, clcf, &app_options_container, &loc_options_container);
440
- option_container = find_or_create_manifest_option_container(ctx,
441
- app_options_container,
442
- "passenger_spawn_method",
443
- sizeof("passenger_spawn_method") - 1);
444
- hierarchy_member = add_manifest_option_container_hierarchy_member(option_container,
445
- &plcf->autogenerated.spawn_method_source_file,
446
- plcf->autogenerated.spawn_method_source_line);
447
- psg_json_value_set_str(hierarchy_member, "value",
448
- (const char *) plcf->autogenerated.spawn_method.data,
449
- plcf->autogenerated.spawn_method.len);
450
- }
451
- if (plcf->autogenerated.load_shell_envvars_explicitly_set) {
452
- find_or_create_manifest_app_and_loc_options_containers(ctx,
453
- plcf, cscf, clcf, &app_options_container, &loc_options_container);
454
- option_container = find_or_create_manifest_option_container(ctx,
455
- app_options_container,
456
- "passenger_load_shell_envvars",
457
- sizeof("passenger_load_shell_envvars") - 1);
458
- hierarchy_member = add_manifest_option_container_hierarchy_member(option_container,
459
- &plcf->autogenerated.load_shell_envvars_source_file,
460
- plcf->autogenerated.load_shell_envvars_source_line);
461
- psg_json_value_set_bool(hierarchy_member, "value",
462
- plcf->autogenerated.load_shell_envvars);
463
- }
464
- if (plcf->autogenerated.max_request_queue_size_explicitly_set) {
465
- find_or_create_manifest_app_and_loc_options_containers(ctx,
466
- plcf, cscf, clcf, &app_options_container, &loc_options_container);
467
- option_container = find_or_create_manifest_option_container(ctx,
468
- app_options_container,
469
- "passenger_max_request_queue_size",
470
- sizeof("passenger_max_request_queue_size") - 1);
471
- hierarchy_member = add_manifest_option_container_hierarchy_member(option_container,
472
- &plcf->autogenerated.max_request_queue_size_source_file,
473
- plcf->autogenerated.max_request_queue_size_source_line);
474
- psg_json_value_set_uint(hierarchy_member, "value",
475
- plcf->autogenerated.max_request_queue_size);
476
- }
477
545
  if (plcf->autogenerated.request_queue_overflow_status_code_explicitly_set) {
478
546
  find_or_create_manifest_app_and_loc_options_containers(ctx,
479
547
  plcf, cscf, clcf, &app_options_container, &loc_options_container);
@@ -487,48 +555,6 @@ generate_config_manifest_for_autogenerated_loc_conf(manifest_gen_ctx_t *ctx, pas
487
555
  psg_json_value_set_int(hierarchy_member, "value",
488
556
  plcf->autogenerated.request_queue_overflow_status_code);
489
557
  }
490
- if (plcf->autogenerated.restart_dir_explicitly_set) {
491
- find_or_create_manifest_app_and_loc_options_containers(ctx,
492
- plcf, cscf, clcf, &app_options_container, &loc_options_container);
493
- option_container = find_or_create_manifest_option_container(ctx,
494
- app_options_container,
495
- "passenger_restart_dir",
496
- sizeof("passenger_restart_dir") - 1);
497
- hierarchy_member = add_manifest_option_container_hierarchy_member(option_container,
498
- &plcf->autogenerated.restart_dir_source_file,
499
- plcf->autogenerated.restart_dir_source_line);
500
- psg_json_value_set_str(hierarchy_member, "value",
501
- (const char *) plcf->autogenerated.restart_dir.data,
502
- plcf->autogenerated.restart_dir.len);
503
- }
504
- if (plcf->autogenerated.app_type_explicitly_set) {
505
- find_or_create_manifest_app_and_loc_options_containers(ctx,
506
- plcf, cscf, clcf, &app_options_container, &loc_options_container);
507
- option_container = find_or_create_manifest_option_container(ctx,
508
- app_options_container,
509
- "passenger_app_type",
510
- sizeof("passenger_app_type") - 1);
511
- hierarchy_member = add_manifest_option_container_hierarchy_member(option_container,
512
- &plcf->autogenerated.app_type_source_file,
513
- plcf->autogenerated.app_type_source_line);
514
- psg_json_value_set_str(hierarchy_member, "value",
515
- (const char *) plcf->autogenerated.app_type.data,
516
- plcf->autogenerated.app_type.len);
517
- }
518
- if (plcf->autogenerated.startup_file_explicitly_set) {
519
- find_or_create_manifest_app_and_loc_options_containers(ctx,
520
- plcf, cscf, clcf, &app_options_container, &loc_options_container);
521
- option_container = find_or_create_manifest_option_container(ctx,
522
- app_options_container,
523
- "passenger_startup_file",
524
- sizeof("passenger_startup_file") - 1);
525
- hierarchy_member = add_manifest_option_container_hierarchy_member(option_container,
526
- &plcf->autogenerated.startup_file_source_file,
527
- plcf->autogenerated.startup_file_source_line);
528
- psg_json_value_set_str(hierarchy_member, "value",
529
- (const char *) plcf->autogenerated.startup_file.data,
530
- plcf->autogenerated.startup_file.len);
531
- }
532
558
  if (plcf->autogenerated.sticky_sessions_explicitly_set) {
533
559
  find_or_create_manifest_app_and_loc_options_containers(ctx,
534
560
  plcf, cscf, clcf, &app_options_container, &loc_options_container);
@@ -570,31 +596,19 @@ generate_config_manifest_for_autogenerated_loc_conf(manifest_gen_ctx_t *ctx, pas
570
596
  (const char *) plcf->autogenerated.vary_turbocache_by_cookie.data,
571
597
  plcf->autogenerated.vary_turbocache_by_cookie.len);
572
598
  }
573
- if (plcf->autogenerated.abort_websockets_on_process_shutdown_explicitly_set) {
599
+ if (plcf->autogenerated.app_log_file_explicitly_set) {
574
600
  find_or_create_manifest_app_and_loc_options_containers(ctx,
575
601
  plcf, cscf, clcf, &app_options_container, &loc_options_container);
576
602
  option_container = find_or_create_manifest_option_container(ctx,
577
603
  app_options_container,
578
- "passenger_abort_websockets_on_process_shutdown",
579
- sizeof("passenger_abort_websockets_on_process_shutdown") - 1);
604
+ "passenger_app_log_file",
605
+ sizeof("passenger_app_log_file") - 1);
580
606
  hierarchy_member = add_manifest_option_container_hierarchy_member(option_container,
581
- &plcf->autogenerated.abort_websockets_on_process_shutdown_source_file,
582
- plcf->autogenerated.abort_websockets_on_process_shutdown_source_line);
583
- psg_json_value_set_bool(hierarchy_member, "value",
584
- plcf->autogenerated.abort_websockets_on_process_shutdown);
585
- }
586
- if (plcf->autogenerated.force_max_concurrent_requests_per_process_explicitly_set) {
587
- find_or_create_manifest_app_and_loc_options_containers(ctx,
588
- plcf, cscf, clcf, &app_options_container, &loc_options_container);
589
- option_container = find_or_create_manifest_option_container(ctx,
590
- app_options_container,
591
- "passenger_force_max_concurrent_requests_per_process",
592
- sizeof("passenger_force_max_concurrent_requests_per_process") - 1);
593
- hierarchy_member = add_manifest_option_container_hierarchy_member(option_container,
594
- &plcf->autogenerated.force_max_concurrent_requests_per_process_source_file,
595
- plcf->autogenerated.force_max_concurrent_requests_per_process_source_line);
596
- psg_json_value_set_int(hierarchy_member, "value",
597
- plcf->autogenerated.force_max_concurrent_requests_per_process);
607
+ &plcf->autogenerated.app_log_file_source_file,
608
+ plcf->autogenerated.app_log_file_source_line);
609
+ psg_json_value_set_str(hierarchy_member, "value",
610
+ (const char *) plcf->autogenerated.app_log_file.data,
611
+ plcf->autogenerated.app_log_file.len);
598
612
  }
599
613
 
600
614
  /*
@@ -46,8 +46,8 @@ passenger_merge_autogenerated_loc_conf(passenger_autogenerated_loc_conf_t *conf,
46
46
  ngx_conf_merge_uint_value(conf->app_file_descriptor_ulimit,
47
47
  prev->app_file_descriptor_ulimit,
48
48
  NGX_CONF_UNSET_UINT);
49
- ngx_conf_merge_value(conf->enabled,
50
- prev->enabled,
49
+ ngx_conf_merge_uint_value(conf->max_instances_per_app,
50
+ prev->max_instances_per_app,
51
51
  0);
52
52
  ngx_conf_merge_str_value(conf->ruby,
53
53
  prev->ruby,
@@ -70,23 +70,9 @@ passenger_merge_autogenerated_loc_conf(passenger_autogenerated_loc_conf_t *conf,
70
70
  ngx_conf_merge_uint_value(conf->min_instances,
71
71
  prev->min_instances,
72
72
  1);
73
- ngx_conf_merge_uint_value(conf->max_instances_per_app,
74
- prev->max_instances_per_app,
75
- 0);
76
- ngx_conf_merge_uint_value(conf->max_requests,
77
- prev->max_requests,
78
- 0);
79
- ngx_conf_merge_value(conf->start_timeout,
73
+ ngx_conf_merge_uint_value(conf->start_timeout,
80
74
  prev->start_timeout,
81
75
  90);
82
- if (merge_string_array(cf, &prev->base_uris, &conf->base_uris) != NGX_OK) {
83
- ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
84
- "cannot merge \"passenger_base_uri\" configurations");
85
- return 0;
86
- }
87
- ngx_conf_merge_str_value(conf->document_root,
88
- prev->document_root,
89
- NULL);
90
76
  ngx_conf_merge_str_value(conf->user,
91
77
  prev->user,
92
78
  NULL);
@@ -118,12 +104,6 @@ passenger_merge_autogenerated_loc_conf(passenger_autogenerated_loc_conf_t *conf,
118
104
  "cannot merge \"passenger_env_var\" configurations");
119
105
  return 0;
120
106
  }
121
- ngx_conf_merge_uint_value(conf->headers_hash_max_size,
122
- prev->headers_hash_max_size,
123
- 512);
124
- ngx_conf_merge_uint_value(conf->headers_hash_bucket_size,
125
- prev->headers_hash_bucket_size,
126
- 64);
127
107
  ngx_conf_merge_str_value(conf->spawn_method,
128
108
  prev->spawn_method,
129
109
  NULL);
@@ -133,18 +113,44 @@ passenger_merge_autogenerated_loc_conf(passenger_autogenerated_loc_conf_t *conf,
133
113
  ngx_conf_merge_uint_value(conf->max_request_queue_size,
134
114
  prev->max_request_queue_size,
135
115
  100);
136
- ngx_conf_merge_value(conf->request_queue_overflow_status_code,
137
- prev->request_queue_overflow_status_code,
138
- 503);
139
- ngx_conf_merge_str_value(conf->restart_dir,
140
- prev->restart_dir,
141
- "tmp");
142
116
  ngx_conf_merge_str_value(conf->app_type,
143
117
  prev->app_type,
144
118
  NULL);
145
119
  ngx_conf_merge_str_value(conf->startup_file,
146
120
  prev->startup_file,
147
121
  NULL);
122
+ ngx_conf_merge_str_value(conf->restart_dir,
123
+ prev->restart_dir,
124
+ "tmp");
125
+ ngx_conf_merge_value(conf->abort_websockets_on_process_shutdown,
126
+ prev->abort_websockets_on_process_shutdown,
127
+ 1);
128
+ ngx_conf_merge_value(conf->force_max_concurrent_requests_per_process,
129
+ prev->force_max_concurrent_requests_per_process,
130
+ -1);
131
+ ngx_conf_merge_value(conf->enabled,
132
+ prev->enabled,
133
+ 0);
134
+ ngx_conf_merge_uint_value(conf->max_requests,
135
+ prev->max_requests,
136
+ 0);
137
+ if (merge_string_array(cf, &prev->base_uris, &conf->base_uris) != NGX_OK) {
138
+ ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
139
+ "cannot merge \"passenger_base_uri\" configurations");
140
+ return 0;
141
+ }
142
+ ngx_conf_merge_str_value(conf->document_root,
143
+ prev->document_root,
144
+ NULL);
145
+ ngx_conf_merge_uint_value(conf->headers_hash_max_size,
146
+ prev->headers_hash_max_size,
147
+ 512);
148
+ ngx_conf_merge_uint_value(conf->headers_hash_bucket_size,
149
+ prev->headers_hash_bucket_size,
150
+ 64);
151
+ ngx_conf_merge_value(conf->request_queue_overflow_status_code,
152
+ prev->request_queue_overflow_status_code,
153
+ 503);
148
154
  ngx_conf_merge_value(conf->sticky_sessions,
149
155
  prev->sticky_sessions,
150
156
  0);
@@ -154,12 +160,9 @@ passenger_merge_autogenerated_loc_conf(passenger_autogenerated_loc_conf_t *conf,
154
160
  ngx_conf_merge_str_value(conf->vary_turbocache_by_cookie,
155
161
  prev->vary_turbocache_by_cookie,
156
162
  NULL);
157
- ngx_conf_merge_value(conf->abort_websockets_on_process_shutdown,
158
- prev->abort_websockets_on_process_shutdown,
159
- 1);
160
- ngx_conf_merge_value(conf->force_max_concurrent_requests_per_process,
161
- prev->force_max_concurrent_requests_per_process,
162
- -1);
163
+ ngx_conf_merge_str_value(conf->app_log_file,
164
+ prev->app_log_file,
165
+ NULL);
163
166
 
164
167
  return 1;
165
168
  }