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.
- checksums.yaml +4 -4
- data/CHANGELOG +18 -0
- data/Rakefile +20 -17
- data/bin/passenger-install-apache2-module +14 -11
- data/build/agent.rb +45 -18
- data/build/apache2.rb +32 -16
- data/build/basics.rb +29 -40
- data/build/common_library.rb +70 -54
- data/build/cxx_tests.rb +34 -43
- data/build/integration_tests.rb +10 -10
- data/build/misc.rb +6 -6
- data/build/node_tests.rb +1 -2
- data/build/oxt_tests.rb +7 -5
- data/build/packaging.rb +11 -441
- data/build/ruby_extension.rb +1 -1
- data/build/ruby_tests.rb +1 -2
- data/build/support/cplusplus.rb +6 -5
- data/build/support/cxx_dependency_map.rb +357 -833
- data/build/support/general.rb +23 -1
- data/build/test_basics.rb +3 -28
- data/dev/ci/tests/rpm/Jenkinsfile +68 -0
- data/dev/ci/tests/rpm/run +63 -0
- data/dev/ci/tests/source-packaging/run +1 -1
- data/dev/ci/tests/source-packaging/setup +1 -1
- data/doc/{Packaging.txt.md → Packaging.md} +0 -0
- data/resources/templates/apache2/deployment_example.txt.erb +2 -2
- data/resources/templates/apache2/multiple_apache_installations_detected.txt.erb +2 -2
- data/resources/templates/nginx/deployment_example.txt.erb +1 -1
- data/resources/templates/standalone/mass_deployment_default_server.erb +2 -2
- data/resources/templates/standalone/server.erb +2 -2
- data/src/agent/AgentMain.cpp +0 -4
- data/src/agent/Core/CoreMain.cpp +88 -5
- data/src/agent/Core/SpawningKit/Spawner.h +2 -1
- data/src/agent/Shared/Fundamentals/AbortHandler.cpp +1109 -0
- data/src/agent/Shared/Fundamentals/AbortHandler.h +63 -0
- data/src/agent/Shared/Fundamentals/Implementation.cpp +7 -0
- data/src/agent/Shared/Fundamentals/Initialization.cpp +614 -0
- data/src/agent/Shared/{Base.h → Fundamentals/Initialization.h} +23 -14
- data/src/agent/Shared/Fundamentals/Utils.cpp +127 -0
- data/src/agent/Shared/Fundamentals/Utils.h +46 -0
- data/src/agent/TempDirToucher/TempDirToucherMain.cpp +1 -1
- data/src/agent/Watchdog/CoreWatcher.cpp +3 -1
- data/src/agent/Watchdog/InstanceDirToucher.cpp +90 -53
- data/src/agent/Watchdog/WatchdogMain.cpp +13 -29
- data/src/apache2_module/Hooks.cpp +4 -1
- data/src/cxx_supportlib/ConfigKit/Store.h +32 -5
- data/src/cxx_supportlib/Constants.h +1 -2
- data/src/cxx_supportlib/Crypto.cpp +2 -1
- data/src/cxx_supportlib/Hooks.h +16 -37
- data/src/cxx_supportlib/LoggingKit/Context.h +22 -0
- data/src/cxx_supportlib/LoggingKit/Forward.h +1 -0
- data/src/cxx_supportlib/LoggingKit/Implementation.cpp +106 -22
- data/src/cxx_supportlib/ProcessManagement/Ruby.cpp +106 -0
- data/src/{agent/UstRouter/FileSink.h → cxx_supportlib/ProcessManagement/Ruby.h} +23 -47
- data/src/cxx_supportlib/ProcessManagement/Spawn.cpp +199 -0
- data/src/cxx_supportlib/ProcessManagement/Spawn.h +150 -0
- data/src/cxx_supportlib/ProcessManagement/Utils.cpp +459 -0
- data/src/cxx_supportlib/ProcessManagement/Utils.h +107 -0
- data/src/cxx_supportlib/Utils.cpp +41 -561
- data/src/cxx_supportlib/Utils.h +0 -68
- data/src/cxx_supportlib/Utils/AsyncSignalSafeUtils.h +187 -0
- data/src/cxx_supportlib/Utils/ProcessMetricsCollector.h +14 -2
- data/src/cxx_supportlib/WatchdogLauncher.h +2 -12
- data/src/cxx_supportlib/oxt/dynamic_thread_group.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/jsoncpp/json-forwards.h +4 -0
- data/src/cxx_supportlib/vendor-modified/jsoncpp/json.h +16 -1
- data/src/cxx_supportlib/vendor-modified/jsoncpp/jsoncpp.cpp +12 -9
- data/src/cxx_supportlib/vendor-modified/libev/ev++.h +4 -4
- data/src/cxx_supportlib/vendor-modified/libev/ev.h +3 -3
- data/src/nginx_module/CacheLocationConfig.c +0 -75
- data/src/nginx_module/CacheLocationConfig.c.cxxcodebuilder +1 -0
- data/src/nginx_module/Configuration.c +0 -1
- data/src/nginx_module/Configuration.h +0 -1
- data/src/nginx_module/ConfigurationCommands.c +1 -1
- data/src/nginx_module/ContentHandler.c +0 -1
- data/src/nginx_module/ContentHandler.h +0 -1
- data/src/nginx_module/CreateLocationConfig.c +0 -5
- data/src/nginx_module/CreateLocationConfig.c.cxxcodebuilder +1 -0
- data/src/nginx_module/LocationConfig.h +0 -4
- data/src/nginx_module/LocationConfig.h.cxxcodebuilder +2 -1
- data/src/nginx_module/MergeLocationConfig.c +0 -12
- data/src/nginx_module/MergeLocationConfig.c.cxxcodebuilder +1 -0
- data/src/nginx_module/ngx_http_passenger_module.h +0 -1
- data/src/ruby_supportlib/phusion_passenger.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/common_library.rb +20 -11
- data/src/ruby_supportlib/phusion_passenger/config/api_call_command.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/config/reopen_logs_command.rb +0 -1
- data/src/ruby_supportlib/phusion_passenger/config/validate_install_command.rb +10 -3
- data/src/ruby_supportlib/phusion_passenger/console_text_template.rb +3 -1
- data/src/ruby_supportlib/phusion_passenger/constants.rb +0 -1
- data/src/ruby_supportlib/phusion_passenger/debug_logging.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/loader_shared_helpers.rb +32 -6
- data/src/ruby_supportlib/phusion_passenger/nginx/config_options.rb +0 -1
- data/src/ruby_supportlib/phusion_passenger/packaging.rb +2 -4
- data/src/ruby_supportlib/phusion_passenger/platform_info/apache.rb +101 -20
- data/src/ruby_supportlib/phusion_passenger/platform_info/apache_detector.rb +21 -9
- data/src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb +34 -31
- data/src/ruby_supportlib/phusion_passenger/platform_info/cxx_portability.rb +3 -1
- data/src/ruby_supportlib/phusion_passenger/platform_info/depcheck_specs/apache2.rb +2 -14
- data/src/ruby_supportlib/phusion_passenger/platform_info/operating_system.rb +40 -3
- data/src/ruby_supportlib/phusion_passenger/standalone/app_finder.rb +15 -14
- data/src/ruby_supportlib/phusion_passenger/standalone/config_options_list.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/standalone/config_utils.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/standalone/start_command.rb +8 -3
- data/src/ruby_supportlib/phusion_passenger/standalone/start_command/nginx_engine.rb +19 -18
- data/src/ruby_supportlib/phusion_passenger/standalone/stop_command.rb +6 -1
- data/src/ruby_supportlib/phusion_passenger/vendor/daemon_controller.rb +17 -1
- metadata +19 -97
- data/build/documentation.rb +0 -70
- data/doc/CloudLicensingConfiguration.html +0 -172
- data/doc/CloudLicensingConfiguration.txt.md +0 -3
- data/doc/Packaging.html +0 -488
- data/doc/Security of user switching support.idmap.txt +0 -34
- data/doc/Security of user switching support.txt +0 -197
- data/doc/ServerOptimizationGuide.html +0 -172
- data/doc/ServerOptimizationGuide.txt.md +0 -3
- data/doc/images/by_sa.png +0 -0
- data/doc/images/cloud_licensing_batch_job.png +0 -0
- data/doc/images/code_walkthrough.jpg +0 -0
- data/doc/images/direct_spawning.png +0 -0
- data/doc/images/direct_spawning.svg +0 -251
- data/doc/images/glyphicons-halflings-white.png +0 -0
- data/doc/images/glyphicons-halflings.png +0 -0
- data/doc/images/icons/README +0 -5
- data/doc/images/icons/callouts/1.png +0 -0
- data/doc/images/icons/callouts/10.png +0 -0
- data/doc/images/icons/callouts/11.png +0 -0
- data/doc/images/icons/callouts/12.png +0 -0
- data/doc/images/icons/callouts/13.png +0 -0
- data/doc/images/icons/callouts/14.png +0 -0
- data/doc/images/icons/callouts/15.png +0 -0
- data/doc/images/icons/callouts/2.png +0 -0
- data/doc/images/icons/callouts/3.png +0 -0
- data/doc/images/icons/callouts/4.png +0 -0
- data/doc/images/icons/callouts/5.png +0 -0
- data/doc/images/icons/callouts/6.png +0 -0
- data/doc/images/icons/callouts/7.png +0 -0
- data/doc/images/icons/callouts/8.png +0 -0
- data/doc/images/icons/callouts/9.png +0 -0
- data/doc/images/icons/caution.png +0 -0
- data/doc/images/icons/example.png +0 -0
- data/doc/images/icons/home.png +0 -0
- data/doc/images/icons/important.png +0 -0
- data/doc/images/icons/next.png +0 -0
- data/doc/images/icons/note.png +0 -0
- data/doc/images/icons/prev.png +0 -0
- data/doc/images/icons/tip.png +0 -0
- data/doc/images/icons/up.png +0 -0
- data/doc/images/icons/warning.png +0 -0
- data/doc/images/many_web_framework_protocols.png +0 -0
- data/doc/images/passenger_architecture.png +0 -0
- data/doc/images/passenger_architecture.svg +0 -385
- data/doc/images/passenger_architecture_overview.png +0 -0
- data/doc/images/passenger_core_architecture.png +0 -0
- data/doc/images/passenger_nodejs_architecture.svg +0 -558
- data/doc/images/phusion_banner.png +0 -0
- data/doc/images/rack.png +0 -0
- data/doc/images/smart_spawning.png +0 -0
- data/doc/images/smart_spawning.svg +0 -323
- data/doc/images/spawn_server_architecture.png +0 -0
- data/doc/images/spawn_server_architecture.svg +0 -655
- data/doc/images/spawning_preparation_work.png +0 -0
- data/doc/images/startup_sequence.png +0 -0
- data/doc/images/typical_isolated_web_application.png +0 -0
- data/doc/images/typical_isolated_web_application.svg +0 -213
- data/doc/users_guide_snippets/alternative_for_flying_passenger.txt +0 -1
- data/doc/users_guide_snippets/analysis_and_system_maintenance.txt +0 -61
- data/doc/users_guide_snippets/appendix_a_about.txt +0 -13
- data/doc/users_guide_snippets/appendix_b_terminology.txt +0 -71
- data/doc/users_guide_snippets/appendix_c_spawning_methods.txt +0 -36
- data/doc/users_guide_snippets/deployment_basics.txt +0 -37
- data/doc/users_guide_snippets/enterprise_only.txt +0 -1
- data/doc/users_guide_snippets/environment_variables.txt +0 -44
- data/doc/users_guide_snippets/global_queueing_explained.txt +0 -74
- data/doc/users_guide_snippets/installation.txt +0 -228
- data/doc/users_guide_snippets/installation/run_installer.txt +0 -58
- data/doc/users_guide_snippets/installation/verify_running_epilogue.txt +0 -6
- data/doc/users_guide_snippets/passenger_spawn_method.txt +0 -37
- data/doc/users_guide_snippets/rackup_specifications.txt +0 -1
- data/doc/users_guide_snippets/rvm_helper_tool.txt +0 -44
- data/doc/users_guide_snippets/since_version.txt +0 -1
- data/doc/users_guide_snippets/support_information.txt +0 -8
- data/doc/users_guide_snippets/tips.txt +0 -302
- data/doc/users_guide_snippets/troubleshooting/default.txt +0 -48
- data/doc/users_guide_snippets/troubleshooting/rails.txt +0 -59
- data/doc/users_guide_snippets/under_the_hood/page_caching_support.txt +0 -24
- data/doc/users_guide_snippets/under_the_hood/relationship_with_ruby.txt +0 -10
- data/doc/users_guide_snippets/where_to_get_support.txt +0 -9
- data/src/agent/Shared/Base.cpp +0 -1678
- data/src/agent/UstRouter/ApiServer.h +0 -292
- data/src/agent/UstRouter/Client.h +0 -112
- data/src/agent/UstRouter/Controller.h +0 -1309
- data/src/agent/UstRouter/LogSink.h +0 -145
- data/src/agent/UstRouter/OptionParser.h +0 -180
- data/src/agent/UstRouter/RemoteSender.h +0 -853
- data/src/agent/UstRouter/RemoteSink.h +0 -145
- data/src/agent/UstRouter/Transaction.h +0 -278
- data/src/agent/UstRouter/UstRouterMain.cpp +0 -681
- data/src/agent/Watchdog/UstRouterWatcher.cpp +0 -80
- 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)
|
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)
|
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)
|
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)
|
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)
|
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)
|
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)
|
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: ",
|
@@ -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),
|
@@ -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;
|
@@ -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
|
@@ -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.
|
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
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
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 => :
|
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 => :
|
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
|