passenger 6.0.11 → 6.0.12
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 +24 -1
- data/CONTRIBUTORS +3 -0
- data/src/agent/Core/Config.h +1 -1
- data/src/agent/Core/Controller/CheckoutSession.cpp +24 -13
- data/src/agent/Core/Controller/Config.h +1 -1
- data/src/agent/Core/Controller/InternalUtils.cpp +32 -6
- data/src/agent/Core/Controller.h +4 -1
- data/src/agent/Watchdog/Config.h +1 -1
- data/src/cxx_supportlib/Constants.h +1 -1
- data/src/cxx_supportlib/IOTools/IOUtils.cpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/align/aligned_alloc.hpp +47 -0
- data/src/cxx_supportlib/vendor-modified/boost/align/detail/aligned_alloc_posix.hpp +41 -0
- data/src/cxx_supportlib/vendor-modified/boost/align/detail/is_alignment.hpp +28 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/associated_allocator.hpp +53 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/associated_cancellation_slot.hpp +179 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/associated_executor.hpp +57 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/associator.hpp +37 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/async_result.hpp +789 -106
- data/src/cxx_supportlib/vendor-modified/boost/asio/awaitable.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_datagram_socket.hpp +80 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_deadline_timer.hpp +10 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_raw_socket.hpp +80 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_seq_packet_socket.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket.hpp +20 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_acceptor.hpp +90 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_socket.hpp +60 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_waitable_timer.hpp +10 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/bind_cancellation_slot.hpp +723 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/bind_executor.hpp +191 -12
- data/src/cxx_supportlib/vendor-modified/boost/asio/cancellation_signal.hpp +361 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/cancellation_state.hpp +237 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/cancellation_type.hpp +176 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/co_spawn.hpp +30 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/connect.hpp +60 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/base_from_cancellation_state.hpp +165 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/bind_handler.hpp +209 -76
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/config.hpp +149 -60
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/deadline_timer_service.hpp +40 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/dev_poll_reactor.hpp +8 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/epoll_reactor.hpp +14 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/functional.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_alloc_helpers.hpp +14 -10
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_type_requirements.hpp +21 -18
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_work.hpp +30 -19
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.hpp +8 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.ipp +14 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.hpp +20 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.ipp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.hpp +20 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.ipp +29 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.hpp +24 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.ipp +19 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_executor_service.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/timer_queue_ptime.ipp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/kqueue_reactor.hpp +15 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/memory.hpp +60 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/pop_options.hpp +8 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/push_options.hpp +27 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_descriptor_service.hpp +93 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service.hpp +77 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service_base.hpp +111 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op_queue.hpp +44 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/recycling_allocator.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_endpoint_op.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/select_reactor.hpp +14 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_info_base.hpp +90 -24
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue.hpp +30 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_ptime.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wait_op.hpp +5 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/work_dispatcher.hpp +5 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/any_executor.hpp +12 -12
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/bulk_execute.hpp +10 -8
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/connect.hpp +8 -8
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/execute.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/schedule.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_done.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_error.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_value.hpp +13 -13
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/start.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/submit.hpp +8 -8
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/append.hpp +73 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/as_tuple.hpp +133 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/awaitable_operators.hpp +538 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/cancellation_condition.hpp +157 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/coro.hpp +1057 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/deferred.hpp +607 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/completion_handler_erasure.hpp +160 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/coro_promise_allocator.hpp +120 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/coro_traits.hpp +185 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/partial_promise.hpp +181 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/append.hpp +219 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/as_single.hpp +14 -28
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/as_tuple.hpp +248 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/deferred.hpp +106 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/parallel_group.hpp +434 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/prepend.hpp +219 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/promise.hpp +100 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/parallel_group.hpp +217 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/prepend.hpp +73 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/promise.hpp +608 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/use_coro.hpp +284 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/awaitable.hpp +344 -20
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_read_stream.hpp +23 -54
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_write_stream.hpp +23 -54
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/co_spawn.hpp +66 -18
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/compose.hpp +55 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/connect.hpp +68 -80
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/defer.hpp +8 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/dispatch.hpp +8 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/handler_alloc_hook.ipp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/post.hpp +8 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read.hpp +98 -113
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_at.hpp +71 -82
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_until.hpp +210 -266
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/redirect_error.hpp +248 -30
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/spawn.hpp +11 -21
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/use_awaitable.hpp +15 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write.hpp +71 -87
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write_at.hpp +46 -68
- data/src/cxx_supportlib/vendor-modified/boost/asio/io_context.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/local/detail/impl/endpoint.ipp +2 -7
- data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_descriptor.hpp +10 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_stream_descriptor.hpp +23 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/prefer.hpp +21 -21
- data/src/cxx_supportlib/vendor-modified/boost/asio/query.hpp +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/asio/read.hpp +88 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/read_at.hpp +44 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/read_until.hpp +132 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/require.hpp +21 -21
- data/src/cxx_supportlib/vendor-modified/boost/asio/require_concept.hpp +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/buffered_handshake_op.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/engine.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/handshake_op.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/engine.ipp +14 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/io.hpp +36 -27
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/read_op.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/shutdown_op.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/stream_core.hpp +37 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/write_op.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.ipp +14 -7
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream.hpp +73 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/system_executor.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/this_coro.hpp +235 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/thread_pool.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/use_awaitable.hpp +7 -10
- data/src/cxx_supportlib/vendor-modified/boost/asio/version.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_random_access_handle.hpp +20 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_stream_handle.hpp +20 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/write.hpp +88 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/write_at.hpp +44 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic_ref.hpp +14 -1
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/config.hpp +17 -13
- data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic_ref.hpp +14 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx03.hpp +2 -5
- data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx11.hpp +2 -5
- data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx14.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx17.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx20.hpp +56 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/auto_link.hpp +1 -5
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/common_edg.hpp +31 -11
- data/src/cxx_supportlib/vendor-modified/boost/config/detail/cxx_composite.hpp +20 -4
- data/src/cxx_supportlib/vendor-modified/boost/config/detail/select_platform_config.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/detail/suffix.hpp +81 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/bsd.hpp +5 -8
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/wasm.hpp +17 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/dinkumware.hpp +26 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcpp.hpp +49 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libstdcpp3.hpp +46 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/adaptive_pool.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/std_fwd.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/devector.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/new_allocator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/node_allocator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/polymorphic_allocator.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/throw_exception.hpp +45 -38
- data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +24 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/ignore_unused.hpp +32 -2
- data/src/cxx_supportlib/vendor-modified/boost/core/uncaught_exceptions.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/date_time/compiler_config.hpp +0 -24
- data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/time_parsers.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/any_hook.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/avl_set.hpp +83 -83
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree.hpp +43 -43
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree_algorithms.hpp +31 -31
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/bs_set.hpp +85 -85
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree.hpp +68 -68
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree_algorithms.hpp +72 -62
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_list_algorithms.hpp +19 -20
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_slist_algorithms.hpp +19 -19
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/derivation_value_traits.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/any_node_and_algorithms.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/bstree_algorithms_base.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/common_slist_algorithms.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/config_begin.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/generic_hook.hpp +8 -8
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hash_combine.hpp +2 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hashtable_node.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/math.hpp +2 -50
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/node_cloner_disposer.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/hashtable.hpp +71 -70
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/linear_slist_algorithms.hpp +15 -14
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/list.hpp +84 -82
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/list_hook.hpp +10 -10
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/member_value_traits.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/parent_from_member.hpp +2 -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 +18 -18
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree.hpp +43 -43
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree_algorithms.hpp +26 -26
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/set.hpp +85 -85
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/set_hook.hpp +12 -12
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/sg_set.hpp +93 -93
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree.hpp +51 -51
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree_algorithms.hpp +24 -24
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist.hpp +104 -104
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist_hook.hpp +8 -6
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/splay_set.hpp +91 -91
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree.hpp +46 -46
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree_algorithms.hpp +31 -31
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap.hpp +51 -51
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_algorithms.hpp +18 -18
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_set.hpp +97 -97
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/trivial_value_traits.hpp +6 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set.hpp +63 -63
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set_hook.hpp +15 -15
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_numeric.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/config_begin.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/iterator_traits.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/nsec_clock.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/operators.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/concepts.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_parser.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/unicode_iterator.hpp +112 -31
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/basic_regex_parser.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/mem_block_cache.hpp +4 -8
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/unicode_iterator.hpp +0 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/w32_regex_traits.hpp +6 -2
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/shared_count.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_impl.hpp +22 -2
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_ptr.hpp +59 -1
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/config.hpp +9 -11
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_category.hpp +27 -21
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_category_impl.hpp +34 -3
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_code.hpp +378 -36
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_condition.hpp +97 -21
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/interop_category.hpp +107 -0
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/is_same.hpp +33 -0
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/snprintf.hpp +70 -0
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/{to_std_category.hpp → std_category.hpp} +5 -55
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/system_category_impl.hpp +2 -12
- data/src/cxx_supportlib/vendor-modified/boost/system/error_code.hpp +0 -33
- data/src/cxx_supportlib/vendor-modified/boost/utility/detail/result_of_variadic.hpp +190 -0
- data/src/cxx_supportlib/vendor-modified/boost/utility/result_of.hpp +20 -9
- data/src/cxx_supportlib/vendor-modified/boost/utility/string_view.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
- data/src/nginx_module/ConfigGeneral/AutoGeneratedDefinitions.c +8 -0
- data/src/nginx_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.c +6 -0
- data/src/nginx_module/ConfigGeneral/AutoGeneratedSetterFuncs.c +12 -0
- data/src/nginx_module/LocationConfig/AutoGeneratedCreateFunction.c +5 -0
- data/src/nginx_module/LocationConfig/AutoGeneratedHeaderSerialization.c +21 -0
- data/src/nginx_module/LocationConfig/AutoGeneratedManifestGeneration.c +13 -0
- data/src/nginx_module/LocationConfig/AutoGeneratedMergeFunction.c +3 -0
- data/src/nginx_module/LocationConfig/AutoGeneratedStruct.h +4 -0
- data/src/ruby_supportlib/phusion_passenger/admin_tools/instance_registry.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/loader_shared_helpers.rb +8 -1
- data/src/ruby_supportlib/phusion_passenger/nginx/config_options.rb +6 -0
- data/src/ruby_supportlib/phusion_passenger/packaging.rb +1 -0
- data/src/ruby_supportlib/phusion_passenger/platform_info/openssl.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/platform_info/operating_system.rb +8 -0
- data/src/ruby_supportlib/phusion_passenger/request_handler.rb +4 -1
- data/src/ruby_supportlib/phusion_passenger.rb +1 -1
- metadata +39 -4
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/is_generic_value.hpp +0 -125
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 536d56479491f031585ad9f7a050a49978a965be
|
|
4
|
+
data.tar.gz: 2074da45c50faf1754c190f448c8fd89bd1e0bfe
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a9c3b77e7ccf78b9018135ac0501a864c3bb2f695df9c5d3aa8510aa75fc04440ed4aaf6c9db3876fa8512965436ac5e3959dadb0905f4ca375f5830dd8c0091
|
|
7
|
+
data.tar.gz: 5e64ae1f36a459ab8661849c2c48af6fabe5a91ccb88485ecde138323686393557dde2399bfee4c2aa45e121e5cf12bb9c6f59b09e774d393b20db7803b8411c
|
data/CHANGELOG
CHANGED
|
@@ -1,4 +1,27 @@
|
|
|
1
|
-
Release 6.0.
|
|
1
|
+
Release 6.0.12 (Not yet released)
|
|
2
|
+
-------------
|
|
3
|
+
* [Debian] Fix compilation on 32 bit arm. Contributed by Antonio Terceiro.
|
|
4
|
+
* [Debian] Add Bullseye Debian packages.
|
|
5
|
+
* Add formatted error messages to responses. Contributed by Mohammad Aboelnour.
|
|
6
|
+
* Fixes for running under WSL 1. Contributed by Luke Pearce. Closes GH-2036.
|
|
7
|
+
* Upgrades Boost to 1.77. To go along with 32 bit arm fix.
|
|
8
|
+
* [MacOS] Fixes autodetection of openssl lib on apple silicon. Contributed by Taketo Takashima. Closes GH-2389.
|
|
9
|
+
* Reconnect to mongoid databases after fork, like we do for ActiveRecord. Contributed by Mohammad Aboelnour.
|
|
10
|
+
* [Ubuntu] add missing apache name in instance registry dir detection.
|
|
11
|
+
* [Ubuntu] replace hirsute apt packages with impish.
|
|
12
|
+
* [Nginx] add new config option to choose the status code returned when application spawning fails. (passenger_spawn_exception_status_code).
|
|
13
|
+
* Updated various library versions used in precompiled binaries (used for e.g. gem installs):
|
|
14
|
+
|
|
15
|
+
- ccache: 4.4.1 → 4.4.2
|
|
16
|
+
- cmake: 3.21.2 → 3.21.4
|
|
17
|
+
- curl: 7.78.0 → 7.79.1
|
|
18
|
+
- git: 2.33.0 → 2.33.1
|
|
19
|
+
- gnupg: 2.3.2 → 2.3.3
|
|
20
|
+
- rubygems: 3.2.27 → 3.2.30
|
|
21
|
+
- s3cmd: 2.1.0 → 2.2.0
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
Release 6.0.11
|
|
2
25
|
-------------
|
|
3
26
|
* Fix compilation on GCC 4.4, fixes a regression in 6.0.8 where Passenger would no longer compiler without a C++11 compiler.
|
|
4
27
|
* [CentOS] Fix version detection on CentOS Stream. Contributed by Taketo Takashima. Closes GH-2377.
|
data/CONTRIBUTORS
CHANGED
|
@@ -9,6 +9,7 @@ Andre Ferraz
|
|
|
9
9
|
Andre Nathan
|
|
10
10
|
Andrei Belov
|
|
11
11
|
Andy Allan
|
|
12
|
+
Antonio Terceiro
|
|
12
13
|
Benjamin Fleischer
|
|
13
14
|
Bernd Ahlers
|
|
14
15
|
Bernhard M. Wiedemann
|
|
@@ -64,6 +65,7 @@ Joshua Lund
|
|
|
64
65
|
jpatterson
|
|
65
66
|
Jude Nagurney
|
|
66
67
|
Kenneth Powers
|
|
68
|
+
Luke Pearce
|
|
67
69
|
Luuk Hafkamp (Phusion)
|
|
68
70
|
Luuk Hendriks (Phusion)
|
|
69
71
|
MAEDA Go
|
|
@@ -74,6 +76,7 @@ Michal Papis
|
|
|
74
76
|
Michał Pokrywka
|
|
75
77
|
Mike
|
|
76
78
|
Mike Boone
|
|
79
|
+
Mohammad Aboelnour
|
|
77
80
|
Morton Jonuschat
|
|
78
81
|
Nathaniel Bibler
|
|
79
82
|
Neil Wilson
|
data/src/agent/Core/Config.h
CHANGED
|
@@ -164,7 +164,7 @@ using namespace std;
|
|
|
164
164
|
* security_update_checker_interval unsigned integer - default(86400)
|
|
165
165
|
* security_update_checker_proxy_url string - -
|
|
166
166
|
* security_update_checker_url string - default("https://securitycheck.phusionpassenger.com/v1/check.json")
|
|
167
|
-
* server_software string - default("Phusion_Passenger/6.0.
|
|
167
|
+
* server_software string - default("Phusion_Passenger/6.0.12")
|
|
168
168
|
* show_version_in_header boolean - default(true)
|
|
169
169
|
* single_app_mode_app_root string - default,read_only
|
|
170
170
|
* single_app_mode_app_start_command string - read_only
|
|
@@ -242,19 +242,25 @@ Controller::reportSessionCheckoutError(Client *client, Request *req,
|
|
|
242
242
|
writeOtherExceptionErrorResponse(client, req, e);
|
|
243
243
|
}
|
|
244
244
|
|
|
245
|
-
|
|
246
|
-
Controller::
|
|
247
|
-
const boost::shared_ptr<RequestQueueFullException> &e)
|
|
245
|
+
int
|
|
246
|
+
Controller::lookupCodeFromHeader(Request *req, const char* header, int statusCode)
|
|
248
247
|
{
|
|
249
|
-
|
|
250
|
-
const LString *value = req->secureHeaders.lookup(
|
|
251
|
-
"!~PASSENGER_REQUEST_QUEUE_OVERFLOW_STATUS_CODE");
|
|
252
|
-
int requestQueueOverflowStatusCode = 503;
|
|
248
|
+
const LString *value = req->secureHeaders.lookup(header);
|
|
253
249
|
if (value != NULL && value->size > 0) {
|
|
254
250
|
value = psg_lstr_make_contiguous(value, req->pool);
|
|
255
|
-
|
|
251
|
+
statusCode = stringToInt(
|
|
256
252
|
StaticString(value->start->data, value->size));
|
|
257
253
|
}
|
|
254
|
+
return statusCode;
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
void
|
|
258
|
+
Controller::writeRequestQueueFullExceptionErrorResponse(Client *client, Request *req,
|
|
259
|
+
const boost::shared_ptr<RequestQueueFullException> &e)
|
|
260
|
+
{
|
|
261
|
+
TRACE_POINT();
|
|
262
|
+
|
|
263
|
+
int requestQueueOverflowStatusCode = lookupCodeFromHeader(req, "!~PASSENGER_REQUEST_QUEUE_OVERFLOW_STATUS_CODE", 503);
|
|
258
264
|
|
|
259
265
|
SKC_WARN(client, "Returning HTTP " << requestQueueOverflowStatusCode <<
|
|
260
266
|
" due to: " << e->what());
|
|
@@ -271,15 +277,20 @@ Controller::writeSpawnExceptionErrorResponse(Client *client, Request *req,
|
|
|
271
277
|
const boost::shared_ptr<SpawningKit::SpawnException> &e)
|
|
272
278
|
{
|
|
273
279
|
TRACE_POINT();
|
|
280
|
+
int spawnExceptionStatusCode = lookupCodeFromHeader(req, "!~PASSENGER_SPAWN_EXCEPTION_STATUS_CODE", 500);
|
|
274
281
|
SKC_ERROR(client, "Cannot checkout session because a spawning error occurred. " <<
|
|
275
282
|
"The identifier of the error is " << e->getId() << ". Please see earlier logs for " <<
|
|
276
283
|
"details about the error.");
|
|
277
|
-
endRequestWithErrorResponse(&client, &req, *e);
|
|
284
|
+
endRequestWithErrorResponse(&client, &req, *e, spawnExceptionStatusCode);
|
|
278
285
|
}
|
|
279
286
|
|
|
280
287
|
void
|
|
281
288
|
Controller::writeOtherExceptionErrorResponse(Client *client, Request *req, const ExceptionPtr &e) {
|
|
282
289
|
TRACE_POINT();
|
|
290
|
+
|
|
291
|
+
// ATM "other" exceptions always return a spawn exception error message, so use the matching status code
|
|
292
|
+
int otherExceptionStatusCode = lookupCodeFromHeader(req, "!~PASSENGER_SPAWN_EXCEPTION_STATUS_CODE", 500);
|
|
293
|
+
|
|
283
294
|
string typeName;
|
|
284
295
|
const oxt::tracable_exception &eptr = *e;
|
|
285
296
|
#ifdef CXX_ABI_API_AVAILABLE
|
|
@@ -324,16 +335,16 @@ Controller::writeOtherExceptionErrorResponse(Client *client, Request *req, const
|
|
|
324
335
|
}
|
|
325
336
|
pos = appendData(pos, end, "</p>");
|
|
326
337
|
|
|
327
|
-
endRequestWithSimpleResponse(&client, &req, StaticString(buf, pos - buf),
|
|
338
|
+
endRequestWithSimpleResponse(&client, &req, StaticString(buf, pos - buf), otherExceptionStatusCode);
|
|
328
339
|
} else {
|
|
329
340
|
endRequestWithSimpleResponse(&client, &req, "<h2>Internal server error</h2>"
|
|
330
|
-
"Application could not be started. Please try again later.",
|
|
341
|
+
"Application could not be started. Please try again later.", otherExceptionStatusCode);
|
|
331
342
|
}
|
|
332
343
|
}
|
|
333
344
|
|
|
334
345
|
void
|
|
335
346
|
Controller::endRequestWithErrorResponse(Client **c, Request **r,
|
|
336
|
-
const SpawningKit::SpawnException &e)
|
|
347
|
+
const SpawningKit::SpawnException &e, int statusCode)
|
|
337
348
|
{
|
|
338
349
|
TRACE_POINT();
|
|
339
350
|
Client *client = *c;
|
|
@@ -359,7 +370,7 @@ Controller::endRequestWithErrorResponse(Client **c, Request **r,
|
|
|
359
370
|
}
|
|
360
371
|
}
|
|
361
372
|
|
|
362
|
-
endRequestWithSimpleResponse(c, r, psg_pstrdup(req->pool, data),
|
|
373
|
+
endRequestWithSimpleResponse(c, r, psg_pstrdup(req->pool, data), statusCode);
|
|
363
374
|
}
|
|
364
375
|
|
|
365
376
|
bool
|
|
@@ -115,7 +115,7 @@ parseControllerBenchmarkMode(const StaticString &mode) {
|
|
|
115
115
|
* multi_app boolean - default(true),read_only
|
|
116
116
|
* request_freelist_limit unsigned integer - default(1024)
|
|
117
117
|
* response_buffer_high_watermark unsigned integer - default(134217728)
|
|
118
|
-
* server_software string - default("Phusion_Passenger/6.0.
|
|
118
|
+
* server_software string - default("Phusion_Passenger/6.0.12")
|
|
119
119
|
* show_version_in_header boolean - default(true)
|
|
120
120
|
* start_reading_after_accept boolean - default(true)
|
|
121
121
|
* stat_throttle_rate unsigned integer - default(10)
|
|
@@ -96,7 +96,7 @@ Controller::endRequestWithAppSocketIncompleteResponse(Client **client, Request *
|
|
|
96
96
|
SKC_WARN(*client, "Sending 502 response: application did not send a complete response");
|
|
97
97
|
}
|
|
98
98
|
endRequestWithSimpleResponse(client, req,
|
|
99
|
-
"
|
|
99
|
+
getFormattedMessage(*req, "Incomplete response received from application"), 502);
|
|
100
100
|
} else {
|
|
101
101
|
disconnectWithAppSocketIncompleteResponseError(client);
|
|
102
102
|
}
|
|
@@ -107,12 +107,39 @@ Controller::endRequestWithAppSocketReadError(Client **client, Request **req, int
|
|
|
107
107
|
Client *c = *client;
|
|
108
108
|
if (!(*req)->responseBegun) {
|
|
109
109
|
SKC_WARN(*client, "Sending 502 response: application socket read error");
|
|
110
|
-
endRequestWithSimpleResponse(client, req,
|
|
110
|
+
endRequestWithSimpleResponse(client, req,
|
|
111
|
+
getFormattedMessage(*req, "Application socket read error"), 502);
|
|
111
112
|
} else {
|
|
112
113
|
disconnectWithAppSocketReadError(&c, e);
|
|
113
114
|
}
|
|
114
115
|
}
|
|
115
116
|
|
|
117
|
+
ServerKit::HeaderTable
|
|
118
|
+
Controller::getHeadersWithContentType(Request *req)
|
|
119
|
+
{
|
|
120
|
+
ServerKit::HeaderTable headers;
|
|
121
|
+
const LString *value = req->headers.lookup(P_STATIC_STRING("content-type"));
|
|
122
|
+
if (value != NULL) {
|
|
123
|
+
if (psg_lstr_cmp(value, P_STATIC_STRING("application/json"))) {
|
|
124
|
+
headers.insert(req->pool, "content-type", "application/json");
|
|
125
|
+
}
|
|
126
|
+
// Here we can extend setting `content-type` with more supported formats, ie: xml,...
|
|
127
|
+
}
|
|
128
|
+
return headers;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
const StaticString
|
|
132
|
+
Controller::getFormattedMessage(Request *req, const StaticString &body)
|
|
133
|
+
{
|
|
134
|
+
const LString *value = req->headers.lookup(P_STATIC_STRING("content-type"));
|
|
135
|
+
if (value != NULL) {
|
|
136
|
+
if (psg_lstr_cmp(value, P_STATIC_STRING("application/json"))) {
|
|
137
|
+
return "{\"status\":\"error\", \"message\": \""+body+"\"}";
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
return "<h1>"+body+"</h1>";
|
|
141
|
+
}
|
|
142
|
+
|
|
116
143
|
/**
|
|
117
144
|
* `data` must outlive the request.
|
|
118
145
|
*/
|
|
@@ -122,8 +149,7 @@ Controller::endRequestWithSimpleResponse(Client **c, Request **r,
|
|
|
122
149
|
{
|
|
123
150
|
Client *client = *c;
|
|
124
151
|
Request *req = *r;
|
|
125
|
-
ServerKit::HeaderTable headers;
|
|
126
|
-
|
|
152
|
+
ServerKit::HeaderTable headers = getHeadersWithContentType(req);
|
|
127
153
|
headers.insert(req->pool, "cache-control", "no-cache, no-store, must-revalidate");
|
|
128
154
|
writeSimpleResponse(client, code, &headers, body);
|
|
129
155
|
endRequest(c, r);
|
|
@@ -134,9 +160,9 @@ Controller::endRequestAsBadGateway(Client **client, Request **req) {
|
|
|
134
160
|
if ((*req)->responseBegun) {
|
|
135
161
|
disconnectWithError(client, "bad gateway");
|
|
136
162
|
} else {
|
|
137
|
-
ServerKit::HeaderTable headers;
|
|
163
|
+
ServerKit::HeaderTable headers = getHeadersWithContentType(*req);
|
|
138
164
|
headers.insert((*req)->pool, "cache-control", "no-cache, no-store, must-revalidate");
|
|
139
|
-
writeSimpleResponse(*client, 502, &headers, "
|
|
165
|
+
writeSimpleResponse(*client, 502, &headers, getFormattedMessage(*req, "Bad Gateway"));
|
|
140
166
|
endRequest(client, req);
|
|
141
167
|
}
|
|
142
168
|
}
|
data/src/agent/Core/Controller.h
CHANGED
|
@@ -207,6 +207,7 @@ private:
|
|
|
207
207
|
static void checkoutSessionLater(Request *req);
|
|
208
208
|
void reportSessionCheckoutError(Client *client, Request *req,
|
|
209
209
|
const ExceptionPtr &e);
|
|
210
|
+
int lookupCodeFromHeader(Request *req, const char* header, int statusCode);
|
|
210
211
|
void writeRequestQueueFullExceptionErrorResponse(Client *client,
|
|
211
212
|
Request *req, const boost::shared_ptr<RequestQueueFullException> &e);
|
|
212
213
|
void writeSpawnExceptionErrorResponse(Client *client, Request *req,
|
|
@@ -214,7 +215,7 @@ private:
|
|
|
214
215
|
void writeOtherExceptionErrorResponse(Client *client, Request *req,
|
|
215
216
|
const ExceptionPtr &e);
|
|
216
217
|
void endRequestWithErrorResponse(Client **c, Request **r,
|
|
217
|
-
const SpawningKit::SpawnException &e);
|
|
218
|
+
const SpawningKit::SpawnException &e, int statusCode);
|
|
218
219
|
bool friendlyErrorPagesEnabled(Request *req);
|
|
219
220
|
|
|
220
221
|
|
|
@@ -313,6 +314,8 @@ private:
|
|
|
313
314
|
Request **req);
|
|
314
315
|
void endRequestWithAppSocketReadError(Client **client, Request **req,
|
|
315
316
|
int e);
|
|
317
|
+
ServerKit::HeaderTable getHeadersWithContentType(Request *req);
|
|
318
|
+
const StaticString getFormattedMessage(Request *req, const StaticString &body);
|
|
316
319
|
void endRequestWithSimpleResponse(Client **c, Request **r,
|
|
317
320
|
const StaticString &body, int code = 200);
|
|
318
321
|
void endRequestAsBadGateway(Client **client, Request **req);
|
data/src/agent/Watchdog/Config.h
CHANGED
|
@@ -153,7 +153,7 @@ using namespace std;
|
|
|
153
153
|
* security_update_checker_interval unsigned integer - default(86400)
|
|
154
154
|
* security_update_checker_proxy_url string - -
|
|
155
155
|
* security_update_checker_url string - default("https://securitycheck.phusionpassenger.com/v1/check.json")
|
|
156
|
-
* server_software string - default("Phusion_Passenger/6.0.
|
|
156
|
+
* server_software string - default("Phusion_Passenger/6.0.12")
|
|
157
157
|
* setsid boolean - default(false)
|
|
158
158
|
* show_version_in_header boolean - default(true)
|
|
159
159
|
* single_app_mode_app_root string - default,read_only
|
|
@@ -83,7 +83,7 @@
|
|
|
83
83
|
#define PASSENGER_API_VERSION_MAJOR 0
|
|
84
84
|
#define PASSENGER_API_VERSION_MINOR 3
|
|
85
85
|
#define PASSENGER_DEFAULT_USER "nobody"
|
|
86
|
-
#define PASSENGER_VERSION "6.0.
|
|
86
|
+
#define PASSENGER_VERSION "6.0.12"
|
|
87
87
|
#define POOL_HELPER_THREAD_STACK_SIZE 262144
|
|
88
88
|
#define PROCESS_SHUTDOWN_TIMEOUT 60
|
|
89
89
|
#define PROCESS_SHUTDOWN_TIMEOUT_DISPLAY "1 minute"
|
|
@@ -1183,7 +1183,7 @@ readFileDescriptor(int fd, unsigned long long *timeout) {
|
|
|
1183
1183
|
struct msghdr msg;
|
|
1184
1184
|
struct iovec vec;
|
|
1185
1185
|
char dummy[1];
|
|
1186
|
-
#if defined(__APPLE__) || defined(__SOLARIS__)
|
|
1186
|
+
#if defined(__APPLE__) || defined(__SOLARIS__)
|
|
1187
1187
|
// File descriptor passing macros (CMSG_*) seem to be broken
|
|
1188
1188
|
// on 64-bit MacOS X. This structure works around the problem.
|
|
1189
1189
|
struct {
|
|
@@ -1226,7 +1226,7 @@ readFileDescriptor(int fd, unsigned long long *timeout) {
|
|
|
1226
1226
|
throw IOException("No valid file descriptor received.");
|
|
1227
1227
|
}
|
|
1228
1228
|
|
|
1229
|
-
#if defined(__APPLE__) || defined(__SOLARIS__)
|
|
1229
|
+
#if defined(__APPLE__) || defined(__SOLARIS__)
|
|
1230
1230
|
return control_data.fd;
|
|
1231
1231
|
#else
|
|
1232
1232
|
return *((int *) CMSG_DATA(control_header));
|
|
@@ -1242,7 +1242,7 @@ writeFileDescriptor(int fd, int fdToSend, unsigned long long *timeout) {
|
|
|
1242
1242
|
struct msghdr msg;
|
|
1243
1243
|
struct iovec vec;
|
|
1244
1244
|
char dummy[1];
|
|
1245
|
-
#if defined(__APPLE__) || defined(__SOLARIS__)
|
|
1245
|
+
#if defined(__APPLE__) || defined(__SOLARIS__)
|
|
1246
1246
|
struct {
|
|
1247
1247
|
struct cmsghdr header;
|
|
1248
1248
|
int fd;
|
|
@@ -1273,7 +1273,7 @@ writeFileDescriptor(int fd, int fdToSend, unsigned long long *timeout) {
|
|
|
1273
1273
|
control_header = CMSG_FIRSTHDR(&msg);
|
|
1274
1274
|
control_header->cmsg_level = SOL_SOCKET;
|
|
1275
1275
|
control_header->cmsg_type = SCM_RIGHTS;
|
|
1276
|
-
#if defined(__APPLE__) || defined(__SOLARIS__)
|
|
1276
|
+
#if defined(__APPLE__) || defined(__SOLARIS__)
|
|
1277
1277
|
control_header->cmsg_len = sizeof(control_data);
|
|
1278
1278
|
control_data.fd = fdToSend;
|
|
1279
1279
|
#else
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/*
|
|
2
|
+
Copyright 2014-2015 Glen Joseph Fernandes
|
|
3
|
+
(glenjofe@gmail.com)
|
|
4
|
+
|
|
5
|
+
Distributed under the Boost Software License, Version 1.0.
|
|
6
|
+
(http://www.boost.org/LICENSE_1_0.txt)
|
|
7
|
+
*/
|
|
8
|
+
#ifndef BOOST_ALIGN_ALIGNED_ALLOC_HPP
|
|
9
|
+
#define BOOST_ALIGN_ALIGNED_ALLOC_HPP
|
|
10
|
+
|
|
11
|
+
#include <boost/config.hpp>
|
|
12
|
+
|
|
13
|
+
#if defined(BOOST_HAS_UNISTD_H)
|
|
14
|
+
#include <unistd.h>
|
|
15
|
+
#endif
|
|
16
|
+
|
|
17
|
+
#if defined(__APPLE__) || defined(__APPLE_CC__) || defined(macintosh)
|
|
18
|
+
#include <AvailabilityMacros.h>
|
|
19
|
+
#endif
|
|
20
|
+
|
|
21
|
+
#if defined(BOOST_ALIGN_USE_ALIGN)
|
|
22
|
+
#include <boost/align/detail/aligned_alloc.hpp>
|
|
23
|
+
#elif defined(BOOST_ALIGN_USE_NEW)
|
|
24
|
+
#include <boost/align/detail/aligned_alloc_new.hpp>
|
|
25
|
+
#elif defined(_MSC_VER) && !defined(UNDER_CE)
|
|
26
|
+
#include <boost/align/detail/aligned_alloc_msvc.hpp>
|
|
27
|
+
#elif defined(__MINGW32__) && (__MSVCRT_VERSION__ >= 0x0700)
|
|
28
|
+
#include <boost/align/detail/aligned_alloc_msvc.hpp>
|
|
29
|
+
#elif defined(__MINGW32__)
|
|
30
|
+
#include <boost/align/detail/aligned_alloc_mingw.hpp>
|
|
31
|
+
#elif MAC_OS_X_VERSION_MIN_REQUIRED >= 1090
|
|
32
|
+
#include <boost/align/detail/aligned_alloc_posix.hpp>
|
|
33
|
+
#elif MAC_OS_X_VERSION_MIN_REQUIRED >= 1060
|
|
34
|
+
#include <boost/align/detail/aligned_alloc_macos.hpp>
|
|
35
|
+
#elif defined(__ANDROID__)
|
|
36
|
+
#include <boost/align/detail/aligned_alloc_android.hpp>
|
|
37
|
+
#elif defined(__SunOS_5_11) || defined(__SunOS_5_12)
|
|
38
|
+
#include <boost/align/detail/aligned_alloc_posix.hpp>
|
|
39
|
+
#elif defined(sun) || defined(__sun)
|
|
40
|
+
#include <boost/align/detail/aligned_alloc_sunos.hpp>
|
|
41
|
+
#elif (_POSIX_C_SOURCE >= 200112L) || (_XOPEN_SOURCE >= 600)
|
|
42
|
+
#include <boost/align/detail/aligned_alloc_posix.hpp>
|
|
43
|
+
#else
|
|
44
|
+
#include <boost/align/detail/aligned_alloc.hpp>
|
|
45
|
+
#endif
|
|
46
|
+
|
|
47
|
+
#endif
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/*
|
|
2
|
+
Copyright 2014 Glen Joseph Fernandes
|
|
3
|
+
(glenjofe@gmail.com)
|
|
4
|
+
|
|
5
|
+
Distributed under the Boost Software License, Version 1.0.
|
|
6
|
+
(http://www.boost.org/LICENSE_1_0.txt)
|
|
7
|
+
*/
|
|
8
|
+
#ifndef BOOST_ALIGN_DETAIL_ALIGNED_ALLOC_POSIX_HPP
|
|
9
|
+
#define BOOST_ALIGN_DETAIL_ALIGNED_ALLOC_POSIX_HPP
|
|
10
|
+
|
|
11
|
+
#include <boost/align/detail/is_alignment.hpp>
|
|
12
|
+
#include <boost/assert.hpp>
|
|
13
|
+
#include <stdlib.h>
|
|
14
|
+
|
|
15
|
+
namespace boost {
|
|
16
|
+
namespace alignment {
|
|
17
|
+
|
|
18
|
+
inline void*
|
|
19
|
+
aligned_alloc(std::size_t alignment, std::size_t size) BOOST_NOEXCEPT
|
|
20
|
+
{
|
|
21
|
+
BOOST_ASSERT(detail::is_alignment(alignment));
|
|
22
|
+
if (alignment < sizeof(void*)) {
|
|
23
|
+
alignment = sizeof(void*);
|
|
24
|
+
}
|
|
25
|
+
void* p;
|
|
26
|
+
if (::posix_memalign(&p, alignment, size) != 0) {
|
|
27
|
+
p = 0;
|
|
28
|
+
}
|
|
29
|
+
return p;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
inline void
|
|
33
|
+
aligned_free(void* ptr) BOOST_NOEXCEPT
|
|
34
|
+
{
|
|
35
|
+
::free(ptr);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
} /* alignment */
|
|
39
|
+
} /* boost */
|
|
40
|
+
|
|
41
|
+
#endif
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/*
|
|
2
|
+
Copyright 2014 Glen Joseph Fernandes
|
|
3
|
+
(glenjofe@gmail.com)
|
|
4
|
+
|
|
5
|
+
Distributed under the Boost Software License, Version 1.0.
|
|
6
|
+
(http://www.boost.org/LICENSE_1_0.txt)
|
|
7
|
+
*/
|
|
8
|
+
#ifndef BOOST_ALIGN_DETAIL_IS_ALIGNMENT_HPP
|
|
9
|
+
#define BOOST_ALIGN_DETAIL_IS_ALIGNMENT_HPP
|
|
10
|
+
|
|
11
|
+
#include <boost/config.hpp>
|
|
12
|
+
#include <cstddef>
|
|
13
|
+
|
|
14
|
+
namespace boost {
|
|
15
|
+
namespace alignment {
|
|
16
|
+
namespace detail {
|
|
17
|
+
|
|
18
|
+
BOOST_CONSTEXPR inline bool
|
|
19
|
+
is_alignment(std::size_t value) BOOST_NOEXCEPT
|
|
20
|
+
{
|
|
21
|
+
return (value > 0) && ((value & (value - 1)) == 0);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
} /* detail */
|
|
25
|
+
} /* alignment */
|
|
26
|
+
} /* boost */
|
|
27
|
+
|
|
28
|
+
#endif
|
|
@@ -17,15 +17,33 @@
|
|
|
17
17
|
|
|
18
18
|
#include <boost/asio/detail/config.hpp>
|
|
19
19
|
#include <memory>
|
|
20
|
+
#include <boost/asio/associator.hpp>
|
|
21
|
+
#include <boost/asio/detail/functional.hpp>
|
|
20
22
|
#include <boost/asio/detail/type_traits.hpp>
|
|
21
23
|
|
|
22
24
|
#include <boost/asio/detail/push_options.hpp>
|
|
23
25
|
|
|
24
26
|
namespace boost {
|
|
25
27
|
namespace asio {
|
|
28
|
+
|
|
29
|
+
template <typename T, typename Allocator>
|
|
30
|
+
struct associated_allocator;
|
|
31
|
+
|
|
26
32
|
namespace detail {
|
|
27
33
|
|
|
28
|
-
template <typename T, typename
|
|
34
|
+
template <typename T, typename = void>
|
|
35
|
+
struct has_allocator_type : false_type
|
|
36
|
+
{
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
template <typename T>
|
|
40
|
+
struct has_allocator_type<T,
|
|
41
|
+
typename void_type<typename T::executor_type>::type>
|
|
42
|
+
: true_type
|
|
43
|
+
{
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
template <typename T, typename E, typename = void, typename = void>
|
|
29
47
|
struct associated_allocator_impl
|
|
30
48
|
{
|
|
31
49
|
typedef E type;
|
|
@@ -48,6 +66,17 @@ struct associated_allocator_impl<T, E,
|
|
|
48
66
|
}
|
|
49
67
|
};
|
|
50
68
|
|
|
69
|
+
template <typename T, typename E>
|
|
70
|
+
struct associated_allocator_impl<T, E,
|
|
71
|
+
typename enable_if<
|
|
72
|
+
!has_allocator_type<T>::value
|
|
73
|
+
>::type,
|
|
74
|
+
typename void_type<
|
|
75
|
+
typename associator<associated_allocator, T, E>::type
|
|
76
|
+
>::type> : associator<associated_allocator, T, E>
|
|
77
|
+
{
|
|
78
|
+
};
|
|
79
|
+
|
|
51
80
|
} // namespace detail
|
|
52
81
|
|
|
53
82
|
/// Traits type used to obtain the allocator associated with an object.
|
|
@@ -119,6 +148,29 @@ using associated_allocator_t
|
|
|
119
148
|
|
|
120
149
|
#endif // defined(BOOST_ASIO_HAS_ALIAS_TEMPLATES)
|
|
121
150
|
|
|
151
|
+
#if defined(BOOST_ASIO_HAS_STD_REFERENCE_WRAPPER) \
|
|
152
|
+
|| defined(GENERATING_DOCUMENTATION)
|
|
153
|
+
|
|
154
|
+
/// Specialisation of associated_allocator for @c std::reference_wrapper.
|
|
155
|
+
template <typename T, typename Allocator>
|
|
156
|
+
struct associated_allocator<reference_wrapper<T>, Allocator>
|
|
157
|
+
{
|
|
158
|
+
/// Forwards @c type to the associator specialisation for the unwrapped type
|
|
159
|
+
/// @c T.
|
|
160
|
+
typedef typename associated_allocator<T, Allocator>::type type;
|
|
161
|
+
|
|
162
|
+
/// Forwards the request to get the allocator to the associator specialisation
|
|
163
|
+
/// for the unwrapped type @c T.
|
|
164
|
+
static type get(reference_wrapper<T> t,
|
|
165
|
+
const Allocator& a = Allocator()) BOOST_ASIO_NOEXCEPT
|
|
166
|
+
{
|
|
167
|
+
return associated_allocator<T, Allocator>::get(t.get(), a);
|
|
168
|
+
}
|
|
169
|
+
};
|
|
170
|
+
|
|
171
|
+
#endif // defined(BOOST_ASIO_HAS_STD_REFERENCE_WRAPPER)
|
|
172
|
+
// || defined(GENERATING_DOCUMENTATION)
|
|
173
|
+
|
|
122
174
|
} // namespace asio
|
|
123
175
|
} // namespace boost
|
|
124
176
|
|