passenger 5.1.4 → 5.1.5
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of passenger might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/.editorconfig +9 -0
- data/CHANGELOG +9 -0
- data/build/cxx_tests.rb +11 -1
- data/build/documentation.rb +0 -32
- data/build/support/cxx_dependency_map.rb +602 -2
- data/build/test_basics.rb +3 -3
- data/dev/boost-patches/0001-Patch-boost-thread-so-that-oxt-thread-can-use-it.patch +48 -0
- data/dev/boost-patches/0002-Make-boost-thread_interrupted-derive-from-oxt-tracab.patch +33 -0
- data/dev/boost-patches/0003-Disable-a-Clang-pragma-to-prevent-warnings-on-OS-X.patch +25 -0
- data/dev/ci/README.md +121 -0
- data/dev/ci/lib/functions.sh +129 -0
- data/dev/ci/lib/set-container-envvars.sh +46 -0
- data/dev/ci/lib/setup-container.sh +43 -0
- data/dev/ci/run-tests-natively +24 -0
- data/dev/ci/run-tests-with-docker +42 -0
- data/dev/ci/scripts/debug-console-wrapper.sh +27 -0
- data/dev/ci/scripts/docker-entrypoint-stage2.sh +17 -0
- data/dev/ci/scripts/docker-entrypoint.sh +17 -0
- data/dev/ci/scripts/inituidgid +17 -0
- data/dev/ci/scripts/run-tests-natively-stage2.sh +17 -0
- data/dev/ci/scripts/setup-host-natively.sh +11 -0
- data/dev/ci/setup-host +50 -0
- data/dev/ci/tests/apache2/run +6 -0
- data/dev/ci/tests/apache2/setup +4 -0
- data/dev/ci/tests/cxx/run +9 -0
- data/dev/ci/tests/cxx/setup +4 -0
- data/dev/ci/tests/nginx-dynamic/run +20 -0
- data/dev/ci/tests/nginx-dynamic/setup +4 -0
- data/dev/ci/tests/nginx/run +5 -0
- data/dev/ci/tests/nginx/setup +4 -0
- data/dev/ci/tests/nodejs/run +4 -0
- data/dev/ci/tests/nodejs/setup +4 -0
- data/dev/ci/tests/ruby/run +4 -0
- data/dev/ci/tests/ruby/setup +4 -0
- data/dev/ci/tests/source-packaging/run +4 -0
- data/dev/ci/tests/source-packaging/setup +4 -0
- data/dev/ci/tests/standalone/run +4 -0
- data/dev/ci/tests/standalone/setup +4 -0
- data/dev/copy_boost_headers +8 -2
- data/src/agent/Core/ApiServer.h +11 -5
- data/src/agent/Core/Controller.h +12 -46
- data/src/agent/Core/Controller/CheckoutSession.cpp +1 -1
- data/src/agent/Core/Controller/Config.h +369 -0
- data/src/agent/Core/Controller/ForwardResponse.cpp +4 -4
- data/src/agent/Core/Controller/Hooks.cpp +15 -3
- data/src/agent/Core/Controller/Implementation.cpp +1 -1
- data/src/agent/Core/Controller/InitRequest.cpp +28 -39
- data/src/agent/Core/Controller/InitializationAndShutdown.cpp +25 -60
- data/src/agent/Core/Controller/InternalUtils.cpp +0 -16
- data/src/agent/Core/Controller/Miscellaneous.cpp +0 -17
- data/src/agent/Core/Controller/Request.h +2 -0
- data/src/agent/Core/Controller/SendRequest.cpp +4 -4
- data/src/agent/Core/Controller/{StateInspectionAndConfiguration.cpp → StateInspection.cpp} +0 -22
- data/src/agent/Core/Controller/TurboCaching.h +11 -10
- data/src/agent/Core/CoreMain.cpp +16 -6
- data/src/agent/Core/ResponseCache.h +3 -3
- data/src/agent/Core/SpawningKit/SmartSpawner.h +9 -3
- data/src/agent/Core/SpawningKit/Spawner.h +7 -3
- data/src/agent/UstRouter/ApiServer.h +3 -2
- data/src/agent/UstRouter/Controller.h +66 -32
- data/src/agent/UstRouter/UstRouterMain.cpp +10 -2
- data/src/agent/Watchdog/ApiServer.h +3 -2
- data/src/agent/Watchdog/WatchdogMain.cpp +3 -1
- data/src/apache2_module/ConfigurationCommands.cpp +1 -1
- data/src/cxx_supportlib/ConfigKit/Common.h +125 -0
- data/src/cxx_supportlib/ConfigKit/ConfigKit.h +34 -0
- data/src/cxx_supportlib/ConfigKit/README.md +895 -0
- data/src/cxx_supportlib/ConfigKit/Schema.h +331 -0
- data/src/cxx_supportlib/ConfigKit/Store.h +385 -0
- data/src/cxx_supportlib/ConfigKit/TableTranslator.h +185 -0
- data/src/cxx_supportlib/ConfigKit/Utils.h +141 -0
- data/src/cxx_supportlib/ConfigKit/VariantMapUtils.h +81 -0
- data/src/cxx_supportlib/Constants.h +1 -1
- data/src/cxx_supportlib/Crypto.cpp +2 -2
- data/src/cxx_supportlib/Logging.h +0 -35
- data/src/cxx_supportlib/ServerKit/HttpServer.h +35 -16
- data/src/cxx_supportlib/ServerKit/Server.h +65 -25
- data/src/cxx_supportlib/oxt/macros.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/replace.hpp +0 -2
- data/src/cxx_supportlib/vendor-modified/boost/array.hpp +53 -42
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_template.hpp +11 -5
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/bitwise_cast.hpp +13 -2
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_gcc_x86.hpp +23 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_msvc_x86.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/config.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/interlocked.hpp +8 -1
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_emulated.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_alpha.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_arm.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_atomic.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_ppc.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_sparc.hpp +6 -4
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_sync.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_x86.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_x86_dcas.hpp +28 -17
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_linux_arm.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_msvc_arm.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_msvc_x86.hpp +9 -4
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/platform.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/bind/arg.hpp +10 -3
- data/src/cxx_supportlib/vendor-modified/boost/bind/bind.hpp +90 -18
- data/src/cxx_supportlib/vendor-modified/boost/cerrno.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/chrono/duration.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/auto_link.hpp +8 -3
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/borland.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/clang.hpp +35 -6
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/codegear.hpp +2 -0
- 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 +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/compaq_cxx.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/cray.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/digitalmars.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc.hpp +19 -4
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc_xml.hpp +3 -1
- 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 +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/intel.hpp +29 -7
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/kai.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/metrowerks.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/mpw.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/nvcc.hpp +16 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/pathscale.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/pgi.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/sgi_mipspro.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/sunpro_cc.hpp +10 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/vacpp.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/visualc.hpp +44 -16
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/cygwin.hpp +1 -2
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/linux.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/select_compiler_config.hpp +21 -21
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/dinkumware.hpp +42 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcomo.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcpp.hpp +40 -7
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libstdcpp3.hpp +39 -6
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/modena.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/msl.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/roguewave.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/sgi.hpp +8 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/stlport.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/vacpp.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/suffix.hpp +33 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/adaptive_pool.hpp +0 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +0 -3
- data/src/cxx_supportlib/vendor-modified/boost/container/allocator_traits.hpp +34 -27
- data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +62 -26
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/addressof.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/advanced_insert_int.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/compare_functors.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/config_begin.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/construct_in_place.hpp +39 -5
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +49 -32
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/dispatch_uses_allocator.hpp +175 -7
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +223 -98
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_sorted.hpp +57 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterators.hpp +88 -41
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/mpl.hpp +7 -8
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/mutex.hpp +4 -9
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_alloc_holder.hpp +45 -18
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair.hpp +205 -26
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/tree.hpp +290 -181
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/value_init.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/variadic_templates_tools.hpp +24 -19
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/workaround.hpp +38 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/flat_map.hpp +320 -46
- data/src/cxx_supportlib/vendor-modified/boost/container/flat_set.hpp +91 -18
- data/src/cxx_supportlib/vendor-modified/boost/container/list.hpp +23 -19
- data/src/cxx_supportlib/vendor-modified/boost/container/map.hpp +491 -120
- data/src/cxx_supportlib/vendor-modified/boost/container/new_allocator.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/node_allocator.hpp +0 -3
- data/src/cxx_supportlib/vendor-modified/boost/container/node_handle.hpp +399 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/deque.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/flat_map.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/flat_set.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/list.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/map.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/set.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/slist.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/small_vector.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/stable_vector.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/string.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/vector.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/set.hpp +101 -20
- data/src/cxx_supportlib/vendor-modified/boost/container/slist.hpp +19 -14
- data/src/cxx_supportlib/vendor-modified/boost/container/small_vector.hpp +117 -59
- data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +8 -6
- data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +33 -28
- data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +414 -70
- data/src/cxx_supportlib/vendor-modified/boost/container/throw_exception.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/uses_allocator_fwd.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +134 -117
- data/src/cxx_supportlib/vendor-modified/boost/core/addressof.hpp +202 -99
- data/src/cxx_supportlib/vendor-modified/boost/core/demangle.hpp +8 -10
- data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test.hpp +217 -1
- data/src/cxx_supportlib/vendor-modified/boost/core/scoped_enum.hpp +29 -27
- data/src/cxx_supportlib/vendor-modified/boost/current_function.hpp +5 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/c_time.hpp +13 -13
- data/src/cxx_supportlib/vendor-modified/boost/date_time/constrained_value.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/date_time/date.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/date_duration.hpp +4 -3
- data/src/cxx_supportlib/vendor-modified/boost/date_time/date_duration_types.hpp +6 -5
- data/src/cxx_supportlib/vendor-modified/boost/date_time/date_facet.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/date_time/date_names_put.hpp +8 -7
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_calendar.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_date.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_day.hpp +4 -3
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_day_of_year.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_duration.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_duration_types.hpp +4 -3
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_facet.hpp +27 -7
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_month.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_serialize.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_weekday.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_year.hpp +4 -5
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian_calendar.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/local_time/local_date_time.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/date_time/local_time/posix_time_zone.hpp +4 -3
- data/src/cxx_supportlib/vendor-modified/boost/date_time/period.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/date_duration_operators.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/posix_time_config.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/posix_time_duration.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/ptime.hpp +6 -5
- data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/time_parsers.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/date_time/time_duration.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/date_time/time_facet.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/date_time/time_zone_base.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/year_month_day.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/detail/iterator.hpp +13 -0
- data/src/cxx_supportlib/vendor-modified/boost/detail/lcast_precision.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/detail/workaround.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/exception/detail/error_info_impl.hpp +11 -0
- data/src/cxx_supportlib/vendor-modified/boost/exception/detail/shared_ptr.hpp +17 -0
- data/src/cxx_supportlib/vendor-modified/boost/exception/exception.hpp +25 -3
- data/src/cxx_supportlib/vendor-modified/boost/exception/get_error_info.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/exception/info.hpp +114 -1
- data/src/cxx_supportlib/vendor-modified/boost/function/function_base.hpp +116 -142
- data/src/cxx_supportlib/vendor-modified/boost/function/function_template.hpp +57 -69
- data/src/cxx_supportlib/vendor-modified/boost/functional/hash/detail/hash_float.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/functional/hash/extensions.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/functional/hash/hash.hpp +27 -13
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/any_hook.hpp +4 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/avl_set.hpp +99 -12
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/avl_set_hook.hpp +4 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree.hpp +35 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree_algorithms.hpp +37 -6
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/bs_set.hpp +95 -8
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/bs_set_hook.hpp +4 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree.hpp +209 -72
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree_algorithms.hpp +86 -20
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_list_algorithms.hpp +11 -11
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_slist_algorithms.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/algo_type.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/any_node_and_algorithms.hpp +58 -45
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/avltree_node.hpp +27 -26
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/bstree_algorithms_base.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/common_slist_algorithms.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/config_begin.hpp +8 -3
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/default_header_holder.hpp +4 -3
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/ebo_functor_holder.hpp +27 -26
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/equal_to_value.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/exception_disposer.hpp +4 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/generic_hook.hpp +9 -7
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/has_member_function_callable_with.hpp +83 -57
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hashtable_node.hpp +30 -30
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hook_traits.hpp +9 -8
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/iiterator.hpp +8 -7
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/iterator.hpp +16 -15
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/key_nodeptr_comp.hpp +70 -44
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/list_iterator.hpp +22 -21
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/list_node.hpp +7 -6
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/parent_from_member.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/rbtree_node.hpp +29 -28
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/reverse_iterator.hpp +33 -12
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/size_holder.hpp +19 -12
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/slist_iterator.hpp +21 -20
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/slist_node.hpp +4 -3
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/to_raw_pointer.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/transform_iterator.hpp +23 -22
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_iterator.hpp +23 -22
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_node.hpp +10 -9
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_value_compare.hpp +103 -29
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/workaround.hpp +15 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/hashtable.hpp +295 -211
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/linear_slist_algorithms.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/list.hpp +20 -7
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/list_hook.hpp +4 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/member_value_traits.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/options.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/parent_from_member.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_plus_bits.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_traits.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/priority_compare.hpp +22 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree.hpp +36 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree_algorithms.hpp +43 -13
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/set.hpp +95 -8
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/set_hook.hpp +4 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/sg_set.hpp +96 -12
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree.hpp +102 -5
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree_algorithms.hpp +48 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist.hpp +20 -11
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist_hook.hpp +9 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/splay_set.hpp +95 -8
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree.hpp +36 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree_algorithms.hpp +27 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap.hpp +167 -23
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_algorithms.hpp +28 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_set.hpp +100 -46
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/trivial_value_traits.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set.hpp +37 -27
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set_hook.hpp +30 -14
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +35 -36
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_numeric.hpp +6 -28
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/try_lexical_convert.hpp +20 -5
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/posix_api.cpp +4 -2
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/regex.cpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/once.cpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/thread.cpp +11 -7
- data/src/cxx_supportlib/vendor-modified/boost/math/policies/policy.hpp +1 -3
- data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/fpclassify.hpp +5 -1
- data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/math_fwd.hpp +11 -0
- data/src/cxx_supportlib/vendor-modified/boost/math/tools/config.hpp +10 -2
- data/src/cxx_supportlib/vendor-modified/boost/move/adl_move_swap.hpp +40 -7
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_merge.hpp +67 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_sort.hpp +63 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/adaptive_sort_merge.hpp +2437 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/basic_op.hpp +121 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/insertion_sort.hpp +127 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/merge.hpp +637 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/merge_sort.hpp +139 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/move.hpp +155 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/algorithm.hpp +1 -116
- data/src/cxx_supportlib/vendor-modified/boost/move/core.hpp +14 -13
- data/src/cxx_supportlib/vendor-modified/boost/move/default_delete.hpp +17 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/config_begin.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/destruct_n.hpp +67 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/fwd_macros.hpp +227 -32
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/iterator_traits.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/meta_utils.hpp +30 -9
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/meta_utils_core.hpp +12 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/move_helpers.hpp +84 -80
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/placement_new.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/reverse_iterator.hpp +171 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/type_traits.hpp +14 -20
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/unique_ptr_meta_utils.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/workaround.hpp +14 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/iterator.hpp +32 -33
- data/src/cxx_supportlib/vendor-modified/boost/move/make_unique.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/unique_ptr.hpp +49 -49
- data/src/cxx_supportlib/vendor-modified/boost/move/utility.hpp +8 -7
- data/src/cxx_supportlib/vendor-modified/boost/move/utility_core.hpp +17 -16
- data/src/cxx_supportlib/vendor-modified/boost/mpl/print.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/none.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/none_t.hpp +2 -3
- data/src/cxx_supportlib/vendor-modified/boost/operators.hpp +197 -255
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/old_optional_implementation.hpp +1059 -0
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_aligned_storage.hpp +75 -0
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_config.hpp +116 -0
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_factory_support.hpp +36 -0
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_reference_spec.hpp +253 -0
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_relops.hpp +196 -0
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_swap.hpp +117 -0
- data/src/cxx_supportlib/vendor-modified/boost/optional/optional.hpp +372 -554
- data/src/cxx_supportlib/vendor-modified/boost/optional/optional_fwd.hpp +12 -1
- data/src/cxx_supportlib/vendor-modified/boost/pool/detail/mutex.hpp +15 -7
- data/src/cxx_supportlib/vendor-modified/boost/pool/pool_alloc.hpp +24 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/intel.h +9 -2
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/visualc.h +15 -1
- data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd.h +16 -4
- data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd/x86.h +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd/x86_amd.h +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd/x86_amd/versions.h +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/cygwin.h +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/predef/version.h +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/predef/version_number.h +20 -1
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/cat.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/config/config.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/detail/binary_transform.hpp +5 -6
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/detail/to_list_msvc.hpp +55 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/to_list.hpp +12 -0
- data/src/cxx_supportlib/vendor-modified/boost/range/const_iterator.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/range/size_type.hpp +0 -5
- data/src/cxx_supportlib/vendor-modified/boost/regex/concepts.hpp +16 -16
- data/src/cxx_supportlib/vendor-modified/boost/regex/config.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex/pending/unicode_iterator.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_creator.hpp +102 -87
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_parser.hpp +45 -21
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/cpp_regex_traits.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/fileiter.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/instances.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/match_flags.hpp +14 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/mem_block_cache.hpp +46 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher.hpp +5 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_common.hpp +5 -14
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_non_recursive.hpp +116 -13
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_recursive.hpp +34 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_format.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_traits.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_traits_defaults.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_workaround.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/w32_regex_traits.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/allocate_shared_array.hpp +1004 -159
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/bad_weak_ptr.hpp +9 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/shared_count.hpp +4 -58
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base.hpp +5 -2
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_clang.hpp +9 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_impl.hpp +0 -8
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_has_sync.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_noexcept.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/enable_shared_from_this.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/intrusive_ptr.hpp +28 -3
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/intrusive_ref_counter.hpp +187 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_shared_array.hpp +52 -144
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_shared_object.hpp +120 -450
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_array.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_ptr.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_array.hpp +7 -6
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_ptr.hpp +70 -8
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/weak_ptr.hpp +6 -5
- data/src/cxx_supportlib/vendor-modified/boost/system/error_code.hpp +9 -8
- data/src/cxx_supportlib/vendor-modified/boost/system/system_error.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/thread/barrier.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/thread/completion_latch.hpp +0 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/queue_views.hpp +0 -11
- data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/sync_timed_queue.hpp +6 -4
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/config.hpp +11 -2
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/thread.hpp +11 -4
- data/src/cxx_supportlib/vendor-modified/boost/thread/exceptions.hpp +8 -8
- data/src/cxx_supportlib/vendor-modified/boost/thread/executors/executor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/executors/generic_executor_ref.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/thread/executors/loop_executor.hpp +22 -18
- data/src/cxx_supportlib/vendor-modified/boost/thread/future.hpp +163 -55
- data/src/cxx_supportlib/vendor-modified/boost/thread/futures/launch.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/futures/wait_for_all.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/lock_types.hpp +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/thread/locks.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/condition_variable.hpp +6 -7
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/condition_variable_fwd.hpp +17 -2
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/shared_mutex.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/thread_data.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/timespec.hpp +29 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/scoped_thread.hpp +23 -18
- data/src/cxx_supportlib/vendor-modified/boost/thread/synchronized_value.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/thread/thread_functors.hpp +19 -4
- data/src/cxx_supportlib/vendor-modified/boost/thread/thread_guard.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/thread/user_scheduler.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_index.hpp +265 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_index/stl_type_index.hpp +272 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_index/type_index_facade.hpp +300 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/add_reference.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/aligned_storage.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/common_type.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/common_arithmetic_type.hpp +9 -3
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/mp_defer.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/extent.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_nothrow_assign.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_nothrow_constructor.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_nothrow_destructor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_assign.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_copy.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_destructor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_move_assign.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_move_constructor.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_abstract.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_array.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_assignable.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_const.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_default_constructible.hpp +21 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_destructible.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_move_assignable.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_move_constructible.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_pod.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_rvalue_reference.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_virtual_base_of.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_volatile.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/make_void.hpp +52 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/rank.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_all_extents.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_const.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_cv.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_extent.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_pointer.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_volatile.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/type_with_alignment.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/fwd.hpp +40 -6
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/implementation.hpp +4986 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/map.hpp +107 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/set.hpp +105 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map.hpp +1814 -1255
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map_fwd.hpp +41 -45
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set.hpp +1498 -1161
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set_fwd.hpp +40 -44
- data/src/cxx_supportlib/vendor-modified/boost/utility.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/utility/base_from_member.hpp +7 -6
- data/src/cxx_supportlib/vendor-modified/boost/utility/compare_pointees.hpp +10 -2
- data/src/cxx_supportlib/vendor-modified/boost/utility/string_ref.hpp +39 -22
- data/src/cxx_supportlib/vendor-modified/boost/utility/string_view.hpp +690 -0
- data/src/cxx_supportlib/vendor-modified/boost/utility/string_view_fwd.hpp +39 -0
- data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
- data/src/helper-scripts/crash-watch.rb +3 -0
- data/src/ruby_supportlib/phusion_passenger.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/apache2/config_options.rb +1 -0
- data/src/ruby_supportlib/phusion_passenger/packaging.rb +2 -12
- metadata +77 -38
- data/dev/ci/inituidgid +0 -24
- data/dev/ci/run_jenkins.sh +0 -70
- data/dev/ci/run_travis.sh +0 -314
- data/doc/Design and Architecture.html +0 -2421
- data/doc/Design and Architecture.txt +0 -511
- data/doc/Security of user switching support.html +0 -1833
- data/doc/Users guide Apache.html +0 -3101
- data/doc/Users guide Apache.idmap.txt +0 -451
- data/doc/Users guide Apache.txt +0 -534
- data/doc/Users guide Nginx.html +0 -3026
- data/doc/Users guide Nginx.idmap.txt +0 -431
- data/doc/Users guide Nginx.txt +0 -451
- data/doc/Users guide Standalone.html +0 -2092
- data/doc/Users guide Standalone.idmap.txt +0 -137
- data/doc/Users guide Standalone.txt +0 -81
- data/doc/Users guide.html +0 -1606
- data/doc/Users guide.txt +0 -8
- data/src/cxx_supportlib/vendor-modified/boost/align/align.hpp +0 -20
- data/src/cxx_supportlib/vendor-modified/boost/align/detail/address.hpp +0 -29
- data/src/cxx_supportlib/vendor-modified/boost/align/detail/align.hpp +0 -40
- data/src/cxx_supportlib/vendor-modified/boost/align/detail/align_cxx11.hpp +0 -22
- data/src/cxx_supportlib/vendor-modified/boost/align/detail/is_alignment.hpp +0 -29
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/hash_table.hpp +0 -383
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/array_allocator.hpp +0 -318
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/array_count_impl.hpp +0 -67
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/array_traits.hpp +0 -60
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/array_utility.hpp +0 -214
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_if_array.hpp +0 -34
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/allocate.hpp +0 -1128
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/buckets.hpp +0 -928
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/equivalent.hpp +0 -686
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/extract_key.hpp +0 -188
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/table.hpp +0 -873
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/unique.hpp +0 -628
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/util.hpp +0 -266
@@ -492,12 +492,12 @@ public:
|
|
492
492
|
}
|
493
493
|
|
494
494
|
LString *varyCookieName = req->secureHeaders.lookup(PASSENGER_VARY_TURBOCACHE_BY_COOKIE);
|
495
|
-
if (varyCookieName == NULL && !
|
495
|
+
if (varyCookieName == NULL && !req->configCache->defaultVaryTurbocacheByCookie.empty()) {
|
496
496
|
varyCookieName = (LString *) psg_palloc(req->pool, sizeof(LString));
|
497
497
|
psg_lstr_init(varyCookieName);
|
498
498
|
psg_lstr_append(varyCookieName, req->pool,
|
499
|
-
|
500
|
-
|
499
|
+
req->configCache->defaultVaryTurbocacheByCookie.data(),
|
500
|
+
req->configCache->defaultVaryTurbocacheByCookie.size());
|
501
501
|
}
|
502
502
|
if (varyCookieName != NULL) {
|
503
503
|
LString *cookieHeader = req->headers.lookup(COOKIE);
|
@@ -428,7 +428,9 @@ private:
|
|
428
428
|
details);
|
429
429
|
} catch (const TimeoutException &) {
|
430
430
|
throwPreloaderSpawnException("An error occurred while starting up "
|
431
|
-
"the preloader: it did not write a startup response in time."
|
431
|
+
"the preloader: it did not write a startup response in time. "
|
432
|
+
"If your app needs more time to start you can increase the "
|
433
|
+
"Passenger start timeout config option.",
|
432
434
|
SpawnException::PRELOADER_STARTUP_TIMEOUT,
|
433
435
|
details);
|
434
436
|
}
|
@@ -500,7 +502,9 @@ private:
|
|
500
502
|
details);
|
501
503
|
} catch (const TimeoutException &) {
|
502
504
|
throwPreloaderSpawnException("An error occurred while starting up "
|
503
|
-
"the preloader: it did not write a startup response in time."
|
505
|
+
"the preloader: it did not write a startup response in time. "
|
506
|
+
"If your app needs more time to start you can increase the "
|
507
|
+
"Passenger start timeout config option.",
|
504
508
|
SpawnException::PRELOADER_STARTUP_TIMEOUT,
|
505
509
|
details);
|
506
510
|
}
|
@@ -607,7 +611,9 @@ private:
|
|
607
611
|
details);
|
608
612
|
} catch (const TimeoutException &) {
|
609
613
|
throwPreloaderSpawnException("An error occurred while starting up "
|
610
|
-
"the preloader: it did not write a startup response in time."
|
614
|
+
"the preloader: it did not write a startup response in time. "
|
615
|
+
"If your app needs more time to start you can increase the "
|
616
|
+
"Passenger start timeout config option.",
|
611
617
|
SpawnException::PRELOADER_STARTUP_TIMEOUT,
|
612
618
|
details);
|
613
619
|
}
|
@@ -331,14 +331,16 @@ private:
|
|
331
331
|
details);
|
332
332
|
} catch (const TimeoutException &) {
|
333
333
|
throwAppSpawnException("An error occurred while starting the "
|
334
|
-
"web application: it did not write a startup response in time."
|
334
|
+
"web application: it did not write a startup response in time. "
|
335
|
+
"If your app needs more time to start you can increase the "
|
336
|
+
"Passenger start timeout config option.",
|
335
337
|
SpawnException::APP_STARTUP_TIMEOUT,
|
336
338
|
details);
|
337
339
|
}
|
338
340
|
|
339
341
|
if (line.empty()) {
|
340
342
|
throwAppSpawnException("An error occurred while starting the "
|
341
|
-
"web application. It
|
343
|
+
"web application. It unexpectedly closed the connection while "
|
342
344
|
"sending its startup response.",
|
343
345
|
SpawnException::APP_STARTUP_PROTOCOL_ERROR,
|
344
346
|
details);
|
@@ -1133,7 +1135,9 @@ protected:
|
|
1133
1135
|
details);
|
1134
1136
|
} catch (const TimeoutException &) {
|
1135
1137
|
throwAppSpawnException("An error occurred while starting the "
|
1136
|
-
"web application: it did not write a startup response in time."
|
1138
|
+
"web application: it did not write a startup response in time. "
|
1139
|
+
"If your app needs more time to start you can increase the "
|
1140
|
+
"Passenger start timeout config option.",
|
1137
1141
|
SpawnException::APP_STARTUP_TIMEOUT,
|
1138
1142
|
details);
|
1139
1143
|
}
|
@@ -271,8 +271,9 @@ public:
|
|
271
271
|
string fdPassingPassword;
|
272
272
|
EventFd *exitEvent;
|
273
273
|
|
274
|
-
ApiServer(ServerKit::Context *context
|
275
|
-
|
274
|
+
ApiServer(ServerKit::Context *context, const ServerKit::HttpServerSchema &schema,
|
275
|
+
const Json::Value &initialConfig = Json::Value())
|
276
|
+
: ParentClass(context, schema, initialConfig),
|
276
277
|
controller(NULL),
|
277
278
|
apiAccountDatabase(NULL),
|
278
279
|
exitEvent(NULL)
|
@@ -35,6 +35,7 @@
|
|
35
35
|
#include <oxt/backtrace.hpp>
|
36
36
|
#include <ev++.h>
|
37
37
|
#include <SmallVector.h>
|
38
|
+
#include <ConfigKit/ConfigKit.h>
|
38
39
|
#include <ServerKit/Server.h>
|
39
40
|
#include <StaticString.h>
|
40
41
|
#include <Constants.h>
|
@@ -49,7 +50,6 @@
|
|
49
50
|
#include <Utils/StrIntUtils.h>
|
50
51
|
#include <Utils/StringMap.h>
|
51
52
|
#include <Utils/SystemTime.h>
|
52
|
-
#include <Utils/VariantMap.h>
|
53
53
|
|
54
54
|
|
55
55
|
namespace Passenger {
|
@@ -77,12 +77,6 @@ private:
|
|
77
77
|
typedef StringMap<TransactionPtr> TransactionMap;
|
78
78
|
typedef StringMap<LogSinkPtr> LogSinkCache;
|
79
79
|
|
80
|
-
string username;
|
81
|
-
string password;
|
82
|
-
string dumpDir;
|
83
|
-
string defaultNodeName;
|
84
|
-
bool devMode;
|
85
|
-
|
86
80
|
RandomGenerator randomGenerator;
|
87
81
|
TransactionMap transactions;
|
88
82
|
LogSinkCache logSinkCache;
|
@@ -91,6 +85,7 @@ private:
|
|
91
85
|
|
92
86
|
ev::timer gcTimer;
|
93
87
|
ev::timer flushTimer;
|
88
|
+
bool devMode;
|
94
89
|
int sinkFlushInterval;
|
95
90
|
|
96
91
|
|
@@ -130,7 +125,7 @@ private:
|
|
130
125
|
}
|
131
126
|
|
132
127
|
StaticString username = client->scalarReader.value();
|
133
|
-
if (!constantTimeCompare(username,
|
128
|
+
if (!constantTimeCompare(username, config["ust_router_username"].asString())) {
|
134
129
|
sendErrorToClient(client, "Invalid username or password");
|
135
130
|
if (client->connected()) {
|
136
131
|
disconnectWithError(&client, "Client sent invalid username");
|
@@ -167,7 +162,7 @@ private:
|
|
167
162
|
}
|
168
163
|
|
169
164
|
StaticString password = client->scalarReader.value();
|
170
|
-
if (!constantTimeCompare(password,
|
165
|
+
if (!constantTimeCompare(password, config["ust_router_password"].asString())) {
|
171
166
|
sendErrorToClient(client, "Invalid username or password");
|
172
167
|
if (client->connected()) {
|
173
168
|
disconnectWithError(&client, "Client sent invalid password");
|
@@ -602,7 +597,7 @@ private:
|
|
602
597
|
|
603
598
|
nodeName = getStaticString(args, 1);
|
604
599
|
if (nodeName.empty()) {
|
605
|
-
client->nodeName =
|
600
|
+
client->nodeName = config["ust_router_default_node_name"].asString();
|
606
601
|
} else {
|
607
602
|
client->nodeName.assign(nodeName.data(), nodeName.size());
|
608
603
|
}
|
@@ -902,7 +897,7 @@ private:
|
|
902
897
|
|
903
898
|
LogSinkPtr sink = logSinkCache.get(StaticString(cacheKey, cacheKeySize));
|
904
899
|
if (sink == NULL) {
|
905
|
-
string dumpFile =
|
900
|
+
string dumpFile = config["ust_router_dump_dir"].asString() + "/" + category;
|
906
901
|
SKC_DEBUG(client, "Creating dump file: " << dumpFile);
|
907
902
|
sink = boost::make_shared<FileSink>(this, dumpFile);
|
908
903
|
sink->opened = 1;
|
@@ -1059,6 +1054,16 @@ private:
|
|
1059
1054
|
return *filter;
|
1060
1055
|
}
|
1061
1056
|
|
1057
|
+
void applyConfigUpdates() {
|
1058
|
+
devMode = config["ust_router_dev_mode"].asBool();
|
1059
|
+
|
1060
|
+
unsigned int sinkFlushTimerInterval =
|
1061
|
+
config["analytics_sink_flush_timer_interval"].asUInt();
|
1062
|
+
sinkFlushInterval = config["analytics_sink_flush_interval"].asUInt();
|
1063
|
+
flushTimer.stop();
|
1064
|
+
flushTimer.start(sinkFlushTimerInterval, sinkFlushTimerInterval);
|
1065
|
+
}
|
1066
|
+
|
1062
1067
|
protected:
|
1063
1068
|
virtual void reinitializeClient(Client *client, int fd) {
|
1064
1069
|
ParentClass::reinitializeClient(client, fd);
|
@@ -1130,6 +1135,11 @@ protected:
|
|
1130
1135
|
}
|
1131
1136
|
}
|
1132
1137
|
|
1138
|
+
virtual void onConfigChange(const ConfigKit::Store *oldConfig) {
|
1139
|
+
ParentClass::onConfigChange(oldConfig);
|
1140
|
+
applyConfigUpdates();
|
1141
|
+
}
|
1142
|
+
|
1133
1143
|
virtual void onShutdown(bool forceDisconnect) {
|
1134
1144
|
gcTimer.stop();
|
1135
1145
|
flushTimer.stop();
|
@@ -1137,32 +1147,56 @@ protected:
|
|
1137
1147
|
}
|
1138
1148
|
|
1139
1149
|
public:
|
1140
|
-
|
1141
|
-
|
1142
|
-
|
1143
|
-
|
1144
|
-
|
1145
|
-
|
1146
|
-
|
1150
|
+
class Schema: public ServerKit::BaseServerSchema {
|
1151
|
+
private:
|
1152
|
+
static Json::Value getDefaultValueForDefaultNodeName(const ConfigKit::Store &store) {
|
1153
|
+
return getHostName();
|
1154
|
+
}
|
1155
|
+
|
1156
|
+
public:
|
1157
|
+
Schema()
|
1158
|
+
: ServerKit::BaseServerSchema(false)
|
1159
|
+
{
|
1160
|
+
using namespace ConfigKit;
|
1161
|
+
|
1162
|
+
add("ust_router_username", STRING_TYPE, OPTIONAL);
|
1163
|
+
add("ust_router_password", STRING_TYPE, OPTIONAL);
|
1164
|
+
add("ust_router_dump_dir", STRING_TYPE, OPTIONAL, "/tmp");
|
1165
|
+
addWithDynamicDefault(
|
1166
|
+
"ust_router_default_node_name",
|
1167
|
+
STRING_TYPE, OPTIONAL | CACHE_DEFAULT_VALUE,
|
1168
|
+
getDefaultValueForDefaultNodeName);
|
1169
|
+
add("ust_router_dev_mode", BOOL_TYPE, OPTIONAL, false);
|
1170
|
+
add("union_station_gateway_address", STRING_TYPE, OPTIONAL | READ_ONLY, DEFAULT_UNION_STATION_GATEWAY_ADDRESS);
|
1171
|
+
add("union_station_gateway_port", UINT_TYPE, OPTIONAL | READ_ONLY, DEFAULT_UNION_STATION_GATEWAY_PORT);
|
1172
|
+
add("union_station_gateway_cert", STRING_TYPE, OPTIONAL | READ_ONLY);
|
1173
|
+
add("union_station_proxy_address", STRING_TYPE, OPTIONAL | READ_ONLY);
|
1174
|
+
add("analytics_sink_flush_timer_interval", UINT_TYPE, OPTIONAL, 5);
|
1175
|
+
add("analytics_sink_flush_interval", UINT_TYPE, OPTIONAL, 0);
|
1176
|
+
|
1177
|
+
finalize();
|
1178
|
+
}
|
1179
|
+
};
|
1180
|
+
|
1181
|
+
Controller(ServerKit::Context *context, const Schema &schema,
|
1182
|
+
const Json::Value &initialConfig)
|
1183
|
+
: ServerKit::BaseServer<Controller, Client>(context, schema, initialConfig),
|
1147
1184
|
remoteSender(
|
1148
|
-
|
1149
|
-
|
1150
|
-
|
1151
|
-
|
1185
|
+
config["union_station_gateway_address"].asString(),
|
1186
|
+
config["union_station_gateway_port"].asUInt(),
|
1187
|
+
config["union_station_gateway_cert"].asString(),
|
1188
|
+
config["union_station_proxy_address"].asString()),
|
1152
1189
|
gcTimer(getLoop()),
|
1153
|
-
flushTimer(getLoop())
|
1190
|
+
flushTimer(getLoop()),
|
1191
|
+
devMode(false),
|
1192
|
+
sinkFlushInterval(0)
|
1154
1193
|
{
|
1155
|
-
if (defaultNodeName.empty()) {
|
1156
|
-
defaultNodeName = getHostName();
|
1157
|
-
}
|
1158
|
-
|
1159
1194
|
gcTimer.set<Controller, &Controller::garbageCollect>(this);
|
1160
1195
|
gcTimer.start(GARBAGE_COLLECTION_TIMEOUT, GARBAGE_COLLECTION_TIMEOUT);
|
1161
1196
|
|
1162
|
-
int sinkFlushTimerInterval = options.getInt("analytics_sink_flush_timer_interval", false, 5);
|
1163
|
-
sinkFlushInterval = options.getInt("analytics_sink_flush_interval", false, 0);
|
1164
1197
|
flushTimer.set<Controller, &Controller::flushSomeSinks>(this);
|
1165
|
-
|
1198
|
+
|
1199
|
+
applyConfigUpdates();
|
1166
1200
|
}
|
1167
1201
|
|
1168
1202
|
virtual StaticString getServerName() const {
|
@@ -1184,11 +1218,11 @@ public:
|
|
1184
1218
|
doc["log_sink_cache"] = inspectLogSinkCacheStateAsJson();
|
1185
1219
|
doc["transactions"] = inspectTransactionsStateAsJson();
|
1186
1220
|
if (devMode) {
|
1187
|
-
doc["dump_dir"] =
|
1221
|
+
doc["dump_dir"] = config["ust_router_dump_dir"];
|
1188
1222
|
} else {
|
1189
1223
|
doc["remote_sender"] = remoteSender.inspectStateAsJson();
|
1190
1224
|
}
|
1191
|
-
doc["default_node_name"] =
|
1225
|
+
doc["default_node_name"] = config["ust_router_default_node_name"];
|
1192
1226
|
return doc;
|
1193
1227
|
}
|
1194
1228
|
|
@@ -55,6 +55,7 @@
|
|
55
55
|
#include <BackgroundEventLoop.h>
|
56
56
|
#include <ResourceLocator.h>
|
57
57
|
#include <Constants.h>
|
58
|
+
#include <ConfigKit/VariantMapUtils.h>
|
58
59
|
#include <Utils.h>
|
59
60
|
#include <Utils/IOUtils.h>
|
60
61
|
#include <Utils/StrIntUtils.h>
|
@@ -77,10 +78,12 @@ namespace UstRouter {
|
|
77
78
|
|
78
79
|
BackgroundEventLoop *bgloop;
|
79
80
|
ServerKit::Context *serverKitContext;
|
81
|
+
Controller::Schema controllerSchema;
|
80
82
|
Controller *controller;
|
81
83
|
|
82
84
|
BackgroundEventLoop *apiBgloop;
|
83
85
|
ServerKit::Context *apiServerKitContext;
|
86
|
+
ServerKit::HttpServerSchema apiServerSchema;
|
84
87
|
UstRouter::ApiServer *apiServer;
|
85
88
|
EventFd exitEvent;
|
86
89
|
EventFd allClientsDisconnectedEvent;
|
@@ -306,7 +309,10 @@ initializeUnprivilegedWorkingObjects() {
|
|
306
309
|
wo->bgloop = new BackgroundEventLoop(true, true);
|
307
310
|
wo->serverKitContext = new ServerKit::Context(wo->bgloop->safe,
|
308
311
|
wo->bgloop->libuv_loop);
|
309
|
-
wo->controller = new Controller(wo->serverKitContext,
|
312
|
+
wo->controller = new Controller(wo->serverKitContext,
|
313
|
+
wo->controllerSchema,
|
314
|
+
ConfigKit::variantMapToJson(wo->controllerSchema, options));
|
315
|
+
wo->controller->initialize();
|
310
316
|
wo->controller->listen(wo->serverSocketFd);
|
311
317
|
|
312
318
|
UPDATE_TRACE_POINT();
|
@@ -314,13 +320,15 @@ initializeUnprivilegedWorkingObjects() {
|
|
314
320
|
wo->apiBgloop = new BackgroundEventLoop(true, true);
|
315
321
|
wo->apiServerKitContext = new ServerKit::Context(wo->apiBgloop->safe,
|
316
322
|
wo->apiBgloop->libuv_loop);
|
317
|
-
wo->apiServer = new UstRouter::ApiServer(wo->apiServerKitContext
|
323
|
+
wo->apiServer = new UstRouter::ApiServer(wo->apiServerKitContext,
|
324
|
+
wo->apiServerSchema);
|
318
325
|
wo->apiServer->controller = wo->controller;
|
319
326
|
wo->apiServer->apiAccountDatabase = &wo->apiAccountDatabase;
|
320
327
|
wo->apiServer->instanceDir = options.get("instance_dir", false);
|
321
328
|
wo->apiServer->fdPassingPassword = options.get("watchdog_fd_passing_password", false);
|
322
329
|
wo->apiServer->exitEvent = &wo->exitEvent;
|
323
330
|
wo->apiServer->shutdownFinishCallback = apiServerShutdownFinished;
|
331
|
+
wo->apiServer->initialize();
|
324
332
|
foreach (fd, wo->apiSockets) {
|
325
333
|
wo->apiServer->listen(fd);
|
326
334
|
}
|
@@ -285,8 +285,9 @@ public:
|
|
285
285
|
EventFd *exitEvent;
|
286
286
|
string fdPassingPassword;
|
287
287
|
|
288
|
-
ApiServer(ServerKit::Context *context
|
289
|
-
|
288
|
+
ApiServer(ServerKit::Context *context, const ServerKit::HttpServerSchema &schema,
|
289
|
+
const Json::Value &initialConfig = Json::Value())
|
290
|
+
: ParentClass(context, schema, initialConfig),
|
290
291
|
apiAccountDatabase(NULL),
|
291
292
|
exitEvent(NULL)
|
292
293
|
{ }
|
@@ -125,6 +125,7 @@ namespace WatchdogAgent {
|
|
125
125
|
int apiServerFds[SERVER_KIT_MAX_SERVER_ENDPOINTS];
|
126
126
|
BackgroundEventLoop *bgloop;
|
127
127
|
ServerKit::Context *serverKitContext;
|
128
|
+
ServerKit::HttpServerSchema apiServerSchema;
|
128
129
|
ApiServer *apiServer;
|
129
130
|
|
130
131
|
WorkingObjects()
|
@@ -1155,10 +1156,11 @@ initializeApiServer(const WorkingObjectsPtr &wo) {
|
|
1155
1156
|
absolutizePath(options.get("data_buffer_dir"));
|
1156
1157
|
|
1157
1158
|
UPDATE_TRACE_POINT();
|
1158
|
-
wo->apiServer = new ApiServer(wo->serverKitContext);
|
1159
|
+
wo->apiServer = new ApiServer(wo->serverKitContext, wo->apiServerSchema);
|
1159
1160
|
wo->apiServer->apiAccountDatabase = &wo->apiAccountDatabase;
|
1160
1161
|
wo->apiServer->exitEvent = &wo->exitEvent;
|
1161
1162
|
wo->apiServer->fdPassingPassword = options.get("watchdog_fd_passing_password");
|
1163
|
+
wo->apiServer->initialize();
|
1162
1164
|
for (unsigned int i = 0; i < apiAddresses.size(); i++) {
|
1163
1165
|
wo->apiServer->listen(wo->apiServerFds[i]);
|
1164
1166
|
}
|
@@ -170,7 +170,7 @@ AP_INIT_TAKE1("PassengerRestartDir",
|
|
170
170
|
AP_INIT_TAKE1("PassengerAppGroupName",
|
171
171
|
(Take1Func) cmd_passenger_app_group_name,
|
172
172
|
NULL,
|
173
|
-
|
173
|
+
ACCESS_CONF | RSRC_CONF,
|
174
174
|
"Application process group name."),
|
175
175
|
AP_INIT_TAKE1("PassengerForceMaxConcurrentRequestsPerProcess",
|
176
176
|
(Take1Func) cmd_passenger_force_max_concurrent_requests_per_process,
|
@@ -0,0 +1,125 @@
|
|
1
|
+
/*
|
2
|
+
* Phusion Passenger - https://www.phusionpassenger.com/
|
3
|
+
* Copyright (c) 2017 Phusion Holding B.V.
|
4
|
+
*
|
5
|
+
* "Passenger", "Phusion Passenger" and "Union Station" are registered
|
6
|
+
* trademarks of Phusion Holding B.V.
|
7
|
+
*
|
8
|
+
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
9
|
+
* of this software and associated documentation files (the "Software"), to deal
|
10
|
+
* in the Software without restriction, including without limitation the rights
|
11
|
+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
12
|
+
* copies of the Software, and to permit persons to whom the Software is
|
13
|
+
* furnished to do so, subject to the following conditions:
|
14
|
+
*
|
15
|
+
* The above copyright notice and this permission notice shall be included in
|
16
|
+
* all copies or substantial portions of the Software.
|
17
|
+
*
|
18
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
19
|
+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
20
|
+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
21
|
+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
22
|
+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
23
|
+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
24
|
+
* THE SOFTWARE.
|
25
|
+
*/
|
26
|
+
#ifndef _PASSENGER_CONFIG_KIT_COMMON_H_
|
27
|
+
#define _PASSENGER_CONFIG_KIT_COMMON_H_
|
28
|
+
|
29
|
+
#include <boost/function.hpp>
|
30
|
+
#include <string>
|
31
|
+
#include <vector>
|
32
|
+
|
33
|
+
#include <jsoncpp/json.h>
|
34
|
+
|
35
|
+
#include <StaticString.h>
|
36
|
+
|
37
|
+
namespace Passenger {
|
38
|
+
namespace ConfigKit {
|
39
|
+
|
40
|
+
using namespace std;
|
41
|
+
|
42
|
+
|
43
|
+
class Store;
|
44
|
+
|
45
|
+
enum Type {
|
46
|
+
STRING_TYPE,
|
47
|
+
INT_TYPE,
|
48
|
+
UINT_TYPE,
|
49
|
+
FLOAT_TYPE,
|
50
|
+
BOOL_TYPE,
|
51
|
+
UNKNOWN_TYPE
|
52
|
+
};
|
53
|
+
|
54
|
+
enum Flags {
|
55
|
+
OPTIONAL = 0,
|
56
|
+
REQUIRED = 1 << 0,
|
57
|
+
CACHE_DEFAULT_VALUE = 1 << 1,
|
58
|
+
READ_ONLY = 1 << 2,
|
59
|
+
|
60
|
+
_DYNAMIC_DEFAULT_VALUE = 1 << 30,
|
61
|
+
_FROM_SUBSCHEMA = 1 << 31
|
62
|
+
};
|
63
|
+
|
64
|
+
/** Represents a validation error. */
|
65
|
+
class Error {
|
66
|
+
private:
|
67
|
+
static string dummyKeyProcessor(const StaticString &key) {
|
68
|
+
return key.toString();
|
69
|
+
}
|
70
|
+
|
71
|
+
string rawMessage;
|
72
|
+
|
73
|
+
public:
|
74
|
+
typedef boost::function<string (const StaticString &key)> KeyProcessor;
|
75
|
+
|
76
|
+
Error() { }
|
77
|
+
|
78
|
+
Error(const string &_rawMessage)
|
79
|
+
: rawMessage(_rawMessage)
|
80
|
+
{ }
|
81
|
+
|
82
|
+
string getMessage() const {
|
83
|
+
return getMessage(dummyKeyProcessor);
|
84
|
+
}
|
85
|
+
|
86
|
+
string getMessage(const KeyProcessor &processor) const {
|
87
|
+
string result = rawMessage;
|
88
|
+
string::size_type searchBegin = 0;
|
89
|
+
bool done = false;
|
90
|
+
|
91
|
+
while (!done) {
|
92
|
+
string::size_type pos = result.find("{{", searchBegin);
|
93
|
+
if (pos == string::npos) {
|
94
|
+
done = true;
|
95
|
+
break;
|
96
|
+
}
|
97
|
+
|
98
|
+
string::size_type endPos = result.find("}}", pos + 2);
|
99
|
+
if (endPos == string::npos) {
|
100
|
+
done = true;
|
101
|
+
break;
|
102
|
+
}
|
103
|
+
|
104
|
+
string key = result.substr(pos + 2, endPos - pos - 2);
|
105
|
+
string replacement = processor(key);
|
106
|
+
result.replace(pos, endPos - pos + 2, replacement);
|
107
|
+
searchBegin = pos + replacement.size();
|
108
|
+
}
|
109
|
+
return result;
|
110
|
+
}
|
111
|
+
|
112
|
+
bool operator<(const Error &other) const {
|
113
|
+
return rawMessage < other.rawMessage;
|
114
|
+
}
|
115
|
+
};
|
116
|
+
|
117
|
+
typedef boost::function<Json::Value (const Store &store)> ValueGetter;
|
118
|
+
typedef boost::function<void (const Json::Value &config, const vector<Error> &errors)> ConfigCallback;
|
119
|
+
typedef boost::function<void (const Json::Value &config)> InspectCallback;
|
120
|
+
|
121
|
+
|
122
|
+
} // namespace ConfigKit
|
123
|
+
} // namespace Passenger
|
124
|
+
|
125
|
+
#endif /* _PASSENGER_CONFIG_KIT_COMMON_H_ */
|