passenger 5.1.10 → 5.1.11

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 (200) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +18 -0
  3. data/Rakefile +20 -17
  4. data/bin/passenger-install-apache2-module +14 -11
  5. data/build/agent.rb +45 -18
  6. data/build/apache2.rb +32 -16
  7. data/build/basics.rb +29 -40
  8. data/build/common_library.rb +70 -54
  9. data/build/cxx_tests.rb +34 -43
  10. data/build/integration_tests.rb +10 -10
  11. data/build/misc.rb +6 -6
  12. data/build/node_tests.rb +1 -2
  13. data/build/oxt_tests.rb +7 -5
  14. data/build/packaging.rb +11 -441
  15. data/build/ruby_extension.rb +1 -1
  16. data/build/ruby_tests.rb +1 -2
  17. data/build/support/cplusplus.rb +6 -5
  18. data/build/support/cxx_dependency_map.rb +357 -833
  19. data/build/support/general.rb +23 -1
  20. data/build/test_basics.rb +3 -28
  21. data/dev/ci/tests/rpm/Jenkinsfile +68 -0
  22. data/dev/ci/tests/rpm/run +63 -0
  23. data/dev/ci/tests/source-packaging/run +1 -1
  24. data/dev/ci/tests/source-packaging/setup +1 -1
  25. data/doc/{Packaging.txt.md → Packaging.md} +0 -0
  26. data/resources/templates/apache2/deployment_example.txt.erb +2 -2
  27. data/resources/templates/apache2/multiple_apache_installations_detected.txt.erb +2 -2
  28. data/resources/templates/nginx/deployment_example.txt.erb +1 -1
  29. data/resources/templates/standalone/mass_deployment_default_server.erb +2 -2
  30. data/resources/templates/standalone/server.erb +2 -2
  31. data/src/agent/AgentMain.cpp +0 -4
  32. data/src/agent/Core/CoreMain.cpp +88 -5
  33. data/src/agent/Core/SpawningKit/Spawner.h +2 -1
  34. data/src/agent/Shared/Fundamentals/AbortHandler.cpp +1109 -0
  35. data/src/agent/Shared/Fundamentals/AbortHandler.h +63 -0
  36. data/src/agent/Shared/Fundamentals/Implementation.cpp +7 -0
  37. data/src/agent/Shared/Fundamentals/Initialization.cpp +614 -0
  38. data/src/agent/Shared/{Base.h → Fundamentals/Initialization.h} +23 -14
  39. data/src/agent/Shared/Fundamentals/Utils.cpp +127 -0
  40. data/src/agent/Shared/Fundamentals/Utils.h +46 -0
  41. data/src/agent/TempDirToucher/TempDirToucherMain.cpp +1 -1
  42. data/src/agent/Watchdog/CoreWatcher.cpp +3 -1
  43. data/src/agent/Watchdog/InstanceDirToucher.cpp +90 -53
  44. data/src/agent/Watchdog/WatchdogMain.cpp +13 -29
  45. data/src/apache2_module/Hooks.cpp +4 -1
  46. data/src/cxx_supportlib/ConfigKit/Store.h +32 -5
  47. data/src/cxx_supportlib/Constants.h +1 -2
  48. data/src/cxx_supportlib/Crypto.cpp +2 -1
  49. data/src/cxx_supportlib/Hooks.h +16 -37
  50. data/src/cxx_supportlib/LoggingKit/Context.h +22 -0
  51. data/src/cxx_supportlib/LoggingKit/Forward.h +1 -0
  52. data/src/cxx_supportlib/LoggingKit/Implementation.cpp +106 -22
  53. data/src/cxx_supportlib/ProcessManagement/Ruby.cpp +106 -0
  54. data/src/{agent/UstRouter/FileSink.h → cxx_supportlib/ProcessManagement/Ruby.h} +23 -47
  55. data/src/cxx_supportlib/ProcessManagement/Spawn.cpp +199 -0
  56. data/src/cxx_supportlib/ProcessManagement/Spawn.h +150 -0
  57. data/src/cxx_supportlib/ProcessManagement/Utils.cpp +459 -0
  58. data/src/cxx_supportlib/ProcessManagement/Utils.h +107 -0
  59. data/src/cxx_supportlib/Utils.cpp +41 -561
  60. data/src/cxx_supportlib/Utils.h +0 -68
  61. data/src/cxx_supportlib/Utils/AsyncSignalSafeUtils.h +187 -0
  62. data/src/cxx_supportlib/Utils/ProcessMetricsCollector.h +14 -2
  63. data/src/cxx_supportlib/WatchdogLauncher.h +2 -12
  64. data/src/cxx_supportlib/oxt/dynamic_thread_group.hpp +2 -2
  65. data/src/cxx_supportlib/vendor-modified/jsoncpp/json-forwards.h +4 -0
  66. data/src/cxx_supportlib/vendor-modified/jsoncpp/json.h +16 -1
  67. data/src/cxx_supportlib/vendor-modified/jsoncpp/jsoncpp.cpp +12 -9
  68. data/src/cxx_supportlib/vendor-modified/libev/ev++.h +4 -4
  69. data/src/cxx_supportlib/vendor-modified/libev/ev.h +3 -3
  70. data/src/nginx_module/CacheLocationConfig.c +0 -75
  71. data/src/nginx_module/CacheLocationConfig.c.cxxcodebuilder +1 -0
  72. data/src/nginx_module/Configuration.c +0 -1
  73. data/src/nginx_module/Configuration.h +0 -1
  74. data/src/nginx_module/ConfigurationCommands.c +1 -1
  75. data/src/nginx_module/ContentHandler.c +0 -1
  76. data/src/nginx_module/ContentHandler.h +0 -1
  77. data/src/nginx_module/CreateLocationConfig.c +0 -5
  78. data/src/nginx_module/CreateLocationConfig.c.cxxcodebuilder +1 -0
  79. data/src/nginx_module/LocationConfig.h +0 -4
  80. data/src/nginx_module/LocationConfig.h.cxxcodebuilder +2 -1
  81. data/src/nginx_module/MergeLocationConfig.c +0 -12
  82. data/src/nginx_module/MergeLocationConfig.c.cxxcodebuilder +1 -0
  83. data/src/nginx_module/ngx_http_passenger_module.h +0 -1
  84. data/src/ruby_supportlib/phusion_passenger.rb +1 -1
  85. data/src/ruby_supportlib/phusion_passenger/common_library.rb +20 -11
  86. data/src/ruby_supportlib/phusion_passenger/config/api_call_command.rb +1 -1
  87. data/src/ruby_supportlib/phusion_passenger/config/reopen_logs_command.rb +0 -1
  88. data/src/ruby_supportlib/phusion_passenger/config/validate_install_command.rb +10 -3
  89. data/src/ruby_supportlib/phusion_passenger/console_text_template.rb +3 -1
  90. data/src/ruby_supportlib/phusion_passenger/constants.rb +0 -1
  91. data/src/ruby_supportlib/phusion_passenger/debug_logging.rb +1 -1
  92. data/src/ruby_supportlib/phusion_passenger/loader_shared_helpers.rb +32 -6
  93. data/src/ruby_supportlib/phusion_passenger/nginx/config_options.rb +0 -1
  94. data/src/ruby_supportlib/phusion_passenger/packaging.rb +2 -4
  95. data/src/ruby_supportlib/phusion_passenger/platform_info/apache.rb +101 -20
  96. data/src/ruby_supportlib/phusion_passenger/platform_info/apache_detector.rb +21 -9
  97. data/src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb +34 -31
  98. data/src/ruby_supportlib/phusion_passenger/platform_info/cxx_portability.rb +3 -1
  99. data/src/ruby_supportlib/phusion_passenger/platform_info/depcheck_specs/apache2.rb +2 -14
  100. data/src/ruby_supportlib/phusion_passenger/platform_info/operating_system.rb +40 -3
  101. data/src/ruby_supportlib/phusion_passenger/standalone/app_finder.rb +15 -14
  102. data/src/ruby_supportlib/phusion_passenger/standalone/config_options_list.rb +1 -1
  103. data/src/ruby_supportlib/phusion_passenger/standalone/config_utils.rb +1 -1
  104. data/src/ruby_supportlib/phusion_passenger/standalone/start_command.rb +8 -3
  105. data/src/ruby_supportlib/phusion_passenger/standalone/start_command/nginx_engine.rb +19 -18
  106. data/src/ruby_supportlib/phusion_passenger/standalone/stop_command.rb +6 -1
  107. data/src/ruby_supportlib/phusion_passenger/vendor/daemon_controller.rb +17 -1
  108. metadata +19 -97
  109. data/build/documentation.rb +0 -70
  110. data/doc/CloudLicensingConfiguration.html +0 -172
  111. data/doc/CloudLicensingConfiguration.txt.md +0 -3
  112. data/doc/Packaging.html +0 -488
  113. data/doc/Security of user switching support.idmap.txt +0 -34
  114. data/doc/Security of user switching support.txt +0 -197
  115. data/doc/ServerOptimizationGuide.html +0 -172
  116. data/doc/ServerOptimizationGuide.txt.md +0 -3
  117. data/doc/images/by_sa.png +0 -0
  118. data/doc/images/cloud_licensing_batch_job.png +0 -0
  119. data/doc/images/code_walkthrough.jpg +0 -0
  120. data/doc/images/direct_spawning.png +0 -0
  121. data/doc/images/direct_spawning.svg +0 -251
  122. data/doc/images/glyphicons-halflings-white.png +0 -0
  123. data/doc/images/glyphicons-halflings.png +0 -0
  124. data/doc/images/icons/README +0 -5
  125. data/doc/images/icons/callouts/1.png +0 -0
  126. data/doc/images/icons/callouts/10.png +0 -0
  127. data/doc/images/icons/callouts/11.png +0 -0
  128. data/doc/images/icons/callouts/12.png +0 -0
  129. data/doc/images/icons/callouts/13.png +0 -0
  130. data/doc/images/icons/callouts/14.png +0 -0
  131. data/doc/images/icons/callouts/15.png +0 -0
  132. data/doc/images/icons/callouts/2.png +0 -0
  133. data/doc/images/icons/callouts/3.png +0 -0
  134. data/doc/images/icons/callouts/4.png +0 -0
  135. data/doc/images/icons/callouts/5.png +0 -0
  136. data/doc/images/icons/callouts/6.png +0 -0
  137. data/doc/images/icons/callouts/7.png +0 -0
  138. data/doc/images/icons/callouts/8.png +0 -0
  139. data/doc/images/icons/callouts/9.png +0 -0
  140. data/doc/images/icons/caution.png +0 -0
  141. data/doc/images/icons/example.png +0 -0
  142. data/doc/images/icons/home.png +0 -0
  143. data/doc/images/icons/important.png +0 -0
  144. data/doc/images/icons/next.png +0 -0
  145. data/doc/images/icons/note.png +0 -0
  146. data/doc/images/icons/prev.png +0 -0
  147. data/doc/images/icons/tip.png +0 -0
  148. data/doc/images/icons/up.png +0 -0
  149. data/doc/images/icons/warning.png +0 -0
  150. data/doc/images/many_web_framework_protocols.png +0 -0
  151. data/doc/images/passenger_architecture.png +0 -0
  152. data/doc/images/passenger_architecture.svg +0 -385
  153. data/doc/images/passenger_architecture_overview.png +0 -0
  154. data/doc/images/passenger_core_architecture.png +0 -0
  155. data/doc/images/passenger_nodejs_architecture.svg +0 -558
  156. data/doc/images/phusion_banner.png +0 -0
  157. data/doc/images/rack.png +0 -0
  158. data/doc/images/smart_spawning.png +0 -0
  159. data/doc/images/smart_spawning.svg +0 -323
  160. data/doc/images/spawn_server_architecture.png +0 -0
  161. data/doc/images/spawn_server_architecture.svg +0 -655
  162. data/doc/images/spawning_preparation_work.png +0 -0
  163. data/doc/images/startup_sequence.png +0 -0
  164. data/doc/images/typical_isolated_web_application.png +0 -0
  165. data/doc/images/typical_isolated_web_application.svg +0 -213
  166. data/doc/users_guide_snippets/alternative_for_flying_passenger.txt +0 -1
  167. data/doc/users_guide_snippets/analysis_and_system_maintenance.txt +0 -61
  168. data/doc/users_guide_snippets/appendix_a_about.txt +0 -13
  169. data/doc/users_guide_snippets/appendix_b_terminology.txt +0 -71
  170. data/doc/users_guide_snippets/appendix_c_spawning_methods.txt +0 -36
  171. data/doc/users_guide_snippets/deployment_basics.txt +0 -37
  172. data/doc/users_guide_snippets/enterprise_only.txt +0 -1
  173. data/doc/users_guide_snippets/environment_variables.txt +0 -44
  174. data/doc/users_guide_snippets/global_queueing_explained.txt +0 -74
  175. data/doc/users_guide_snippets/installation.txt +0 -228
  176. data/doc/users_guide_snippets/installation/run_installer.txt +0 -58
  177. data/doc/users_guide_snippets/installation/verify_running_epilogue.txt +0 -6
  178. data/doc/users_guide_snippets/passenger_spawn_method.txt +0 -37
  179. data/doc/users_guide_snippets/rackup_specifications.txt +0 -1
  180. data/doc/users_guide_snippets/rvm_helper_tool.txt +0 -44
  181. data/doc/users_guide_snippets/since_version.txt +0 -1
  182. data/doc/users_guide_snippets/support_information.txt +0 -8
  183. data/doc/users_guide_snippets/tips.txt +0 -302
  184. data/doc/users_guide_snippets/troubleshooting/default.txt +0 -48
  185. data/doc/users_guide_snippets/troubleshooting/rails.txt +0 -59
  186. data/doc/users_guide_snippets/under_the_hood/page_caching_support.txt +0 -24
  187. data/doc/users_guide_snippets/under_the_hood/relationship_with_ruby.txt +0 -10
  188. data/doc/users_guide_snippets/where_to_get_support.txt +0 -9
  189. data/src/agent/Shared/Base.cpp +0 -1678
  190. data/src/agent/UstRouter/ApiServer.h +0 -292
  191. data/src/agent/UstRouter/Client.h +0 -112
  192. data/src/agent/UstRouter/Controller.h +0 -1309
  193. data/src/agent/UstRouter/LogSink.h +0 -145
  194. data/src/agent/UstRouter/OptionParser.h +0 -180
  195. data/src/agent/UstRouter/RemoteSender.h +0 -853
  196. data/src/agent/UstRouter/RemoteSink.h +0 -145
  197. data/src/agent/UstRouter/Transaction.h +0 -278
  198. data/src/agent/UstRouter/UstRouterMain.cpp +0 -681
  199. data/src/agent/Watchdog/UstRouterWatcher.cpp +0 -80
  200. data/src/ruby_supportlib/phusion_passenger/platform_info/macos.rb +0 -45
