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
@@ -62,7 +62,7 @@ using namespace oxt;
|
|
62
62
|
* tick.
|
63
63
|
*/
|
64
64
|
template<size_t bufferSize = 1024 * 8>
|
65
|
-
class EventedBufferedInput: public enable_shared_from_this< EventedBufferedInput<bufferSize> > {
|
65
|
+
class EventedBufferedInput: public boost::enable_shared_from_this< EventedBufferedInput<bufferSize> > {
|
66
66
|
private:
|
67
67
|
enum State {
|
68
68
|
LIVE,
|
@@ -141,7 +141,7 @@ private:
|
|
141
141
|
|
142
142
|
void onReadable(ev::io &watcher, int revents) {
|
143
143
|
// Keep 'this' alive until function exit.
|
144
|
-
shared_ptr< EventedBufferedInput<bufferSize> > self = EventedBufferedInput<bufferSize>::shared_from_this();
|
144
|
+
boost::shared_ptr< EventedBufferedInput<bufferSize> > self = EventedBufferedInput<bufferSize>::shared_from_this();
|
145
145
|
|
146
146
|
EBI_TRACE("onReadable");
|
147
147
|
verifyInvariants();
|
@@ -201,16 +201,16 @@ private:
|
|
201
201
|
nextTickInstalled = true;
|
202
202
|
libev->runLater(boost::bind(
|
203
203
|
realProcessBufferInNextTick,
|
204
|
-
weak_ptr< EventedBufferedInput<bufferSize> >(this->shared_from_this()),
|
204
|
+
boost::weak_ptr< EventedBufferedInput<bufferSize> >(this->shared_from_this()),
|
205
205
|
generation
|
206
206
|
));
|
207
207
|
}
|
208
208
|
}
|
209
209
|
|
210
|
-
static void realProcessBufferInNextTick(weak_ptr< EventedBufferedInput<bufferSize> > wself,
|
210
|
+
static void realProcessBufferInNextTick(boost::weak_ptr< EventedBufferedInput<bufferSize> > wself,
|
211
211
|
unsigned int generation)
|
212
212
|
{
|
213
|
-
shared_ptr< EventedBufferedInput<bufferSize> > self = wself.lock();
|
213
|
+
boost::shared_ptr< EventedBufferedInput<bufferSize> > self = wself.lock();
|
214
214
|
if (self != NULL && generation == self->generation) {
|
215
215
|
self->verifyInvariants();
|
216
216
|
self->nextTickInstalled = false;
|
@@ -322,8 +322,8 @@ protected:
|
|
322
322
|
}
|
323
323
|
|
324
324
|
public:
|
325
|
-
typedef size_t (*DataCallback)(const shared_ptr< EventedBufferedInput<bufferSize> > &source, const StaticString &data);
|
326
|
-
typedef void (*ErrorCallback)(const shared_ptr< EventedBufferedInput<bufferSize> > &source, const char *message, int errnoCode);
|
325
|
+
typedef size_t (*DataCallback)(const boost::shared_ptr< EventedBufferedInput<bufferSize> > &source, const StaticString &data);
|
326
|
+
typedef void (*ErrorCallback)(const boost::shared_ptr< EventedBufferedInput<bufferSize> > &source, const char *message, int errnoCode);
|
327
327
|
|
328
328
|
DataCallback onData;
|
329
329
|
ErrorCallback onError;
|
@@ -451,7 +451,7 @@ public:
|
|
451
451
|
}
|
452
452
|
};
|
453
453
|
|
454
|
-
typedef shared_ptr< EventedBufferedInput<> > EventedBufferedInputPtr;
|
454
|
+
typedef boost::shared_ptr< EventedBufferedInput<> > EventedBufferedInputPtr;
|
455
455
|
|
456
456
|
} // namespace Passenger
|
457
457
|
|
@@ -0,0 +1,71 @@
|
|
1
|
+
/*
|
2
|
+
* Phusion Passenger - https://www.phusionpassenger.com/
|
3
|
+
* Copyright (c) 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
|
+
#include <Exceptions.h>
|
27
|
+
#include <cstdlib>
|
28
|
+
#include <string.h>
|
29
|
+
|
30
|
+
|
31
|
+
void
|
32
|
+
pp_error_init(PP_Error *error) {
|
33
|
+
error->message = NULL;
|
34
|
+
error->errnoCode = PP_NO_ERRNO;
|
35
|
+
error->messageIsStatic = 0;
|
36
|
+
}
|
37
|
+
|
38
|
+
void
|
39
|
+
pp_error_destroy(PP_Error *error) {
|
40
|
+
if (!error->messageIsStatic) {
|
41
|
+
free(static_cast<void *>(const_cast<char *>(error->message)));
|
42
|
+
error->message = NULL;
|
43
|
+
error->messageIsStatic = 0;
|
44
|
+
}
|
45
|
+
}
|
46
|
+
|
47
|
+
void
|
48
|
+
pp_error_set(const std::exception &ex, PP_Error *error) {
|
49
|
+
const Passenger::SystemException *sys_e;
|
50
|
+
|
51
|
+
if (error == NULL) {
|
52
|
+
return;
|
53
|
+
}
|
54
|
+
|
55
|
+
if (error->message != NULL && !error->messageIsStatic) {
|
56
|
+
free(static_cast<void *>(const_cast<char *>(error->message)));
|
57
|
+
}
|
58
|
+
|
59
|
+
error->message = strdup(ex.what());
|
60
|
+
error->messageIsStatic = error->message == NULL;
|
61
|
+
if (error->message == NULL) {
|
62
|
+
error->message = "Unknown error message (unable to allocate memory for the message)";
|
63
|
+
}
|
64
|
+
|
65
|
+
sys_e = dynamic_cast<const Passenger::SystemException *>(&ex);
|
66
|
+
if (sys_e != NULL) {
|
67
|
+
error->errnoCode = sys_e->code();
|
68
|
+
} else {
|
69
|
+
error->errnoCode = PP_NO_ERRNO;
|
70
|
+
}
|
71
|
+
}
|
data/ext/common/Exceptions.h
CHANGED
@@ -25,13 +25,60 @@
|
|
25
25
|
#ifndef _PASSENGER_EXCEPTIONS_H_
|
26
26
|
#define _PASSENGER_EXCEPTIONS_H_
|
27
27
|
|
28
|
+
#ifdef __cplusplus
|
29
|
+
extern "C" {
|
30
|
+
#endif
|
31
|
+
|
32
|
+
/* Provides helper structs and functions for translating C++ exceptions
|
33
|
+
* into C error objects.
|
34
|
+
*/
|
35
|
+
|
36
|
+
#define PP_NO_ERRNO -1
|
37
|
+
|
38
|
+
struct PP_Error {
|
39
|
+
/** The exception message. */
|
40
|
+
const char *message;
|
41
|
+
/** If the original exception was a SystemException, then this
|
42
|
+
* field is set to the corresponding errno value. Otherwise, it
|
43
|
+
* is set to PP_NO_ERRNO.
|
44
|
+
*/
|
45
|
+
int errnoCode;
|
46
|
+
int messageIsStatic: 1;
|
47
|
+
};
|
48
|
+
|
49
|
+
typedef struct PP_Error PP_Error;
|
50
|
+
|
51
|
+
void pp_error_init(PP_Error *error);
|
52
|
+
void pp_error_destroy(PP_Error *error);
|
53
|
+
|
54
|
+
#ifdef __cplusplus
|
55
|
+
}
|
56
|
+
#endif
|
57
|
+
|
58
|
+
|
59
|
+
#ifdef __cplusplus
|
60
|
+
|
28
61
|
#include <oxt/tracable_exception.hpp>
|
29
62
|
#include <string>
|
30
63
|
#include <map>
|
64
|
+
#include <exception>
|
31
65
|
#include <sstream>
|
32
66
|
#include <cstring>
|
33
67
|
#include <cassert>
|
34
68
|
|
69
|
+
|
70
|
+
/**
|
71
|
+
* Use as follows:
|
72
|
+
*
|
73
|
+
* try {
|
74
|
+
* ...
|
75
|
+
* } catch (const std::exception &e) {
|
76
|
+
* pp_error_set(e, error);
|
77
|
+
* }
|
78
|
+
*/
|
79
|
+
void pp_error_set(const std::exception &ex, PP_Error *error);
|
80
|
+
|
81
|
+
|
35
82
|
/**
|
36
83
|
* @defgroup Exceptions Exceptions
|
37
84
|
*/
|
@@ -199,16 +246,24 @@ public:
|
|
199
246
|
|
200
247
|
/**
|
201
248
|
* Thrown when SpawnManager or ApplicationPool fails to spawn an application
|
202
|
-
* instance. The exception may contain an error page
|
203
|
-
*
|
249
|
+
* instance. The exception may contain an error page. This error page contains
|
250
|
+
* detailed information about the error and may be in HTML format. The error
|
251
|
+
* page always contains enough information so that showing `what()` is not
|
252
|
+
* necessary.
|
204
253
|
*/
|
205
254
|
class SpawnException: public oxt::tracable_exception {
|
206
255
|
public:
|
207
256
|
enum ErrorKind {
|
208
257
|
UNDEFINED_ERROR,
|
258
|
+
/** The preloader failed to start, not due to a wrong protocol message. */
|
259
|
+
PRELOADER_STARTUP_ERROR,
|
260
|
+
/** The preloader sent a wrong protocol message during startup. */
|
209
261
|
PRELOADER_STARTUP_PROTOCOL_ERROR,
|
210
262
|
PRELOADER_STARTUP_TIMEOUT,
|
211
263
|
PRELOADER_STARTUP_EXPLAINABLE_ERROR,
|
264
|
+
/** The application failed to start, not due to a wrong protocol message. */
|
265
|
+
APP_STARTUP_ERROR,
|
266
|
+
/** The application sent a wrong protocol message during startup. */
|
212
267
|
APP_STARTUP_PROTOCOL_ERROR,
|
213
268
|
APP_STARTUP_TIMEOUT,
|
214
269
|
APP_STARTUP_EXPLAINABLE_ERROR
|
@@ -236,10 +291,6 @@ public:
|
|
236
291
|
bool isHTML = true, ErrorKind errorKind = UNDEFINED_ERROR)
|
237
292
|
: msg(message), m_errorPage(errorPage)
|
238
293
|
{
|
239
|
-
assert(!isHTML
|
240
|
-
|| errorKind == UNDEFINED_ERROR
|
241
|
-
|| errorKind == PRELOADER_STARTUP_EXPLAINABLE_ERROR
|
242
|
-
|| errorKind == APP_STARTUP_EXPLAINABLE_ERROR);
|
243
294
|
this->errorKind = errorKind;
|
244
295
|
m_hasErrorPage = true;
|
245
296
|
m_isHTML = isHTML;
|
@@ -250,7 +301,7 @@ public:
|
|
250
301
|
virtual const char *what() const throw() {
|
251
302
|
return msg.c_str();
|
252
303
|
}
|
253
|
-
|
304
|
+
|
254
305
|
bool hasErrorPage() const {
|
255
306
|
return m_hasErrorPage;
|
256
307
|
}
|
@@ -452,4 +503,6 @@ public:
|
|
452
503
|
|
453
504
|
} // namespace Passenger
|
454
505
|
|
506
|
+
#endif /* __cplusplus */
|
507
|
+
|
455
508
|
#endif /* _PASSENGER_EXCEPTIONS_H_ */
|
data/ext/common/FileDescriptor.h
CHANGED
@@ -96,7 +96,7 @@ private:
|
|
96
96
|
};
|
97
97
|
|
98
98
|
/** Shared pointer for reference counting on this file descriptor */
|
99
|
-
shared_ptr<SharedData> data;
|
99
|
+
boost::shared_ptr<SharedData> data;
|
100
100
|
|
101
101
|
public:
|
102
102
|
/**
|
@@ -123,7 +123,7 @@ public:
|
|
123
123
|
* }
|
124
124
|
*/
|
125
125
|
int e = errno;
|
126
|
-
data = make_shared<SharedData>(fd, autoClose);
|
126
|
+
data = boost::make_shared<SharedData>(fd, autoClose);
|
127
127
|
errno = e;
|
128
128
|
}
|
129
129
|
}
|
@@ -193,7 +193,7 @@ public:
|
|
193
193
|
*/
|
194
194
|
int e = errno;
|
195
195
|
if (fd >= 0) {
|
196
|
-
data = make_shared<SharedData>(fd, true);
|
196
|
+
data = boost::make_shared<SharedData>(fd, true);
|
197
197
|
} else {
|
198
198
|
data.reset();
|
199
199
|
}
|
@@ -203,7 +203,7 @@ public:
|
|
203
203
|
|
204
204
|
FileDescriptor &operator=(const FileDescriptor &other) {
|
205
205
|
/* Make sure that the 'delete' operator implicitly invoked by
|
206
|
-
* shared_ptr doesn't overwrite errno so that we can write code
|
206
|
+
* boost::shared_ptr doesn't overwrite errno so that we can write code
|
207
207
|
* like this:
|
208
208
|
*
|
209
209
|
* FileDescriptor fd;
|
data/ext/common/MessageClient.h
CHANGED
data/ext/common/MessageServer.h
CHANGED
@@ -127,7 +127,7 @@ using namespace oxt;
|
|
127
127
|
* };
|
128
128
|
*
|
129
129
|
* MessageServer::ClientContextPtr newClient(MessageServer::CommonClientContext &commonContext) {
|
130
|
-
* return make_shared<MyContext>();
|
130
|
+
* return boost::make_shared<MyContext>();
|
131
131
|
* }
|
132
132
|
*
|
133
133
|
* bool processMessage(MessageServer::CommonClientContext &commonContext,
|
@@ -165,7 +165,7 @@ public:
|
|
165
165
|
virtual ~ClientContext() { }
|
166
166
|
};
|
167
167
|
|
168
|
-
typedef shared_ptr<ClientContext> ClientContextPtr;
|
168
|
+
typedef boost::shared_ptr<ClientContext> ClientContextPtr;
|
169
169
|
|
170
170
|
/**
|
171
171
|
* A common client context, containing client-specific information
|
@@ -295,7 +295,7 @@ public:
|
|
295
295
|
const vector<string> &args) = 0;
|
296
296
|
};
|
297
297
|
|
298
|
-
typedef shared_ptr<Handler> HandlerPtr;
|
298
|
+
typedef boost::shared_ptr<Handler> HandlerPtr;
|
299
299
|
|
300
300
|
protected:
|
301
301
|
/** The filename of the server socket on which this MessageServer is listening. */
|
@@ -565,7 +565,7 @@ public:
|
|
565
565
|
this_thread::disable_interruption di;
|
566
566
|
this_thread::disable_syscall_interruption dsi;
|
567
567
|
|
568
|
-
function<void ()> func(boost::bind(&MessageServer::clientHandlingMainLoop,
|
568
|
+
boost::function<void ()> func(boost::bind(&MessageServer::clientHandlingMainLoop,
|
569
569
|
this, fd));
|
570
570
|
string name = "MessageServer client thread ";
|
571
571
|
name.append(toString(fd));
|
@@ -595,7 +595,7 @@ public:
|
|
595
595
|
}
|
596
596
|
};
|
597
597
|
|
598
|
-
typedef shared_ptr<MessageServer> MessageServerPtr;
|
598
|
+
typedef boost::shared_ptr<MessageServer> MessageServerPtr;
|
599
599
|
|
600
600
|
} // namespace Passenger
|
601
601
|
|
data/ext/common/MultiLibeio.cpp
CHANGED
@@ -41,7 +41,7 @@ namespace Passenger {
|
|
41
41
|
using namespace oxt;
|
42
42
|
|
43
43
|
static boost::mutex syncher;
|
44
|
-
static condition_variable cond;
|
44
|
+
static boost::condition_variable cond;
|
45
45
|
static bool shouldPoll = false;
|
46
46
|
static oxt::thread *thr = NULL;
|
47
47
|
static bool quit = false;
|
@@ -73,7 +73,7 @@ struct CustomData: public Data {
|
|
73
73
|
|
74
74
|
static void
|
75
75
|
threadMain() {
|
76
|
-
unique_lock<boost::mutex> l(syncher);
|
76
|
+
boost::unique_lock<boost::mutex> l(syncher);
|
77
77
|
while (!quit) {
|
78
78
|
while (!shouldPoll && !quit) {
|
79
79
|
cond.wait(l);
|
@@ -132,7 +132,7 @@ MultiLibeio::init() {
|
|
132
132
|
|
133
133
|
void
|
134
134
|
MultiLibeio::shutdown() {
|
135
|
-
unique_lock<boost::mutex> l(syncher);
|
135
|
+
boost::unique_lock<boost::mutex> l(syncher);
|
136
136
|
quit = true;
|
137
137
|
cond.notify_one();
|
138
138
|
l.unlock();
|
data/ext/common/MultiLibeio.h
CHANGED
@@ -39,8 +39,8 @@ private:
|
|
39
39
|
SafeLibevPtr libev;
|
40
40
|
|
41
41
|
public:
|
42
|
-
typedef function<void (eio_req *req)> ExecuteCallback;
|
43
|
-
typedef function<void (eio_req req)> Callback;
|
42
|
+
typedef boost::function<void (eio_req *req)> ExecuteCallback;
|
43
|
+
typedef boost::function<void (eio_req req)> Callback;
|
44
44
|
|
45
45
|
static void init();
|
46
46
|
static void shutdown();
|
@@ -1,6 +1,6 @@
|
|
1
1
|
/*
|
2
2
|
* Phusion Passenger - https://www.phusionpassenger.com/
|
3
|
-
* Copyright (c) 2010 Phusion
|
3
|
+
* Copyright (c) 2010-2013 Phusion
|
4
4
|
*
|
5
5
|
* "Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui.
|
6
6
|
*
|
@@ -99,15 +99,15 @@ public:
|
|
99
99
|
}
|
100
100
|
|
101
101
|
string generateByteString(unsigned int size) {
|
102
|
-
|
103
|
-
generateBytes(
|
104
|
-
return
|
102
|
+
string result(size, '\0');
|
103
|
+
generateBytes(&result[0], size);
|
104
|
+
return result;
|
105
105
|
}
|
106
106
|
|
107
107
|
string generateHexString(unsigned int size) {
|
108
|
-
|
109
|
-
generateBytes(buf, size);
|
110
|
-
return toHex(
|
108
|
+
string buf(size, '\0');
|
109
|
+
generateBytes(&buf[0], size);
|
110
|
+
return toHex(buf);
|
111
111
|
}
|
112
112
|
|
113
113
|
/**
|
@@ -122,9 +122,9 @@ public:
|
|
122
122
|
* more possibilities than 2**N.
|
123
123
|
*/
|
124
124
|
string generateAsciiString(unsigned int size) {
|
125
|
-
|
126
|
-
generateAsciiString(
|
127
|
-
return
|
125
|
+
string result(size, '\0');
|
126
|
+
generateAsciiString(&result[0], size);
|
127
|
+
return result;
|
128
128
|
}
|
129
129
|
|
130
130
|
void generateAsciiString(char *_buf, unsigned int size) {
|
@@ -153,7 +153,7 @@ public:
|
|
153
153
|
}
|
154
154
|
};
|
155
155
|
|
156
|
-
typedef shared_ptr<RandomGenerator> RandomGeneratorPtr;
|
156
|
+
typedef boost::shared_ptr<RandomGenerator> RandomGeneratorPtr;
|
157
157
|
|
158
158
|
} // namespace Passenger
|
159
159
|
|
@@ -52,6 +52,7 @@ private:
|
|
52
52
|
string resourcesDir;
|
53
53
|
string docDir;
|
54
54
|
string rubyLibDir;
|
55
|
+
string nodeLibDir;
|
55
56
|
|
56
57
|
static string getOption(const string &file, const IniFileSectionPtr §ion, const string &key) {
|
57
58
|
if (section->hasKey(key)) {
|
@@ -73,6 +74,7 @@ public:
|
|
73
74
|
resourcesDir = getOption(file, options, "resources_dir");
|
74
75
|
docDir = getOption(file, options, "doc_dir");
|
75
76
|
rubyLibDir = getOption(file, options, "ruby_libdir");
|
77
|
+
nodeLibDir = getOption(file, options, "node_libdir");
|
76
78
|
} else {
|
77
79
|
string root = rootOrFile;
|
78
80
|
binDir = root + "/bin";
|
@@ -81,6 +83,7 @@ public:
|
|
81
83
|
resourcesDir = root + "/resources";
|
82
84
|
docDir = root + "/doc";
|
83
85
|
rubyLibDir = root + "/lib";
|
86
|
+
nodeLibDir = root + "/node_lib";
|
84
87
|
}
|
85
88
|
}
|
86
89
|
|
@@ -108,9 +111,13 @@ public:
|
|
108
111
|
string getRubyLibDir() const {
|
109
112
|
return rubyLibDir;
|
110
113
|
}
|
114
|
+
|
115
|
+
string getNodeLibDir() const {
|
116
|
+
return nodeLibDir;
|
117
|
+
}
|
111
118
|
};
|
112
119
|
|
113
|
-
typedef shared_ptr<ResourceLocator> ResourceLocatorPtr;
|
120
|
+
typedef boost::shared_ptr<ResourceLocator> ResourceLocatorPtr;
|
114
121
|
|
115
122
|
|
116
123
|
}
|