passenger 4.0.20 → 4.0.21
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 +8 -8
- checksums.yaml.gz.asc +7 -7
- data.tar.gz.asc +7 -7
- data/.gitignore +1 -0
- data/.travis.yml +1 -1
- data/NEWS +15 -0
- data/README.md +5 -3
- data/Rakefile +1 -0
- data/bin/passenger-config +1 -5
- data/bin/passenger-install-apache2-module +53 -5
- data/bin/passenger-install-nginx-module +19 -6
- data/bin/passenger-memory-stats +3 -3
- data/build/agents.rb +11 -8
- data/build/apache2.rb +9 -5
- data/build/basics.rb +15 -21
- data/build/common_library.rb +16 -6
- data/build/cplusplus_support.rb +5 -5
- data/build/cxx_tests.rb +3 -3
- data/build/documentation.rb +1 -1
- data/build/misc.rb +4 -37
- data/build/node_tests.rb +29 -0
- data/build/oxt_tests.rb +1 -1
- data/build/packaging.rb +29 -10
- data/build/preprocessor.rb +2 -1
- data/build/test_basics.rb +15 -6
- data/debian.template/locations.ini.template +1 -0
- data/debian.template/passenger.install.template +1 -0
- data/dev/copy_boost_headers.rb +7 -3
- data/dev/run_travis.sh +32 -16
- data/doc/Users guide Apache.idmap.txt +22 -34
- data/doc/Users guide Apache.txt +20 -234
- data/doc/Users guide Nginx.idmap.txt +84 -66
- data/doc/Users guide Nginx.txt +50 -1
- data/doc/Users guide Standalone.idmap.txt +74 -0
- data/doc/Users guide Standalone.txt +22 -9
- data/doc/Users guide.txt +51 -0
- data/doc/users_guide_snippets/environment_variables.txt +0 -3
- data/doc/users_guide_snippets/installation.txt +337 -380
- data/doc/users_guide_snippets/installation/run_installer.txt +58 -0
- data/doc/users_guide_snippets/installation/verify_running_epilogue.txt +6 -0
- data/doc/users_guide_snippets/support_information.txt +2 -9
- data/doc/users_guide_snippets/troubleshooting/default.txt +112 -0
- data/doc/users_guide_snippets/troubleshooting/rails.txt +56 -0
- data/doc/users_guide_snippets/where_to_get_support.txt +9 -0
- data/ext/apache2/Bucket.h +1 -1
- data/ext/apache2/Configuration.hpp +0 -44
- data/ext/apache2/CreateDirConfig.cpp +1 -1
- data/ext/apache2/CreateDirConfig.cpp.erb +1 -1
- data/ext/apache2/Hooks.cpp +28 -21
- data/ext/apache2/MergeDirConfig.cpp +1 -0
- data/ext/apache2/MergeDirConfig.cpp.erb +1 -1
- data/ext/apache2/SetHeaders.cpp +73 -0
- data/ext/apache2/SetHeaders.cpp.erb +88 -0
- data/ext/boost/algorithm/string/detail/find_format.hpp +5 -5
- data/ext/boost/algorithm/string/detail/find_format_all.hpp +5 -5
- data/ext/boost/algorithm/string/detail/finder.hpp +1 -1
- data/ext/boost/algorithm/string/formatter.hpp +2 -2
- data/ext/boost/assert.hpp +6 -1
- data/ext/boost/atomic.hpp +18 -0
- data/ext/boost/atomic/atomic.hpp +241 -0
- data/ext/boost/atomic/detail/base.hpp +585 -0
- data/ext/boost/atomic/detail/cas32strong.hpp +885 -0
- data/ext/boost/atomic/detail/cas32weak.hpp +947 -0
- data/ext/boost/atomic/detail/cas64strong.hpp +443 -0
- data/ext/boost/atomic/detail/config.hpp +54 -0
- data/ext/boost/atomic/detail/gcc-alpha.hpp +368 -0
- data/ext/boost/atomic/detail/gcc-armv6plus.hpp +252 -0
- data/ext/boost/atomic/detail/gcc-cas.hpp +157 -0
- data/ext/boost/atomic/detail/gcc-ppc.hpp +2850 -0
- data/ext/boost/atomic/detail/gcc-sparcv9.hpp +1259 -0
- data/ext/boost/atomic/detail/gcc-x86.hpp +1766 -0
- data/ext/boost/atomic/detail/generic-cas.hpp +206 -0
- data/ext/boost/atomic/detail/interlocked.hpp +200 -0
- data/ext/boost/atomic/detail/linux-arm.hpp +189 -0
- data/ext/boost/atomic/detail/lockpool.hpp +97 -0
- data/ext/boost/atomic/detail/platform.hpp +62 -0
- data/ext/boost/atomic/detail/type-classification.hpp +45 -0
- data/ext/boost/chrono/config.hpp +8 -3
- data/ext/boost/chrono/duration.hpp +9 -10
- data/ext/boost/chrono/system_clocks.hpp +1 -1
- data/ext/boost/chrono/time_point.hpp +4 -3
- data/ext/boost/config/auto_link.hpp +53 -52
- data/ext/boost/config/compiler/borland.hpp +1 -0
- data/ext/boost/config/compiler/clang.hpp +24 -1
- data/ext/boost/config/compiler/codegear.hpp +1 -0
- data/ext/boost/config/compiler/common_edg.hpp +1 -0
- data/ext/boost/config/compiler/cray.hpp +1 -0
- data/ext/boost/config/compiler/digitalmars.hpp +1 -0
- data/ext/boost/config/compiler/gcc.hpp +29 -3
- data/ext/boost/config/compiler/gcc_xml.hpp +2 -1
- data/ext/boost/config/compiler/hp_acc.hpp +1 -0
- data/ext/boost/config/compiler/intel.hpp +1 -1
- data/ext/boost/config/compiler/metrowerks.hpp +1 -0
- data/ext/boost/config/compiler/mpw.hpp +1 -0
- data/ext/boost/config/compiler/pathscale.hpp +1 -0
- data/ext/boost/config/compiler/pgi.hpp +1 -0
- data/ext/boost/config/compiler/sunpro_cc.hpp +1 -0
- data/ext/boost/config/compiler/vacpp.hpp +3 -2
- data/ext/boost/config/compiler/visualc.hpp +25 -11
- data/ext/boost/config/platform/vxworks.hpp +353 -15
- data/ext/boost/config/select_compiler_config.hpp +4 -4
- data/ext/boost/config/stdlib/dinkumware.hpp +10 -3
- data/ext/boost/config/stdlib/libstdcpp3.hpp +2 -1
- data/ext/boost/config/suffix.hpp +45 -19
- data/ext/boost/date_time/format_date_parser.hpp +1 -11
- data/ext/boost/date_time/strings_from_facet.hpp +5 -3
- data/ext/boost/detail/atomic_redef_macros.hpp +19 -0
- data/ext/boost/detail/atomic_undef_macros.hpp +39 -0
- data/ext/boost/detail/endian.hpp +52 -4
- data/ext/boost/detail/scoped_enum_emulation.hpp +10 -10
- data/ext/boost/detail/select_type.hpp +36 -0
- data/ext/boost/exception/current_exception_cast.hpp +1 -1
- data/ext/boost/exception/detail/error_info_impl.hpp +3 -5
- data/ext/boost/exception/detail/exception_ptr.hpp +3 -3
- data/ext/boost/exception/detail/is_output_streamable.hpp +1 -1
- data/ext/boost/exception/detail/object_hex_dump.hpp +1 -1
- data/ext/boost/exception/detail/type_info.hpp +1 -1
- data/ext/boost/exception/diagnostic_information.hpp +15 -14
- data/ext/boost/exception/exception.hpp +1 -1
- data/ext/boost/exception/get_error_info.hpp +1 -1
- data/ext/boost/exception/info.hpp +12 -13
- data/ext/boost/exception/to_string.hpp +6 -1
- data/ext/boost/exception/to_string_stub.hpp +9 -1
- data/ext/boost/foreach.hpp +5 -5
- data/ext/boost/function/function_template.hpp +6 -6
- data/ext/boost/functional/hash/detail/float_functions.hpp +90 -0
- data/ext/boost/functional/hash/detail/hash_float.hpp +11 -2
- data/ext/boost/functional/hash/extensions.hpp +14 -2
- data/ext/boost/functional/hash/hash.hpp +26 -5
- data/ext/boost/get_pointer.hpp +17 -2
- data/ext/boost/integer_traits.hpp +1 -1
- data/ext/boost/lexical_cast.hpp +615 -395
- data/ext/boost/libs/atomic/lockpool.cpp +24 -0
- data/ext/boost/libs/system/src/error_code.cpp +25 -18
- data/ext/boost/libs/thread/src/future.cpp +7 -5
- data/ext/boost/libs/thread/src/pthread/once.cpp +9 -3
- data/ext/boost/libs/thread/src/pthread/once_atomic.cpp +90 -0
- data/ext/boost/libs/thread/src/pthread/thread.cpp +129 -95
- data/ext/boost/libs/thread/src/pthread/timeconv.inl +20 -1
- data/ext/boost/limits.hpp +1 -1
- data/ext/boost/math/policies/policy.hpp +10 -0
- data/ext/boost/math/special_functions/detail/round_fwd.hpp +17 -4
- data/ext/boost/math/special_functions/fpclassify.hpp +114 -45
- data/ext/boost/math/special_functions/math_fwd.hpp +195 -83
- data/ext/boost/math/special_functions/sign.hpp +13 -8
- data/ext/boost/math/tools/config.hpp +38 -16
- data/ext/boost/move/algorithm.hpp +275 -0
- data/ext/boost/move/core.hpp +332 -0
- data/ext/boost/move/detail/config_begin.hpp +23 -0
- data/ext/boost/move/detail/config_end.hpp +20 -0
- data/ext/boost/move/detail/meta_utils.hpp +158 -0
- data/ext/boost/move/iterator.hpp +298 -0
- data/ext/boost/move/move.hpp +10 -1256
- data/ext/boost/move/traits.hpp +142 -0
- data/ext/boost/move/utility.hpp +194 -0
- data/ext/boost/mpl/assert.hpp +72 -4
- data/ext/boost/noncopyable.hpp +15 -3
- data/ext/boost/pointer_to_other.hpp +55 -0
- data/ext/boost/range/concepts.hpp +4 -4
- data/ext/boost/range/detail/extract_optional_type.hpp +1 -1
- data/ext/boost/range/empty.hpp +1 -1
- data/ext/boost/range/iterator_range_core.hpp +4 -1
- data/ext/boost/range/iterator_range_io.hpp +2 -2
- data/ext/boost/ratio/config.hpp +6 -0
- data/ext/boost/ratio/detail/overflow_helpers.hpp +2 -2
- data/ext/boost/smart_ptr/allocate_shared_array.hpp +250 -0
- data/ext/boost/smart_ptr/detail/allocate_array_helper.hpp +169 -0
- data/ext/boost/smart_ptr/detail/array_deleter.hpp +124 -0
- data/ext/boost/smart_ptr/detail/array_traits.hpp +53 -0
- data/ext/boost/smart_ptr/detail/array_utility.hpp +178 -0
- data/ext/boost/smart_ptr/detail/make_array_helper.hpp +157 -0
- data/ext/boost/smart_ptr/detail/operator_bool.hpp +16 -9
- data/ext/boost/smart_ptr/detail/shared_count.hpp +78 -7
- data/ext/boost/smart_ptr/detail/sp_convertible.hpp +15 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base.hpp +12 -6
- data/ext/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_aix.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_cw_x86.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_nt.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_pt.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp +162 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_solaris.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_spin.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_sync.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_impl.hpp +15 -0
- data/ext/boost/smart_ptr/detail/sp_forward.hpp +39 -0
- data/ext/boost/smart_ptr/detail/sp_has_sync.hpp +19 -3
- data/ext/boost/smart_ptr/detail/sp_if_array.hpp +31 -0
- data/ext/boost/smart_ptr/detail/sp_nullptr_t.hpp +45 -0
- data/ext/boost/smart_ptr/detail/spinlock_gcc_arm.hpp +5 -12
- data/ext/boost/smart_ptr/enable_shared_from_this.hpp +4 -4
- data/ext/boost/smart_ptr/make_shared.hpp +5 -1060
- data/ext/boost/smart_ptr/make_shared_array.hpp +247 -0
- data/ext/boost/smart_ptr/make_shared_object.hpp +1128 -0
- data/ext/boost/smart_ptr/scoped_array.hpp +32 -7
- data/ext/boost/smart_ptr/scoped_ptr.hpp +31 -5
- data/ext/boost/smart_ptr/shared_array.hpp +135 -20
- data/ext/boost/smart_ptr/shared_ptr.hpp +444 -126
- data/ext/boost/smart_ptr/weak_ptr.hpp +39 -28
- data/ext/boost/static_assert.hpp +74 -17
- data/ext/boost/system/error_code.hpp +76 -68
- data/ext/boost/system/system_error.hpp +5 -1
- data/ext/boost/thread/barrier.hpp +6 -2
- data/ext/boost/thread/completion_latch.hpp +233 -0
- data/ext/boost/thread/condition.hpp +6 -1
- data/ext/boost/thread/detail/async_func.hpp +571 -0
- data/ext/boost/thread/detail/config.hpp +248 -40
- data/ext/boost/thread/detail/counter.hpp +93 -0
- data/ext/boost/thread/detail/delete.hpp +12 -0
- data/ext/boost/thread/detail/invoke.hpp +1351 -0
- data/ext/boost/thread/detail/is_convertible.hpp +48 -0
- data/ext/boost/thread/detail/lockable_wrapper.hpp +45 -0
- data/ext/boost/thread/detail/log.hpp +83 -0
- data/ext/boost/thread/detail/make_tuple_indices.hpp +224 -0
- data/ext/boost/thread/detail/move.hpp +32 -16
- data/ext/boost/thread/detail/thread.hpp +236 -41
- data/ext/boost/thread/detail/thread_group.hpp +55 -9
- data/ext/boost/thread/detail/thread_interruption.hpp +4 -1
- data/ext/boost/thread/exceptions.hpp +2 -0
- data/ext/boost/thread/externally_locked.hpp +351 -0
- data/ext/boost/thread/externally_locked_stream.hpp +170 -0
- data/ext/boost/thread/future.hpp +2517 -455
- data/ext/boost/thread/future_error_code.hpp +61 -0
- data/ext/boost/thread/is_locked_by_this_thread.hpp +39 -0
- data/ext/boost/thread/latch.hpp +142 -0
- data/ext/boost/thread/lock_algorithms.hpp +468 -0
- data/ext/boost/thread/lock_concepts.hpp +197 -0
- data/ext/boost/thread/lock_factories.hpp +78 -0
- data/ext/boost/thread/lock_guard.hpp +88 -0
- data/ext/boost/thread/lock_options.hpp +31 -0
- data/ext/boost/thread/lock_traits.hpp +45 -0
- data/ext/boost/thread/lock_types.hpp +1226 -0
- data/ext/boost/thread/lockable_adapter.hpp +226 -0
- data/ext/boost/thread/lockable_concepts.hpp +157 -0
- data/ext/boost/thread/lockable_traits.hpp +207 -0
- data/ext/boost/thread/locks.hpp +5 -1816
- data/ext/boost/thread/mutex.hpp +33 -1
- data/ext/boost/thread/null_mutex.hpp +243 -0
- data/ext/boost/thread/once.hpp +10 -1
- data/ext/boost/thread/poly_lockable.hpp +68 -0
- data/ext/boost/thread/poly_lockable_adapter.hpp +89 -0
- data/ext/boost/thread/poly_shared_lockable.hpp +135 -0
- data/ext/boost/thread/poly_shared_lockable_adapter.hpp +170 -0
- data/ext/boost/thread/pthread/condition_variable.hpp +74 -26
- data/ext/boost/thread/pthread/condition_variable_fwd.hpp +54 -27
- data/ext/boost/thread/pthread/mutex.hpp +101 -38
- data/ext/boost/thread/pthread/once.hpp +459 -44
- data/ext/boost/thread/pthread/once_atomic.hpp +313 -0
- data/ext/boost/thread/pthread/recursive_mutex.hpp +19 -10
- data/ext/boost/thread/pthread/shared_mutex.hpp +226 -61
- data/ext/boost/thread/pthread/shared_mutex_assert.hpp +724 -0
- data/ext/boost/thread/pthread/thread_data.hpp +53 -50
- data/ext/boost/thread/pthread/timespec.hpp +96 -12
- data/ext/boost/thread/recursive_mutex.hpp +44 -1
- data/ext/boost/thread/reverse_lock.hpp +3 -2
- data/ext/boost/thread/scoped_thread.hpp +285 -0
- data/ext/boost/thread/shared_lock_guard.hpp +2 -1
- data/ext/boost/thread/shared_mutex.hpp +23 -0
- data/ext/boost/thread/strict_lock.hpp +235 -0
- data/ext/boost/thread/sync_bounded_queue.hpp +594 -0
- data/ext/boost/thread/sync_queue.hpp +516 -0
- data/ext/boost/thread/synchronized_value.hpp +1001 -0
- data/ext/boost/thread/testable_mutex.hpp +148 -0
- data/ext/boost/thread/thread.hpp +1 -13
- data/ext/boost/thread/thread_functors.hpp +57 -0
- data/ext/boost/thread/thread_guard.hpp +46 -0
- data/ext/boost/thread/thread_only.hpp +29 -0
- data/ext/boost/thread/v2/shared_mutex.hpp +1062 -0
- data/ext/boost/thread/v2/thread.hpp +37 -10
- data/ext/boost/thread/xtime.hpp +2 -1
- data/ext/boost/token_functions.hpp +16 -16
- data/ext/boost/type_traits/add_lvalue_reference.hpp +26 -0
- data/ext/boost/type_traits/add_reference.hpp +1 -1
- data/ext/boost/type_traits/add_rvalue_reference.hpp +4 -4
- data/ext/boost/type_traits/aligned_storage.hpp +13 -0
- data/ext/boost/type_traits/common_type.hpp +11 -12
- data/ext/boost/type_traits/config.hpp +1 -1
- data/ext/boost/type_traits/detail/common_type_imp.hpp +1 -1
- data/ext/boost/type_traits/detail/has_binary_operator.hpp +1 -1
- data/ext/boost/type_traits/detail/is_function_ptr_tester.hpp +1 -1
- data/ext/boost/type_traits/has_left_shift.hpp +49 -0
- data/ext/boost/type_traits/has_right_shift.hpp +49 -0
- data/ext/boost/type_traits/has_trivial_move_assign.hpp +57 -0
- data/ext/boost/type_traits/has_trivial_move_constructor.hpp +57 -0
- data/ext/boost/type_traits/intrinsics.hpp +18 -2
- data/ext/boost/type_traits/is_abstract.hpp +1 -1
- data/ext/boost/type_traits/is_array.hpp +1 -1
- data/ext/boost/type_traits/is_const.hpp +1 -1
- data/ext/boost/type_traits/is_convertible.hpp +78 -17
- data/ext/boost/type_traits/is_function.hpp +6 -1
- data/ext/boost/type_traits/is_integral.hpp +6 -1
- data/ext/boost/type_traits/is_nothrow_move_assignable.hpp +84 -0
- data/ext/boost/type_traits/is_nothrow_move_constructible.hpp +84 -0
- data/ext/boost/type_traits/is_pod.hpp +3 -1
- data/ext/boost/type_traits/is_rvalue_reference.hpp +1 -1
- data/ext/boost/type_traits/is_volatile.hpp +1 -1
- data/ext/boost/type_traits/make_signed.hpp +153 -0
- data/ext/boost/type_traits/make_unsigned.hpp +16 -0
- data/ext/boost/type_traits/remove_const.hpp +1 -1
- data/ext/boost/type_traits/remove_cv.hpp +1 -1
- data/ext/boost/type_traits/remove_reference.hpp +1 -1
- data/ext/boost/type_traits/remove_volatile.hpp +1 -1
- data/ext/boost/unordered/detail/allocate.hpp +1120 -0
- data/ext/boost/unordered/detail/buckets.hpp +876 -0
- data/ext/boost/unordered/detail/equivalent.hpp +680 -0
- data/ext/boost/unordered/detail/extract_key.hpp +183 -0
- data/ext/boost/unordered/detail/fwd.hpp +23 -0
- data/ext/boost/unordered/detail/table.hpp +861 -0
- data/ext/boost/unordered/detail/unique.hpp +622 -0
- data/ext/boost/unordered/detail/util.hpp +260 -0
- data/ext/boost/unordered/unordered_map.hpp +1652 -0
- data/ext/boost/unordered/unordered_map_fwd.hpp +65 -0
- data/ext/boost/unordered/unordered_set.hpp +1549 -0
- data/ext/boost/unordered/unordered_set_fwd.hpp +63 -0
- data/ext/boost/unordered_map.hpp +18 -0
- data/ext/boost/unordered_set.hpp +18 -0
- data/ext/boost/utility/addressof.hpp +2 -2
- data/ext/boost/utility/result_of.hpp +8 -1
- data/ext/boost/version.hpp +2 -2
- data/ext/common/Account.h +1 -1
- data/ext/common/AccountsDatabase.h +1 -1
- data/ext/common/AgentsStarter.cpp +3 -1
- data/ext/common/AgentsStarter.h +2 -2
- data/ext/common/ApplicationPool2/AppTypes.cpp +24 -6
- data/ext/common/ApplicationPool2/AppTypes.h +17 -8
- data/ext/common/ApplicationPool2/Common.h +12 -12
- data/ext/common/ApplicationPool2/DirectSpawner.h +2 -2
- data/ext/common/ApplicationPool2/DummySpawner.h +3 -3
- data/ext/common/ApplicationPool2/Group.h +6 -6
- data/ext/common/ApplicationPool2/Implementation.cpp +19 -19
- data/ext/common/ApplicationPool2/PipeWatcher.h +5 -5
- data/ext/common/ApplicationPool2/Pool.h +21 -21
- data/ext/common/ApplicationPool2/Process.h +6 -6
- data/ext/common/ApplicationPool2/Session.h +1 -1
- data/ext/common/ApplicationPool2/SmartSpawner.h +24 -12
- data/ext/common/ApplicationPool2/Socket.h +2 -2
- data/ext/common/ApplicationPool2/Spawner.h +64 -14
- data/ext/common/ApplicationPool2/SpawnerFactory.h +7 -7
- data/ext/common/ApplicationPool2/SuperGroup.h +5 -5
- data/ext/common/BackgroundEventLoop.cpp +4 -4
- data/ext/common/BackgroundEventLoop.h +1 -1
- data/ext/common/Constants.h +13 -1
- data/ext/common/EventedBufferedInput.h +8 -8
- data/ext/common/Exceptions.cpp +71 -0
- data/ext/common/Exceptions.h +60 -7
- data/ext/common/FileDescriptor.h +4 -4
- data/ext/common/MessageClient.h +1 -1
- data/ext/common/MessageServer.h +5 -5
- data/ext/common/MultiLibeio.cpp +3 -3
- data/ext/common/MultiLibeio.h +2 -2
- data/ext/common/RandomGenerator.h +11 -11
- data/ext/common/ResourceLocator.h +8 -1
- data/ext/common/SafeLibev.h +12 -12
- data/ext/common/ServerInstanceDir.h +11 -3
- data/ext/common/UnionStation.h +10 -10
- data/ext/common/Utils.cpp +11 -13
- data/ext/common/Utils.h +9 -9
- data/ext/common/Utils/BlockingQueue.h +10 -10
- data/ext/common/Utils/BufferedIO.h +1 -1
- data/ext/common/Utils/CachedFileStat.hpp +2 -2
- data/ext/common/Utils/FileChangeChecker.h +1 -1
- data/ext/common/Utils/HashMap.h +13 -4
- data/ext/common/Utils/IOUtils.cpp +33 -10
- data/ext/common/Utils/IniFile.h +3 -3
- data/ext/common/Utils/Lock.h +2 -2
- data/ext/common/Utils/MessagePassing.h +10 -10
- data/ext/common/Utils/ProcessMetricsCollector.h +24 -6
- data/ext/common/Utils/ScopeGuard.h +5 -5
- data/ext/common/Utils/jsoncpp.cpp +2 -0
- data/ext/common/agents/HelperAgent/FileBackedPipe.h +26 -26
- data/ext/common/agents/HelperAgent/Main.cpp +18 -18
- data/ext/common/agents/HelperAgent/RequestHandler.cpp +4 -4
- data/ext/common/agents/HelperAgent/RequestHandler.h +30 -21
- data/ext/common/agents/LoggingAgent/AdminController.h +1 -1
- data/ext/common/agents/LoggingAgent/FilterSupport.h +13 -11
- data/ext/common/agents/LoggingAgent/LoggingServer.h +11 -11
- data/ext/common/agents/LoggingAgent/Main.cpp +9 -9
- data/ext/common/agents/LoggingAgent/RemoteSender.h +3 -3
- data/ext/common/agents/SpawnPreparer.cpp +1 -0
- data/ext/common/agents/Watchdog/AgentWatcher.cpp +8 -7
- data/ext/common/agents/Watchdog/Main.cpp +81 -73
- data/ext/common/agents/Watchdog/ServerInstanceDirToucher.cpp +1 -1
- data/ext/libev/Changes +57 -0
- data/ext/libev/LICENSE +2 -1
- data/ext/libev/Makefile.in +110 -50
- data/ext/libev/README +8 -8
- data/ext/libev/aclocal.m4 +1503 -861
- data/ext/libev/config.guess +290 -304
- data/ext/libev/config.sub +77 -198
- data/ext/libev/configure +1735 -890
- data/ext/libev/configure.ac +3 -2
- data/ext/libev/ev++.h +6 -6
- data/ext/libev/ev.c +541 -214
- data/ext/libev/ev.h +106 -100
- data/ext/libev/ev_epoll.c +1 -1
- data/ext/libev/ev_kqueue.c +20 -4
- data/ext/libev/ev_vars.h +15 -16
- data/ext/libev/ev_win32.c +12 -2
- data/ext/libev/ev_wrap.h +162 -160
- data/ext/libev/event.c +29 -6
- data/ext/libev/event.h +9 -2
- data/ext/libev/ltmain.sh +2632 -1384
- data/ext/nginx/ConfigurationCommands.c +1 -1
- data/ext/nginx/ConfigurationCommands.c.erb +3 -1
- data/ext/nginx/ContentHandler.c +25 -2
- data/ext/nginx/CreateLocationConfig.c +1 -0
- data/ext/nginx/CreateLocationConfig.c.erb +1 -1
- data/ext/nginx/MergeLocationConfig.c +1 -0
- data/ext/nginx/MergeLocationConfig.c.erb +1 -1
- data/ext/nginx/config +12 -0
- data/ext/oxt/dynamic_thread_group.hpp +7 -4
- data/ext/oxt/system_calls.cpp +5 -1
- data/ext/oxt/system_calls.hpp +3 -0
- data/helper-scripts/node-loader.js +117 -249
- data/lib/phusion_passenger.rb +27 -5
- data/lib/phusion_passenger/abstract_installer.rb +104 -9
- data/lib/phusion_passenger/admin_tools/memory_stats.rb +10 -9
- data/lib/phusion_passenger/apache2/config_options.rb +6 -3
- data/lib/phusion_passenger/common_library.rb +7 -1
- data/lib/phusion_passenger/constants.rb +6 -0
- data/lib/phusion_passenger/loader_shared_helpers.rb +7 -4
- data/lib/phusion_passenger/nginx/config_options.rb +2 -1
- data/lib/phusion_passenger/packaging.rb +3 -0
- data/lib/phusion_passenger/platform_info/apache.rb +43 -6
- data/lib/phusion_passenger/platform_info/apache_detector.rb +15 -5
- data/lib/phusion_passenger/platform_info/compiler.rb +167 -32
- data/lib/phusion_passenger/platform_info/cxx_portability.rb +133 -77
- data/lib/phusion_passenger/platform_info/depcheck.rb +17 -7
- data/lib/phusion_passenger/platform_info/depcheck_specs/apache2.rb +3 -3
- data/lib/phusion_passenger/platform_info/depcheck_specs/compiler_toolchain.rb +4 -4
- data/lib/phusion_passenger/platform_info/depcheck_specs/ruby.rb +5 -6
- data/lib/phusion_passenger/platform_info/linux.rb +2 -1
- data/lib/phusion_passenger/platform_info/operating_system.rb +1 -1
- data/lib/phusion_passenger/platform_info/ruby.rb +18 -3
- data/lib/phusion_passenger/standalone/runtime_installer.rb +6 -2
- data/lib/phusion_passenger/standalone/start_command.rb +8 -2
- data/lib/phusion_passenger/utils/ansi_colors.rb +9 -0
- data/lib/phusion_passenger/utils/hosts_file_parser.rb +4 -2
- data/node_lib/phusion_passenger/httplib_emulation.js +141 -0
- data/node_lib/phusion_passenger/line_reader.js +154 -0
- data/node_lib/phusion_passenger/request_handler.js +65 -0
- data/node_lib/phusion_passenger/session_protocol_parser.js +113 -0
- data/resources/templates/apache2/deployment_example.txt.erb +2 -1
- data/resources/templates/apache2/installing_against_a_different_apache.txt.erb +14 -0
- data/resources/templates/apache2/multiple_apache_installations_detected.txt.erb +15 -0
- data/resources/templates/apache2/possible_solutions_for_compilation_and_installation_problems.txt.erb +4 -5
- data/resources/templates/general_error_with_html.html.template +1 -1
- data/resources/templates/installer_common/gem_install_permission_problems.txt.erb +17 -0
- data/resources/templates/installer_common/low_amount_of_memory_warning.txt.erb +6 -4
- data/resources/templates/installer_common/world_inaccessible_directories.txt.erb +16 -0
- data/resources/templates/nginx/deployment_example.txt.erb +2 -1
- data/resources/templates/nginx/possible_solutions_for_compilation_and_installation_problems.txt.erb +4 -5
- data/resources/templates/standalone/config.erb +1 -0
- data/test/cxx/ApplicationPool2/DirectSpawnerTest.cpp +3 -3
- data/test/cxx/ApplicationPool2/PoolTest.cpp +4 -4
- data/test/cxx/ApplicationPool2/ProcessTest.cpp +5 -5
- data/test/cxx/ApplicationPool2/SmartSpawnerTest.cpp +5 -5
- data/test/cxx/ApplicationPool2/SpawnerTestCases.cpp +1 -1
- data/test/cxx/EventedBufferedInputTest.cpp +6 -6
- data/test/cxx/FileBackedPipeTest.cpp +1 -1
- data/test/cxx/MessagePassingTest.cpp +1 -1
- data/test/cxx/MessageServerTest.cpp +4 -4
- data/test/cxx/RequestHandlerTest.cpp +7 -7
- data/test/cxx/UnionStationTest.cpp +2 -2
- data/test/node/line_reader_spec.js +338 -0
- data/test/node/spec_helper.js +27 -0
- data/test/ruby/standalone/runtime_installer_spec.rb +2 -1
- metadata +131 -22
- metadata.gz.asc +7 -7
- data/ext/boost/functional/hash/detail/container_fwd_0x.hpp +0 -29
- data/ext/boost/lambda/core.hpp +0 -79
- data/ext/boost/lambda/detail/actions.hpp +0 -174
- data/ext/boost/lambda/detail/arity_code.hpp +0 -110
- data/ext/boost/lambda/detail/function_adaptors.hpp +0 -789
- data/ext/boost/lambda/detail/is_instance_of.hpp +0 -104
- data/ext/boost/lambda/detail/lambda_config.hpp +0 -48
- data/ext/boost/lambda/detail/lambda_functor_base.hpp +0 -615
- data/ext/boost/lambda/detail/lambda_functors.hpp +0 -324
- data/ext/boost/lambda/detail/lambda_fwd.hpp +0 -74
- data/ext/boost/lambda/detail/lambda_traits.hpp +0 -578
- data/ext/boost/lambda/detail/member_ptr.hpp +0 -737
- data/ext/boost/lambda/detail/operator_actions.hpp +0 -139
- data/ext/boost/lambda/detail/operator_lambda_func_base.hpp +0 -271
- data/ext/boost/lambda/detail/operator_return_type_traits.hpp +0 -917
- data/ext/boost/lambda/detail/operators.hpp +0 -370
- data/ext/boost/lambda/detail/ret.hpp +0 -325
- data/ext/boost/lambda/detail/return_type_traits.hpp +0 -282
- data/ext/boost/lambda/detail/select_functions.hpp +0 -74
- data/ext/boost/lambda/lambda.hpp +0 -34
@@ -84,7 +84,7 @@ private:
|
|
84
84
|
|
85
85
|
typedef MessageServer::CommonClientContext CommonClientContext;
|
86
86
|
|
87
|
-
shared_ptr<RequestHandler> requestHandler;
|
87
|
+
boost::shared_ptr<RequestHandler> requestHandler;
|
88
88
|
PoolPtr pool;
|
89
89
|
|
90
90
|
|
@@ -166,13 +166,13 @@ private:
|
|
166
166
|
}
|
167
167
|
|
168
168
|
public:
|
169
|
-
RemoteController(const shared_ptr<RequestHandler> &requestHandler, const PoolPtr &pool) {
|
169
|
+
RemoteController(const boost::shared_ptr<RequestHandler> &requestHandler, const PoolPtr &pool) {
|
170
170
|
this->requestHandler = requestHandler;
|
171
171
|
this->pool = pool;
|
172
172
|
}
|
173
173
|
|
174
174
|
virtual MessageServer::ClientContextPtr newClient(CommonClientContext &commonContext) {
|
175
|
-
return make_shared<SpecificContext>();
|
175
|
+
return boost::make_shared<SpecificContext>();
|
176
176
|
}
|
177
177
|
|
178
178
|
virtual bool processMessage(CommonClientContext &commonContext,
|
@@ -259,10 +259,10 @@ private:
|
|
259
259
|
AccountsDatabasePtr accountsDatabase;
|
260
260
|
MessageServerPtr messageServer;
|
261
261
|
ResourceLocator resourceLocator;
|
262
|
-
shared_ptr<RequestHandler> requestHandler;
|
263
|
-
shared_ptr<oxt::thread> prestarterThread;
|
264
|
-
shared_ptr<oxt::thread> messageServerThread;
|
265
|
-
shared_ptr<oxt::thread> eventLoopThread;
|
262
|
+
boost::shared_ptr<RequestHandler> requestHandler;
|
263
|
+
boost::shared_ptr<oxt::thread> prestarterThread;
|
264
|
+
boost::shared_ptr<oxt::thread> messageServerThread;
|
265
|
+
boost::shared_ptr<oxt::thread> eventLoopThread;
|
266
266
|
EventFd exitEvent;
|
267
267
|
|
268
268
|
/**
|
@@ -421,12 +421,12 @@ public:
|
|
421
421
|
UPDATE_TRACE_POINT();
|
422
422
|
generation = serverInstanceDir.getGeneration(options.generationNumber);
|
423
423
|
startListening();
|
424
|
-
accountsDatabase = make_shared<AccountsDatabase>();
|
424
|
+
accountsDatabase = boost::make_shared<AccountsDatabase>();
|
425
425
|
accountsDatabase->add("_passenger-status", options.adminToolStatusPassword, false,
|
426
426
|
Account::INSPECT_BASIC_INFO | Account::INSPECT_SENSITIVE_INFO |
|
427
427
|
Account::INSPECT_BACKTRACES | Account::INSPECT_REQUESTS);
|
428
428
|
accountsDatabase->add("_web_server", options.exitPassword, false, Account::EXIT);
|
429
|
-
messageServer = make_shared<MessageServer>(
|
429
|
+
messageServer = boost::make_shared<MessageServer>(
|
430
430
|
parseUnixSocketAddress(options.adminSocketAddress), accountsDatabase);
|
431
431
|
|
432
432
|
createFile(generation->getPath() + "/helper_agent.pid",
|
@@ -437,7 +437,7 @@ public:
|
|
437
437
|
}
|
438
438
|
|
439
439
|
UPDATE_TRACE_POINT();
|
440
|
-
randomGenerator = make_shared<RandomGenerator>();
|
440
|
+
randomGenerator = boost::make_shared<RandomGenerator>();
|
441
441
|
// Check whether /dev/urandom is actually random.
|
442
442
|
// https://code.google.com/p/phusion-passenger/issues/detail?id=516
|
443
443
|
if (randomGenerator->generateByteString(16) == randomGenerator->generateByteString(16)) {
|
@@ -446,21 +446,21 @@ public:
|
|
446
446
|
}
|
447
447
|
|
448
448
|
UPDATE_TRACE_POINT();
|
449
|
-
loggerFactory = make_shared<UnionStation::LoggerFactory>(options.loggingAgentAddress,
|
449
|
+
loggerFactory = boost::make_shared<UnionStation::LoggerFactory>(options.loggingAgentAddress,
|
450
450
|
"logging", options.loggingAgentPassword);
|
451
|
-
spawnerFactory = make_shared<SpawnerFactory>(poolLoop.safe,
|
452
|
-
resourceLocator, generation, make_shared<SpawnerConfig>(randomGenerator));
|
453
|
-
pool = make_shared<Pool>(poolLoop.safe.get(), spawnerFactory, loggerFactory,
|
451
|
+
spawnerFactory = boost::make_shared<SpawnerFactory>(poolLoop.safe,
|
452
|
+
resourceLocator, generation, boost::make_shared<SpawnerConfig>(randomGenerator));
|
453
|
+
pool = boost::make_shared<Pool>(poolLoop.safe.get(), spawnerFactory, loggerFactory,
|
454
454
|
randomGenerator);
|
455
455
|
pool->initialize();
|
456
456
|
pool->setMax(options.maxPoolSize);
|
457
457
|
//pool->setMaxPerApp(maxInstancesPerApp);
|
458
458
|
pool->setMaxIdleTime(options.poolIdleTime * 1000000);
|
459
459
|
|
460
|
-
requestHandler = make_shared<RequestHandler>(requestLoop.safe,
|
460
|
+
requestHandler = boost::make_shared<RequestHandler>(requestLoop.safe,
|
461
461
|
requestSocket, pool, options);
|
462
462
|
|
463
|
-
messageServer->addHandler(make_shared<RemoteController>(requestHandler, pool));
|
463
|
+
messageServer->addHandler(boost::make_shared<RemoteController>(requestHandler, pool));
|
464
464
|
messageServer->addHandler(ptr(new ExitHandler(exitEvent)));
|
465
465
|
|
466
466
|
sigquitWatcher.set(requestLoop.loop);
|
@@ -475,7 +475,7 @@ public:
|
|
475
475
|
messageServer->getSocketFilename().c_str(),
|
476
476
|
NULL);
|
477
477
|
|
478
|
-
function<void ()> func = boost::bind(prestartWebApps,
|
478
|
+
boost::function<void ()> func = boost::bind(prestartWebApps,
|
479
479
|
resourceLocator,
|
480
480
|
options.defaultRubyCommand,
|
481
481
|
options.prestartUrls
|
@@ -531,7 +531,7 @@ public:
|
|
531
531
|
|
532
532
|
void mainLoop() {
|
533
533
|
TRACE_POINT();
|
534
|
-
function<void ()> func;
|
534
|
+
boost::function<void ()> func;
|
535
535
|
|
536
536
|
func = boost::bind(&MessageServer::mainLoop, messageServer.get());
|
537
537
|
messageServerThread = ptr(new oxt::thread(
|
@@ -244,7 +244,7 @@ main() {
|
|
244
244
|
setLogLevel(3);
|
245
245
|
MultiLibeio::init();
|
246
246
|
loop = EV_DEFAULT;
|
247
|
-
libev = make_shared<SafeLibev>(loop);
|
247
|
+
libev = boost::make_shared<SafeLibev>(loop);
|
248
248
|
AgentOptions options;
|
249
249
|
ServerInstanceDir serverInstanceDir(getpid());
|
250
250
|
char root[PATH_MAX];
|
@@ -258,12 +258,12 @@ main() {
|
|
258
258
|
options.loggingAgentAddress = "unix:/tmp/agent";
|
259
259
|
options.loggingAgentPassword = "1234";
|
260
260
|
|
261
|
-
SpawnerFactoryPtr spawnerFactory = make_shared<SpawnerFactory>(libev,
|
261
|
+
SpawnerFactoryPtr spawnerFactory = boost::make_shared<SpawnerFactory>(libev,
|
262
262
|
ResourceLocator(root),
|
263
263
|
serverInstanceDir.newGeneration(true, "nobody", nogroup, getpid(), getgid()));
|
264
|
-
UnionStation::LoggerFactoryPtr loggerFactory = make_shared<UnionStation::LoggerFactory>(options.loggingAgentAddress,
|
264
|
+
UnionStation::LoggerFactoryPtr loggerFactory = boost::make_shared<UnionStation::LoggerFactory>(options.loggingAgentAddress,
|
265
265
|
"logging", options.loggingAgentPassword);
|
266
|
-
pool = make_shared<Pool>(libev.get(), spawnerFactory, loggerFactory);
|
266
|
+
pool = boost::make_shared<Pool>(libev.get(), spawnerFactory, loggerFactory);
|
267
267
|
FileDescriptor requestSocket(createTcpServer("127.0.0.1", 3000));
|
268
268
|
setNonBlocking(requestSocket);
|
269
269
|
handler = new RequestHandler(libev, requestSocket, pool, options);
|
@@ -120,6 +120,8 @@ using namespace ApplicationPool2;
|
|
120
120
|
|
121
121
|
class RequestHandler;
|
122
122
|
|
123
|
+
#define MAX_STATUS_HEADER_SIZE 64
|
124
|
+
|
123
125
|
#define RH_ERROR(client, x) P_ERROR("[Client " << client->name() << "] " << x)
|
124
126
|
#define RH_WARN(client, x) P_WARN("[Client " << client->name() << "] " << x)
|
125
127
|
#define RH_DEBUG(client, x) P_DEBUG("[Client " << client->name() << "] " << x)
|
@@ -132,7 +134,7 @@ class RequestHandler;
|
|
132
134
|
RH_TRACE(client, 3, "Event: " eventName)
|
133
135
|
|
134
136
|
|
135
|
-
class Client: public enable_shared_from_this<Client> {
|
137
|
+
class Client: public boost::enable_shared_from_this<Client> {
|
136
138
|
private:
|
137
139
|
struct ev_loop *getLoop() const;
|
138
140
|
const SafeLibevPtr &getSafeLibev() const;
|
@@ -290,19 +292,19 @@ public:
|
|
290
292
|
Client() {
|
291
293
|
fdnum = -1;
|
292
294
|
|
293
|
-
clientInput = make_shared< EventedBufferedInput<> >();
|
295
|
+
clientInput = boost::make_shared< EventedBufferedInput<> >();
|
294
296
|
clientInput->onData = onClientInputData;
|
295
297
|
clientInput->onError = onClientInputError;
|
296
298
|
clientInput->userData = this;
|
297
299
|
|
298
|
-
clientBodyBuffer = make_shared<FileBackedPipe>("/tmp");
|
300
|
+
clientBodyBuffer = boost::make_shared<FileBackedPipe>("/tmp");
|
299
301
|
clientBodyBuffer->userData = this;
|
300
302
|
clientBodyBuffer->onData = onClientBodyBufferData;
|
301
303
|
clientBodyBuffer->onEnd = onClientBodyBufferEnd;
|
302
304
|
clientBodyBuffer->onError = onClientBodyBufferError;
|
303
305
|
clientBodyBuffer->onCommit = onClientBodyBufferCommit;
|
304
306
|
|
305
|
-
clientOutputPipe = make_shared<FileBackedPipe>("/tmp");
|
307
|
+
clientOutputPipe = boost::make_shared<FileBackedPipe>("/tmp");
|
306
308
|
clientOutputPipe->userData = this;
|
307
309
|
clientOutputPipe->onData = onClientOutputPipeData;
|
308
310
|
clientOutputPipe->onEnd = onClientOutputPipeEnd;
|
@@ -312,7 +314,7 @@ public:
|
|
312
314
|
clientOutputWatcher.set<Client, &Client::onClientOutputWritable>(this);
|
313
315
|
|
314
316
|
|
315
|
-
appInput = make_shared< EventedBufferedInput<> >();
|
317
|
+
appInput = boost::make_shared< EventedBufferedInput<> >();
|
316
318
|
appInput->onData = onAppInputData;
|
317
319
|
appInput->onError = onAppInputError;
|
318
320
|
appInput->userData = this;
|
@@ -541,7 +543,7 @@ public:
|
|
541
543
|
}
|
542
544
|
};
|
543
545
|
|
544
|
-
typedef shared_ptr<Client> ClientPtr;
|
546
|
+
typedef boost::shared_ptr<Client> ClientPtr;
|
545
547
|
|
546
548
|
|
547
549
|
class RequestHandler {
|
@@ -897,15 +899,22 @@ private:
|
|
897
899
|
}
|
898
900
|
if (begin != string::npos && end != string::npos) {
|
899
901
|
StaticString statusValue(headerData.data() + begin + 1, end - begin);
|
900
|
-
|
901
|
-
|
902
|
-
|
902
|
+
if (statusValue.size() <= MAX_STATUS_HEADER_SIZE) {
|
903
|
+
char header[MAX_STATUS_HEADER_SIZE + sizeof("Status: \r\n")];
|
904
|
+
char *pos = header;
|
905
|
+
const char *end = header + sizeof(header);
|
903
906
|
|
904
|
-
|
905
|
-
|
906
|
-
|
907
|
-
|
908
|
-
|
907
|
+
pos = appendData(pos, end, "Status: ");
|
908
|
+
pos = appendData(pos, end, statusValue);
|
909
|
+
pos = appendData(pos, end, "\r\n");
|
910
|
+
headerData.append(StaticString(header, pos - header));
|
911
|
+
return true;
|
912
|
+
} else {
|
913
|
+
disconnectWithError(client, "application sent malformed response: the Status header's (" +
|
914
|
+
statusValue + ") exceeds the allowed limit of " +
|
915
|
+
toString(MAX_STATUS_HEADER_SIZE) + " bytes.");
|
916
|
+
return false;
|
917
|
+
}
|
909
918
|
} else {
|
910
919
|
disconnectWithError(client, "application sent malformed response: the HTTP status line is invalid.");
|
911
920
|
return false;
|
@@ -1319,7 +1328,7 @@ private:
|
|
1319
1328
|
"\r\n"
|
1320
1329
|
"Benchmark point: after_accept\n");
|
1321
1330
|
} else {
|
1322
|
-
ClientPtr client = make_shared<Client>();
|
1331
|
+
ClientPtr client = boost::make_shared<Client>();
|
1323
1332
|
client->associate(this, fd);
|
1324
1333
|
clients.insert(make_pair<int, ClientPtr>(fd, client));
|
1325
1334
|
acceptedClients[count] = client;
|
@@ -1931,14 +1940,14 @@ private:
|
|
1931
1940
|
if (e != NULL) {
|
1932
1941
|
client->endScopeLog(&client->scopeLogs.getFromPool, false);
|
1933
1942
|
{
|
1934
|
-
shared_ptr<RequestQueueFullException> e2 = dynamic_pointer_cast<RequestQueueFullException>(e);
|
1943
|
+
boost::shared_ptr<RequestQueueFullException> e2 = dynamic_pointer_cast<RequestQueueFullException>(e);
|
1935
1944
|
if (e2 != NULL) {
|
1936
1945
|
writeRequestQueueFullExceptionErrorResponse(client);
|
1937
1946
|
return;
|
1938
1947
|
}
|
1939
1948
|
}
|
1940
1949
|
{
|
1941
|
-
shared_ptr<SpawnException> e2 = dynamic_pointer_cast<SpawnException>(e);
|
1950
|
+
boost::shared_ptr<SpawnException> e2 = dynamic_pointer_cast<SpawnException>(e);
|
1942
1951
|
if (e2 != NULL) {
|
1943
1952
|
writeSpawnExceptionErrorResponse(client, e2);
|
1944
1953
|
return;
|
@@ -1966,13 +1975,13 @@ private:
|
|
1966
1975
|
requestQueueOverflowStatusCode);
|
1967
1976
|
}
|
1968
1977
|
|
1969
|
-
void writeSpawnExceptionErrorResponse(const ClientPtr &client, const shared_ptr<SpawnException> &e) {
|
1978
|
+
void writeSpawnExceptionErrorResponse(const ClientPtr &client, const boost::shared_ptr<SpawnException> &e) {
|
1970
1979
|
if (strip(e->getErrorPage()).empty()) {
|
1971
1980
|
RH_WARN(client, "Cannot checkout session. " << e->what());
|
1972
1981
|
writeErrorResponse(client, e->what());
|
1973
1982
|
} else {
|
1974
|
-
RH_WARN(client, "Cannot checkout session
|
1975
|
-
|
1983
|
+
RH_WARN(client, "Cannot checkout session.\nError page:\n" <<
|
1984
|
+
e->getErrorPage());
|
1976
1985
|
writeErrorResponse(client, e->getErrorPage(), e.get());
|
1977
1986
|
}
|
1978
1987
|
}
|
@@ -2000,7 +2009,7 @@ private:
|
|
2000
2009
|
response.append(typeName);
|
2001
2010
|
response.append("\nError message: ");
|
2002
2011
|
response.append(e->what());
|
2003
|
-
shared_ptr<tracable_exception> e3 = dynamic_pointer_cast<tracable_exception>(e);
|
2012
|
+
boost::shared_ptr<tracable_exception> e3 = dynamic_pointer_cast<tracable_exception>(e);
|
2004
2013
|
if (e3 != NULL) {
|
2005
2014
|
response.append("\nBacktrace:\n");
|
2006
2015
|
response.append(e3->backtrace());
|
@@ -67,7 +67,7 @@ public:
|
|
67
67
|
}
|
68
68
|
|
69
69
|
virtual MessageServer::ClientContextPtr newClient(CommonClientContext &commonContext) {
|
70
|
-
return make_shared<SpecificContext>();
|
70
|
+
return boost::make_shared<SpecificContext>();
|
71
71
|
}
|
72
72
|
|
73
73
|
virtual bool processMessage(CommonClientContext &commonContext,
|
@@ -38,6 +38,8 @@
|
|
38
38
|
#endif
|
39
39
|
#include <cstdio>
|
40
40
|
#include <cstring>
|
41
|
+
#include <string.h>
|
42
|
+
#include <stdlib.h>
|
41
43
|
|
42
44
|
#include <StaticString.h>
|
43
45
|
#include <Exceptions.h>
|
@@ -834,10 +836,10 @@ private:
|
|
834
836
|
struct MultiExpression;
|
835
837
|
struct Comparison;
|
836
838
|
struct FunctionCall;
|
837
|
-
typedef shared_ptr<BooleanComponent> BooleanComponentPtr;
|
838
|
-
typedef shared_ptr<MultiExpression> MultiExpressionPtr;
|
839
|
-
typedef shared_ptr<Comparison> ComparisonPtr;
|
840
|
-
typedef shared_ptr<FunctionCall> FunctionCallPtr;
|
839
|
+
typedef boost::shared_ptr<BooleanComponent> BooleanComponentPtr;
|
840
|
+
typedef boost::shared_ptr<MultiExpression> MultiExpressionPtr;
|
841
|
+
typedef boost::shared_ptr<Comparison> ComparisonPtr;
|
842
|
+
typedef boost::shared_ptr<FunctionCall> FunctionCallPtr;
|
841
843
|
|
842
844
|
struct BooleanComponent {
|
843
845
|
virtual ~BooleanComponent() { }
|
@@ -1380,7 +1382,7 @@ private:
|
|
1380
1382
|
|
1381
1383
|
BooleanComponentPtr matchMultiExpression(int level) {
|
1382
1384
|
logMatch(level, "matchMultiExpression()");
|
1383
|
-
MultiExpressionPtr result = make_shared<MultiExpression>();
|
1385
|
+
MultiExpressionPtr result = boost::make_shared<MultiExpression>();
|
1384
1386
|
|
1385
1387
|
result->firstExpression = matchExpression(level + 1);
|
1386
1388
|
while (isLogicalOperatorToken(peek())) {
|
@@ -1408,7 +1410,7 @@ private:
|
|
1408
1410
|
BooleanComponentPtr expression = matchMultiExpression(level + 1);
|
1409
1411
|
match(Tokenizer::RPARENTHESIS);
|
1410
1412
|
if (negate) {
|
1411
|
-
return make_shared<Negation>(expression);
|
1413
|
+
return boost::make_shared<Negation>(expression);
|
1412
1414
|
} else {
|
1413
1415
|
return expression;
|
1414
1416
|
}
|
@@ -1428,7 +1430,7 @@ private:
|
|
1428
1430
|
}
|
1429
1431
|
|
1430
1432
|
if (negate) {
|
1431
|
-
return make_shared<Negation>(component);
|
1433
|
+
return boost::make_shared<Negation>(component);
|
1432
1434
|
} else {
|
1433
1435
|
return component;
|
1434
1436
|
}
|
@@ -1440,12 +1442,12 @@ private:
|
|
1440
1442
|
|
1441
1443
|
BooleanComponentPtr matchSingleValueComponent(int level, const Token &token) {
|
1442
1444
|
logMatch(level, "matchSingleValueComponent()");
|
1443
|
-
return make_shared<SingleValueComponent>(matchLiteral(level + 1, token));
|
1445
|
+
return boost::make_shared<SingleValueComponent>(matchLiteral(level + 1, token));
|
1444
1446
|
}
|
1445
1447
|
|
1446
1448
|
ComparisonPtr matchComparison(int level, const Token &subjectToken) {
|
1447
1449
|
logMatch(level, "matchComparison()");
|
1448
|
-
ComparisonPtr comparison = make_shared<Comparison>();
|
1450
|
+
ComparisonPtr comparison = boost::make_shared<Comparison>();
|
1449
1451
|
comparison->subject = matchValue(level + 1, subjectToken);
|
1450
1452
|
comparison->comparator = matchComparator(level + 1);
|
1451
1453
|
comparison->object = matchValue(level + 1, match());
|
@@ -1460,9 +1462,9 @@ private:
|
|
1460
1462
|
FunctionCallPtr function;
|
1461
1463
|
|
1462
1464
|
if (id.rawValue == "starts_with") {
|
1463
|
-
function = make_shared<StartsWithFunctionCall>();
|
1465
|
+
function = boost::make_shared<StartsWithFunctionCall>();
|
1464
1466
|
} else if (id.rawValue == "has_hint") {
|
1465
|
-
function = make_shared<HasHintFunctionCall>();
|
1467
|
+
function = boost::make_shared<HasHintFunctionCall>();
|
1466
1468
|
} else {
|
1467
1469
|
raiseSyntaxError("unknown function '" + id.rawValue + "'", id);
|
1468
1470
|
}
|
@@ -74,7 +74,7 @@ private:
|
|
74
74
|
static const int GARBAGE_COLLECTION_TIMEOUT = 4500; // 1 hour 15 minutes
|
75
75
|
|
76
76
|
struct LogSink;
|
77
|
-
typedef shared_ptr<LogSink> LogSinkPtr;
|
77
|
+
typedef boost::shared_ptr<LogSink> LogSinkPtr;
|
78
78
|
typedef map<string, LogSinkPtr> LogSinkCache;
|
79
79
|
|
80
80
|
struct LogSink {
|
@@ -183,7 +183,7 @@ private:
|
|
183
183
|
}
|
184
184
|
};
|
185
185
|
|
186
|
-
typedef shared_ptr<LogFileSink> LogFileSinkPtr;
|
186
|
+
typedef boost::shared_ptr<LogFileSink> LogFileSinkPtr;
|
187
187
|
|
188
188
|
struct RemoteSink: public LogSink {
|
189
189
|
/* RemoteSender compresses the data with zlib before sending it
|
@@ -363,7 +363,7 @@ private:
|
|
363
363
|
}
|
364
364
|
};
|
365
365
|
|
366
|
-
typedef shared_ptr<Transaction> TransactionPtr;
|
366
|
+
typedef boost::shared_ptr<Transaction> TransactionPtr;
|
367
367
|
|
368
368
|
enum ClientType {
|
369
369
|
UNINITIALIZED,
|
@@ -407,10 +407,10 @@ private:
|
|
407
407
|
}
|
408
408
|
};
|
409
409
|
|
410
|
-
typedef shared_ptr<Client> ClientPtr;
|
410
|
+
typedef boost::shared_ptr<Client> ClientPtr;
|
411
411
|
typedef map<string, TransactionPtr> TransactionMap;
|
412
412
|
|
413
|
-
typedef shared_ptr<FilterSupport::Filter> FilterPtr;
|
413
|
+
typedef boost::shared_ptr<FilterSupport::Filter> FilterPtr;
|
414
414
|
|
415
415
|
RemoteSender remoteSender;
|
416
416
|
ev::timer garbageCollectionTimer;
|
@@ -543,7 +543,7 @@ private:
|
|
543
543
|
LogSinkCache::iterator it = logSinkCache.find(cacheKey);
|
544
544
|
if (it == logSinkCache.end()) {
|
545
545
|
trimLogSinkCache(MAX_LOG_SINK_CACHE_SIZE - 1);
|
546
|
-
result = make_shared<LogFileSink>(this, dumpFile);
|
546
|
+
result = boost::make_shared<LogFileSink>(this, dumpFile);
|
547
547
|
pair<LogSinkCache::iterator, bool> p =
|
548
548
|
logSinkCache.insert(make_pair(cacheKey, result));
|
549
549
|
result->cacheIterator = p.first;
|
@@ -573,7 +573,7 @@ private:
|
|
573
573
|
LogSinkCache::iterator it = logSinkCache.find(cacheKey);
|
574
574
|
if (it == logSinkCache.end()) {
|
575
575
|
trimLogSinkCache(MAX_LOG_SINK_CACHE_SIZE - 1);
|
576
|
-
result = make_shared<RemoteSink>(this, unionStationKey,
|
576
|
+
result = boost::make_shared<RemoteSink>(this, unionStationKey,
|
577
577
|
nodeName, category);
|
578
578
|
pair<LogSinkCache::iterator, bool> p =
|
579
579
|
logSinkCache.insert(make_pair(cacheKey, result));
|
@@ -625,7 +625,7 @@ private:
|
|
625
625
|
// TODO: garbage collect filters based on time
|
626
626
|
FilterPtr filter = filters.get(source);
|
627
627
|
if (filter == NULL) {
|
628
|
-
filter = make_shared<FilterSupport::Filter>(source);
|
628
|
+
filter = boost::make_shared<FilterSupport::Filter>(source);
|
629
629
|
filters.set(source, filter);
|
630
630
|
}
|
631
631
|
return *filter;
|
@@ -694,7 +694,7 @@ private:
|
|
694
694
|
}
|
695
695
|
|
696
696
|
bool isDirectory(const string &dir, struct dirent *entry) const {
|
697
|
-
#if defined(__sun__) || defined(_AIX)
|
697
|
+
#if defined(__sun__) || defined(sun) || defined(_AIX)
|
698
698
|
string path = dir;
|
699
699
|
path.append("/");
|
700
700
|
path.append(entry->d_name);
|
@@ -869,7 +869,7 @@ protected:
|
|
869
869
|
return true;
|
870
870
|
}
|
871
871
|
|
872
|
-
transaction = make_shared<Transaction>(this, ev_now(getLoop()));
|
872
|
+
transaction = boost::make_shared<Transaction>(this, ev_now(getLoop()));
|
873
873
|
if (unionStationKey.empty() || unionStationKey == "-") {
|
874
874
|
char tempNodeId[MD5_HEX_SIZE];
|
875
875
|
|
@@ -1196,7 +1196,7 @@ public:
|
|
1196
1196
|
}
|
1197
1197
|
};
|
1198
1198
|
|
1199
|
-
typedef shared_ptr<LoggingServer> LoggingServerPtr;
|
1199
|
+
typedef boost::shared_ptr<LoggingServer> LoggingServerPtr;
|
1200
1200
|
|
1201
1201
|
|
1202
1202
|
} // namespace Passenger
|
@@ -75,7 +75,7 @@ struct WorkingObjects {
|
|
75
75
|
FileDescriptor serverSocketFd;
|
76
76
|
AccountsDatabasePtr adminAccountsDatabase;
|
77
77
|
MessageServerPtr adminServer;
|
78
|
-
shared_ptr<oxt::thread> adminServerThread;
|
78
|
+
boost::shared_ptr<oxt::thread> adminServerThread;
|
79
79
|
AccountsDatabasePtr accountsDatabase;
|
80
80
|
LoggingServerPtr loggingServer;
|
81
81
|
|
@@ -155,7 +155,7 @@ initializeOptions(WorkingObjects &wo) {
|
|
155
155
|
groupname = agentsOptions.get("analytics_log_group", false);
|
156
156
|
adminToolStatusPassword = agentsOptions.get("admin_tool_status_password");
|
157
157
|
|
158
|
-
wo.resourceLocator = make_shared<ResourceLocator>(passengerRoot);
|
158
|
+
wo.resourceLocator = boost::make_shared<ResourceLocator>(passengerRoot);
|
159
159
|
agentsOptions.set("union_station_gateway_cert", findUnionStationGatewayCert(
|
160
160
|
*wo.resourceLocator, agentsOptions.get("union_station_gateway_cert", false)));
|
161
161
|
}
|
@@ -175,9 +175,9 @@ initializePrivilegedWorkingObjects(WorkingObjects &wo) {
|
|
175
175
|
} while (ret == -1 && errno == EINTR);
|
176
176
|
}
|
177
177
|
|
178
|
-
wo.adminAccountsDatabase = make_shared<AccountsDatabase>();
|
178
|
+
wo.adminAccountsDatabase = boost::make_shared<AccountsDatabase>();
|
179
179
|
wo.adminAccountsDatabase->add("_passenger-status", adminToolStatusPassword, false);
|
180
|
-
wo.adminServer = make_shared<MessageServer>(parseUnixSocketAddress(adminSocketAddress),
|
180
|
+
wo.adminServer = boost::make_shared<MessageServer>(parseUnixSocketAddress(adminSocketAddress),
|
181
181
|
wo.adminAccountsDatabase);
|
182
182
|
}
|
183
183
|
|
@@ -266,16 +266,16 @@ createEventLoop() {
|
|
266
266
|
static void
|
267
267
|
initializeUnprivilegedWorkingObjects(WorkingObjects &wo) {
|
268
268
|
eventLoop = createEventLoop();
|
269
|
-
wo.accountsDatabase = make_shared<AccountsDatabase>();
|
269
|
+
wo.accountsDatabase = boost::make_shared<AccountsDatabase>();
|
270
270
|
wo.accountsDatabase->add("logging", password, false);
|
271
271
|
|
272
|
-
wo.loggingServer = make_shared<LoggingServer>(eventLoop, wo.serverSocketFd,
|
272
|
+
wo.loggingServer = boost::make_shared<LoggingServer>(eventLoop, wo.serverSocketFd,
|
273
273
|
wo.accountsDatabase, agentsOptions);
|
274
274
|
loggingServer = wo.loggingServer.get();
|
275
275
|
|
276
|
-
wo.adminServer->addHandler(make_shared<AdminController>(wo.loggingServer));
|
277
|
-
function<void ()> adminServerFunc = boost::bind(&MessageServer::mainLoop, wo.adminServer.get());
|
278
|
-
wo.adminServerThread = make_shared<oxt::thread>(
|
276
|
+
wo.adminServer->addHandler(boost::make_shared<AdminController>(wo.loggingServer));
|
277
|
+
boost::function<void ()> adminServerFunc = boost::bind(&MessageServer::mainLoop, wo.adminServer.get());
|
278
|
+
wo.adminServerThread = boost::make_shared<oxt::thread>(
|
279
279
|
boost::bind(runAndPrintExceptions, adminServerFunc, true),
|
280
280
|
"AdminServer thread", MESSAGE_SERVER_THREAD_STACK_SIZE
|
281
281
|
);
|