passenger 6.0.1 → 6.0.6
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 +145 -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 +9 -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 +14 -1
- data/src/agent/Core/Controller.h +1 -0
- data/src/agent/Core/Controller/Config.h +5 -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/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 +15 -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 +20 -19
- 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 +6 -2
- 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 +42 -8
- 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,10 +10,18 @@ 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"]
|
16
|
+
s.metadata = {
|
17
|
+
"bug_tracker_uri" => "https://github.com/phusion/passenger/issues",
|
18
|
+
"changelog_uri" => "https://github.com/phusion/passenger/blob/stable-#{PhusionPassenger::VERSION_STRING}/CHANGELOG",
|
19
|
+
"documentation_uri" => "https://www.phusionpassenger.com/docs/",
|
20
|
+
"homepage_uri" => "https://www.phusionpassenger.com/",
|
21
|
+
"source_code_uri" => "https://github.com/phusion/passenger",
|
22
|
+
"mailing_list_uri" => "https://www.phusionpassenger.com/contact",
|
23
|
+
"wiki_uri" => "https://github.com/phusion/passenger/wiki"
|
24
|
+
}
|
17
25
|
s.add_dependency 'rake', '>= 0.8.1'
|
18
26
|
s.add_dependency 'rack'
|
19
27
|
s.files = Dir[*PhusionPassenger::Packaging::GLOB] -
|
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
@@ -133,11 +133,17 @@ using namespace std;
|
|
133
133
|
* default_server_port unsigned integer - default
|
134
134
|
* default_spawn_method string - default("smart")
|
135
135
|
* default_sticky_sessions boolean - default(false)
|
136
|
+
* default_sticky_sessions_cookie_attributes string - default("SameSite=Lax; Secure;")
|
136
137
|
* default_sticky_sessions_cookie_name string - default("_passenger_route")
|
137
138
|
* default_user string - default("nobody")
|
139
|
+
* disable_log_prefix boolean - default(false)
|
138
140
|
* file_descriptor_log_target any - -
|
139
141
|
* file_descriptor_ulimit unsigned integer - default(0),read_only
|
140
142
|
* graceful_exit boolean - default(true)
|
143
|
+
* hook_attached_process string - read_only
|
144
|
+
* hook_detached_process string - read_only
|
145
|
+
* hook_queue_full_error string - read_only
|
146
|
+
* hook_spawn_failed string - read_only
|
141
147
|
* instance_dir string - read_only
|
142
148
|
* integration_mode string - default("standalone")
|
143
149
|
* log_level string - default("notice")
|
@@ -157,12 +163,13 @@ using namespace std;
|
|
157
163
|
* security_update_checker_interval unsigned integer - default(86400)
|
158
164
|
* security_update_checker_proxy_url string - -
|
159
165
|
* security_update_checker_url string - default("https://securitycheck.phusionpassenger.com/v1/check.json")
|
160
|
-
* server_software string - default("Phusion_Passenger/6.0.
|
166
|
+
* server_software string - default("Phusion_Passenger/6.0.6")
|
161
167
|
* show_version_in_header boolean - default(true)
|
162
168
|
* single_app_mode_app_root string - default,read_only
|
163
169
|
* single_app_mode_app_start_command string - read_only
|
164
170
|
* single_app_mode_app_type string - read_only
|
165
171
|
* single_app_mode_startup_file string - read_only
|
172
|
+
* spawn_dir string required read_only
|
166
173
|
* standalone_engine string - default
|
167
174
|
* stat_throttle_rate unsigned integer - default(10)
|
168
175
|
* telemetry_collector_ca_certificate_path string - -
|
@@ -475,6 +482,7 @@ public:
|
|
475
482
|
overrideWithDynamicDefault("default_server_port", UINT_TYPE, OPTIONAL, getDefaultServerPort);
|
476
483
|
|
477
484
|
add("passenger_root", STRING_TYPE, REQUIRED | READ_ONLY);
|
485
|
+
add("spawn_dir", STRING_TYPE, REQUIRED | READ_ONLY);
|
478
486
|
add("config_manifest", OBJECT_TYPE, OPTIONAL | READ_ONLY);
|
479
487
|
add("pid_file", STRING_TYPE, OPTIONAL | READ_ONLY);
|
480
488
|
add("web_server_version", STRING_TYPE, OPTIONAL | READ_ONLY);
|
@@ -491,6 +499,11 @@ public:
|
|
491
499
|
add("controller_cpu_affine", BOOL_TYPE, OPTIONAL | READ_ONLY, false);
|
492
500
|
add("file_descriptor_ulimit", UINT_TYPE, OPTIONAL | READ_ONLY, 0);
|
493
501
|
|
502
|
+
add("hook_attached_process", STRING_TYPE, OPTIONAL | READ_ONLY);
|
503
|
+
add("hook_detached_process", STRING_TYPE, OPTIONAL | READ_ONLY);
|
504
|
+
add("hook_spawn_failed", STRING_TYPE, OPTIONAL | READ_ONLY);
|
505
|
+
add("hook_queue_full_error", STRING_TYPE, OPTIONAL | READ_ONLY);
|
506
|
+
|
494
507
|
addValidator(validateMultiAppMode);
|
495
508
|
addValidator(boost::bind(validateSingleAppMode, boost::placeholders::_1,
|
496
509
|
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;
|
@@ -104,6 +104,7 @@ parseControllerBenchmarkMode(const StaticString &mode) {
|
|
104
104
|
* default_server_port unsigned integer required -
|
105
105
|
* default_spawn_method string - default("smart")
|
106
106
|
* default_sticky_sessions boolean - default(false)
|
107
|
+
* default_sticky_sessions_cookie_attributes string - default("SameSite=Lax; Secure;")
|
107
108
|
* default_sticky_sessions_cookie_name string - default("_passenger_route")
|
108
109
|
* default_user string - default("nobody")
|
109
110
|
* graceful_exit boolean - default(true)
|
@@ -113,7 +114,7 @@ parseControllerBenchmarkMode(const StaticString &mode) {
|
|
113
114
|
* multi_app boolean - default(true),read_only
|
114
115
|
* request_freelist_limit unsigned integer - default(1024)
|
115
116
|
* response_buffer_high_watermark unsigned integer - default(134217728)
|
116
|
-
* server_software string - default("Phusion_Passenger/6.0.
|
117
|
+
* server_software string - default("Phusion_Passenger/6.0.6")
|
117
118
|
* show_version_in_header boolean - default(true)
|
118
119
|
* start_reading_after_accept boolean - default(true)
|
119
120
|
* stat_throttle_rate unsigned integer - default(10)
|
@@ -154,6 +155,7 @@ private:
|
|
154
155
|
add("default_server_port", UINT_TYPE, REQUIRED);
|
155
156
|
add("default_sticky_sessions", BOOL_TYPE, OPTIONAL, false);
|
156
157
|
add("default_sticky_sessions_cookie_name", STRING_TYPE, OPTIONAL, DEFAULT_STICKY_SESSIONS_COOKIE_NAME);
|
158
|
+
add("default_sticky_sessions_cookie_attributes", STRING_TYPE, OPTIONAL, DEFAULT_STICKY_SESSIONS_COOKIE_ATTRIBUTES);
|
157
159
|
add("server_software", STRING_TYPE, OPTIONAL, SERVER_TOKEN_NAME "/" PASSENGER_VERSION);
|
158
160
|
add("vary_turbocache_by_cookie", STRING_TYPE, OPTIONAL);
|
159
161
|
|
@@ -419,6 +421,7 @@ public:
|
|
419
421
|
StaticString defaultServerPort;
|
420
422
|
StaticString serverSoftware;
|
421
423
|
StaticString defaultStickySessionsCookieName;
|
424
|
+
StaticString defaultStickySessionsCookieAttributes;
|
422
425
|
StaticString defaultVaryTurbocacheByCookie;
|
423
426
|
|
424
427
|
StaticString defaultFriendlyErrorPages;
|
@@ -451,6 +454,7 @@ public:
|
|
451
454
|
defaultServerPort(psg_pstrdup(pool, config["default_server_port"].asString())),
|
452
455
|
serverSoftware(psg_pstrdup(pool, config["server_software"].asString())),
|
453
456
|
defaultStickySessionsCookieName(psg_pstrdup(pool, config["default_sticky_sessions_cookie_name"].asString())),
|
457
|
+
defaultStickySessionsCookieAttributes(psg_pstrdup(pool, config["default_sticky_sessions_cookie_attributes"].asString())),
|
454
458
|
defaultVaryTurbocacheByCookie(psg_pstrdup(pool, config["vary_turbocache_by_cookie"].asString())),
|
455
459
|
|
456
460
|
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
@@ -120,14 +120,20 @@ using namespace std;
|
|
120
120
|
* default_server_port unsigned integer - default
|
121
121
|
* default_spawn_method string - default("smart")
|
122
122
|
* default_sticky_sessions boolean - default(false)
|
123
|
+
* default_sticky_sessions_cookie_attributes string - default("SameSite=Lax; Secure;")
|
123
124
|
* default_sticky_sessions_cookie_name string - default("_passenger_route")
|
124
125
|
* default_user string - default("nobody")
|
126
|
+
* disable_log_prefix boolean - default(false)
|
125
127
|
* file_descriptor_log_target any - -
|
126
128
|
* graceful_exit boolean - default(true)
|
127
129
|
* hook_after_watchdog_initialization string - -
|
128
130
|
* hook_after_watchdog_shutdown string - -
|
131
|
+
* hook_attached_process string - read_only
|
129
132
|
* hook_before_watchdog_initialization string - -
|
130
133
|
* hook_before_watchdog_shutdown string - -
|
134
|
+
* hook_detached_process string - read_only
|
135
|
+
* hook_queue_full_error string - read_only
|
136
|
+
* hook_spawn_failed string - read_only
|
131
137
|
* instance_registry_dir string - default,read_only
|
132
138
|
* integration_mode string - default("standalone")
|
133
139
|
* log_level string - default("notice")
|
@@ -146,13 +152,14 @@ using namespace std;
|
|
146
152
|
* security_update_checker_interval unsigned integer - default(86400)
|
147
153
|
* security_update_checker_proxy_url string - -
|
148
154
|
* security_update_checker_url string - default("https://securitycheck.phusionpassenger.com/v1/check.json")
|
149
|
-
* server_software string - default("Phusion_Passenger/6.0.
|
155
|
+
* server_software string - default("Phusion_Passenger/6.0.6")
|
150
156
|
* setsid boolean - default(false)
|
151
157
|
* show_version_in_header boolean - default(true)
|
152
158
|
* single_app_mode_app_root string - default,read_only
|
153
159
|
* single_app_mode_app_start_command string - read_only
|
154
160
|
* single_app_mode_app_type string - read_only
|
155
161
|
* single_app_mode_startup_file string - read_only
|
162
|
+
* spawn_dir string - default,read_only
|
156
163
|
* standalone_engine string - default
|
157
164
|
* startup_report_file string - -
|
158
165
|
* stat_throttle_rate unsigned integer - default(10)
|
@@ -246,6 +253,10 @@ private:
|
|
246
253
|
return getSystemTempDir();
|
247
254
|
}
|
248
255
|
|
256
|
+
static Json::Value getDefaultSpawnDir(const ConfigKit::Store &store) {
|
257
|
+
return getSystemTempDir();
|
258
|
+
}
|
259
|
+
|
249
260
|
static void validateAddresses(const ConfigKit::Store &config, vector<ConfigKit::Error> &errors) {
|
250
261
|
typedef ConfigKit::Error Error;
|
251
262
|
|
@@ -258,6 +269,7 @@ private:
|
|
258
269
|
static Json::Value normalizePaths(const Json::Value &effectiveValues) {
|
259
270
|
Json::Value updates;
|
260
271
|
updates["instance_registry_dir"] = absolutizePath(effectiveValues["instance_registry_dir"].asString());
|
272
|
+
updates["spawn_dir"] = absolutizePath(effectiveValues["spawn_dir"].asString());
|
261
273
|
if (!effectiveValues["watchdog_pid_file"].isNull()) {
|
262
274
|
updates["watchdog_pid_file"] = absolutizePath(effectiveValues["watchdog_pid_file"].asString());
|
263
275
|
}
|
@@ -334,6 +346,8 @@ public:
|
|
334
346
|
OPTIONAL | READ_ONLY | CACHE_DEFAULT_VALUE, getDefaultUser);
|
335
347
|
addWithDynamicDefault("instance_registry_dir", STRING_TYPE,
|
336
348
|
OPTIONAL | READ_ONLY | CACHE_DEFAULT_VALUE, getDefaultInstanceRegistryDir);
|
349
|
+
addWithDynamicDefault("spawn_dir", STRING_TYPE,
|
350
|
+
OPTIONAL | READ_ONLY | CACHE_DEFAULT_VALUE, getDefaultSpawnDir);
|
337
351
|
|
338
352
|
add("hook_before_watchdog_initialization", STRING_TYPE, OPTIONAL);
|
339
353
|
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());
|