passenger 6.0.22 → 6.0.24
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG +59 -1
- data/Rakefile +13 -2
- data/bin/passenger-install-apache2-module +5 -0
- data/bin/passenger-install-nginx-module +18 -2
- data/build/apache2.rb +1 -1
- data/build/basics.rb +10 -4
- data/build/cxx_tests.rb +18 -7
- data/build/support/cxx_dependency_map.rb +40 -6
- data/build/test_basics.rb +24 -13
- data/package.json +1 -1
- data/passenger.gemspec +4 -2
- data/resources/templates/standalone/server.erb +1 -0
- data/src/agent/Core/ApplicationPool/Group/InitializationAndShutdown.cpp +8 -0
- data/src/agent/Core/ApplicationPool/Group/InternalUtils.cpp +10 -2
- data/src/agent/Core/ApplicationPool/Group/LifetimeAndBasics.cpp +8 -0
- data/src/agent/Core/ApplicationPool/Group/Miscellaneous.cpp +9 -0
- data/src/agent/Core/ApplicationPool/Group/OutOfBandWork.cpp +9 -0
- data/src/agent/Core/ApplicationPool/Group/ProcessListManagement.cpp +63 -50
- data/src/agent/Core/ApplicationPool/Group/SessionManagement.cpp +19 -9
- data/src/agent/Core/ApplicationPool/Group/SpawningAndRestarting.cpp +8 -0
- data/src/agent/Core/ApplicationPool/Group/StateInspection.cpp +9 -1
- data/src/agent/Core/ApplicationPool/Group/Verification.cpp +8 -0
- data/src/agent/Core/ApplicationPool/Group.h +15 -5
- data/src/agent/Core/ApplicationPool/Pool/AnalyticsCollection.cpp +5 -0
- data/src/agent/Core/ApplicationPool/Pool/GarbageCollection.cpp +5 -0
- data/src/agent/Core/ApplicationPool/Pool/GeneralUtils.cpp +5 -0
- data/src/agent/Core/ApplicationPool/Pool/GroupUtils.cpp +5 -0
- data/src/agent/Core/ApplicationPool/Pool/InitializationAndShutdown.cpp +5 -0
- data/src/agent/Core/ApplicationPool/Pool/Miscellaneous.cpp +5 -0
- data/src/agent/Core/ApplicationPool/Pool/ProcessUtils.cpp +5 -0
- data/src/agent/Core/ApplicationPool/Pool/StateInspection.cpp +11 -4
- data/src/agent/Core/ApplicationPool/Pool.h +0 -2
- data/src/agent/Core/ApplicationPool/Process.h +22 -6
- data/src/agent/Core/ApplicationPool/Session.h +6 -1
- data/src/agent/Core/Config.h +8 -3
- data/src/agent/Core/Controller/CheckoutSession.cpp +24 -1
- data/src/agent/Core/Controller/Config.h +5 -1
- data/src/agent/Core/Controller.h +1 -0
- data/src/agent/Core/CoreMain.cpp +10 -17
- data/src/agent/Core/OptionParser.h +3 -0
- data/src/agent/Core/SpawningKit/ErrorRenderer.h +5 -0
- data/src/agent/Core/SpawningKit/Handshake/Prepare.h +1 -53
- data/src/agent/Core/SpawningKit/Handshake/Session.h +3 -0
- data/src/agent/Core/SpawningKit/Handshake/WorkDir.h +5 -2
- data/src/agent/Core/SpawningKit/SmartSpawner.h +6 -2
- data/src/agent/Core/SpawningKit/Spawner.h +4 -0
- data/src/agent/Shared/Fundamentals/AbortHandler.cpp +88 -9
- data/src/agent/Shared/Fundamentals/AbortHandler.h +2 -0
- data/src/agent/Shared/Fundamentals/Initialization.cpp +9 -3
- data/src/agent/Shared/Fundamentals/Initialization.h +3 -3
- data/src/agent/SpawnEnvSetupper/SpawnEnvSetupperMain.cpp +6 -7
- data/src/agent/Watchdog/Config.h +2 -1
- data/src/agent/Watchdog/WatchdogMain.cpp +4 -7
- data/src/apache2_module/ConfigGeneral/AutoGeneratedDefinitions.cpp +5 -0
- data/src/apache2_module/ConfigGeneral/AutoGeneratedSetterFuncs.cpp +15 -0
- data/src/apache2_module/ConfigGeneral/ManifestGeneration.h +5 -3
- data/src/apache2_module/DirConfig/AutoGeneratedCreateFunction.cpp +5 -0
- data/src/apache2_module/DirConfig/AutoGeneratedHeaderSerialization.cpp +3 -0
- data/src/apache2_module/DirConfig/AutoGeneratedManifestGeneration.cpp +13 -0
- data/src/apache2_module/DirConfig/AutoGeneratedMergeFunction.cpp +7 -0
- data/src/apache2_module/DirConfig/AutoGeneratedStruct.h +16 -0
- data/src/apache2_module/DirConfig/AutoGeneratedStruct.h.cxxcodebuilder +3 -0
- data/src/apache2_module/ServerConfig/AutoGeneratedStruct.h +2 -1
- data/src/apache2_module/ServerConfig/AutoGeneratedStruct.h.cxxcodebuilder +2 -1
- data/src/cxx_supportlib/Constants.h +1 -1
- data/src/cxx_supportlib/DataStructures/LString.h +4 -0
- data/src/cxx_supportlib/DataStructures/StringMap.h +0 -1
- data/src/cxx_supportlib/FileTools/PathManip.cpp +1 -1
- data/src/cxx_supportlib/SafeLibev.h +1 -3
- data/src/cxx_supportlib/ServerKit/Hooks.h +2 -2
- data/src/cxx_supportlib/ServerKit/HttpHeaderParser.h +0 -1
- data/src/cxx_supportlib/ServerKit/HttpServer.h +15 -10
- data/src/cxx_supportlib/ServerKit/Server.h +0 -6
- data/src/cxx_supportlib/Utils/AsyncSignalSafeUtils.h +2 -0
- data/src/cxx_supportlib/Utils/SpeedMeter.h +0 -3
- data/src/cxx_supportlib/oxt/implementation.cpp +11 -0
- data/src/cxx_supportlib/oxt/system_calls.cpp +10 -3
- data/src/cxx_supportlib/oxt/thread.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/as_tuple.hpp +35 -9
- data/src/cxx_supportlib/vendor-modified/boost/asio/associated_immediate_executor.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/associator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/async_result.hpp +74 -68
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_datagram_socket.hpp +11 -11
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_deadline_timer.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_random_access_file.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_raw_socket.hpp +10 -10
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_readable_pipe.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_seq_packet_socket.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_serial_port.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_signal_set.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_acceptor.hpp +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_file.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_socket.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_waitable_timer.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_writable_pipe.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/bind_allocator.hpp +88 -22
- data/src/cxx_supportlib/vendor-modified/boost/asio/bind_cancellation_slot.hpp +91 -22
- data/src/cxx_supportlib/vendor-modified/boost/asio/bind_executor.hpp +105 -23
- data/src/cxx_supportlib/vendor-modified/boost/asio/bind_immediate_executor.hpp +90 -23
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffer.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffer_registration.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/cancel_after.hpp +303 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/cancel_at.hpp +296 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/{experimental/impl/co_composed.hpp → co_composed.hpp} +208 -61
- data/src/cxx_supportlib/vendor-modified/boost/asio/completion_condition.hpp +49 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/compose.hpp +10 -201
- data/src/cxx_supportlib/vendor-modified/boost/asio/composed.hpp +415 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/connect.hpp +214 -48
- data/src/cxx_supportlib/vendor-modified/boost/asio/coroutine.hpp +3 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/default_completion_token.hpp +91 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/deferred.hpp +9 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/detached.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffered_stream_storage.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/{experimental/detail/channel_message.hpp → detail/completion_message.hpp} +14 -16
- data/src/cxx_supportlib/vendor-modified/boost/asio/{experimental/detail/channel_payload.hpp → detail/completion_payload.hpp} +30 -32
- data/src/cxx_supportlib/vendor-modified/boost/asio/{experimental/detail/channel_handler.hpp → detail/completion_payload_handler.hpp} +15 -13
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/config.hpp +26 -32
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/deadline_timer_service.hpp +5 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_alloc_helpers.hpp +14 -118
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/descriptor_ops.ipp +36 -33
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_descriptor_service.ipp +7 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_socket_service_base.ipp +6 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_ops.ipp +44 -35
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_select_interrupter.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/initiation_base.hpp +64 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/memory.hpp +0 -11
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_descriptor_service.hpp +20 -16
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_send_op.hpp +0 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service_base.hpp +23 -18
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/recycling_allocator.hpp +9 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_endpoint_op.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_query_op.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_info_base.hpp +11 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timed_cancel_op.hpp +363 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wrapped_handler.hpp +29 -51
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/allocator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/blocking.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/blocking_adaptation.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/context.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/mapping.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/occupancy.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/outstanding_work.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/relationship.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/basic_channel.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/basic_concurrent_channel.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/co_composed.hpp +2 -114
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_receive_op.hpp +2 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_send_functions.hpp +27 -19
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_send_op.hpp +0 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_service.hpp +17 -15
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/coro_promise_allocator.hpp +2 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/impl/channel_service.hpp +4 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/partial_promise.hpp +3 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/as_single.hpp +12 -7
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/coro.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/parallel_group.hpp +38 -40
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/promise.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/use_coro.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/use_promise.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/immediate.hpp +144 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/append.hpp +14 -7
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/as_tuple.hpp +45 -14
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/awaitable.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/cancel_after.hpp +270 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/cancel_at.hpp +270 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/co_spawn.hpp +8 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/connect.hpp +60 -166
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/consign.hpp +14 -7
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/detached.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/prepend.hpp +14 -7
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read.hpp +26 -177
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_at.hpp +16 -82
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_until.hpp +13 -286
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/redirect_error.hpp +55 -18
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/spawn.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write.hpp +26 -185
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write_at.hpp +16 -87
- data/src/cxx_supportlib/vendor-modified/boost/asio/io_context_strand.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/socket_option.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v6.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/placeholders.hpp +12 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_descriptor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_stream_descriptor.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/read.hpp +127 -28
- data/src/cxx_supportlib/vendor-modified/boost/asio/read_at.hpp +70 -20
- data/src/cxx_supportlib/vendor-modified/boost/asio/read_until.hpp +114 -36
- data/src/cxx_supportlib/vendor-modified/boost/asio/redirect_error.hpp +43 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/registered_buffer.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/spawn.hpp +0 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/openssl_init.ipp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.ipp +10 -7
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/this_coro.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/use_awaitable.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/use_future.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/uses_executor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/version.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/write.hpp +147 -35
- data/src/cxx_supportlib/vendor-modified/boost/asio/write_at.hpp +74 -22
- data/src/cxx_supportlib/vendor-modified/boost/asio.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/assert/source_location.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/futex.hpp +42 -11
- data/src/cxx_supportlib/vendor-modified/boost/bind/bind.hpp +15 -37
- data/src/cxx_supportlib/vendor-modified/boost/container/adaptive_pool.hpp +8 -8
- data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/allocator_traits.hpp +151 -10
- data/src/cxx_supportlib/vendor-modified/boost/container/container_fwd.hpp +11 -9
- data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +611 -102
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool_impl.hpp +47 -47
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/advanced_insert_int.hpp +25 -24
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/allocation_type.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/block_list.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/block_slist.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/construct_in_place.hpp +35 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +14 -14
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/dispatch_uses_allocator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +55 -23
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/function_detector.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_container.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_contiguous_container.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_pair.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterators.hpp +8 -8
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/math_functions.hpp +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/mpl.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/multiallocation_chain.hpp +96 -10
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_alloc_holder.hpp +19 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair.hpp +17 -17
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/pool_common.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/pool_common_alloc.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/pool_resource.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/tree.hpp +86 -52
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/version_type.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/workaround.hpp +12 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/devector.hpp +145 -65
- data/src/cxx_supportlib/vendor-modified/boost/container/flat_map.hpp +105 -22
- data/src/cxx_supportlib/vendor-modified/boost/container/flat_set.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/list.hpp +30 -22
- data/src/cxx_supportlib/vendor-modified/boost/container/map.hpp +19 -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 +15 -8
- data/src/cxx_supportlib/vendor-modified/boost/container/node_handle.hpp +6 -5
- data/src/cxx_supportlib/vendor-modified/boost/container/options.hpp +15 -15
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/memory_resource.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/monotonic_buffer_resource.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/resource_adaptor.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/container/scoped_allocator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/set.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/slist.hpp +31 -24
- data/src/cxx_supportlib/vendor-modified/boost/container/small_vector.hpp +45 -43
- data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +45 -33
- data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +5 -7
- data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +55 -47
- data/src/cxx_supportlib/vendor-modified/boost/container/uses_allocator.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +222 -73
- data/src/cxx_supportlib/vendor-modified/boost/core/detail/minstd_rand.hpp +58 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/detail/string_view.hpp +13 -13
- data/src/cxx_supportlib/vendor-modified/boost/core/empty_value.hpp +53 -5
- data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/pointer_in_range.hpp +49 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/span.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/type_name.hpp +7 -2
- data/src/cxx_supportlib/vendor-modified/boost/function/function_base.hpp +22 -34
- data/src/cxx_supportlib/vendor-modified/boost/function/function_template.hpp +141 -38
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/algorithm.hpp +8 -8
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hash.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hook_traits.hpp +8 -6
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_traits.hpp +18 -18
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +22 -17
- data/src/cxx_supportlib/vendor-modified/boost/libs/random/src/random_device.cpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/config_begin.hpp +0 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/launder.hpp +53 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/type_traits.hpp +9 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/workaround.hpp +6 -1
- data/src/cxx_supportlib/vendor-modified/boost/mp11/version.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/integral_wrapper.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/predef/version.h +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/requires_cxx11.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_has_gcc_intrinsics.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/generic_category_message.hpp +13 -1
- data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_map.hpp +13 -1
- data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_map_fwd.hpp +15 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_set.hpp +13 -1
- data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_set_fwd.hpp +15 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/fca.hpp +22 -6
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/concurrent_table.hpp +38 -10
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/core.hpp +111 -2
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/cumulative_stats.hpp +177 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/table.hpp +11 -1
- data/src/cxx_supportlib/vendor-modified/boost/unordered/hash_traits.hpp +33 -7
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map.hpp +12 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map_fwd.hpp +15 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set.hpp +12 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set_fwd.hpp +14 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map_fwd.hpp +19 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_map.hpp +12 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_map_fwd.hpp +15 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_set.hpp +12 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_set_fwd.hpp +14 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set_fwd.hpp +17 -0
- data/src/cxx_supportlib/vendor-modified/boost/utility/detail/minstd_rand.hpp +1 -43
- 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/AutoGeneratedSetterFuncs.c +12 -0
- data/src/nginx_module/Configuration.c +7 -2
- data/src/nginx_module/LocationConfig/AutoGeneratedCreateFunction.c +6 -0
- data/src/nginx_module/LocationConfig/AutoGeneratedHeaderSerialization.c +15 -0
- data/src/nginx_module/LocationConfig/AutoGeneratedManifestGeneration.c +14 -0
- data/src/nginx_module/LocationConfig/AutoGeneratedMergeFunction.c +3 -0
- data/src/nginx_module/LocationConfig/AutoGeneratedStruct.h +4 -0
- data/src/ruby_native_extension/passenger_native_support.c +1 -0
- data/src/ruby_supportlib/phusion_passenger/apache2/config_options.rb +5 -0
- data/src/ruby_supportlib/phusion_passenger/config/compile_nginx_engine_command.rb +6 -2
- data/src/ruby_supportlib/phusion_passenger/config/install_standalone_runtime_command.rb +10 -0
- data/src/ruby_supportlib/phusion_passenger/config/nginx_engine_compiler.rb +12 -4
- data/src/ruby_supportlib/phusion_passenger/nginx/config_options.rb +5 -0
- data/src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb +32 -5
- data/src/ruby_supportlib/phusion_passenger/platform_info/depcheck_specs/gems.rb +10 -0
- data/src/ruby_supportlib/phusion_passenger/rack/handler.rb +73 -0
- data/src/ruby_supportlib/phusion_passenger/rack_handler.rb +30 -56
- data/src/ruby_supportlib/phusion_passenger/standalone/config_options_list.rb +5 -0
- data/src/ruby_supportlib/phusion_passenger/standalone/start_command/builtin_engine.rb +1 -0
- data/src/ruby_supportlib/phusion_passenger/standalone/start_command.rb +0 -4
- data/src/ruby_supportlib/phusion_passenger/utils/json.rb +7 -198
- data/src/ruby_supportlib/phusion_passenger/utils/strscan.rb +67 -0
- data/src/ruby_supportlib/phusion_passenger/utils.rb +5 -15
- data/src/ruby_supportlib/phusion_passenger.rb +5 -5
- metadata +39 -10
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
# Phusion Passenger - https://www.phusionpassenger.com/
|
2
4
|
# Copyright (c) 2016-2017 Phusion Holding B.V.
|
3
5
|
#
|
@@ -30,73 +32,45 @@ begin
|
|
30
32
|
rescue LoadError
|
31
33
|
end
|
32
34
|
require 'phusion_passenger'
|
35
|
+
require_relative 'rack/handler'
|
33
36
|
## Magic comment: end bootstrap ##
|
34
37
|
|
35
38
|
PhusionPassenger.locate_directories
|
36
39
|
|
37
40
|
require 'rbconfig'
|
41
|
+
require 'rackup' if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('2.4.0')
|
38
42
|
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
if !result
|
47
|
-
raise "Error starting Passenger"
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
def environment
|
52
|
-
ENV['RAILS_ENV'] || 'development'
|
53
|
-
end
|
54
|
-
|
55
|
-
def to_s
|
56
|
-
'Passenger application server'
|
57
|
-
end
|
58
|
-
|
59
|
-
private
|
60
|
-
def build_args(options)
|
61
|
-
args = ['-e', environment]
|
62
|
-
if options[:Port]
|
63
|
-
args << '-p'
|
64
|
-
args << options[:Port].to_s
|
65
|
-
end
|
66
|
-
if options[:Host]
|
67
|
-
args << '-a'
|
68
|
-
args << options[:Host].to_s
|
69
|
-
end
|
70
|
-
if options[:config]
|
71
|
-
args << '-R'
|
72
|
-
args << options[:config].to_s
|
73
|
-
end
|
74
|
-
args
|
75
|
-
end
|
76
|
-
|
77
|
-
def rb_config
|
78
|
-
if defined?(::RbConfig)
|
79
|
-
::RbConfig::CONFIG
|
80
|
-
else
|
81
|
-
::Config::CONFIG
|
82
|
-
end
|
43
|
+
# Rackup was removed in Rack 3, it is now a separate gem
|
44
|
+
if Object.const_defined? :Rackup
|
45
|
+
module Rackup
|
46
|
+
module Handler
|
47
|
+
module PhusionPassenger
|
48
|
+
class << self
|
49
|
+
include ::PhusionPassenger::Rack::Handler
|
83
50
|
end
|
51
|
+
end
|
84
52
|
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
end
|
53
|
+
def self.default(options = {})
|
54
|
+
::Rackup::Handler::PhusionPassenger
|
55
|
+
end
|
89
56
|
|
90
|
-
|
91
|
-
|
57
|
+
register :passenger, PhusionPassenger
|
58
|
+
end
|
59
|
+
end
|
60
|
+
elsif Object.const_defined?(:Rack) && Rack.release < '3'
|
61
|
+
module Rack
|
62
|
+
module Handler
|
63
|
+
module PhusionPassenger
|
64
|
+
class << self
|
65
|
+
include ::PhusionPassenger::Rack::Handler
|
92
66
|
end
|
93
67
|
end
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
def self.default(options = {})
|
99
|
-
Rack::Handler::PhusionPassenger
|
68
|
+
def self.default(options = {})
|
69
|
+
::Rack::Handler::PhusionPassenger
|
70
|
+
end
|
100
71
|
end
|
101
72
|
end
|
73
|
+
::Rack::Handler.register(:passenger, ::Rack::Handler::PhusionPassenger)
|
74
|
+
else
|
75
|
+
raise 'Rack 3 must be used with the Rackup gem'
|
102
76
|
end
|
@@ -281,6 +281,11 @@ module PhusionPassenger
|
|
281
281
|
:type => :boolean,
|
282
282
|
:desc => 'Turn on friendly error pages'
|
283
283
|
},
|
284
|
+
{
|
285
|
+
:name => :custom_error_page,
|
286
|
+
:type => :path,
|
287
|
+
:desc => 'Path to html file to use for Passenger generated error pages'
|
288
|
+
},
|
284
289
|
{
|
285
290
|
:type => :boolean,
|
286
291
|
:cli => '--no-friendly-error-pages',
|
@@ -144,6 +144,7 @@ module PhusionPassenger
|
|
144
144
|
add_param(command, :app_start_command, "--app-start-command")
|
145
145
|
add_param(command, :spawn_method, "--spawn-method")
|
146
146
|
add_param(command, :restart_dir, "--restart-dir")
|
147
|
+
add_param(command, :custom_error_page, "--custom-error-page")
|
147
148
|
if @options.has_key?(:friendly_error_pages)
|
148
149
|
if @options[:friendly_error_pages]
|
149
150
|
command << " --force-friendly-error-pages"
|
@@ -93,15 +93,11 @@ module PhusionPassenger
|
|
93
93
|
################# Configuration loading, option parsing and initialization ###################
|
94
94
|
|
95
95
|
def self.create_option_parser(options)
|
96
|
-
logical_pwd = Dir.logical_pwd
|
97
|
-
|
98
96
|
# If you add or change an option, make sure to update the following places too:
|
99
97
|
# - src/ruby_supportlib/phusion_passenger/standalone/start_command/builtin_engine.rb,
|
100
98
|
# function #build_daemon_controller_options
|
101
99
|
# - resources/templates/standalone/config.erb
|
102
100
|
OptionParser.new do |opts|
|
103
|
-
defaults = CONFIG_DEFAULTS
|
104
|
-
nl = "\n" + ' ' * 37
|
105
101
|
opts.banner = "Usage: passenger start [DIRECTORY] [OPTIONS]\n"
|
106
102
|
opts.separator "Starts #{PROGRAM_NAME} Standalone and serve one or more web applications."
|
107
103
|
opts.separator ""
|
@@ -25,7 +25,7 @@
|
|
25
25
|
# gem being available, for example in 'passenger start' before the RuntimeInstaller
|
26
26
|
# has run.
|
27
27
|
|
28
|
-
|
28
|
+
PhusionPassenger.require_passenger_lib 'utils/strscan'
|
29
29
|
require 'forwardable'
|
30
30
|
|
31
31
|
module PhusionPassenger
|
@@ -56,11 +56,10 @@ class JSON
|
|
56
56
|
private :s, :scan, :matched
|
57
57
|
|
58
58
|
def initialize data
|
59
|
-
@scanner = StringScanner.new data.to_s
|
59
|
+
@scanner = PhusionPassenger::Utils::StringScanner.new data.to_s
|
60
60
|
end
|
61
61
|
|
62
62
|
def parse
|
63
|
-
space
|
64
63
|
object
|
65
64
|
end
|
66
65
|
|
@@ -152,7 +151,7 @@ class JSON
|
|
152
151
|
private
|
153
152
|
|
154
153
|
def generate_type(obj)
|
155
|
-
type = obj.is_a?(Numeric) ? :Numeric : obj.class.name
|
154
|
+
type = obj.is_a?(Numeric) ? :Numeric : obj.class.name.split('::').last
|
156
155
|
begin send(:"generate_#{type}", obj)
|
157
156
|
rescue NoMethodError; raise ArgumentError, "can't serialize #{type}"
|
158
157
|
end
|
@@ -171,6 +170,10 @@ class JSON
|
|
171
170
|
quote str.gsub(/[\r\n\f\t\b"\\]/) { "\\#{ESC_MAP[$&]}"}
|
172
171
|
end
|
173
172
|
|
173
|
+
def generate_VersionComparer(vc)
|
174
|
+
generate_String(vc)
|
175
|
+
end
|
176
|
+
|
174
177
|
def generate_simple(obj) obj.inspect end
|
175
178
|
alias generate_Numeric generate_simple
|
176
179
|
alias generate_TrueClass generate_simple
|
@@ -197,199 +200,5 @@ class JSON
|
|
197
200
|
extend Generator
|
198
201
|
end
|
199
202
|
|
200
|
-
if __FILE__ == $0
|
201
|
-
if !$stdin.tty?
|
202
|
-
data = JSON.parse $stdin.read
|
203
|
-
require 'pp'
|
204
|
-
pp data
|
205
|
-
else
|
206
|
-
require 'test/unit'
|
207
|
-
require 'date'
|
208
|
-
class ParserTest < Test::Unit::TestCase
|
209
|
-
PARSED = JSON.parse DATA.read
|
210
|
-
def parsed() PARSED end
|
211
|
-
def parse_string(str) JSON.parse(%(["#{str}"]).gsub('\\\\', '\\')).first end
|
212
|
-
def test_string
|
213
|
-
assert_equal "Pagination library for \"Rails 3\", Sinatra, Merb, DataMapper, and more",
|
214
|
-
parsed['head']['repository']['description']
|
215
|
-
end
|
216
|
-
def test_string_specials
|
217
|
-
assert_equal "\r\n\t\f\b", parse_string('\r\n\t\f\b')
|
218
|
-
assert_equal "aA", parse_string('\u0061\u0041')
|
219
|
-
assert_equal "\e", parse_string('\u001B')
|
220
|
-
assert_equal "xyz", parse_string('\x\y\z')
|
221
|
-
assert_equal '"\\/', parse_string('\"\\\\\\/')
|
222
|
-
assert_equal 'no #{interpolation}', parse_string('no #{interpolation}')
|
223
|
-
end
|
224
|
-
def test_hash
|
225
|
-
assert_equal %w[label ref repository sha user], parsed['head'].keys.sort
|
226
|
-
end
|
227
|
-
def test_number
|
228
|
-
assert_equal 124.3e2, parsed['head']['repository']['size']
|
229
|
-
end
|
230
|
-
def test_bool
|
231
|
-
assert_equal true, parsed['head']['repository']['fork']
|
232
|
-
assert_equal false, parsed['head']['repository']['private']
|
233
|
-
end
|
234
|
-
def test_nil
|
235
|
-
assert_nil parsed['head']['user']['company']
|
236
|
-
end
|
237
|
-
def test_array
|
238
|
-
assert_equal ["4438f", {"a" => "b"}], parsed['head']['sha']
|
239
|
-
end
|
240
|
-
def test_invalid
|
241
|
-
assert_raises(RuntimeError) { JSON.parse %({) }
|
242
|
-
assert_raises(RuntimeError) { JSON.parse %({ "foo": }) }
|
243
|
-
assert_raises(RuntimeError) { JSON.parse %([ "foo": "bar" ]) }
|
244
|
-
assert_raises(RuntimeError) { JSON.parse %([ ~"foo" ]) }
|
245
|
-
assert_raises(RuntimeError) { JSON.parse %([ "foo ]) }
|
246
|
-
assert_raises(RuntimeError) { JSON.parse %([ "foo\\" ]) }
|
247
|
-
assert_raises(RuntimeError) { JSON.parse %([ "foo\\uabGd" ]) }
|
248
|
-
end
|
249
|
-
def test_single_line_comments
|
250
|
-
source = %Q{
|
251
|
-
// comment before document
|
252
|
-
{
|
253
|
-
// comment
|
254
|
-
"foo": "1",
|
255
|
-
"bar": "2",
|
256
|
-
// another comment
|
257
|
-
"baz": "3",
|
258
|
-
"array": [
|
259
|
-
// comment inside array
|
260
|
-
1, 2, 3
|
261
|
-
// comment at end of array
|
262
|
-
]
|
263
|
-
// comment at end of hash
|
264
|
-
}
|
265
|
-
// comment after document
|
266
|
-
}
|
267
|
-
doc = { "foo" => "1", "bar" => "2", "baz" => "3", "array" => [1, 2, 3] }
|
268
|
-
assert_equal(doc, JSON.parse(source))
|
269
|
-
end
|
270
|
-
def test_multi_line_comments
|
271
|
-
source = %Q{
|
272
|
-
/* comment before
|
273
|
-
* document */
|
274
|
-
{
|
275
|
-
/* comment */
|
276
|
-
"foo": "1",
|
277
|
-
"bar": "2",
|
278
|
-
/* another
|
279
|
-
comment
|
280
|
-
*/
|
281
|
-
"baz": "3",
|
282
|
-
"array": [
|
283
|
-
/* comment inside array */
|
284
|
-
1, 2, 3,
|
285
|
-
4, /* comment inside an array */ 5,
|
286
|
-
/*
|
287
|
-
// "nested" comments
|
288
|
-
{ "faux json": "inside comment" }
|
289
|
-
*/
|
290
|
-
6, 7
|
291
|
-
/**
|
292
|
-
* comment at end of array
|
293
|
-
*/
|
294
|
-
]
|
295
|
-
/**************************
|
296
|
-
comment at end of hash
|
297
|
-
**************************/
|
298
|
-
}
|
299
|
-
/* comment after
|
300
|
-
document */
|
301
|
-
}
|
302
|
-
doc = { "foo" => "1", "bar" => "2", "baz" => "3", "array" => [1, 2, 3, 4, 5, 6, 7] }
|
303
|
-
assert_equal(doc, JSON.parse(source))
|
304
|
-
end
|
305
|
-
end
|
306
|
-
|
307
|
-
class GeneratorTest < Test::Unit::TestCase
|
308
|
-
def generate(obj) JSON.generate(obj) end
|
309
|
-
def test_array
|
310
|
-
assert_equal %([1, 2, 3]), generate([1, 2, 3])
|
311
|
-
end
|
312
|
-
def test_bool
|
313
|
-
assert_equal %([true, false]), generate([true, false])
|
314
|
-
end
|
315
|
-
def test_null
|
316
|
-
assert_equal %([null]), generate([nil])
|
317
|
-
end
|
318
|
-
def test_string
|
319
|
-
assert_equal %(["abc\\n123"]), generate(["abc\n123"])
|
320
|
-
end
|
321
|
-
def test_string_unicode
|
322
|
-
assert_equal %(["ć\\"č\\nž\\tš\\\\đ"]), generate(["ć\"č\nž\tš\\đ"])
|
323
|
-
end
|
324
|
-
def test_time
|
325
|
-
time = Time.utc(2012, 04, 19, 1, 2, 3)
|
326
|
-
assert_equal %(["2012-04-19 01:02:03 UTC"]), generate([time])
|
327
|
-
end
|
328
|
-
def test_date
|
329
|
-
time = Date.new(2012, 04, 19)
|
330
|
-
assert_equal %(["2012-04-19"]), generate([time])
|
331
|
-
end
|
332
|
-
def test_symbol
|
333
|
-
assert_equal %(["abc"]), generate([:abc])
|
334
|
-
end
|
335
|
-
def test_hash
|
336
|
-
json = generate(:abc => 123, 123 => 'abc')
|
337
|
-
assert_match /^\{/, json
|
338
|
-
assert_match /\}$/, json
|
339
|
-
assert_equal [%("123": "abc"), %("abc": 123)], json[1...-1].split(', ').sort
|
340
|
-
end
|
341
|
-
def test_nested_structure
|
342
|
-
json = generate(:hash => {1=>2}, :array => [1,2])
|
343
|
-
assert json.include?(%("hash": {"1": 2}))
|
344
|
-
assert json.include?(%("array": [1, 2]))
|
345
|
-
end
|
346
|
-
def test_invalid_json
|
347
|
-
assert_raises(ArgumentError) { generate("abc") }
|
348
|
-
end
|
349
|
-
def test_invalid_object
|
350
|
-
err = assert_raises(ArgumentError) { generate("a" => Object.new) }
|
351
|
-
assert_equal "can't serialize Object", err.message
|
352
|
-
end
|
353
|
-
end
|
354
|
-
end
|
355
|
-
end
|
356
|
-
|
357
203
|
end # module Utils
|
358
204
|
end # module PhusionPassenger
|
359
|
-
|
360
|
-
__END__
|
361
|
-
{
|
362
|
-
"head": {
|
363
|
-
"ref": "master",
|
364
|
-
"repository": {
|
365
|
-
"forks": 0,
|
366
|
-
"integrate_branch": "rails3",
|
367
|
-
"watchers": 1,
|
368
|
-
"language": "Ruby",
|
369
|
-
"description": "Pagination library for \"Rails 3\", Sinatra, Merb, DataMapper, and more",
|
370
|
-
"has_downloads": true,
|
371
|
-
"fork": true,
|
372
|
-
"created_at": "2011/10/24 03:20:48 -0700",
|
373
|
-
"homepage": "http://github.com/mislav/will_paginate/wikis",
|
374
|
-
"size": 124.3e2,
|
375
|
-
"private": false,
|
376
|
-
"has_wiki": true,
|
377
|
-
"name": "will_paginate",
|
378
|
-
"owner": "dbackeus",
|
379
|
-
"url": "https://github.com/dbackeus/will_paginate",
|
380
|
-
"has_issues": false,
|
381
|
-
"open_issues": 0,
|
382
|
-
"pushed_at": "2011/10/25 05:44:05 -0700"
|
383
|
-
},
|
384
|
-
"label": "dbackeus:master",
|
385
|
-
"sha": ["4438f", { "a" : "b" }],
|
386
|
-
"user": {
|
387
|
-
"name": "David Backeus",
|
388
|
-
"company": null,
|
389
|
-
"gravatar_id": "ebe96524f5db9e92188f0542dc9d1d1a",
|
390
|
-
"location": "Stockholm (Sweden)",
|
391
|
-
"type": "User",
|
392
|
-
"login": "dbackeus"
|
393
|
-
}
|
394
|
-
}
|
395
|
-
}
|
@@ -0,0 +1,67 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
# Phusion Passenger - https://www.phusionpassenger.com/
|
3
|
+
# Copyright (c) 2024 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
|
+
module PhusionPassenger
|
27
|
+
module Utils
|
28
|
+
|
29
|
+
# A minimal pure-Ruby StringScanner implementation so that
|
30
|
+
# PhusionPassenger::Utils::JSON doesn't have to depend on the 'strscan' gem.
|
31
|
+
class StringScanner
|
32
|
+
attr_reader :pos, :matched
|
33
|
+
|
34
|
+
def initialize(data)
|
35
|
+
@data = data
|
36
|
+
@pos = 0
|
37
|
+
@matched = nil
|
38
|
+
end
|
39
|
+
|
40
|
+
def getch
|
41
|
+
@matched =
|
42
|
+
if @pos < @data.size
|
43
|
+
@pos += 1
|
44
|
+
@data[@pos - 1]
|
45
|
+
else
|
46
|
+
nil
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
def scan(pattern)
|
51
|
+
md = @data[@pos .. -1].match(/\A#{pattern}/)
|
52
|
+
@matched =
|
53
|
+
if md
|
54
|
+
@pos += md[0].size
|
55
|
+
@matched = md[0]
|
56
|
+
else
|
57
|
+
nil
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
def reset
|
62
|
+
@pos = 0
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
end # module Utils
|
67
|
+
end # module PhusionPassenger
|
@@ -23,8 +23,6 @@
|
|
23
23
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
24
24
|
# THE SOFTWARE.
|
25
25
|
|
26
|
-
require 'base64'
|
27
|
-
|
28
26
|
module PhusionPassenger
|
29
27
|
|
30
28
|
# Utility functions.
|
@@ -182,19 +180,11 @@ module PhusionPassenger
|
|
182
180
|
end
|
183
181
|
end
|
184
182
|
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
# Base64-encodes the given data. Newlines are removed.
|
191
|
-
# This is like `Base64.strict_encode64`, but also works
|
192
|
-
# on Ruby 1.8 which doesn't have that method.
|
193
|
-
def base64(data)
|
194
|
-
result = Base64.encode64(data)
|
195
|
-
result.delete!("\n")
|
196
|
-
result
|
197
|
-
end
|
183
|
+
# Returns a base64 encoded string without line breaks and padding.
|
184
|
+
# Like Base64.strict_encode64, but without a dependency on the
|
185
|
+
# 'base64' library/gem.
|
186
|
+
def base64(data)
|
187
|
+
[data].pack("m0")
|
198
188
|
end
|
199
189
|
|
200
190
|
# Returns a string which reports the backtraces for all threads,
|
@@ -31,16 +31,16 @@ module PhusionPassenger
|
|
31
31
|
|
32
32
|
PACKAGE_NAME = 'passenger'
|
33
33
|
# Run 'rake src/cxx_supportlib/Constants.h configkit_schemas_inline_comments' after changing this number.
|
34
|
-
VERSION_STRING = '6.0.
|
34
|
+
VERSION_STRING = '6.0.24'
|
35
35
|
|
36
36
|
# Tip: find the SHA-256 with ./dev/nginx_version_sha256 <VERSION>
|
37
|
-
PREFERRED_NGINX_VERSION = '1.26.
|
38
|
-
NGINX_SHA256_CHECKSUM = '
|
37
|
+
PREFERRED_NGINX_VERSION = '1.26.2'
|
38
|
+
NGINX_SHA256_CHECKSUM = '627fe086209bba80a2853a0add9d958d7ebbdffa1a8467a5784c9a6b4f03d738'
|
39
39
|
|
40
40
|
# Packaging may be locked to an older version due to the specific module configuration being
|
41
41
|
# incompatible with the version we prefer (latest stable).
|
42
|
-
PACKAGING_PREFERRED_NGINX_VERSION = '1.26.
|
43
|
-
PACKAGING_NGINX_SHA256_CHECKSUM = '
|
42
|
+
PACKAGING_PREFERRED_NGINX_VERSION = '1.26.2'
|
43
|
+
PACKAGING_NGINX_SHA256_CHECKSUM = '627fe086209bba80a2853a0add9d958d7ebbdffa1a8467a5784c9a6b4f03d738'
|
44
44
|
|
45
45
|
# sha256sum of the .tar.gz
|
46
46
|
PREFERRED_PCRE_VERSION = '10.39'
|