@@ -108,6 +108,7 @@ license you like.
108
108
  * It is an internal header that must not be exposed.
109
109
  */
110
110
 
111
+ namespace Passenger {
111
112
  namespace Json {
112
113
  static char getDecimalPoint() {
113
114
  #ifdef JSONCPP_NO_LOCALE_SUPPORT
@@ -199,7 +200,7 @@ static inline void fixNumericLocaleInput(char* begin, char* end) {
199
200
  }
200
201
 
201
202
  } // namespace Json {
202
-
203
+ } // namespace Passenger
203
204
  #endif // LIB_JSONCPP_JSON_TOOL_H_INCLUDED
204
205
 
205
206
  // //////////////////////////////////////////////////////////////////////
@@ -268,7 +269,7 @@ static inline void fixNumericLocaleInput(char* begin, char* end) {
268
269
  #endif
269
270
 
270
271
  static size_t const stackLimit_g = JSONCPP_DEPRECATED_STACK_LIMIT; // see readValue()
271
-
272
+ namespace Passenger {
272
273
  namespace Json {
273
274
 
274
275
  #if __cplusplus >= 201103L || (defined(_CPPLIB_VER) && _CPPLIB_VER >= 520)
@@ -2251,7 +2252,7 @@ JSONCPP_ISTREAM& operator>>(JSONCPP_ISTREAM& sin, Value& root) {
2251
2252
  }
2252
2253
 
2253
2254
  } // namespace Json
2254
-
2255
+ } // namespace Passenger
2255
2256
  // //////////////////////////////////////////////////////////////////////
2256
2257
  // End of content of file: src/lib_json/json_reader.cpp
2257
2258
  // //////////////////////////////////////////////////////////////////////
@@ -2272,6 +2273,7 @@ JSONCPP_ISTREAM& operator>>(JSONCPP_ISTREAM& sin, Value& root) {
2272
2273
 
2273
2274
  // included by json_value.cpp
2274
2275
 
2276
+ namespace Passenger {
2275
2277
  namespace Json {
2276
2278
 
2277
2279
  // //////////////////////////////////////////////////////////////////
@@ -2432,7 +2434,7 @@ ValueIterator& ValueIterator::operator=(const SelfType& other) {
2432
2434
  }
2433
2435
 
2434
2436
  } // namespace Json
2435
-
2437
+ } // namespace Passenger
2436
2438
  // //////////////////////////////////////////////////////////////////////
2437
2439
  // End of content of file: src/lib_json/json_valueiterator.inl
2438
2440
  // //////////////////////////////////////////////////////////////////////
@@ -2469,6 +2471,7 @@ ValueIterator& ValueIterator::operator=(const SelfType& other) {
2469
2471
 
2470
2472
  #define JSON_ASSERT_UNREACHABLE assert(false)
2471
2473
 
2474
+ namespace Passenger {
2472
2475
  namespace Json {
2473
2476
 
2474
2477
  // This is a walkaround to avoid the static initialization of Value::null.
@@ -2623,6 +2626,7 @@ static inline void releaseStringValue(char* value, unsigned) {
2623
2626
  #endif // JSONCPP_USING_SECURE_MEMORY
2624
2627
 
2625
2628
  } // namespace Json
2629
+ } // namespace Passenger
2626
2630
 
2627
2631
  // //////////////////////////////////////////////////////////////////
2628
2632
  // //////////////////////////////////////////////////////////////////
@@ -2636,6 +2640,7 @@ static inline void releaseStringValue(char* value, unsigned) {
2636
2640
  #include "json_valueiterator.inl"
2637
2641
  #endif // if !defined(JSON_IS_AMALGAMATION)
2638
2642
 
2643
+ namespace Passenger {
2639
2644
  namespace Json {
2640
2645
 
2641
2646
  Exception::Exception(JSONCPP_STRING const& msg)
@@ -4076,6 +4081,7 @@ Value& Path::make(Value& root) const {
4076
4081
  }
4077
4082
 
4078
4083
  } // namespace Json
4084
+ } // namespace Passenger
4079
4085
 
4080
4086
  // //////////////////////////////////////////////////////////////////////
4081
4087
  // End of content of file: src/lib_json/json_value.cpp
@@ -4165,6 +4171,7 @@ Value& Path::make(Value& root) const {
4165
4171
  #pragma warning(disable : 4996)
4166
4172
  #endif
4167
4173
 
4174
+ namespace Passenger {
4168
4175
  namespace Json {
4169
4176
 
4170
4177
  #if __cplusplus >= 201103L || (defined(_CPPLIB_VER) && _CPPLIB_VER >= 520)
@@ -5313,12 +5320,8 @@ JSONCPP_OSTREAM& operator<<(JSONCPP_OSTREAM& sout, Value const& root) {
5313
5320
  }
5314
5321
 
5315
5322
  } // namespace Json
5323
+ } // namespace Passenger
5316
5324
 
5317
5325
  // //////////////////////////////////////////////////////////////////////
5318
5326
  // End of content of file: src/lib_json/json_writer.cpp
5319
5327
  // //////////////////////////////////////////////////////////////////////
5320
-
5321
-
5322
-
5323
-
5324
-
@@ -352,7 +352,7 @@ namespace ev {
352
352
  struct dynamic_loop : loop_ref
353
353
  {
354
354
 
355
- dynamic_loop (unsigned int flags = AUTO) throw (bad_loop)
355
+ dynamic_loop (unsigned int flags = AUTO)
356
356
  : loop_ref (ev_loop_new (flags))
357
357
  {
358
358
  if (!EV_AX)
@@ -376,7 +376,7 @@ namespace ev {
376
376
 
377
377
  struct default_loop : loop_ref
378
378
  {
379
- default_loop (unsigned int flags = AUTO) throw (bad_loop)
379
+ default_loop (unsigned int flags = AUTO)
380
380
  #if EV_MULTIPLICITY
381
381
  : loop_ref (ev_default_loop (flags))
382
382
  #endif
@@ -552,12 +552,12 @@ namespace ev {
552
552
  return ev_embeddable_backends ();
553
553
  }
554
554
 
555
- inline void set_allocator (void *(*cb)(void *ptr, long size) throw ()) throw ()
555
+ inline void set_allocator (void *(*cb)(void *ptr, long size)) throw ()
556
556
  {
557
557
  ev_set_allocator (cb);
558
558
  }
559
559
 
560
- inline void set_syserr_cb (void (*cb)(const char *msg) throw ()) throw ()
560
+ inline void set_syserr_cb (void (*cb)(const char *msg)) throw ()
561
561
  {
562
562
  ev_set_syserr_cb (cb);
563
563
  }
@@ -542,13 +542,13 @@ EV_API_DECL void ev_sleep (ev_tstamp delay) EV_THROW; /* sleep for a while */
542
542
  * or take some potentially destructive action.
543
543
  * The default is your system realloc function.
544
544
  */
545
- EV_API_DECL void ev_set_allocator (void *(*cb)(void *ptr, long size) EV_THROW) EV_THROW;
545
+ EV_API_DECL void ev_set_allocator (void *(*cb)(void *ptr, long size)) EV_THROW;
546
546
 
547
547
  /* set the callback function to call on a
548
548
  * retryable syscall error
549
549
  * (such as failed select, poll, epoll_wait)
550
550
  */
551
- EV_API_DECL void ev_set_syserr_cb (void (*cb)(const char *msg) EV_THROW) EV_THROW;
551
+ EV_API_DECL void ev_set_syserr_cb (void (*cb)(const char *msg)) EV_THROW;
552
552
 
553
553
  #if EV_MULTIPLICITY
554
554
 
@@ -670,7 +670,7 @@ EV_API_DECL void *ev_userdata (EV_P) EV_THROW;
670
670
  typedef void (*ev_loop_callback)(EV_P);
671
671
  EV_API_DECL void ev_set_invoke_pending_cb (EV_P_ ev_loop_callback invoke_pending_cb) EV_THROW;
672
672
  /* C++ doesn't allow the use of the ev_loop_callback typedef here, so we need to spell it out */
673
- EV_API_DECL void ev_set_loop_release_cb (EV_P_ void (*release)(EV_P) EV_THROW, void (*acquire)(EV_P) EV_THROW) EV_THROW;
673
+ EV_API_DECL void ev_set_loop_release_cb (EV_P_ void (*release)(EV_P), void (*acquire)(EV_P)) EV_THROW;
674
674
 
675
675
  EV_API_DECL unsigned int ev_pending_count (EV_P) EV_THROW; /* number of pending events, if any */
676
676
  EV_API_DECL void ev_invoke_pending (EV_P); /* invoke all pending watchers */
@@ -48,39 +48,6 @@ generated_cache_location_part(ngx_conf_t *cf, passenger_loc_conf_t *conf) {
48
48
  * Calculate lengths
49
49
  */
50
50
 
51
- if (conf->socket_backlog != NGX_CONF_UNSET) {
52
- end = ngx_snprintf(int_buf,
53
- sizeof(int_buf) - 1,
54
- "%d",
55
- conf->socket_backlog);
56
- len += sizeof("!~PASSENGER_SOCKET_BACKLOG: ") - 1;
57
- len += end - int_buf;
58
- len += sizeof("\r\n") - 1;
59
- }
60
-
61
- if (conf->core_file_descriptor_ulimit != NGX_CONF_UNSET_UINT) {
62
- end = ngx_snprintf(int_buf,
63
- sizeof(int_buf) - 1,
64
- "%ui",
65
- conf->core_file_descriptor_ulimit);
66
- len += sizeof("!~PASSENGER_CORE_FILE_DESCRIPTOR_ULIMIT: ") - 1;
67
- len += end - int_buf;
68
- len += sizeof("\r\n") - 1;
69
- }
70
-
71
- if (conf->disable_security_update_check != NGX_CONF_UNSET) {
72
- len += sizeof("!~DISABLE_SECURITY_UPDATE_CHECK: ") - 1;
73
- len += conf->disable_security_update_check
74
- ? sizeof("t\r\n") - 1
75
- : sizeof("f\r\n") - 1;
76
- }
77
-
78
- if (conf->security_update_check_proxy.data != NULL) {
79
- len += sizeof("!~SECURITY_UPDATE_CHECK_PROXY: ") - 1;
80
- len += conf->security_update_check_proxy.len;
81
- len += sizeof("\r\n") - 1;
82
- }
83
-
84
51
  if (conf->app_file_descriptor_ulimit != NGX_CONF_UNSET_UINT) {
85
52
  end = ngx_snprintf(int_buf,
86
53
  sizeof(int_buf) - 1,
@@ -316,48 +283,6 @@ generated_cache_location_part(ngx_conf_t *cf, passenger_loc_conf_t *conf) {
316
283
  return 0;
317
284
  }
318
285
 
319
- if (conf->socket_backlog != NGX_CONF_UNSET) {
320
- pos = ngx_copy(pos,
321
- "!~PASSENGER_SOCKET_BACKLOG: ",
322
- sizeof("!~PASSENGER_SOCKET_BACKLOG: ") - 1);
323
- end = ngx_snprintf(int_buf,
324
- sizeof(int_buf) - 1,
325
- "%d",
326
- conf->socket_backlog);
327
- pos = ngx_copy(pos, int_buf, end - int_buf);
328
- pos = ngx_copy(pos, (const u_char *) "\r\n", sizeof("\r\n") - 1);
329
- }
330
- if (conf->core_file_descriptor_ulimit != NGX_CONF_UNSET_UINT) {
331
- pos = ngx_copy(pos,
332
- "!~PASSENGER_CORE_FILE_DESCRIPTOR_ULIMIT: ",
333
- sizeof("!~PASSENGER_CORE_FILE_DESCRIPTOR_ULIMIT: ") - 1);
334
- end = ngx_snprintf(int_buf,
335
- sizeof(int_buf) - 1,
336
- "%ui",
337
- conf->core_file_descriptor_ulimit);
338
- pos = ngx_copy(pos, int_buf, end - int_buf);
339
- pos = ngx_copy(pos, (const u_char *) "\r\n", sizeof("\r\n") - 1);
340
- }
341
- if (conf->disable_security_update_check != NGX_CONF_UNSET) {
342
- pos = ngx_copy(pos,
343
- "!~DISABLE_SECURITY_UPDATE_CHECK: ",
344
- sizeof("!~DISABLE_SECURITY_UPDATE_CHECK: ") - 1);
345
- if (conf->disable_security_update_check) {
346
- pos = ngx_copy(pos, "t\r\n", sizeof("t\r\n") - 1);
347
- } else {
348
- pos = ngx_copy(pos, "f\r\n", sizeof("f\r\n") - 1);
349
- }
350
- }
351
-
352
- if (conf->security_update_check_proxy.data != NULL) {
353
- pos = ngx_copy(pos,
354
- "!~SECURITY_UPDATE_CHECK_PROXY: ",
355
- sizeof("!~SECURITY_UPDATE_CHECK_PROXY: ") - 1);
356
- pos = ngx_copy(pos,
357
- conf->security_update_check_proxy.data,
358
- conf->security_update_check_proxy.len);
359
- pos = ngx_copy(pos, (const u_char *) "\r\n", sizeof("\r\n") - 1);
360
- }
361
286
  if (conf->app_file_descriptor_ulimit != NGX_CONF_UNSET_UINT) {
362
287
  pos = ngx_copy(pos,
363
288
  "!~PASSENGER_APP_FILE_DESCRIPTOR_ULIMIT: ",
@@ -195,6 +195,7 @@ def filter_eligible_options(options)
195
195
  option[:alias_for] ||
196
196
  option.fetch(:field, true).nil? ||
197
197
  option[:field].to_s =~ /\./ ||
198
+ option[:struct] == 'NGX_HTTP_MAIN_CONF_OFFSET' ||
198
199
  !option.fetch(:header, true)
199
200
  end
200
201
  end
@@ -1652,4 +1652,3 @@ const ngx_command_t passenger_commands[] = {
1652
1652
 
1653
1653
  ngx_null_command
1654
1654
  };
1655
-
@@ -76,4 +76,3 @@ char *passenger_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child);
76
76
  ngx_int_t passenger_postprocess_config(ngx_conf_t *cf);
77
77
 
78
78
  #endif /* _PASSENGER_NGINX_CONFIGURATION_H_ */
79
-
@@ -79,7 +79,7 @@
79
79
  },
80
80
  {
81
81
  ngx_string("passenger_enabled"),
82
- NGX_HTTP_SRV_CONF | NGX_HTTP_LOC_CONF | NGX_HTTP_LIF_CONF | NGX_CONF_FLAG,
82
+ NGX_HTTP_MAIN_CONF | NGX_HTTP_SRV_CONF | NGX_HTTP_LOC_CONF | NGX_HTTP_LIF_CONF | NGX_CONF_FLAG,
83
83
  passenger_enabled,
84
84
  NGX_HTTP_LOC_CONF_OFFSET,
85
85
  offsetof(passenger_loc_conf_t, enabled),
@@ -1492,4 +1492,3 @@ passenger_content_handler(ngx_http_request_t *r)
1492
1492
 
1493
1493
  return NGX_DONE;
1494
1494
  }
1495
-
@@ -55,4 +55,3 @@ ngx_int_t passenger_content_handler(ngx_http_request_t *r);
55
55
 
56
56
 
57
57
  #endif /* _PASSENGER_NGINX_CONTENT_HANDLER_H_ */
58
-
@@ -39,11 +39,6 @@
39
39
 
40
40
  void
41
41
  generated_set_conf_part(passenger_loc_conf_t *conf) {
42
- conf->socket_backlog = NGX_CONF_UNSET;
43
- conf->core_file_descriptor_ulimit = NGX_CONF_UNSET_UINT;
44
- conf->disable_security_update_check = NGX_CONF_UNSET;
45
- conf->security_update_check_proxy.data = NULL;
46
- conf->security_update_check_proxy.len = 0;
47
42
  conf->app_file_descriptor_ulimit = NGX_CONF_UNSET_UINT;
48
43
  conf->enabled = NGX_CONF_UNSET;
49
44
  conf->ruby.data = NULL;
@@ -83,6 +83,7 @@ def filter_eligible_options(options)
83
83
  option[:alias_for] ||
84
84
  option.fetch(:field, true).nil? ||
85
85
  option[:field].to_s =~ /\./ ||
86
+ option[:struct] == 'NGX_HTTP_MAIN_CONF_OFFSET' ||
86
87
  option[:auto_generate_nginx_create_code] == false
87
88
  end
88
89
  end
@@ -51,9 +51,7 @@ typedef struct {
51
51
  ngx_int_t abort_websockets_on_process_shutdown;
52
52
  ngx_uint_t app_file_descriptor_ulimit;
53
53
  ngx_array_t *base_uris;
54
- ngx_uint_t core_file_descriptor_ulimit;
55
54
  ngx_int_t debugger;
56
- ngx_int_t disable_security_update_check;
57
55
  ngx_int_t enabled;
58
56
  ngx_array_t *env_vars;
59
57
  ngx_int_t force_max_concurrent_requests_per_process;
@@ -68,7 +66,6 @@ typedef struct {
68
66
  ngx_int_t max_requests;
69
67
  ngx_int_t min_instances;
70
68
  ngx_int_t request_queue_overflow_status_code;
71
- ngx_int_t socket_backlog;
72
69
  ngx_int_t start_timeout;
73
70
  ngx_int_t sticky_sessions;
74
71
  ngx_array_t *union_station_filters;
@@ -85,7 +82,6 @@ typedef struct {
85
82
  ngx_str_t python;
86
83
  ngx_str_t restart_dir;
87
84
  ngx_str_t ruby;
88
- ngx_str_t security_update_check_proxy;
89
85
  ngx_str_t spawn_method;
90
86
  ngx_str_t startup_file;
91
87
  ngx_str_t sticky_sessions_cookie_name;
@@ -81,7 +81,8 @@ def filter_eligible_options(options)
81
81
  options.reject do |option|
82
82
  option[:alias_for] ||
83
83
  option.fetch(:field, true).nil? ||
84
- option[:field].to_s =~ /\./
84
+ option[:field].to_s =~ /\./ ||
85
+ option[:struct] == 'NGX_HTTP_MAIN_CONF_OFFSET'
85
86
  end
86
87
  end
87
88
 
@@ -42,18 +42,6 @@
42
42
  */
43
43
  int
44
44
  generated_merge_part(passenger_loc_conf_t *conf, passenger_loc_conf_t *prev, ngx_conf_t *cf) {
45
- ngx_conf_merge_value(conf->socket_backlog,
46
- prev->socket_backlog,
47
- NGX_CONF_UNSET);
48
- ngx_conf_merge_uint_value(conf->core_file_descriptor_ulimit,
49
- prev->core_file_descriptor_ulimit,
50
- NGX_CONF_UNSET_UINT);
51
- ngx_conf_merge_value(conf->disable_security_update_check,
52
- prev->disable_security_update_check,
53
- NGX_CONF_UNSET);
54
- ngx_conf_merge_str_value(conf->security_update_check_proxy,
55
- prev->security_update_check_proxy,
56
- NULL);
57
45
  ngx_conf_merge_uint_value(conf->app_file_descriptor_ulimit,
58
46
  prev->app_file_descriptor_ulimit,
59
47
  NGX_CONF_UNSET_UINT);
@@ -104,6 +104,7 @@ def filter_eligible_options(options)
104
104
  option[:alias_for] ||
105
105
  option.fetch(:field, true).nil? ||
106
106
  option[:field].to_s =~ /\./ ||
107
+ option[:struct] == 'NGX_HTTP_MAIN_CONF_OFFSET' ||
107
108
  !option.fetch(:auto_generate_nginx_merge_code, true)
108
109
  end
109
110
  end
@@ -62,4 +62,3 @@ extern PsgWatchdogLauncher *psg_watchdog_launcher;
62
62
  extern ngx_cycle_t *pp_current_cycle;
63
63
 
64
64
  #endif /* _PASSENGER_NGINX_MODULE_H_ */
65
-
@@ -31,7 +31,7 @@ module PhusionPassenger
31
31
 
32
32
  PACKAGE_NAME = 'passenger'
33
33
  # Run 'rake src/cxx_supportlib/Constants.h' after changing this number.
34
- VERSION_STRING = '5.1.10'
34
+ VERSION_STRING = '5.1.11'
35
35
 
36
36
  PREFERRED_NGINX_VERSION = '1.12.1'
37
37
  NGINX_SHA256_CHECKSUM = '8793bf426485a30f91021b6b945a9fd8a84d87d17b566562c3797aba8fac76fb'
@@ -149,18 +149,18 @@ private
149
149
  optimize.sub!(/-flto/, "")
150
150
  end
151
151
 
152
- extra_compiler_flags = "#{extra_compiler_flags} #{options[:cflags]}".strip
153
-
154
152
  define_c_or_cxx_object_compilation_task(
155
153
  object_file,
156
154
  source_file,
157
- :include_paths => CXX_SUPPORTLIB_INCLUDE_PATHS,
158
- :flags => [
159
- LIBEV_CFLAGS,
160
- LIBUV_CFLAGS,
161
- optimize,
162
- extra_compiler_flags
163
- ]
155
+ lambda { {
156
+ :include_paths => CXX_SUPPORTLIB_INCLUDE_PATHS,
157
+ :flags => [
158
+ libev_cflags,
159
+ libuv_cflags,
160
+ optimize,
161
+ "#{maybe_eval_lambda(extra_compiler_flags)} #{options[:cflags]}".strip
162
+ ]
163
+ } }
164
164
  )
165
165
  end
166
166
 
@@ -274,6 +274,12 @@ COMMON_LIBRARY = CommonLibraryBuilder.new do
274
274
  define_component 'Exceptions.o',
275
275
  :source => 'Exceptions.cpp',
276
276
  :category => :base
277
+ define_component 'ProcessManagement/Spawn.o',
278
+ :source => 'ProcessManagement/Spawn.cpp',
279
+ :category => :base
280
+ define_component 'ProcessManagement/Utils.o',
281
+ :source => 'ProcessManagement/Utils.cpp',
282
+ :category => :base
277
283
  define_component 'Utils/SystemTime.o',
278
284
  :source => 'Utils/SystemTime.cpp',
279
285
  :category => :base
@@ -341,16 +347,19 @@ COMMON_LIBRARY = CommonLibraryBuilder.new do
341
347
 
342
348
  define_component 'vendor-modified/modp_b64.o',
343
349
  :source => 'vendor-modified/modp_b64.cpp',
344
- :category => :bas64,
350
+ :category => :base64,
345
351
  :optimize => true,
346
352
  :strict_aliasing => false
347
353
  define_component 'vendor-modified/modp_b64_strict_aliasing.o',
348
354
  :source => 'vendor-modified/modp_b64_strict_aliasing.cpp',
349
- :category => :bas64,
355
+ :category => :base64,
350
356
  :optimize => true
351
357
  define_component 'UnionStationFilterSupport.o',
352
358
  :source => 'UnionStationFilterSupport.cpp',
353
359
  :category => :union_station_filter
360
+ define_component 'ProcessManagement/Ruby.o',
361
+ :source => 'ProcessManagement/Ruby.cpp',
362
+ :category => :process_management_ruby
354
363
  end
355
364
 
356
365
  # A subset of the objects are linked to the Nginx binary. This defines