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
@@ -0,0 +1,113 @@
|
|
1
|
+
/*
|
2
|
+
* Phusion Passenger - https://www.phusionpassenger.com/
|
3
|
+
* Copyright (c) 2012-2013 Phusion
|
4
|
+
*
|
5
|
+
* "Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui.
|
6
|
+
*
|
7
|
+
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
8
|
+
* of this software and associated documentation files (the "Software"), to deal
|
9
|
+
* in the Software without restriction, including without limitation the rights
|
10
|
+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
11
|
+
* copies of the Software, and to permit persons to whom the Software is
|
12
|
+
* furnished to do so, subject to the following conditions:
|
13
|
+
*
|
14
|
+
* The above copyright notice and this permission notice shall be included in
|
15
|
+
* all copies or substantial portions of the Software.
|
16
|
+
*
|
17
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
18
|
+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
19
|
+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
20
|
+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
21
|
+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
22
|
+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
23
|
+
* THE SOFTWARE.
|
24
|
+
*/
|
25
|
+
|
26
|
+
const SPP_PARSING_SIZE = SessionProtocolParser.SPP_PARSING_SIZE = 0;
|
27
|
+
const SPP_PARSING_HEADERS = SessionProtocolParser.SPP_PARSING_HEADERS = 1;
|
28
|
+
const SPP_DONE = SessionProtocolParser.SPP_DONE = 10;
|
29
|
+
const SPP_ERROR = SessionProtocolParser.SPP_ERROR = 11;
|
30
|
+
|
31
|
+
const ENCODING = 'binary';
|
32
|
+
|
33
|
+
function SessionProtocolParser() {
|
34
|
+
this.state = SPP_PARSING_SIZE;
|
35
|
+
this.processed = 0;
|
36
|
+
this.size = 0;
|
37
|
+
this.keys = [];
|
38
|
+
}
|
39
|
+
|
40
|
+
SessionProtocolParser.prototype.feed = function(buffer) {
|
41
|
+
var consumed = 0;
|
42
|
+
var locallyConsumed;
|
43
|
+
|
44
|
+
while (consumed < buffer.length && this.state != SPP_ERROR && this.state != SPP_DONE) {
|
45
|
+
switch (this.state) {
|
46
|
+
case SPP_PARSING_SIZE:
|
47
|
+
this.size += buffer[consumed] * Math.pow(256, 3 - this.processed);
|
48
|
+
locallyConsumed = 1;
|
49
|
+
this.processed++;
|
50
|
+
if (this.processed == 4) {
|
51
|
+
this.state = SPP_PARSING_HEADERS;
|
52
|
+
this.buffer = new Buffer(this.size);
|
53
|
+
this.processed = 0;
|
54
|
+
}
|
55
|
+
break;
|
56
|
+
|
57
|
+
case SPP_PARSING_HEADERS:
|
58
|
+
locallyConsumed = Math.min(buffer.length - consumed, this.buffer.length - this.processed);
|
59
|
+
buffer.copy(this.buffer, this.processed, consumed, consumed + locallyConsumed);
|
60
|
+
this.processed += locallyConsumed;
|
61
|
+
if (this.processed == this.buffer.length) {
|
62
|
+
this.state = SPP_DONE;
|
63
|
+
this.parse();
|
64
|
+
}
|
65
|
+
break;
|
66
|
+
|
67
|
+
default:
|
68
|
+
console.assert(false);
|
69
|
+
break;
|
70
|
+
}
|
71
|
+
|
72
|
+
consumed += locallyConsumed;
|
73
|
+
}
|
74
|
+
|
75
|
+
return consumed;
|
76
|
+
}
|
77
|
+
|
78
|
+
SessionProtocolParser.prototype.parse = function() {
|
79
|
+
function findZero(buffer, start) {
|
80
|
+
while (start < buffer.length) {
|
81
|
+
if (buffer[start] == 0) {
|
82
|
+
return start;
|
83
|
+
} else {
|
84
|
+
start++;
|
85
|
+
}
|
86
|
+
}
|
87
|
+
return -1;
|
88
|
+
}
|
89
|
+
|
90
|
+
var start = 0;
|
91
|
+
var key, value;
|
92
|
+
|
93
|
+
while (start < this.buffer.length) {
|
94
|
+
var keyEnd = findZero(this.buffer, start);
|
95
|
+
if (keyEnd != -1 && keyEnd + 1 < this.buffer.length) {
|
96
|
+
var valueStart = keyEnd + 1;
|
97
|
+
var valueEnd = findZero(this.buffer, valueStart);
|
98
|
+
if (valueEnd != -1) {
|
99
|
+
key = this.buffer.toString(ENCODING, start, keyEnd);
|
100
|
+
value = this.buffer.toString(ENCODING, valueStart, valueEnd);
|
101
|
+
start = valueEnd + 1;
|
102
|
+
this.keys.push(key);
|
103
|
+
this[key] = value;
|
104
|
+
} else {
|
105
|
+
start = this.buffer.length;
|
106
|
+
}
|
107
|
+
} else {
|
108
|
+
start = this.buffer.length;
|
109
|
+
}
|
110
|
+
}
|
111
|
+
}
|
112
|
+
|
113
|
+
exports.SessionProtocolParser = SessionProtocolParser;
|
@@ -18,7 +18,8 @@ Apache configuration file and set its DocumentRoot to <b>/somewhere/public</b>:
|
|
18
18
|
And that's it! You may also want to check the Users Guide for security and
|
19
19
|
optimization tips, troubleshooting and other useful information:
|
20
20
|
|
21
|
-
<yellow><%= @
|
21
|
+
<yellow><%= @users_guide_path %></yellow>
|
22
|
+
<yellow><%= @users_guide_url %></yellow>
|
22
23
|
|
23
24
|
Enjoy Phusion Passenger, a product of Phusion (<b><%= @phusion_website %></b>) :-)
|
24
25
|
<b><%= @passenger_website %></b>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<% @other_installs.each do |result| %>
|
2
|
+
* To compile against <yellow>Apache <%= result.version %> (<%= result.apxs2 %>)</yellow>:
|
3
|
+
Re-run this installer with: <b>--apxs2-path "<%= result.apxs2 %>"</b>
|
4
|
+
<% end %>
|
5
|
+
You may also want to read the "Installation" section of the manual for
|
6
|
+
installation troubleshooting:
|
7
|
+
|
8
|
+
<%= PhusionPassenger.apache2_doc_path %>
|
9
|
+
<%= APACHE2_DOC_URL %>
|
10
|
+
|
11
|
+
If you keep having problems installing, please visit the following website for
|
12
|
+
support:
|
13
|
+
|
14
|
+
<%= SUPPORT_URL %>
|
@@ -0,0 +1,15 @@
|
|
1
|
+
<yellow>Multiple Apache installations detected!</yellow>
|
2
|
+
|
3
|
+
You are about to install <%= PhusionPassenger::PROGRAM_NAME %> against the following
|
4
|
+
Apache installation:
|
5
|
+
|
6
|
+
<b>Apache <%= @current.version %></b>
|
7
|
+
apxs2 : <%= @current.apxs2 %>
|
8
|
+
Executable: <%= @current.httpd %>
|
9
|
+
|
10
|
+
However, <%= @other_installs.size %> other Apache installation(s) have been found on your system:
|
11
|
+
<% @other_installs.each do |result| %>
|
12
|
+
* Apache <%= result.version %>
|
13
|
+
apxs2 : <%= result.apxs2 %>
|
14
|
+
Executable: <%= result.httpd %>
|
15
|
+
<% end %>
|
@@ -2,10 +2,9 @@
|
|
2
2
|
|
3
3
|
Please read our Users guide for troubleshooting tips:
|
4
4
|
|
5
|
-
<b><%= @
|
5
|
+
<b><%= @users_guide_path %></b>
|
6
|
+
<b><%= @users_guide_url %></b>
|
6
7
|
|
7
|
-
If that doesn't help, please use our support facilities
|
8
|
+
If that doesn't help, please use our support facilities. We'll do our best to help you.
|
8
9
|
|
9
|
-
<b><%= @
|
10
|
-
|
11
|
-
We'll do our best to help you.
|
10
|
+
<b><%= @support_url %></b>
|
@@ -1 +1 @@
|
|
1
|
-
{{MESSAGE}}
|
1
|
+
{{MESSAGE|raw}}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
<red>Permission problems in your gem directory detected</red>
|
2
|
+
|
3
|
+
Your gem directory is <%= Gem.dir %>, and the
|
4
|
+
files within are supposed to be owned by the '<%= `whoami`.strip %>' user.
|
5
|
+
However, it looks like you installed the Phusion Passenger gem with 'sudo',
|
6
|
+
causing some files within to be owned by the 'root' user. This will cause
|
7
|
+
permission problems later on.
|
8
|
+
|
9
|
+
Please run the following command to fix the permissions:
|
10
|
+
|
11
|
+
<b>sudo chown -R <%= `whoami`.strip %> "<%= Gem.dir %>"</b>
|
12
|
+
|
13
|
+
Also, please remember to run 'gem install' commands <b>without sudo</b> in the
|
14
|
+
future. Sudo is only necessary if the gem directory is located outside the
|
15
|
+
home directory.
|
16
|
+
|
17
|
+
After having fixed the permissions, please <yellow>re-run this installer</yellow>.
|
@@ -1,6 +1,6 @@
|
|
1
1
|
<banner>Your system does not have a lot of virtual memory</banner>
|
2
2
|
|
3
|
-
Compiling
|
3
|
+
Compiling <%= PROGRAM_NAME %> works best when you have at least <%= @required %> MB of virtual
|
4
4
|
memory. However your system only has <%= @current %> MB of total virtual memory (<%= @ram %> MB
|
5
5
|
RAM, <%= @swap %> MB swap). It is recommended that you temporarily add more swap space
|
6
6
|
before proceeding. You can do it as follows:
|
@@ -14,9 +14,11 @@ the swap file on Linux.
|
|
14
14
|
|
15
15
|
If you cannot activate a swap file (e.g. because you're on OpenVZ, or if you
|
16
16
|
don't have root privileges) then you should install Phusion Passenger through
|
17
|
-
DEB/RPM packages.
|
18
|
-
|
19
|
-
|
17
|
+
DEB/RPM packages. For more information, please refer to the manual, section
|
18
|
+
"Installation":
|
19
|
+
|
20
|
+
<%= @doc_path %>
|
21
|
+
<%= @doc_url %>
|
20
22
|
|
21
23
|
<b>Press Ctrl-C to abort this installer (recommended).</b>
|
22
24
|
<b>Press Enter if you want to continue with installation anyway.</b>
|
@@ -0,0 +1,16 @@
|
|
1
|
+
<yellow>Warning: some directories may be inaccessible by the web server!</yellow>
|
2
|
+
|
3
|
+
The web server typically runs under a separate user account for security
|
4
|
+
reasons. That user must be able to access the <%= PROGRAM_NAME %> files.
|
5
|
+
However, it appears that some directories have too strict permissions. This
|
6
|
+
may prevent the web server user from accessing <%= PROGRAM_NAME %> files.
|
7
|
+
|
8
|
+
It is recommended that you relax permissions as follows:
|
9
|
+
|
10
|
+
<% for dir in @directories -%>
|
11
|
+
sudo chmod o+x "<%= dir %>"
|
12
|
+
<% end %>
|
13
|
+
<b>Press Ctrl-C to return to the shell. (Recommended)</b>
|
14
|
+
After relaxing permissions, re-run this installer.
|
15
|
+
-OR-
|
16
|
+
<b>Press Enter to continue anyway.</b>
|
@@ -14,7 +14,8 @@ to your Nginx configuration file, set its <b>root</b> to <b>/somewhere/public</b
|
|
14
14
|
And that's it! You may also want to check the Users Guide for security and
|
15
15
|
optimization tips and other useful information:
|
16
16
|
|
17
|
-
<yellow><%= @
|
17
|
+
<yellow><%= @users_guide_path %></yellow>
|
18
|
+
<yellow><%= @users_guide_url %></yellow>
|
18
19
|
|
19
20
|
Enjoy Phusion Passenger, a product of Phusion (<b><%= @phusion_website %></b>) :-)
|
20
21
|
<b><%= @passenger_website %></b>
|
data/resources/templates/nginx/possible_solutions_for_compilation_and_installation_problems.txt.erb
CHANGED
@@ -2,10 +2,9 @@
|
|
2
2
|
|
3
3
|
Please read our Users guide for troubleshooting tips:
|
4
4
|
|
5
|
-
<b><%= @
|
5
|
+
<b><%= @users_guide_path %></b>
|
6
|
+
<b><%= @users_guide_url %></b>
|
6
7
|
|
7
|
-
If that doesn't help, please use our support facilities
|
8
|
+
If that doesn't help, please use our support facilities. We'll do our best to help you.
|
8
9
|
|
9
|
-
<b><%= @
|
10
|
-
|
11
|
-
We'll do our best to help you.
|
10
|
+
<b><%= @support_url %></b>
|
@@ -45,6 +45,7 @@ http {
|
|
45
45
|
passenger_analytics_log_user <%= current_user %>;
|
46
46
|
<% end %>
|
47
47
|
<% if debugging? %>passenger_log_level 2;<% end %>
|
48
|
+
<% if @options[:temp_dir] %>passenger_temp_dir '<%= @options[:temp_dir] %>';<% end %>
|
48
49
|
<% if @options[:rolling_restarts] %>passenger_rolling_restarts on;<% end %>
|
49
50
|
<% if @options[:resist_deployment_errors] %>passenger_resist_deployment_errors on;<% end %>
|
50
51
|
|
@@ -30,8 +30,8 @@ namespace tut {
|
|
30
30
|
PipeWatcher::onData = PipeWatcher::DataCallback();
|
31
31
|
}
|
32
32
|
|
33
|
-
shared_ptr<DirectSpawner> createSpawner(const Options &options) {
|
34
|
-
return make_shared<DirectSpawner>(bg.safe,
|
33
|
+
boost::shared_ptr<DirectSpawner> createSpawner(const Options &options) {
|
34
|
+
return boost::make_shared<DirectSpawner>(bg.safe,
|
35
35
|
*resourceLocator, generation);
|
36
36
|
}
|
37
37
|
|
@@ -94,7 +94,7 @@ namespace tut {
|
|
94
94
|
fail("SpawnException expected");
|
95
95
|
} catch (const SpawnException &e) {
|
96
96
|
ensure_equals(e.getErrorKind(),
|
97
|
-
SpawnException::
|
97
|
+
SpawnException::APP_STARTUP_ERROR);
|
98
98
|
ensure(e.getErrorPage().find("hello world\n") != string::npos);
|
99
99
|
}
|
100
100
|
}
|
@@ -34,10 +34,10 @@ namespace tut {
|
|
34
34
|
ApplicationPool2_PoolTest() {
|
35
35
|
createServerInstanceDirAndGeneration(serverInstanceDir, generation);
|
36
36
|
retainSessions = false;
|
37
|
-
spawnerConfig = make_shared<SpawnerConfig>();
|
38
|
-
spawnerFactory = make_shared<SpawnerFactory>(bg.safe, *resourceLocator,
|
37
|
+
spawnerConfig = boost::make_shared<SpawnerConfig>();
|
38
|
+
spawnerFactory = boost::make_shared<SpawnerFactory>(bg.safe, *resourceLocator,
|
39
39
|
generation, spawnerConfig);
|
40
|
-
pool = make_shared<Pool>(bg.safe.get(), spawnerFactory);
|
40
|
+
pool = boost::make_shared<Pool>(bg.safe.get(), spawnerFactory);
|
41
41
|
pool->initialize();
|
42
42
|
bg.start();
|
43
43
|
callback = boost::bind(&ApplicationPool2_PoolTest::_callback, this, _1, _2);
|
@@ -1330,7 +1330,7 @@ namespace tut {
|
|
1330
1330
|
);
|
1331
1331
|
|
1332
1332
|
ensure(currentException != NULL);
|
1333
|
-
shared_ptr<SpawnException> e = dynamic_pointer_cast<SpawnException>(currentException);
|
1333
|
+
boost::shared_ptr<SpawnException> e = dynamic_pointer_cast<SpawnException>(currentException);
|
1334
1334
|
ensure(e->getErrorPage().find("Something went wrong!") != string::npos);
|
1335
1335
|
}
|
1336
1336
|
|
@@ -19,7 +19,7 @@ namespace tut {
|
|
19
19
|
|
20
20
|
struct sockaddr_in addr;
|
21
21
|
socklen_t len = sizeof(addr);
|
22
|
-
sockets = make_shared<SocketList>();
|
22
|
+
sockets = boost::make_shared<SocketList>();
|
23
23
|
|
24
24
|
server1 = createTcpServer("127.0.0.1", 0);
|
25
25
|
getsockname(server1, (struct sockaddr *) &addr, &len);
|
@@ -48,7 +48,7 @@ namespace tut {
|
|
48
48
|
|
49
49
|
TEST_METHOD(1) {
|
50
50
|
// Test initial state.
|
51
|
-
ProcessPtr process = make_shared<Process>(bg.safe,
|
51
|
+
ProcessPtr process = boost::make_shared<Process>(bg.safe,
|
52
52
|
123, "", "", adminSocket[0],
|
53
53
|
errorPipe[0], sockets, 0, 0);
|
54
54
|
process->dummy = true;
|
@@ -59,7 +59,7 @@ namespace tut {
|
|
59
59
|
|
60
60
|
TEST_METHOD(2) {
|
61
61
|
// Test opening and closing sessions.
|
62
|
-
ProcessPtr process = make_shared<Process>(bg.safe,
|
62
|
+
ProcessPtr process = boost::make_shared<Process>(bg.safe,
|
63
63
|
123, "", "", adminSocket[0],
|
64
64
|
errorPipe[0], sockets, 0, 0);
|
65
65
|
process->dummy = true;
|
@@ -76,7 +76,7 @@ namespace tut {
|
|
76
76
|
TEST_METHOD(3) {
|
77
77
|
// newSession() checks out the socket with the smallest utilization number
|
78
78
|
// and sessionClosed() restores the session utilization statistics.
|
79
|
-
ProcessPtr process = make_shared<Process>(bg.safe,
|
79
|
+
ProcessPtr process = boost::make_shared<Process>(bg.safe,
|
80
80
|
123, "", "", adminSocket[0],
|
81
81
|
errorPipe[0], sockets, 0, 0);
|
82
82
|
process->dummy = true;
|
@@ -121,7 +121,7 @@ namespace tut {
|
|
121
121
|
|
122
122
|
TEST_METHOD(4) {
|
123
123
|
// If all sockets are at their full capacity then newSession() will fail.
|
124
|
-
ProcessPtr process = make_shared<Process>(bg.safe,
|
124
|
+
ProcessPtr process = boost::make_shared<Process>(bg.safe,
|
125
125
|
123, "", "", adminSocket[0],
|
126
126
|
errorPipe[0], sockets, 0, 0);
|
127
127
|
process->dummy = true;
|
@@ -35,7 +35,7 @@ namespace tut {
|
|
35
35
|
PipeWatcher::onData = PipeWatcher::DataCallback();
|
36
36
|
}
|
37
37
|
|
38
|
-
shared_ptr<SmartSpawner> createSpawner(const Options &options, bool exitImmediately = false) {
|
38
|
+
boost::shared_ptr<SmartSpawner> createSpawner(const Options &options, bool exitImmediately = false) {
|
39
39
|
char buf[PATH_MAX + 1];
|
40
40
|
getcwd(buf, PATH_MAX);
|
41
41
|
|
@@ -46,7 +46,7 @@ namespace tut {
|
|
46
46
|
command.push_back("exit-immediately");
|
47
47
|
}
|
48
48
|
|
49
|
-
return make_shared<SmartSpawner>(bg.safe,
|
49
|
+
return boost::make_shared<SmartSpawner>(bg.safe,
|
50
50
|
*resourceLocator,
|
51
51
|
generation,
|
52
52
|
command,
|
@@ -77,7 +77,7 @@ namespace tut {
|
|
77
77
|
options.appRoot = "stub/rack";
|
78
78
|
options.startCommand = "ruby\t" "start.rb";
|
79
79
|
options.startupFile = "start.rb";
|
80
|
-
shared_ptr<SmartSpawner> spawner = createSpawner(options);
|
80
|
+
boost::shared_ptr<SmartSpawner> spawner = createSpawner(options);
|
81
81
|
process = spawner->spawn(options);
|
82
82
|
process->requiresShutdown = false;
|
83
83
|
|
@@ -99,7 +99,7 @@ namespace tut {
|
|
99
99
|
options.startCommand = "ruby\t" "start.rb";
|
100
100
|
options.startupFile = "start.rb";
|
101
101
|
setLogLevel(-1);
|
102
|
-
shared_ptr<SmartSpawner> spawner = createSpawner(options, true);
|
102
|
+
boost::shared_ptr<SmartSpawner> spawner = createSpawner(options, true);
|
103
103
|
try {
|
104
104
|
process = spawner->spawn(options);
|
105
105
|
process->requiresShutdown = false;
|
@@ -169,7 +169,7 @@ namespace tut {
|
|
169
169
|
fail("SpawnException expected");
|
170
170
|
} catch (const SpawnException &e) {
|
171
171
|
ensure_equals(e.getErrorKind(),
|
172
|
-
SpawnException::
|
172
|
+
SpawnException::PRELOADER_STARTUP_ERROR);
|
173
173
|
ensure(e.getErrorPage().find("hello world\n") != string::npos);
|
174
174
|
}
|
175
175
|
}
|
@@ -30,7 +30,7 @@
|
|
30
30
|
/* Avoid compiler warning. */ \
|
31
31
|
(void) uid; (void) gid; (void) groups
|
32
32
|
|
33
|
-
typedef shared_ptr<Spawner> SpawnerPtr;
|
33
|
+
typedef boost::shared_ptr<Spawner> SpawnerPtr;
|
34
34
|
|
35
35
|
static void addUserSwitchingCode() {
|
36
36
|
FILE *f = fopen("tmp.wsgi/passenger_wsgi.py", "a");
|
@@ -14,7 +14,7 @@ namespace tut {
|
|
14
14
|
public:
|
15
15
|
boost::mutex syncher;
|
16
16
|
int readError;
|
17
|
-
function<void ()> onAfterProcessingBuffer;
|
17
|
+
boost::function<void ()> onAfterProcessingBuffer;
|
18
18
|
|
19
19
|
MyEventedBufferedInput(SafeLibev *libev, const FileDescriptor &fd)
|
20
20
|
: EventedBufferedInput<>(libev, fd)
|
@@ -42,7 +42,7 @@ namespace tut {
|
|
42
42
|
}
|
43
43
|
|
44
44
|
virtual void afterProcessingBuffer() {
|
45
|
-
function<void ()> onAfterProcessingBuffer;
|
45
|
+
boost::function<void ()> onAfterProcessingBuffer;
|
46
46
|
{
|
47
47
|
boost::lock_guard<boost::mutex> l(syncher);
|
48
48
|
onAfterProcessingBuffer = this->onAfterProcessingBuffer;
|
@@ -56,7 +56,7 @@ namespace tut {
|
|
56
56
|
struct EventedBufferedInputTest {
|
57
57
|
BackgroundEventLoop bg;
|
58
58
|
Pipe p;
|
59
|
-
shared_ptr<MyEventedBufferedInput> ebi;
|
59
|
+
boost::shared_ptr<MyEventedBufferedInput> ebi;
|
60
60
|
boost::mutex syncher;
|
61
61
|
string log;
|
62
62
|
ssize_t toConsume;
|
@@ -64,7 +64,7 @@ namespace tut {
|
|
64
64
|
|
65
65
|
EventedBufferedInputTest() {
|
66
66
|
p = createPipe();
|
67
|
-
ebi = make_shared<MyEventedBufferedInput>(bg.safe.get(), p.first);
|
67
|
+
ebi = boost::make_shared<MyEventedBufferedInput>(bg.safe.get(), p.first);
|
68
68
|
ebi->onData = onData;
|
69
69
|
ebi->onError = onError;
|
70
70
|
ebi->userData = this;
|
@@ -137,7 +137,7 @@ namespace tut {
|
|
137
137
|
EventedBufferedInputTest *self = (EventedBufferedInputTest *) input->userData; \
|
138
138
|
boost::mutex &syncher = self->syncher; \
|
139
139
|
string &log = self->log; \
|
140
|
-
shared_ptr<MyEventedBufferedInput> &ebi = self->ebi; \
|
140
|
+
boost::shared_ptr<MyEventedBufferedInput> &ebi = self->ebi; \
|
141
141
|
/* Shut up compiler warning */ \
|
142
142
|
(void) syncher; \
|
143
143
|
(void) log; \
|
@@ -149,7 +149,7 @@ namespace tut {
|
|
149
149
|
static void name(EventedBufferedInputTest *self) { \
|
150
150
|
boost::mutex &syncher = self->syncher; \
|
151
151
|
string &log = self->log; \
|
152
|
-
shared_ptr<MyEventedBufferedInput> &ebi = self->ebi; \
|
152
|
+
boost::shared_ptr<MyEventedBufferedInput> &ebi = self->ebi; \
|
153
153
|
/* Shut up compiler warning */ \
|
154
154
|
(void) syncher; \
|
155
155
|
(void) log; \
|