passenger 6.0.0 → 6.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG +148 -18
- data/CONTRIBUTORS +6 -0
- data/bin/passenger-install-nginx-module +1 -1
- data/bin/passenger-status +15 -0
- data/build/misc.rb +3 -1
- data/build/support/vendor/cxxcodebuilder/lib/cxxcodebuilder/builder.rb +56 -3
- data/dev/copy_boost_headers +1 -0
- data/package.json +1 -1
- data/passenger.gemspec +1 -1
- data/resources/templates/error_renderer/with_details/src/bootstrap/bootstrap.css +0 -0
- data/resources/templates/error_renderer/with_details/src/bootstrap/bootstrap.js +0 -0
- data/resources/templates/error_renderer/with_details/src/bootstrap/config.json +0 -0
- data/resources/templates/standalone/http.erb +2 -0
- data/resources/templates/standalone/server.erb +1 -0
- data/src/agent/Core/ApplicationPool/Group/ProcessListManagement.cpp +1 -1
- data/src/agent/Core/ApplicationPool/Group/StateInspection.cpp +1 -0
- data/src/agent/Core/ApplicationPool/Options.h +10 -0
- data/src/agent/Core/ApplicationPool/Pool/GarbageCollection.cpp +1 -1
- data/src/agent/Core/ApplicationPool/Pool/StateInspection.cpp +1 -1
- data/src/agent/Core/Config.h +13 -1
- data/src/agent/Core/Controller.h +1 -0
- data/src/agent/Core/Controller/Config.h +4 -1
- data/src/agent/Core/Controller/ForwardResponse.cpp +13 -0
- data/src/agent/Core/Controller/InitRequest.cpp +3 -0
- data/src/agent/Core/Controller/InitializationAndShutdown.cpp +1 -0
- data/src/agent/Core/CoreMain.cpp +2 -1
- data/src/agent/Core/OptionParser.h +3 -0
- data/src/agent/Core/SpawningKit/Context.h +1 -0
- data/src/agent/Core/SpawningKit/Handshake/Perform.h +1 -0
- data/src/agent/Core/SpawningKit/Handshake/Prepare.h +1 -1
- data/src/agent/Core/SpawningKit/Handshake/WorkDir.h +5 -2
- data/src/agent/TempDirToucher/TempDirToucherMain.cpp +2 -0
- data/src/agent/Watchdog/Config.h +14 -1
- data/src/agent/Watchdog/WatchdogMain.cpp +7 -0
- data/src/apache2_module/ConfigGeneral/AutoGeneratedDefinitions.cpp +10 -0
- data/src/apache2_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.cpp +10 -0
- data/src/apache2_module/ConfigGeneral/AutoGeneratedSetterFuncs.cpp +30 -0
- data/src/apache2_module/Hooks.cpp +6 -0
- data/src/apache2_module/ServerConfig/AutoGeneratedManifestGeneration.cpp +20 -0
- data/src/apache2_module/ServerConfig/AutoGeneratedStruct.h +24 -0
- data/src/cxx_supportlib/Constants.h +2 -1
- data/src/cxx_supportlib/LoggingKit/Config.h +2 -0
- data/src/cxx_supportlib/LoggingKit/Implementation.cpp +15 -9
- data/src/cxx_supportlib/ServerKit/HttpChunkedBodyParser.h +1 -1
- data/src/cxx_supportlib/SystemTools/ContainerHelpers.h +57 -2
- data/src/cxx_supportlib/WebSocketCommandReverseServer.h +11 -7
- data/src/cxx_supportlib/oxt/system_calls.cpp +10 -10
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/finder.hpp +0 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffer.hpp +46 -37
- data/src/cxx_supportlib/vendor-modified/boost/asio/connect.hpp +16 -15
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/config.hpp +45 -26
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/future.hpp +33 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_ops.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/is_buffer_sequence.hpp +38 -14
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_context.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_until.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/use_future.hpp +0 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/bad_address_cast.hpp +6 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver.hpp +6 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_results.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/packaged_task.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/read.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/read_at.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/read_until.hpp +8 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context_base.hpp +17 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.ipp +50 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/thread_pool.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/use_future.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/version.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/write.hpp +4 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/write_at.hpp +5 -3
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_x86_dcas.hpp +13 -12
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/mac/chrono.hpp +10 -10
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/mac/process_cpu_clocks.hpp +34 -34
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/mac/thread_clock.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/posix/chrono.hpp +8 -8
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/posix/process_cpu_clocks.hpp +27 -27
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/posix/thread_clock.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/system.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/chrono/io/time_point_io.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/circular_buffer.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/allocators.hpp +89 -0
- data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/base.hpp +83 -74
- data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/details.hpp +21 -33
- data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/space_optimized.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/concept/assert.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/concept/detail/general.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/concept/detail/has_constraints.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/concept/usage.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/concept_check.hpp +19 -19
- data/src/cxx_supportlib/vendor-modified/boost/config/auto_link.hpp +8 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/borland.hpp +5 -2
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/clang.hpp +5 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/codegear.hpp +6 -2
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/comeau.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/common_edg.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/cray.hpp +368 -52
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/digitalmars.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc.hpp +6 -3
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc_xml.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/greenhills.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/hp_acc.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/intel.hpp +6 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/kai.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/metrowerks.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/mpw.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/nvcc.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/pathscale.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/sunpro_cc.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/vacpp.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/visualc.hpp +9 -4
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp_zos.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/detail/select_compiler_config.hpp +1 -2
- data/src/cxx_supportlib/vendor-modified/boost/config/detail/suffix.hpp +13 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/dinkumware.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcpp.hpp +14 -4
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libstdcpp3.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/adaptive_pool.hpp +262 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +4 -3
- data/src/cxx_supportlib/vendor-modified/boost/container/allocator_traits.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool.hpp +22 -19
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool_impl.hpp +833 -459
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/advanced_insert_int.hpp +24 -6
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/allocator_version_traits.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/compare_functors.hpp +61 -5
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +33 -8
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +132 -41
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterator.hpp +16 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/math_functions.hpp +54 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/mpl.hpp +58 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/multiallocation_chain.hpp +28 -23
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_alloc_holder.hpp +167 -115
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair.hpp +55 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/std_fwd.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/thread_mutex.hpp +181 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/tree.hpp +167 -29
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/type_traits.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/variadic_templates_tools.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/workaround.hpp +18 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/flat_map.hpp +389 -3
- data/src/cxx_supportlib/vendor-modified/boost/container/flat_set.hpp +262 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/list.hpp +52 -8
- data/src/cxx_supportlib/vendor-modified/boost/container/map.hpp +364 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/monotonic_buffer_resource.hpp +4 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/resource_adaptor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/synchronized_pool_resource.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/set.hpp +286 -6
- data/src/cxx_supportlib/vendor-modified/boost/container/slist.hpp +56 -8
- data/src/cxx_supportlib/vendor-modified/boost/container/small_vector.hpp +43 -6
- data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +100 -31
- data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +126 -69
- data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +75 -51
- data/src/cxx_supportlib/vendor-modified/boost/core/empty_value.hpp +136 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/exchange.hpp +49 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/explicit_operator_bool.hpp +9 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test.hpp +101 -130
- data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test_trait.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/core/noncopyable.hpp +16 -1
- data/src/cxx_supportlib/vendor-modified/boost/core/quick_exit.hpp +59 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/ref.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/core/swap.hpp +9 -2
- data/src/cxx_supportlib/vendor-modified/boost/core/typeinfo.hpp +26 -10
- data/src/cxx_supportlib/vendor-modified/boost/date_time/compiler_config.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/posix_time_duration.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/date_time/time_duration.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/detail/basic_pointerbuf.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/detail/indirect_traits.hpp +38 -47
- data/src/cxx_supportlib/vendor-modified/boost/detail/lcast_precision.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/detail/reference_content.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/exception/exception.hpp +62 -58
- data/src/cxx_supportlib/vendor-modified/boost/function.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/function/function_base.hpp +29 -29
- data/src/cxx_supportlib/vendor-modified/boost/function/function_template.hpp +38 -40
- data/src/cxx_supportlib/vendor-modified/boost/integer/common_factor_rt.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree_algorithms.hpp +44 -44
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree_algorithms.hpp +39 -39
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_list_algorithms.hpp +15 -15
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_slist_algorithms.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/derivation_value_traits.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/any_node_and_algorithms.hpp +14 -14
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/avltree_node.hpp +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/common_slist_algorithms.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/list_iterator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/list_node.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/node_cloner_disposer.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/rbtree_node.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/simple_disposers.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/slist_iterator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/slist_node.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_iterator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_node.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_value_compare.hpp +33 -14
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/hashtable.hpp +12 -12
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/linear_slist_algorithms.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_plus_bits.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree_algorithms.hpp +39 -39
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree_algorithms.hpp +61 -61
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree_algorithms.hpp +66 -66
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_algorithms.hpp +54 -54
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set.hpp +6 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set_hook.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/iterator/advance.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/iterator/distance.hpp +65 -0
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/bad_lexical_cast.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical.hpp +23 -23
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_numeric.hpp +13 -13
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/inf_nan.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/is_character.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_char_constants.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_unsigned_converters.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/widest_char.hpp +5 -2
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/try_lexical_convert.hpp +18 -13
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/cregex.cpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/libs/system/src/error_code.cpp +16 -5
- data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/future.cpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/thread.cpp +14 -8
- data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/tss_null.cpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/detail/fp_traits.hpp +13 -13
- data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/math_fwd.hpp +27 -0
- data/src/cxx_supportlib/vendor-modified/boost/math/tools/config.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_merge.hpp +29 -6
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_sort.hpp +12 -3
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/adaptive_sort_merge.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/move.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/algorithm.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/core.hpp +8 -8
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/meta_utils.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/type_traits.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/assert.hpp +23 -3
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/experimental_traits.hpp +9 -3
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/old_optional_implementation.hpp +10 -11
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_reference_spec.hpp +20 -1
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_trivially_copyable_base.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/optional/optional.hpp +211 -101
- data/src/cxx_supportlib/vendor-modified/boost/parameter/python.hpp +5 -6
- data/src/cxx_supportlib/vendor-modified/boost/pool/detail/mutex.hpp +119 -25
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture.h +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/arm.h +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/ptx.h +44 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler.h +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/compaq.h +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/nvcc.h +73 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/detail/endian_compat.h +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/predef/language.h +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/language/cuda.h +52 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/make.h +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/cygwin.h +6 -1
- data/src/cxx_supportlib/vendor-modified/boost/predef/other/endian.h +1 -2
- data/src/cxx_supportlib/vendor-modified/boost/predef/version.h +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/config/config.hpp +17 -8
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/stringize.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/wstringize.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/gray_coded_qrng.hpp +166 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/niederreiter_base2_table.hpp +513 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/qrng_base.hpp +291 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/sobol_table.hpp +4106 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/faure.hpp +367 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/niederreiter_base2.hpp +360 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/sobol.hpp +237 -0
- data/src/cxx_supportlib/vendor-modified/boost/range/as_literal.hpp +43 -0
- data/src/cxx_supportlib/vendor-modified/boost/range/begin.hpp +13 -5
- data/src/cxx_supportlib/vendor-modified/boost/range/concepts.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/range/detail/common.hpp +1 -3
- data/src/cxx_supportlib/vendor-modified/boost/range/detail/implementation_help.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/range/distance.hpp +11 -5
- data/src/cxx_supportlib/vendor-modified/boost/range/end.hpp +14 -6
- data/src/cxx_supportlib/vendor-modified/boost/range/has_range_iterator.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/ratio/config.hpp +6 -2
- data/src/cxx_supportlib/vendor-modified/boost/rational.hpp +55 -37
- data/src/cxx_supportlib/vendor-modified/boost/regex/concepts.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/config.hpp +11 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex.hpp +7 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_creator.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_parser.hpp +5 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/fileiter.hpp +0 -3
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/instances.hpp +15 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/match_flags.hpp +1 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/match_results.hpp +12 -3
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher.hpp +7 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_common.hpp +7 -3
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_non_recursive.hpp +6 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_format.hpp +0 -5
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_iterator.hpp +0 -8
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_raw_buffer.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_split.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_token_iterator.hpp +0 -8
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_traits_defaults.hpp +12 -11
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_workaround.hpp +7 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/u32regex_iterator.hpp +1 -9
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/u32regex_token_iterator.hpp +2 -10
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/w32_regex_traits.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/allocate_shared_array.hpp +60 -115
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/local_counted_base.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_aix.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_clang.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_cw_x86.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_nt.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_pt.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_solaris.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_spin.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_sync.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_impl.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/yield_k.hpp +14 -8
- data/src/cxx_supportlib/vendor-modified/boost/system/config.hpp +4 -24
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/config.hpp +57 -0
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/generic_category.hpp +101 -0
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/std_interoperability.hpp +141 -0
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/system_category_posix.hpp +132 -0
- data/src/cxx_supportlib/vendor-modified/boost/system/error_code.hpp +775 -588
- data/src/cxx_supportlib/vendor-modified/boost/system/system_error.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/config.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/move.hpp +13 -6
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/nullary_function.hpp +8 -3
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/thread.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/thread_safety.hpp +160 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/tss_hooks.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/thread/exceptions.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/thread/executors/basic_thread_pool.hpp +24 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/future.hpp +10 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/lock_guard.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/thread/lockable_traits.hpp +31 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/condition_variable.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/condition_variable_fwd.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/mutex.hpp +8 -53
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/pthread_mutex_scoped_lock.hpp +73 -4
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/recursive_mutex.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/thread_data.hpp +14 -9
- data/src/cxx_supportlib/vendor-modified/boost/thread/xtime.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/throw_exception.hpp +9 -8
- data/src/cxx_supportlib/vendor-modified/boost/token_functions.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_index/stl_type_index.hpp +21 -19
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/common_arithmetic_type.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/config.hpp +9 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/detector.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/has_postfix_operator.hpp +55 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/has_prefix_operator.hpp +72 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_cxx_03.hpp +108 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_cxx_11.hpp +501 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_msvc10_fix.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_likely_lambda.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_member_function_pointer_cxx_03.hpp +117 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_member_function_pointer_cxx_11.hpp +557 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_rvalue_reference_msvc10_fix.hpp +43 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detected.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detected_or.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/enable_if.hpp +37 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_dereference.hpp +344 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_minus.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_minus_assign.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_plus_assign.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_post_decrement.hpp +21 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_post_increment.hpp +21 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_pre_decrement.hpp +21 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_pre_increment.hpp +22 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_move_assign.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_move_constructor.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/integral_constant.hpp +5 -15
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/intrinsics.hpp +16 -6
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_complete.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_copy_assignable.hpp +3 -4
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_copy_constructible.hpp +4 -6
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_detected.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_detected_convertible.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_detected_exact.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_final.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_function.hpp +4 -79
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_member_function_pointer.hpp +3 -97
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_noncopyable.hpp +39 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_move_assignable.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_move_constructible.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_rvalue_reference.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_virtual_base_of.hpp +104 -63
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/make_void.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/nonesuch.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/typeof/constant.hpp +26 -0
- data/src/cxx_supportlib/vendor-modified/boost/typeof/dmc/typeof_impl.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/typeof/encode_decode.hpp +0 -3
- data/src/cxx_supportlib/vendor-modified/boost/typeof/encode_decode_params.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/typeof/int_encoding.hpp +4 -5
- data/src/cxx_supportlib/vendor-modified/boost/typeof/modifiers.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/typeof/msvc/typeof_impl.hpp +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/typeof/native.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/typeof/pointers_data_members.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/typeof/register_functions_iterate.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/typeof/register_mem_functions.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/typeof/template_encoding.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/typeof/template_template_param.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/typeof/type_encoding.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/typeof/typeof_impl.hpp +16 -16
- data/src/cxx_supportlib/vendor-modified/boost/typeof/vector.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/typeof/vector100.hpp +201 -201
- data/src/cxx_supportlib/vendor-modified/boost/typeof/vector150.hpp +301 -301
- data/src/cxx_supportlib/vendor-modified/boost/typeof/vector200.hpp +401 -401
- data/src/cxx_supportlib/vendor-modified/boost/typeof/vector50.hpp +101 -101
- data/src/cxx_supportlib/vendor-modified/boost/utility/detail/minstd_rand.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/utility/string_ref.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/utility/string_view.hpp +26 -6
- data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
- data/src/helper-scripts/prespawn +1 -0
- data/src/nginx_module/ConfigGeneral/AutoGeneratedDefinitions.c +40 -0
- data/src/nginx_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.c +26 -0
- data/src/nginx_module/ConfigGeneral/AutoGeneratedSetterFuncs.c +48 -0
- data/src/nginx_module/Configuration.c +9 -5
- data/src/nginx_module/ContentHandler.c +5 -1
- data/src/nginx_module/LocationConfig/AutoGeneratedCreateFunction.c +15 -0
- data/src/nginx_module/LocationConfig/AutoGeneratedHeaderSerialization.c +15 -0
- data/src/nginx_module/LocationConfig/AutoGeneratedManifestGeneration.c +28 -0
- data/src/nginx_module/LocationConfig/AutoGeneratedMergeFunction.c +6 -0
- data/src/nginx_module/LocationConfig/AutoGeneratedStruct.h +11 -0
- data/src/nginx_module/MainConfig/AutoGeneratedCreateFunction.c +11 -0
- data/src/nginx_module/MainConfig/AutoGeneratedManifestGeneration.c +23 -0
- data/src/nginx_module/MainConfig/AutoGeneratedStruct.h +8 -0
- data/src/nginx_module/ngx_http_passenger_module.c +2 -0
- data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/logger.js +0 -0
- data/src/ruby_native_extension/extconf.rb +7 -0
- data/src/ruby_supportlib/phusion_passenger.rb +7 -7
- data/src/ruby_supportlib/phusion_passenger/admin_tools/instance_registry.rb +8 -0
- data/src/ruby_supportlib/phusion_passenger/apache2/config_options.rb +23 -0
- data/src/ruby_supportlib/phusion_passenger/constants.rb +1 -0
- data/src/ruby_supportlib/phusion_passenger/loader_shared_helpers.rb +1 -3
- data/src/ruby_supportlib/phusion_passenger/nginx/config_options.rb +37 -0
- data/src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/rack/thread_handler_extension.rb +10 -0
- data/src/ruby_supportlib/phusion_passenger/request_handler.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/request_handler/thread_handler.rb +5 -0
- data/src/ruby_supportlib/phusion_passenger/standalone/config_options_list.rb +11 -0
- data/src/ruby_supportlib/phusion_passenger/standalone/start_command/builtin_engine.rb +3 -0
- data/src/ruby_supportlib/phusion_passenger/standalone/start_command/nginx_engine.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/utils/tee_input.rb +6 -0
- data/src/ruby_supportlib/phusion_passenger/utils/unseekable_socket.rb +15 -11
- metadata +48 -7
- data/src/cxx_supportlib/vendor-modified/boost/call_traits.hpp +0 -20
- data/src/cxx_supportlib/vendor-modified/boost/detail/call_traits.hpp +0 -172
- data/src/cxx_supportlib/vendor-modified/boost/detail/no_exceptions_support.hpp +0 -17
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_code.ipp +0 -496
data/dev/copy_boost_headers
CHANGED
data/package.json
CHANGED
data/passenger.gemspec
CHANGED
@@ -10,12 +10,12 @@ Gem::Specification.new do |s|
|
|
10
10
|
s.summary = "A fast and robust web server and application server for Ruby, Python and Node.js"
|
11
11
|
s.name = PhusionPassenger::PACKAGE_NAME
|
12
12
|
s.version = PhusionPassenger::VERSION_STRING
|
13
|
-
s.rubyforge_project = "passenger"
|
14
13
|
s.author = "Phusion - http://www.phusion.nl/"
|
15
14
|
s.email = "software-signing@phusion.nl"
|
16
15
|
s.require_paths = ["src/ruby_supportlib"]
|
17
16
|
s.add_dependency 'rake', '>= 0.8.1'
|
18
17
|
s.add_dependency 'rack'
|
18
|
+
s.add_dependency 'etc'
|
19
19
|
s.files = Dir[*PhusionPassenger::Packaging::GLOB] -
|
20
20
|
Dir[*PhusionPassenger::Packaging::EXCLUDE_GLOB]
|
21
21
|
s.executables = PhusionPassenger::Packaging::USER_EXECUTABLES +
|
File without changes
|
File without changes
|
File without changes
|
@@ -27,11 +27,13 @@ passenger_user_switching off;
|
|
27
27
|
<%= nginx_http_option(:python) %>
|
28
28
|
<%= nginx_http_option(:nodejs) %>
|
29
29
|
<%= nginx_http_option(:log_level) %>
|
30
|
+
<%= nginx_http_option(:disable_log_prefix) %>
|
30
31
|
<%= nginx_http_option(:max_pool_size) %>
|
31
32
|
<%= nginx_http_option(:pool_idle_time) %>
|
32
33
|
<%= nginx_http_option(:max_preloader_idle_time) %>
|
33
34
|
<%= nginx_http_option(:turbocaching) %>
|
34
35
|
<%= nginx_http_option(:instance_registry_dir) %>
|
36
|
+
<%= nginx_http_option(:spawn_dir) %>
|
35
37
|
<%= nginx_http_option(:disable_security_update_check) %>
|
36
38
|
<%= nginx_http_option(:security_update_check_proxy) %>
|
37
39
|
<%= nginx_http_option(:disable_anonymous_telemetry) %>
|
@@ -48,6 +48,7 @@ passenger_enabled on;
|
|
48
48
|
<%= nginx_option(app, :restart_dir) %>
|
49
49
|
<%= nginx_option(app, :sticky_sessions) %>
|
50
50
|
<%= nginx_option(app, :sticky_sessions_cookie_name) %>
|
51
|
+
<%= nginx_option(app, :sticky_sessions_cookie_attributes) %>
|
51
52
|
<%= nginx_option(app, :vary_turbocache_by_cookie) %>
|
52
53
|
<%= nginx_option(app, :meteor_app_settings) %>
|
53
54
|
<%= nginx_option(app, :load_shell_envvars) %>
|
@@ -305,7 +305,7 @@ Group::detachedProcessesCheckerMain(GroupPtr self) {
|
|
305
305
|
while (true) {
|
306
306
|
assert(detachedProcessesCheckerActive);
|
307
307
|
|
308
|
-
if (getLifeStatus() == SHUT_DOWN || this_thread::interruption_requested()) {
|
308
|
+
if (getLifeStatus() == SHUT_DOWN || boost::this_thread::interruption_requested()) {
|
309
309
|
UPDATE_TRACE_POINT();
|
310
310
|
P_DEBUG("Stopping detached processes checker");
|
311
311
|
detachedProcessesCheckerActive = false;
|
@@ -260,6 +260,7 @@ Group::inspectConfigInAdminPanelFormat(Json::Value &result) const {
|
|
260
260
|
result["abort_websockets_on_process_shutdown"] = VAL(options.abortWebsocketsOnProcessShutdown);
|
261
261
|
result["force_max_concurrent_requests_per_process"] = VAL(options.forceMaxConcurrentRequestsPerProcess, -1);
|
262
262
|
result["restart_dir"] = NON_EMPTY_SVAL(options.restartDir);
|
263
|
+
result["sticky_sessions_cookie_attributes"] = SVAL(options.stickySessionsCookieAttributes, DEFAULT_STICKY_SESSIONS_COOKIE_ATTRIBUTES);
|
263
264
|
|
264
265
|
if (!options.environmentVariables.empty()) {
|
265
266
|
DynamicBuffer envvarsData(options.environmentVariables.size() * 3 / 4);
|
@@ -115,6 +115,8 @@ private:
|
|
115
115
|
result.push_back(&options.hostName);
|
116
116
|
result.push_back(&options.uri);
|
117
117
|
|
118
|
+
result.push_back(&options.stickySessionsCookieAttributes);
|
119
|
+
|
118
120
|
return result;
|
119
121
|
}
|
120
122
|
|
@@ -353,6 +355,12 @@ public:
|
|
353
355
|
*/
|
354
356
|
bool abortWebsocketsOnProcessShutdown;
|
355
357
|
|
358
|
+
/**
|
359
|
+
* The attributes to use for the sticky session cookie.
|
360
|
+
* Values should validate against the regex: ([\w]+(=[\w]+)?; )*
|
361
|
+
*/
|
362
|
+
StaticString stickySessionsCookieAttributes;
|
363
|
+
|
356
364
|
/*-----------------*/
|
357
365
|
|
358
366
|
|
@@ -453,6 +461,7 @@ public:
|
|
453
461
|
maxOutOfBandWorkInstances(1),
|
454
462
|
maxRequestQueueSize(DEFAULT_MAX_REQUEST_QUEUE_SIZE),
|
455
463
|
abortWebsocketsOnProcessShutdown(true),
|
464
|
+
stickySessionsCookieAttributes(DEFAULT_STICKY_SESSIONS_COOKIE_ATTRIBUTES, sizeof(DEFAULT_STICKY_SESSIONS_COOKIE_ATTRIBUTES) - 1),
|
456
465
|
|
457
466
|
stickySessionId(0),
|
458
467
|
statThrottleRate(DEFAULT_STAT_THROTTLE_RATE),
|
@@ -582,6 +591,7 @@ public:
|
|
582
591
|
appendKeyValue3(vec, "max_processes", maxProcesses);
|
583
592
|
appendKeyValue2(vec, "max_preloader_idle_time", maxPreloaderIdleTime);
|
584
593
|
appendKeyValue3(vec, "max_out_of_band_work_instances", maxOutOfBandWorkInstances);
|
594
|
+
appendKeyValue (vec, "sticky_sessions_cookie_attributes", stickySessionsCookieAttributes);
|
585
595
|
}
|
586
596
|
|
587
597
|
/*********************************/
|
@@ -55,7 +55,7 @@ Pool::garbageCollect(PoolPtr self) {
|
|
55
55
|
self->garbageCollectionCond.timed_wait(lock,
|
56
56
|
posix_time::seconds(5));
|
57
57
|
}
|
58
|
-
while (!this_thread::interruption_requested()) {
|
58
|
+
while (!boost::this_thread::interruption_requested()) {
|
59
59
|
try {
|
60
60
|
UPDATE_TRACE_POINT();
|
61
61
|
unsigned long long sleepTime = self->realGarbageCollect();
|
@@ -202,7 +202,7 @@ Pool::toXml(const ToXmlOptions &options, bool lock) const {
|
|
202
202
|
throw SecurityException("Operation unauthorized");
|
203
203
|
}
|
204
204
|
|
205
|
-
result << "<?xml version=\"1.0\" encoding=\"
|
205
|
+
result << "<?xml version=\"1.0\" encoding=\"iso-8859-1\" ?>\n";
|
206
206
|
result << "<info version=\"3\">";
|
207
207
|
|
208
208
|
result << "<passenger_version>" << PASSENGER_VERSION << "</passenger_version>";
|
data/src/agent/Core/Config.h
CHANGED
@@ -135,9 +135,14 @@ using namespace std;
|
|
135
135
|
* default_sticky_sessions boolean - default(false)
|
136
136
|
* default_sticky_sessions_cookie_name string - default("_passenger_route")
|
137
137
|
* default_user string - default("nobody")
|
138
|
+
* disable_log_prefix boolean - default(false)
|
138
139
|
* file_descriptor_log_target any - -
|
139
140
|
* file_descriptor_ulimit unsigned integer - default(0),read_only
|
140
141
|
* graceful_exit boolean - default(true)
|
142
|
+
* hook_attached_process string - read_only
|
143
|
+
* hook_detached_process string - read_only
|
144
|
+
* hook_queue_full_error string - read_only
|
145
|
+
* hook_spawn_failed string - read_only
|
141
146
|
* instance_dir string - read_only
|
142
147
|
* integration_mode string - default("standalone")
|
143
148
|
* log_level string - default("notice")
|
@@ -157,12 +162,13 @@ using namespace std;
|
|
157
162
|
* security_update_checker_interval unsigned integer - default(86400)
|
158
163
|
* security_update_checker_proxy_url string - -
|
159
164
|
* security_update_checker_url string - default("https://securitycheck.phusionpassenger.com/v1/check.json")
|
160
|
-
* server_software string - default("Phusion_Passenger/
|
165
|
+
* server_software string - default("Phusion_Passenger/6.0.5")
|
161
166
|
* show_version_in_header boolean - default(true)
|
162
167
|
* single_app_mode_app_root string - default,read_only
|
163
168
|
* single_app_mode_app_start_command string - read_only
|
164
169
|
* single_app_mode_app_type string - read_only
|
165
170
|
* single_app_mode_startup_file string - read_only
|
171
|
+
* spawn_dir string required read_only
|
166
172
|
* standalone_engine string - default
|
167
173
|
* stat_throttle_rate unsigned integer - default(10)
|
168
174
|
* telemetry_collector_ca_certificate_path string - -
|
@@ -475,6 +481,7 @@ public:
|
|
475
481
|
overrideWithDynamicDefault("default_server_port", UINT_TYPE, OPTIONAL, getDefaultServerPort);
|
476
482
|
|
477
483
|
add("passenger_root", STRING_TYPE, REQUIRED | READ_ONLY);
|
484
|
+
add("spawn_dir", STRING_TYPE, REQUIRED | READ_ONLY);
|
478
485
|
add("config_manifest", OBJECT_TYPE, OPTIONAL | READ_ONLY);
|
479
486
|
add("pid_file", STRING_TYPE, OPTIONAL | READ_ONLY);
|
480
487
|
add("web_server_version", STRING_TYPE, OPTIONAL | READ_ONLY);
|
@@ -491,6 +498,11 @@ public:
|
|
491
498
|
add("controller_cpu_affine", BOOL_TYPE, OPTIONAL | READ_ONLY, false);
|
492
499
|
add("file_descriptor_ulimit", UINT_TYPE, OPTIONAL | READ_ONLY, 0);
|
493
500
|
|
501
|
+
add("hook_attached_process", STRING_TYPE, OPTIONAL | READ_ONLY);
|
502
|
+
add("hook_detached_process", STRING_TYPE, OPTIONAL | READ_ONLY);
|
503
|
+
add("hook_spawn_failed", STRING_TYPE, OPTIONAL | READ_ONLY);
|
504
|
+
add("hook_queue_full_error", STRING_TYPE, OPTIONAL | READ_ONLY);
|
505
|
+
|
494
506
|
addValidator(validateMultiAppMode);
|
495
507
|
addValidator(boost::bind(validateSingleAppMode, boost::placeholders::_1,
|
496
508
|
wrapperRegistry, boost::placeholders::_2));
|
data/src/agent/Core/Controller.h
CHANGED
@@ -123,6 +123,7 @@ private:
|
|
123
123
|
HashedStaticString PASSENGER_SHOW_VERSION_IN_HEADER;
|
124
124
|
HashedStaticString PASSENGER_STICKY_SESSIONS;
|
125
125
|
HashedStaticString PASSENGER_STICKY_SESSIONS_COOKIE_NAME;
|
126
|
+
HashedStaticString PASSENGER_STICKY_SESSIONS_COOKIE_ATTRIBUTES;
|
126
127
|
HashedStaticString PASSENGER_REQUEST_OOB_WORK;
|
127
128
|
HashedStaticString REMOTE_ADDR;
|
128
129
|
HashedStaticString REMOTE_PORT;
|
@@ -113,7 +113,7 @@ parseControllerBenchmarkMode(const StaticString &mode) {
|
|
113
113
|
* multi_app boolean - default(true),read_only
|
114
114
|
* request_freelist_limit unsigned integer - default(1024)
|
115
115
|
* response_buffer_high_watermark unsigned integer - default(134217728)
|
116
|
-
* server_software string - default("Phusion_Passenger/
|
116
|
+
* server_software string - default("Phusion_Passenger/6.0.5")
|
117
117
|
* show_version_in_header boolean - default(true)
|
118
118
|
* start_reading_after_accept boolean - default(true)
|
119
119
|
* stat_throttle_rate unsigned integer - default(10)
|
@@ -154,6 +154,7 @@ private:
|
|
154
154
|
add("default_server_port", UINT_TYPE, REQUIRED);
|
155
155
|
add("default_sticky_sessions", BOOL_TYPE, OPTIONAL, false);
|
156
156
|
add("default_sticky_sessions_cookie_name", STRING_TYPE, OPTIONAL, DEFAULT_STICKY_SESSIONS_COOKIE_NAME);
|
157
|
+
add("default_sticky_sessions_cookie_attributes", STRING_TYPE, OPTIONAL, DEFAULT_STICKY_SESSIONS_COOKIE_ATTRIBUTES);
|
157
158
|
add("server_software", STRING_TYPE, OPTIONAL, SERVER_TOKEN_NAME "/" PASSENGER_VERSION);
|
158
159
|
add("vary_turbocache_by_cookie", STRING_TYPE, OPTIONAL);
|
159
160
|
|
@@ -419,6 +420,7 @@ public:
|
|
419
420
|
StaticString defaultServerPort;
|
420
421
|
StaticString serverSoftware;
|
421
422
|
StaticString defaultStickySessionsCookieName;
|
423
|
+
StaticString defaultStickySessionsCookieAttributes;
|
422
424
|
StaticString defaultVaryTurbocacheByCookie;
|
423
425
|
|
424
426
|
StaticString defaultFriendlyErrorPages;
|
@@ -451,6 +453,7 @@ public:
|
|
451
453
|
defaultServerPort(psg_pstrdup(pool, config["default_server_port"].asString())),
|
452
454
|
serverSoftware(psg_pstrdup(pool, config["server_software"].asString())),
|
453
455
|
defaultStickySessionsCookieName(psg_pstrdup(pool, config["default_sticky_sessions_cookie_name"].asString())),
|
456
|
+
defaultStickySessionsCookieAttributes(psg_pstrdup(pool, config["default_sticky_sessions_cookie_attributes"].asString())),
|
454
457
|
defaultVaryTurbocacheByCookie(psg_pstrdup(pool, config["vary_turbocache_by_cookie"].asString())),
|
455
458
|
|
456
459
|
defaultFriendlyErrorPages(psg_pstrdup(pool, config["default_friendly_error_pages"].asString())),
|
@@ -768,6 +768,19 @@ Controller::constructHeaderBuffersForResponse(Request *req, struct iovec *buffer
|
|
768
768
|
dataSize += baseURI.size();
|
769
769
|
INC_BUFFER_ITER(i);
|
770
770
|
|
771
|
+
|
772
|
+
StaticString stickyAttributes = req->options.stickySessionsCookieAttributes;
|
773
|
+
if (stickyAttributes.size() > 0) {
|
774
|
+
PUSH_STATIC_BUFFER("; ");
|
775
|
+
if (buffers != NULL) {
|
776
|
+
BEGIN_PUSH_NEXT_BUFFER();
|
777
|
+
buffers[i].iov_base = (void *) stickyAttributes.data();
|
778
|
+
buffers[i].iov_len = stickyAttributes.size();
|
779
|
+
}
|
780
|
+
dataSize += stickyAttributes.size();
|
781
|
+
INC_BUFFER_ITER(i);
|
782
|
+
}
|
783
|
+
|
771
784
|
PUSH_STATIC_BUFFER("\r\n");
|
772
785
|
}
|
773
786
|
|
@@ -153,6 +153,7 @@ Controller::initializePoolOptions(Client *client, Request *req, RequestAnalysis
|
|
153
153
|
|
154
154
|
if (options != NULL) {
|
155
155
|
req->options = **options;
|
156
|
+
fillPoolOption(req, req->options.baseURI, "!~SCRIPT_NAME");
|
156
157
|
} else {
|
157
158
|
createNewPoolOptions(client, req, hAppGroupName);
|
158
159
|
}
|
@@ -202,6 +203,7 @@ Controller::fillPoolOptionsFromConfigCaches(Options &options,
|
|
202
203
|
options.loadShellEnvvars = requestConfig->defaultLoadShellEnvvars;
|
203
204
|
options.statThrottleRate = mainConfig.statThrottleRate;
|
204
205
|
options.maxRequests = requestConfig->defaultMaxRequests;
|
206
|
+
options.stickySessionsCookieAttributes = requestConfig->defaultStickySessionsCookieAttributes;
|
205
207
|
|
206
208
|
/******************************/
|
207
209
|
}
|
@@ -377,6 +379,7 @@ Controller::createNewPoolOptions(Client *client, Request *req,
|
|
377
379
|
fillPoolOption(req, options.fileDescriptorUlimit, "!~PASSENGER_APP_FILE_DESCRIPTOR_ULIMIT");
|
378
380
|
fillPoolOption(req, options.raiseInternalError, "!~PASSENGER_RAISE_INTERNAL_ERROR");
|
379
381
|
fillPoolOption(req, options.lveMinUid, "!~PASSENGER_LVE_MIN_UID");
|
382
|
+
fillPoolOption(req, options.stickySessionsCookieAttributes, "!~PASSENGER_STICKY_SESSIONS_COOKIE_ATTRIBUTES");
|
380
383
|
|
381
384
|
// maxProcesses is configured per-application by the (Enterprise) maxInstances option (and thus passed
|
382
385
|
// via request headers). In OSS the max processes can also be configured, but on a global level
|
@@ -70,6 +70,7 @@ Controller::preinitialize() {
|
|
70
70
|
PASSENGER_SHOW_VERSION_IN_HEADER = "!~PASSENGER_SHOW_VERSION_IN_HEADER";
|
71
71
|
PASSENGER_STICKY_SESSIONS = "!~PASSENGER_STICKY_SESSIONS";
|
72
72
|
PASSENGER_STICKY_SESSIONS_COOKIE_NAME = "!~PASSENGER_STICKY_SESSIONS_COOKIE_NAME";
|
73
|
+
PASSENGER_STICKY_SESSIONS_COOKIE_ATTRIBUTES = "!~PASSENGER_STICKY_SESSIONS_COOKIE_ATTRIBUTES";
|
73
74
|
PASSENGER_REQUEST_OOB_WORK = "!~Request-OOB-Work";
|
74
75
|
REMOTE_ADDR = "!~REMOTE_ADDR";
|
75
76
|
REMOTE_PORT = "!~REMOTE_PORT";
|
data/src/agent/Core/CoreMain.cpp
CHANGED
@@ -714,6 +714,7 @@ initializeNonPrivilegedWorkingObjects() {
|
|
714
714
|
wo->spawningKitContext->randomGenerator = wo->randomGenerator;
|
715
715
|
wo->spawningKitContext->integrationMode = coreConfig->get("integration_mode").asString();
|
716
716
|
wo->spawningKitContext->instanceDir = coreConfig->get("instance_dir").asString();
|
717
|
+
wo->spawningKitContext->spawnDir = coreConfig->get("spawn_dir").asString();
|
717
718
|
if (!wo->spawningKitContext->instanceDir.empty()) {
|
718
719
|
wo->spawningKitContext->instanceDir = absolutizePath(
|
719
720
|
wo->spawningKitContext->instanceDir);
|
@@ -912,7 +913,7 @@ initializeAdminPanelConnector() {
|
|
912
913
|
TRACE_POINT();
|
913
914
|
WorkingObjects &wo = *workingObjects;
|
914
915
|
|
915
|
-
if (coreConfig->get("admin_panel_url").
|
916
|
+
if (coreConfig->get("admin_panel_url").empty()) {
|
916
917
|
return;
|
917
918
|
}
|
918
919
|
|
@@ -173,6 +173,9 @@ coreUsage() {
|
|
173
173
|
printf(" --sticky-sessions-cookie-name NAME\n");
|
174
174
|
printf(" Cookie name to use for sticky sessions.\n");
|
175
175
|
printf(" Default: " DEFAULT_STICKY_SESSIONS_COOKIE_NAME "\n");
|
176
|
+
printf(" --sticky-sessions-cookie-attributes 'NAME1=VALUE1; NAME2'\n");
|
177
|
+
printf(" The attributes to use for the sticky session cookie.\n");
|
178
|
+
printf(" Default: " DEFAULT_STICKY_SESSIONS_COOKIE_ATTRIBUTES "\n");
|
176
179
|
printf(" --vary-turbocache-by-cookie NAME\n");
|
177
180
|
printf(" Vary the turbocache by the cookie of the given name\n");
|
178
181
|
printf(" --disable-turbocaching\n");
|
@@ -123,7 +123,7 @@ private:
|
|
123
123
|
|
124
124
|
void createWorkDir() {
|
125
125
|
TRACE_POINT();
|
126
|
-
session.workDir.reset(new HandshakeWorkDir());
|
126
|
+
session.workDir.reset(new HandshakeWorkDir(context->spawnDir));
|
127
127
|
|
128
128
|
session.envDumpDir = session.workDir->getPath() + "/envdump";
|
129
129
|
makeDirTree(session.envDumpDir,
|
@@ -54,12 +54,15 @@ private:
|
|
54
54
|
string path;
|
55
55
|
|
56
56
|
public:
|
57
|
-
HandshakeWorkDir() {
|
57
|
+
HandshakeWorkDir(const std::string& spawn_dir) {
|
58
58
|
char buf[PATH_MAX + 1];
|
59
59
|
char *pos = buf;
|
60
60
|
const char *end = buf + PATH_MAX;
|
61
61
|
|
62
|
-
|
62
|
+
if (spawn_dir.empty())
|
63
|
+
throw RuntimeException("spawn_dir is not set");
|
64
|
+
pos = appendData(pos, end, spawn_dir.c_str());
|
65
|
+
|
63
66
|
pos = appendData(pos, end, "/passenger.spawn.XXXXXXXXXX");
|
64
67
|
*pos = '\0';
|
65
68
|
|
data/src/agent/Watchdog/Config.h
CHANGED
@@ -122,12 +122,17 @@ using namespace std;
|
|
122
122
|
* default_sticky_sessions boolean - default(false)
|
123
123
|
* default_sticky_sessions_cookie_name string - default("_passenger_route")
|
124
124
|
* default_user string - default("nobody")
|
125
|
+
* disable_log_prefix boolean - default(false)
|
125
126
|
* file_descriptor_log_target any - -
|
126
127
|
* graceful_exit boolean - default(true)
|
127
128
|
* hook_after_watchdog_initialization string - -
|
128
129
|
* hook_after_watchdog_shutdown string - -
|
130
|
+
* hook_attached_process string - read_only
|
129
131
|
* hook_before_watchdog_initialization string - -
|
130
132
|
* hook_before_watchdog_shutdown string - -
|
133
|
+
* hook_detached_process string - read_only
|
134
|
+
* hook_queue_full_error string - read_only
|
135
|
+
* hook_spawn_failed string - read_only
|
131
136
|
* instance_registry_dir string - default,read_only
|
132
137
|
* integration_mode string - default("standalone")
|
133
138
|
* log_level string - default("notice")
|
@@ -146,13 +151,14 @@ using namespace std;
|
|
146
151
|
* security_update_checker_interval unsigned integer - default(86400)
|
147
152
|
* security_update_checker_proxy_url string - -
|
148
153
|
* security_update_checker_url string - default("https://securitycheck.phusionpassenger.com/v1/check.json")
|
149
|
-
* server_software string - default("Phusion_Passenger/
|
154
|
+
* server_software string - default("Phusion_Passenger/6.0.5")
|
150
155
|
* setsid boolean - default(false)
|
151
156
|
* show_version_in_header boolean - default(true)
|
152
157
|
* single_app_mode_app_root string - default,read_only
|
153
158
|
* single_app_mode_app_start_command string - read_only
|
154
159
|
* single_app_mode_app_type string - read_only
|
155
160
|
* single_app_mode_startup_file string - read_only
|
161
|
+
* spawn_dir string - default,read_only
|
156
162
|
* standalone_engine string - default
|
157
163
|
* startup_report_file string - -
|
158
164
|
* stat_throttle_rate unsigned integer - default(10)
|
@@ -246,6 +252,10 @@ private:
|
|
246
252
|
return getSystemTempDir();
|
247
253
|
}
|
248
254
|
|
255
|
+
static Json::Value getDefaultSpawnDir(const ConfigKit::Store &store) {
|
256
|
+
return getSystemTempDir();
|
257
|
+
}
|
258
|
+
|
249
259
|
static void validateAddresses(const ConfigKit::Store &config, vector<ConfigKit::Error> &errors) {
|
250
260
|
typedef ConfigKit::Error Error;
|
251
261
|
|
@@ -258,6 +268,7 @@ private:
|
|
258
268
|
static Json::Value normalizePaths(const Json::Value &effectiveValues) {
|
259
269
|
Json::Value updates;
|
260
270
|
updates["instance_registry_dir"] = absolutizePath(effectiveValues["instance_registry_dir"].asString());
|
271
|
+
updates["spawn_dir"] = absolutizePath(effectiveValues["spawn_dir"].asString());
|
261
272
|
if (!effectiveValues["watchdog_pid_file"].isNull()) {
|
262
273
|
updates["watchdog_pid_file"] = absolutizePath(effectiveValues["watchdog_pid_file"].asString());
|
263
274
|
}
|
@@ -334,6 +345,8 @@ public:
|
|
334
345
|
OPTIONAL | READ_ONLY | CACHE_DEFAULT_VALUE, getDefaultUser);
|
335
346
|
addWithDynamicDefault("instance_registry_dir", STRING_TYPE,
|
336
347
|
OPTIONAL | READ_ONLY | CACHE_DEFAULT_VALUE, getDefaultInstanceRegistryDir);
|
348
|
+
addWithDynamicDefault("spawn_dir", STRING_TYPE,
|
349
|
+
OPTIONAL | READ_ONLY | CACHE_DEFAULT_VALUE, getDefaultSpawnDir);
|
337
350
|
|
338
351
|
add("hook_before_watchdog_initialization", STRING_TYPE, OPTIONAL);
|
339
352
|
add("hook_after_watchdog_initialization", STRING_TYPE, OPTIONAL);
|
@@ -654,6 +654,9 @@ usage() {
|
|
654
654
|
printf(" --instance-registry-dir Directory to register instance into.\n");
|
655
655
|
printf(" Default: %s\n", getSystemTempDir());
|
656
656
|
printf("\n");
|
657
|
+
printf(" --spawn-dir Directory for spawn handshakes.\n");
|
658
|
+
printf(" Default: %s\n", getSystemTempDir());
|
659
|
+
printf("\n");
|
657
660
|
printf(" --no-user-switching Disables user switching support [A]\n");
|
658
661
|
printf(" --default-user NAME Default user to start apps as, when user\n");
|
659
662
|
printf(" switching is enabled. Default: " DEFAULT_WEB_APP_USER "\n");
|
@@ -774,6 +777,9 @@ parseOptions(int argc, const char *argv[], ConfigKit::Store &config) {
|
|
774
777
|
} else if (p.isValueFlag(argc, i, argv[i], '\0', "--instance-registry-dir")) {
|
775
778
|
updates["instance_registry_dir"] = argv[i + 1];
|
776
779
|
i += 2;
|
780
|
+
} else if (p.isValueFlag(argc, i, argv[i], '\0', "--spawn-dir")) {
|
781
|
+
updates["spawn_dir"] = argv[i + 1];
|
782
|
+
i += 2;
|
777
783
|
} else if (p.isFlag(argv[i], '\0', "--no-user-switching")) {
|
778
784
|
updates["user_switching"] = false;
|
779
785
|
i++;
|
@@ -1111,6 +1117,7 @@ initializeWorkingObjects(const WorkingObjectsPtr &wo, InstanceDirToucherPtr &ins
|
|
1111
1117
|
|
1112
1118
|
// check if path is safe
|
1113
1119
|
warnIfInstanceDirVulnerable(watchdogConfig->get("instance_registry_dir").asString());
|
1120
|
+
warnIfInstanceDirVulnerable(watchdogConfig->get("spawn_dir").asString());
|
1114
1121
|
|
1115
1122
|
wo->instanceDir = boost::make_shared<InstanceDirectory>(instanceOptions,
|
1116
1123
|
watchdogConfig->get("instance_registry_dir").asString());
|