passenger 3.0.0 → 3.0.1
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.
- data/DEVELOPERS.TXT +9 -6
- data/NEWS +50 -0
- data/Rakefile +2 -1
- data/bin/passenger-install-apache2-module +4 -4
- data/bin/passenger-install-nginx-module +1 -1
- data/bin/passenger-make-enterprisey +1 -1
- data/build/agents.rb +26 -19
- data/build/apache2.rb +49 -46
- data/build/basics.rb +37 -13
- data/build/common_library.rb +134 -64
- data/build/config.rb +18 -11
- data/build/cplusplus_support.rb +4 -0
- data/build/cxx_tests.rb +26 -12
- data/build/documentation.rb +18 -11
- data/build/integration_tests.rb +18 -11
- data/build/misc.rb +18 -11
- data/build/nginx.rb +27 -19
- data/build/oxt_tests.rb +18 -11
- data/build/packaging.rb +45 -37
- data/build/rpm.rb +98 -0
- data/build/ruby_extension.rb +19 -13
- data/build/ruby_tests.rb +19 -12
- data/build/test_basics.rb +23 -11
- data/debian/README.Debian +15 -0
- data/debian/changelog +185 -0
- data/debian/control +47 -19
- data/debian/copyright +20 -0
- data/debian/libapache2-mod-passenger.install +1 -0
- data/debian/libapache2-mod-passenger.postinst +36 -0
- data/debian/libapache2-mod-passenger.prerm +15 -0
- data/debian/passenger-common.install +4 -0
- data/debian/passenger.conf +4 -0
- data/debian/passenger.load +1 -0
- data/debian/rules +37 -0
- data/debian/watch +3 -0
- data/{misc → dev}/copy_boost_headers.rb +3 -0
- data/{misc → dev}/find_owner_pipe_leaks.rb +0 -0
- data/{misc → dev}/render_error_pages.rb +0 -0
- data/doc/Users guide Apache.html +39 -1
- data/doc/Users guide Apache.txt +40 -0
- data/doc/Users guide Nginx.html +1 -1
- data/doc/Users guide Standalone.html +1 -1
- data/doc/cxxapi/Constants_8h_source.html +1 -1
- data/doc/cxxapi/DirectoryMapper_8h_source.html +6 -22
- data/doc/cxxapi/EventedClient_8h_source.html +572 -468
- data/doc/cxxapi/Exceptions_8h_source.html +142 -129
- data/doc/cxxapi/FileDescriptor_8h_source.html +263 -199
- data/doc/cxxapi/MessageChannel_8h_source.html +686 -770
- data/doc/cxxapi/MessageServer_8h_source.html +1 -1
- data/doc/cxxapi/PoolOptions_8h_source.html +79 -78
- data/doc/cxxapi/ResourceLocator_8h_source.html +105 -55
- data/doc/cxxapi/SafeLibev_8h_source.html +180 -0
- data/doc/cxxapi/ServerInstanceDir_8h_source.html +114 -110
- data/doc/cxxapi/Session_8h_source.html +1 -1
- data/doc/cxxapi/SpawnManager_8h_source.html +208 -208
- data/doc/cxxapi/StaticString_8h_source.html +258 -183
- data/doc/cxxapi/Utils_8h_source.html +71 -54
- data/doc/cxxapi/annotated.html +3 -0
- data/doc/cxxapi/classAgentWatcher.html +2 -2
- data/doc/cxxapi/classPassenger_1_1DirectoryMapper-members.html +0 -1
- data/doc/cxxapi/classPassenger_1_1DirectoryMapper.html +0 -27
- data/doc/cxxapi/classPassenger_1_1EventedClient-members.html +5 -0
- data/doc/cxxapi/classPassenger_1_1EventedClient.html +102 -7
- data/doc/cxxapi/classPassenger_1_1FileDescriptor-members.html +2 -1
- data/doc/cxxapi/classPassenger_1_1FileDescriptor.html +34 -8
- data/doc/cxxapi/classPassenger_1_1FileDescriptorPair-members.html +36 -0
- data/doc/cxxapi/classPassenger_1_1FileDescriptorPair.html +52 -0
- data/doc/cxxapi/classPassenger_1_1MessageChannel-members.html +0 -3
- data/doc/cxxapi/classPassenger_1_1MessageChannel.html +0 -120
- data/doc/cxxapi/classPassenger_1_1SafeLibev-members.html +36 -0
- data/doc/cxxapi/classPassenger_1_1SafeLibev.html +51 -0
- data/doc/cxxapi/classPassenger_1_1SpawnException-members.html +1 -0
- data/doc/cxxapi/classPassenger_1_1SpawnException.html +22 -0
- data/doc/cxxapi/classes.html +14 -14
- data/doc/cxxapi/files.html +2 -0
- data/doc/cxxapi/functions_0x63.html +6 -3
- data/doc/cxxapi/functions_0x64.html +9 -2
- data/doc/cxxapi/functions_0x67.html +6 -9
- data/doc/cxxapi/functions_0x69.html +3 -0
- data/doc/cxxapi/functions_0x77.html +8 -8
- data/doc/cxxapi/functions_eval.html +6 -0
- data/doc/cxxapi/functions_func.html +18 -17
- data/doc/cxxapi/functions_vars.html +8 -0
- data/doc/cxxapi/graph_legend.png +0 -0
- data/doc/cxxapi/group__Core.png +0 -0
- data/doc/cxxapi/group__Hooks.png +0 -0
- data/doc/cxxapi/hierarchy.html +3 -0
- data/doc/cxxapi/inherit__graph__14.map +1 -1
- data/doc/cxxapi/inherit__graph__14.md5 +1 -1
- data/doc/cxxapi/inherit__graph__14.png +0 -0
- data/doc/cxxapi/inherit__graph__15.map +1 -3
- data/doc/cxxapi/inherit__graph__15.md5 +1 -1
- data/doc/cxxapi/inherit__graph__15.png +0 -0
- data/doc/cxxapi/inherit__graph__16.map +3 -1
- data/doc/cxxapi/inherit__graph__16.md5 +1 -1
- data/doc/cxxapi/inherit__graph__16.png +0 -0
- data/doc/cxxapi/inherit__graph__17.map +1 -1
- data/doc/cxxapi/inherit__graph__17.md5 +1 -1
- data/doc/cxxapi/inherit__graph__17.png +0 -0
- data/doc/cxxapi/inherit__graph__18.map +1 -2
- data/doc/cxxapi/inherit__graph__18.md5 +1 -1
- data/doc/cxxapi/inherit__graph__18.png +0 -0
- data/doc/cxxapi/inherit__graph__19.map +2 -1
- data/doc/cxxapi/inherit__graph__19.md5 +1 -1
- data/doc/cxxapi/inherit__graph__19.png +0 -0
- data/doc/cxxapi/inherit__graph__20.map +1 -1
- data/doc/cxxapi/inherit__graph__20.md5 +1 -1
- data/doc/cxxapi/inherit__graph__20.png +0 -0
- data/doc/cxxapi/inherit__graph__21.map +1 -1
- data/doc/cxxapi/inherit__graph__21.md5 +1 -1
- data/doc/cxxapi/inherit__graph__21.png +0 -0
- data/doc/cxxapi/inherit__graph__22.map +1 -1
- data/doc/cxxapi/inherit__graph__22.md5 +1 -1
- data/doc/cxxapi/inherit__graph__22.png +0 -0
- data/doc/cxxapi/inherit__graph__23.map +1 -1
- data/doc/cxxapi/inherit__graph__23.md5 +1 -1
- data/doc/cxxapi/inherit__graph__23.png +0 -0
- data/doc/cxxapi/inherit__graph__24.map +1 -1
- data/doc/cxxapi/inherit__graph__24.md5 +1 -1
- data/doc/cxxapi/inherit__graph__24.png +0 -0
- data/doc/cxxapi/inherit__graph__25.map +1 -1
- data/doc/cxxapi/inherit__graph__25.md5 +1 -1
- data/doc/cxxapi/inherit__graph__25.png +0 -0
- data/doc/cxxapi/inherit__graph__26.map +1 -1
- data/doc/cxxapi/inherit__graph__26.md5 +1 -1
- data/doc/cxxapi/inherit__graph__26.png +0 -0
- data/doc/cxxapi/inherit__graph__27.map +1 -1
- data/doc/cxxapi/inherit__graph__27.md5 +1 -1
- data/doc/cxxapi/inherit__graph__27.png +0 -0
- data/doc/cxxapi/inherit__graph__28.map +1 -2
- data/doc/cxxapi/inherit__graph__28.md5 +1 -1
- data/doc/cxxapi/inherit__graph__28.png +0 -0
- data/doc/cxxapi/inherit__graph__29.map +1 -1
- data/doc/cxxapi/inherit__graph__29.md5 +1 -1
- data/doc/cxxapi/inherit__graph__29.png +0 -0
- data/doc/cxxapi/inherit__graph__30.map +1 -1
- data/doc/cxxapi/inherit__graph__30.md5 +1 -1
- data/doc/cxxapi/inherit__graph__30.png +0 -0
- data/doc/cxxapi/inherit__graph__31.map +2 -1
- data/doc/cxxapi/inherit__graph__31.md5 +1 -1
- data/doc/cxxapi/inherit__graph__31.png +0 -0
- data/doc/cxxapi/inherit__graph__32.map +1 -3
- data/doc/cxxapi/inherit__graph__32.md5 +1 -1
- data/doc/cxxapi/inherit__graph__32.png +0 -0
- data/doc/cxxapi/inherit__graph__33.map +1 -1
- data/doc/cxxapi/inherit__graph__33.md5 +1 -1
- data/doc/cxxapi/inherit__graph__33.png +0 -0
- data/doc/cxxapi/inherit__graph__34.map +1 -1
- data/doc/cxxapi/inherit__graph__34.md5 +1 -1
- data/doc/cxxapi/inherit__graph__34.png +0 -0
- data/doc/cxxapi/inherit__graph__35.map +3 -1
- data/doc/cxxapi/inherit__graph__35.md5 +1 -1
- data/doc/cxxapi/inherit__graph__35.png +0 -0
- data/doc/cxxapi/inherit__graph__36.map +1 -1
- data/doc/cxxapi/inherit__graph__36.md5 +1 -1
- data/doc/cxxapi/inherit__graph__36.png +0 -0
- data/doc/cxxapi/inherit__graph__37.map +1 -1
- data/doc/cxxapi/inherit__graph__37.md5 +1 -1
- data/doc/cxxapi/inherit__graph__37.png +0 -0
- data/doc/cxxapi/inherit__graph__38.map +3 -1
- data/doc/cxxapi/inherit__graph__38.md5 +1 -1
- data/doc/cxxapi/inherit__graph__38.png +0 -0
- data/doc/cxxapi/inherit__graph__39.map +3 -1
- data/doc/cxxapi/inherit__graph__39.md5 +1 -1
- data/doc/cxxapi/inherit__graph__39.png +0 -0
- data/doc/cxxapi/inherits.html +33 -24
- data/doc/cxxapi/namespacePassenger.html +52 -0
- data/doc/cxxapi/namespacemembers.html +6 -0
- data/doc/cxxapi/namespacemembers_func.html +6 -0
- data/doc/cxxapi/tree.html +8 -0
- data/ext/apache2/Configuration.cpp +30 -8
- data/ext/apache2/Configuration.hpp +15 -14
- data/ext/apache2/DirectoryMapper.h +0 -16
- data/ext/apache2/Hooks.cpp +30 -29
- data/ext/boost/algorithm/string/detail/case_conv.hpp +6 -6
- data/ext/boost/algorithm/string/detail/find_format.hpp +14 -4
- data/ext/boost/algorithm/string/detail/find_format_all.hpp +13 -3
- data/ext/boost/algorithm/string/detail/find_format_store.hpp +11 -0
- data/ext/boost/algorithm/string/erase.hpp +2 -2
- data/ext/boost/bind/placeholders.hpp +2 -2
- data/ext/boost/concept/detail/backward_compatibility.hpp +16 -0
- data/ext/boost/concept/detail/general.hpp +15 -6
- data/ext/boost/concept/detail/has_constraints.hpp +5 -3
- data/ext/boost/concept/usage.hpp +5 -4
- data/ext/boost/concept_check.hpp +10 -1
- data/ext/boost/config/abi/borland_prefix.hpp +1 -1
- data/ext/boost/config/auto_link.hpp +68 -21
- data/ext/boost/config/compiler/borland.hpp +11 -3
- data/ext/boost/config/compiler/clang.hpp +62 -0
- data/ext/boost/config/compiler/codegear.hpp +21 -7
- data/ext/boost/config/compiler/common_edg.hpp +4 -2
- data/ext/boost/config/compiler/digitalmars.hpp +1 -1
- data/ext/boost/config/compiler/gcc.hpp +46 -7
- data/ext/boost/config/compiler/gcc_xml.hpp +25 -0
- data/ext/boost/config/compiler/intel.hpp +23 -0
- data/ext/boost/config/compiler/kai.hpp +1 -1
- data/ext/boost/config/compiler/metrowerks.hpp +1 -1
- data/ext/boost/config/compiler/nvcc.hpp +86 -0
- data/ext/boost/config/compiler/pgi.hpp +18 -3
- data/ext/boost/config/compiler/sunpro_cc.hpp +19 -5
- data/ext/boost/config/compiler/vacpp.hpp +8 -0
- data/ext/boost/config/compiler/visualc.hpp +27 -11
- data/ext/boost/config/platform/cygwin.hpp +0 -3
- data/ext/boost/config/platform/symbian.hpp +94 -0
- data/ext/boost/config/platform/win32.hpp +8 -1
- data/ext/boost/config/select_compiler_config.hpp +10 -0
- data/ext/boost/config/select_platform_config.hpp +4 -0
- data/ext/boost/config/stdlib/dinkumware.hpp +11 -1
- data/ext/boost/config/stdlib/libcomo.hpp +1 -0
- data/ext/boost/config/stdlib/libstdcpp3.hpp +1 -0
- data/ext/boost/config/stdlib/modena.hpp +1 -0
- data/ext/boost/config/stdlib/msl.hpp +1 -0
- data/ext/boost/config/stdlib/roguewave.hpp +1 -0
- data/ext/boost/config/stdlib/sgi.hpp +1 -0
- data/ext/boost/config/stdlib/stlport.hpp +1 -0
- data/ext/boost/config/stdlib/vacpp.hpp +1 -0
- data/ext/boost/config/suffix.hpp +40 -2
- data/ext/boost/cstdint.hpp +36 -7
- data/ext/boost/date_time/gregorian/conversion.hpp +4 -2
- data/ext/boost/date_time/microsec_time_clock.hpp +7 -7
- data/ext/boost/date_time/posix_time/conversion.hpp +4 -2
- data/ext/boost/date_time/time_facet.hpp +43 -4
- data/ext/boost/detail/endian.hpp +5 -2
- data/ext/boost/detail/lcast_precision.hpp +2 -2
- data/ext/boost/detail/sp_typeinfo.hpp +1 -1
- data/ext/boost/detail/workaround.hpp +5 -0
- data/ext/boost/exception/detail/error_info_impl.hpp +3 -3
- data/ext/boost/exception/detail/exception_ptr.hpp +76 -135
- data/ext/boost/exception/detail/is_output_streamable.hpp +15 -2
- data/ext/boost/exception/detail/type_info.hpp +9 -5
- data/ext/boost/exception/diagnostic_information.hpp +5 -3
- data/ext/boost/exception/exception.hpp +60 -46
- data/ext/boost/exception/info.hpp +47 -14
- data/ext/boost/function/function_base.hpp +4 -4
- data/ext/boost/integer.hpp +4 -0
- data/ext/boost/integer_fwd.hpp +9 -3
- data/ext/boost/iterator/iterator_concepts.hpp +284 -0
- data/ext/boost/iterator/transform_iterator.hpp +0 -1
- data/ext/boost/make_shared.hpp +17 -0
- data/ext/boost/mpl/aux_/config/has_xxx.hpp +4 -3
- data/ext/boost/mpl/aux_/preprocessed/gcc/template_arity.hpp +2 -6
- data/ext/boost/mpl/aux_/template_arity.hpp +4 -4
- data/ext/boost/mpl/eval_if.hpp +3 -3
- data/ext/boost/mpl/has_xxx.hpp +369 -3
- data/ext/boost/optional/optional.hpp +3 -1
- data/ext/boost/optional/optional_fwd.hpp +1 -1
- data/ext/boost/preprocessor/repetition/enum_trailing_params.hpp +38 -0
- data/ext/boost/range/algorithm/equal.hpp +188 -0
- data/ext/boost/range/as_literal.hpp +15 -15
- data/ext/boost/range/concepts.hpp +331 -0
- data/ext/boost/range/const_iterator.hpp +7 -4
- data/ext/boost/range/detail/extract_optional_type.hpp +52 -0
- data/ext/boost/range/detail/implementation_help.hpp +7 -7
- data/ext/boost/range/detail/misc_concept.hpp +33 -0
- data/ext/boost/range/iterator.hpp +32 -32
- data/ext/boost/range/iterator_range.hpp +8 -651
- data/ext/boost/range/iterator_range_core.hpp +542 -0
- data/ext/boost/range/iterator_range_io.hpp +93 -0
- data/ext/boost/range/mutable_iterator.hpp +7 -4
- data/ext/boost/range/size.hpp +1 -1
- data/ext/boost/range/size_type.hpp +2 -1
- data/ext/boost/shared_array.hpp +19 -0
- data/ext/boost/smart_ptr/detail/sp_convertible.hpp +2 -2
- data/ext/boost/smart_ptr/detail/yield_k.hpp +1 -1
- data/ext/boost/smart_ptr/make_shared.hpp +508 -0
- data/ext/boost/smart_ptr/shared_array.hpp +147 -0
- data/ext/boost/src/pthread/thread.cpp +16 -21
- data/ext/boost/src/pthread/timeconv.inl +7 -4
- data/ext/boost/thread/barrier.hpp +2 -1
- data/ext/boost/thread/detail/config.hpp +7 -1
- data/ext/boost/thread/detail/platform.hpp +1 -1
- data/ext/boost/thread/detail/thread.hpp +62 -18
- data/ext/boost/thread/detail/thread_group.hpp +5 -2
- data/ext/boost/thread/detail/tss_hooks.hpp +8 -25
- data/ext/boost/thread/future.hpp +45 -34
- data/ext/boost/thread/locks.hpp +184 -55
- data/ext/boost/thread/pthread/condition_variable.hpp +7 -7
- data/ext/boost/thread/pthread/condition_variable_fwd.hpp +4 -2
- data/ext/boost/thread/pthread/mutex.hpp +29 -17
- data/ext/boost/thread/pthread/once.hpp +5 -0
- data/ext/boost/thread/pthread/recursive_mutex.hpp +97 -18
- data/ext/boost/thread/pthread/shared_mutex.hpp +1 -1
- data/ext/boost/thread/pthread/thread_heap_alloc.hpp +1 -1
- data/ext/boost/thread/tss.hpp +2 -0
- data/ext/boost/throw_exception.hpp +21 -5
- data/ext/boost/token_functions.hpp +111 -91
- data/ext/boost/type_traits/add_reference.hpp +19 -1
- data/ext/boost/type_traits/function_traits.hpp +2 -2
- data/ext/boost/type_traits/is_const.hpp +24 -5
- data/ext/boost/type_traits/is_convertible.hpp +1 -1
- data/ext/boost/type_traits/is_function.hpp +3 -0
- data/ext/boost/type_traits/is_lvalue_reference.hpp +118 -0
- data/ext/boost/type_traits/is_reference.hpp +8 -81
- data/ext/boost/type_traits/is_rvalue_reference.hpp +29 -0
- data/ext/boost/type_traits/is_same.hpp +2 -2
- data/ext/boost/type_traits/is_volatile.hpp +26 -7
- data/ext/boost/type_traits/remove_const.hpp +12 -0
- data/ext/boost/type_traits/remove_cv.hpp +23 -1
- data/ext/boost/type_traits/remove_reference.hpp +21 -1
- data/ext/boost/type_traits/type_with_alignment.hpp +10 -10
- data/ext/boost/units/detail/utility.hpp +104 -0
- data/ext/boost/utility/compare_pointees.hpp +1 -1
- data/ext/common/AgentsStarter.hpp +151 -161
- data/ext/common/ApplicationPool/Pool.h +16 -4
- data/ext/common/Constants.h +1 -1
- data/ext/common/EventedClient.h +130 -26
- data/ext/common/Exceptions.h +15 -2
- data/ext/common/FileDescriptor.h +76 -12
- data/ext/common/IniFile.h +488 -0
- data/ext/common/LoggingAgent/LoggingServer.h +2 -2
- data/ext/common/LoggingAgent/RemoteSender.h +15 -6
- data/ext/common/MessageChannel.h +17 -101
- data/ext/common/PoolOptions.h +1 -0
- data/ext/common/ResourceLocator.h +78 -28
- data/ext/common/SafeLibev.h +149 -0
- data/ext/common/ServerInstanceDir.h +11 -7
- data/ext/common/Session.h +1 -1
- data/ext/common/SpawnManager.h +14 -14
- data/ext/common/StaticString.h +75 -0
- data/ext/common/Utils.cpp +304 -12
- data/ext/common/Utils.h +17 -0
- data/ext/common/Utils/BufferedIO.h +196 -0
- data/ext/common/Utils/IOUtils.cpp +159 -0
- data/ext/common/Utils/IOUtils.h +118 -1
- data/ext/common/Utils/ProcessMetricsCollector.h +184 -56
- data/ext/common/Utils/StrIntUtils.cpp +45 -11
- data/ext/common/Utils/StrIntUtils.h +8 -5
- data/ext/common/Utils/Timer.h +22 -0
- data/ext/common/Utils/utf8.h +35 -0
- data/ext/common/Utils/utf8/checked.h +324 -0
- data/ext/common/Utils/utf8/core.h +359 -0
- data/ext/common/Utils/utf8/unchecked.h +229 -0
- data/ext/common/Watchdog.cpp +52 -85
- data/ext/libev/config.h +122 -0
- data/ext/nginx/Configuration.c +7 -1
- data/ext/nginx/HelperAgent.cpp +16 -18
- data/ext/nginx/config +6 -4
- data/ext/oxt/system_calls.cpp +10 -0
- data/ext/oxt/system_calls.hpp +2 -0
- data/lib/phusion_passenger.rb +6 -11
- data/lib/phusion_passenger/dependencies.rb +2 -0
- data/lib/phusion_passenger/packaging.rb +5 -5
- data/lib/phusion_passenger/platform_info.rb +88 -0
- data/lib/phusion_passenger/platform_info/binary_compatibility.rb +3 -17
- data/lib/phusion_passenger/platform_info/compiler.rb +14 -32
- data/lib/phusion_passenger/platform_info/curl.rb +6 -1
- data/lib/phusion_passenger/platform_info/operating_system.rb +107 -0
- data/lib/phusion_passenger/public_api.rb +2 -2
- data/lib/phusion_passenger/rails3_extensions/init.rb +5 -2
- data/lib/phusion_passenger/standalone/command.rb +6 -2
- data/lib/phusion_passenger/standalone/package_runtime_command.rb +2 -2
- data/lib/phusion_passenger/standalone/runtime_installer.rb +17 -5
- data/lib/phusion_passenger/standalone/start_command.rb +12 -12
- data/lib/phusion_passenger/standalone/stop_command.rb +3 -3
- data/lib/phusion_passenger/standalone/utils.rb +6 -2
- data/lib/phusion_passenger/templates/standalone/config.erb +37 -5
- data/lib/phusion_passenger/utils.rb +4 -7
- data/resources/mime.types +73 -0
- data/{misc → resources}/union_station_gateway.crt +0 -0
- data/test/cxx/BufferedIOTest.cpp +364 -0
- data/test/cxx/EventedClientTest.cpp +150 -13
- data/test/cxx/IOUtilsTest.cpp +399 -1
- data/test/cxx/MessageChannelTest.cpp +5 -120
- data/test/cxx/ProcessMetricsCollectorTest.cpp +121 -0
- data/test/cxx/StaticStringTest.cpp +134 -0
- data/test/cxx/UtilsTest.cpp +16 -46
- data/test/stub/rails_apps/2.3/mycook/public/dispatch.cgi +2 -2
- data/test/stub/rails_apps/2.3/mycook/public/dispatch.fcgi +1 -1
- data/test/stub/rails_apps/2.3/mycook/public/dispatch.rb +1 -1
- data/test/stub/rails_apps/3.0/empty/Gemfile.lock +73 -0
- data/test/support/allocate_memory.c +14 -0
- data/test/support/test_helper.rb +3 -0
- metadata +57 -174
- data/bin/passenger-stress-test +0 -345
- data/debian/postinst +0 -24
- data/doc/rdoc/classes/ConditionVariable.html +0 -215
- data/doc/rdoc/classes/Exception.html +0 -120
- data/doc/rdoc/classes/GC.html +0 -113
- data/doc/rdoc/classes/IO.html +0 -221
- data/doc/rdoc/classes/PhusionPassenger.html +0 -397
- data/doc/rdoc/classes/PhusionPassenger/AbstractInstaller.html +0 -180
- data/doc/rdoc/classes/PhusionPassenger/AbstractRequestHandler.html +0 -647
- data/doc/rdoc/classes/PhusionPassenger/AbstractServer.html +0 -654
- data/doc/rdoc/classes/PhusionPassenger/AbstractServer/InvalidPassword.html +0 -92
- data/doc/rdoc/classes/PhusionPassenger/AbstractServer/ServerAlreadyStarted.html +0 -97
- data/doc/rdoc/classes/PhusionPassenger/AbstractServer/ServerError.html +0 -96
- data/doc/rdoc/classes/PhusionPassenger/AbstractServer/ServerNotStarted.html +0 -97
- data/doc/rdoc/classes/PhusionPassenger/AbstractServer/UnknownMessage.html +0 -96
- data/doc/rdoc/classes/PhusionPassenger/AbstractServerCollection.html +0 -619
- data/doc/rdoc/classes/PhusionPassenger/AdminTools.html +0 -142
- data/doc/rdoc/classes/PhusionPassenger/AdminTools/MemoryStats.html +0 -368
- data/doc/rdoc/classes/PhusionPassenger/AdminTools/MemoryStats/Process.html +0 -231
- data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance.html +0 -588
- data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/CorruptedDirectoryError.html +0 -92
- data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/GenerationsAbsentError.html +0 -92
- data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/Group.html +0 -147
- data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/Process.html +0 -279
- data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/RoleDeniedError.html +0 -92
- data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/StaleDirectoryError.html +0 -92
- data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/Stats.html +0 -123
- data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/UnsupportedGenerationStructureVersionError.html +0 -92
- data/doc/rdoc/classes/PhusionPassenger/AnalyticsLogger.html +0 -341
- data/doc/rdoc/classes/PhusionPassenger/AnalyticsLogger/Log.html +0 -294
- data/doc/rdoc/classes/PhusionPassenger/AnalyticsLogger/SharedData.html +0 -199
- data/doc/rdoc/classes/PhusionPassenger/AppInitError.html +0 -155
- data/doc/rdoc/classes/PhusionPassenger/AppProcess.html +0 -367
- data/doc/rdoc/classes/PhusionPassenger/ClassicRails.html +0 -95
- data/doc/rdoc/classes/PhusionPassenger/ClassicRails/ApplicationSpawner.html +0 -351
- data/doc/rdoc/classes/PhusionPassenger/ClassicRails/ApplicationSpawner/Error.html +0 -98
- data/doc/rdoc/classes/PhusionPassenger/ClassicRails/CGIFixed.html +0 -200
- data/doc/rdoc/classes/PhusionPassenger/ClassicRails/FrameworkSpawner.html +0 -410
- data/doc/rdoc/classes/PhusionPassenger/ClassicRails/FrameworkSpawner/Error.html +0 -98
- data/doc/rdoc/classes/PhusionPassenger/ClassicRails/RequestHandler.html +0 -156
- data/doc/rdoc/classes/PhusionPassenger/ClassicRailsExtensions.html +0 -115
- data/doc/rdoc/classes/PhusionPassenger/ClassicRailsExtensions/AnalyticsLogging.html +0 -202
- data/doc/rdoc/classes/PhusionPassenger/ConsoleTextTemplate.html +0 -172
- data/doc/rdoc/classes/PhusionPassenger/DebugLogging.html +0 -273
- data/doc/rdoc/classes/PhusionPassenger/FrameworkInitError.html +0 -145
- data/doc/rdoc/classes/PhusionPassenger/HTMLTemplate.html +0 -162
- data/doc/rdoc/classes/PhusionPassenger/InitializationError.html +0 -141
- data/doc/rdoc/classes/PhusionPassenger/InvalidPath.html +0 -92
- data/doc/rdoc/classes/PhusionPassenger/MessageChannel.html +0 -673
- data/doc/rdoc/classes/PhusionPassenger/MessageChannel/InvalidHashError.html +0 -92
- data/doc/rdoc/classes/PhusionPassenger/MessageClient.html +0 -415
- data/doc/rdoc/classes/PhusionPassenger/NativeSupportLoader.html +0 -134
- data/doc/rdoc/classes/PhusionPassenger/Packaging.html +0 -129
- data/doc/rdoc/classes/PhusionPassenger/PlatformInfo.html +0 -1809
- data/doc/rdoc/classes/PhusionPassenger/Plugin.html +0 -237
- data/doc/rdoc/classes/PhusionPassenger/Rack.html +0 -91
- data/doc/rdoc/classes/PhusionPassenger/Rack/ApplicationSpawner.html +0 -312
- data/doc/rdoc/classes/PhusionPassenger/Rack/ApplicationSpawner/Error.html +0 -98
- data/doc/rdoc/classes/PhusionPassenger/Rack/RequestHandler.html +0 -218
- data/doc/rdoc/classes/PhusionPassenger/Rails3Extensions.html +0 -114
- data/doc/rdoc/classes/PhusionPassenger/Rails3Extensions/AnalyticsLogging.html +0 -256
- data/doc/rdoc/classes/PhusionPassenger/Rails3Extensions/AnalyticsLogging/ACExtension.html +0 -139
- data/doc/rdoc/classes/PhusionPassenger/Rails3Extensions/AnalyticsLogging/ASBenchmarkableExtension.html +0 -118
- data/doc/rdoc/classes/PhusionPassenger/Rails3Extensions/AnalyticsLogging/ExceptionLogger.html +0 -135
- data/doc/rdoc/classes/PhusionPassenger/SpawnManager.html +0 -378
- data/doc/rdoc/classes/PhusionPassenger/Standalone.html +0 -111
- data/doc/rdoc/classes/PhusionPassenger/Standalone/AppFinder.html +0 -252
- data/doc/rdoc/classes/PhusionPassenger/Standalone/Command.html +0 -161
- data/doc/rdoc/classes/PhusionPassenger/Standalone/ConfigFile.html +0 -368
- data/doc/rdoc/classes/PhusionPassenger/Standalone/ConfigFile/DisallowedContextError.html +0 -132
- data/doc/rdoc/classes/PhusionPassenger/Standalone/HelpCommand.html +0 -151
- data/doc/rdoc/classes/PhusionPassenger/Standalone/Main.html +0 -189
- data/doc/rdoc/classes/PhusionPassenger/Standalone/PackageRuntimeCommand.html +0 -177
- data/doc/rdoc/classes/PhusionPassenger/Standalone/RuntimeInstaller.html +0 -341
- data/doc/rdoc/classes/PhusionPassenger/Standalone/StartCommand.html +0 -203
- data/doc/rdoc/classes/PhusionPassenger/Standalone/StatusCommand.html +0 -156
- data/doc/rdoc/classes/PhusionPassenger/Standalone/StopCommand.html +0 -168
- data/doc/rdoc/classes/PhusionPassenger/Standalone/Utils.html +0 -86
- data/doc/rdoc/classes/PhusionPassenger/Standalone/VersionCommand.html +0 -135
- data/doc/rdoc/classes/PhusionPassenger/UnknownError.html +0 -125
- data/doc/rdoc/classes/PhusionPassenger/Utils.html +0 -1550
- data/doc/rdoc/classes/PhusionPassenger/Utils/FileSystemWatcher.html +0 -204
- data/doc/rdoc/classes/PhusionPassenger/Utils/FileSystemWatcher/DirInfo.html +0 -171
- data/doc/rdoc/classes/PhusionPassenger/Utils/FileSystemWatcher/FileInfo.html +0 -140
- data/doc/rdoc/classes/PhusionPassenger/Utils/HostsFileParser.html +0 -260
- data/doc/rdoc/classes/PhusionPassenger/Utils/PseudoIO.html +0 -169
- data/doc/rdoc/classes/PhusionPassenger/Utils/RewindableInput.html +0 -265
- data/doc/rdoc/classes/PhusionPassenger/Utils/RewindableInput/Tempfile.html +0 -120
- data/doc/rdoc/classes/PhusionPassenger/Utils/UnseekableSocket.html +0 -561
- data/doc/rdoc/classes/PhusionPassenger/VersionNotFound.html +0 -140
- data/doc/rdoc/classes/PhusionPassenger/WSGI.html +0 -89
- data/doc/rdoc/classes/PhusionPassenger/WSGI/ApplicationSpawner.html +0 -182
- data/doc/rdoc/classes/Process.html +0 -115
- data/doc/rdoc/classes/Signal.html +0 -139
- data/doc/rdoc/created.rid +0 -1
- data/doc/rdoc/files/DEVELOPERS_TXT.html +0 -276
- data/doc/rdoc/files/README.html +0 -157
- data/doc/rdoc/files/lib/phusion_passenger/abstract_installer_rb.html +0 -130
- data/doc/rdoc/files/lib/phusion_passenger/abstract_request_handler_rb.html +0 -135
- data/doc/rdoc/files/lib/phusion_passenger/abstract_server_collection_rb.html +0 -126
- data/doc/rdoc/files/lib/phusion_passenger/abstract_server_rb.html +0 -128
- data/doc/rdoc/files/lib/phusion_passenger/admin_tools/memory_stats_rb.html +0 -126
- data/doc/rdoc/files/lib/phusion_passenger/admin_tools/server_instance_rb.html +0 -132
- data/doc/rdoc/files/lib/phusion_passenger/admin_tools_rb.html +0 -122
- data/doc/rdoc/files/lib/phusion_passenger/analytics_logger_rb.html +0 -129
- data/doc/rdoc/files/lib/phusion_passenger/app_process_rb.html +0 -127
- data/doc/rdoc/files/lib/phusion_passenger/classic_rails/application_spawner_rb.html +0 -141
- data/doc/rdoc/files/lib/phusion_passenger/classic_rails/cgi_fixed_rb.html +0 -126
- data/doc/rdoc/files/lib/phusion_passenger/classic_rails/framework_spawner_rb.html +0 -146
- data/doc/rdoc/files/lib/phusion_passenger/classic_rails/request_handler_rb.html +0 -125
- data/doc/rdoc/files/lib/phusion_passenger/classic_rails_extensions/init_rb.html +0 -132
- data/doc/rdoc/files/lib/phusion_passenger/console_text_template_rb.html +0 -126
- data/doc/rdoc/files/lib/phusion_passenger/constants_rb.html +0 -122
- data/doc/rdoc/files/lib/phusion_passenger/debug_logging_rb.html +0 -122
- data/doc/rdoc/files/lib/phusion_passenger/dependencies_rb.html +0 -147
- data/doc/rdoc/files/lib/phusion_passenger/exceptions_rb.html +0 -122
- data/doc/rdoc/files/lib/phusion_passenger/html_template_rb.html +0 -127
- data/doc/rdoc/files/lib/phusion_passenger/message_channel_rb.html +0 -120
- data/doc/rdoc/files/lib/phusion_passenger/message_client_rb.html +0 -127
- data/doc/rdoc/files/lib/phusion_passenger/native_support_rb.html +0 -132
- data/doc/rdoc/files/lib/phusion_passenger/packaging_rb.html +0 -122
- data/doc/rdoc/files/lib/phusion_passenger/platform_info/apache_rb.html +0 -127
- data/doc/rdoc/files/lib/phusion_passenger/platform_info/binary_compatibility_rb.html +0 -129
- data/doc/rdoc/files/lib/phusion_passenger/platform_info/compiler_rb.html +0 -126
- data/doc/rdoc/files/lib/phusion_passenger/platform_info/curl_rb.html +0 -126
- data/doc/rdoc/files/lib/phusion_passenger/platform_info/documentation_tools_rb.html +0 -126
- data/doc/rdoc/files/lib/phusion_passenger/platform_info/linux_rb.html +0 -126
- data/doc/rdoc/files/lib/phusion_passenger/platform_info/operating_system_rb.html +0 -127
- data/doc/rdoc/files/lib/phusion_passenger/platform_info/ruby_rb.html +0 -128
- data/doc/rdoc/files/lib/phusion_passenger/platform_info/zlib_rb.html +0 -126
- data/doc/rdoc/files/lib/phusion_passenger/platform_info_rb.html +0 -122
- data/doc/rdoc/files/lib/phusion_passenger/plugin_rb.html +0 -127
- data/doc/rdoc/files/lib/phusion_passenger/public_api_rb.html +0 -127
- data/doc/rdoc/files/lib/phusion_passenger/rack/application_spawner_rb.html +0 -137
- data/doc/rdoc/files/lib/phusion_passenger/rack/request_handler_rb.html +0 -125
- data/doc/rdoc/files/lib/phusion_passenger/rails3_extensions/init_rb.html +0 -127
- data/doc/rdoc/files/lib/phusion_passenger/simple_benchmarking_rb.html +0 -122
- data/doc/rdoc/files/lib/phusion_passenger/spawn_manager_rb.html +0 -160
- data/doc/rdoc/files/lib/phusion_passenger/standalone/app_finder_rb.html +0 -127
- data/doc/rdoc/files/lib/phusion_passenger/standalone/command_rb.html +0 -135
- data/doc/rdoc/files/lib/phusion_passenger/standalone/config_file_rb.html +0 -126
- data/doc/rdoc/files/lib/phusion_passenger/standalone/help_command_rb.html +0 -126
- data/doc/rdoc/files/lib/phusion_passenger/standalone/main_rb.html +0 -126
- data/doc/rdoc/files/lib/phusion_passenger/standalone/package_runtime_command_rb.html +0 -127
- data/doc/rdoc/files/lib/phusion_passenger/standalone/runtime_installer_rb.html +0 -133
- data/doc/rdoc/files/lib/phusion_passenger/standalone/start_command_rb.html +0 -136
- data/doc/rdoc/files/lib/phusion_passenger/standalone/status_command_rb.html +0 -126
- data/doc/rdoc/files/lib/phusion_passenger/standalone/stop_command_rb.html +0 -126
- data/doc/rdoc/files/lib/phusion_passenger/standalone/utils_rb.html +0 -126
- data/doc/rdoc/files/lib/phusion_passenger/standalone/version_command_rb.html +0 -127
- data/doc/rdoc/files/lib/phusion_passenger/utils/file_system_watcher_rb.html +0 -126
- data/doc/rdoc/files/lib/phusion_passenger/utils/hosts_file_parser_rb.html +0 -120
- data/doc/rdoc/files/lib/phusion_passenger/utils/rewindable_input_rb.html +0 -100
- data/doc/rdoc/files/lib/phusion_passenger/utils/tmpdir_rb.html +0 -122
- data/doc/rdoc/files/lib/phusion_passenger/utils/unseekable_socket_rb.html +0 -126
- data/doc/rdoc/files/lib/phusion_passenger/utils_rb.html +0 -179
- data/doc/rdoc/files/lib/phusion_passenger/wsgi/application_spawner_rb.html +0 -132
- data/doc/rdoc/fr_class_index.html +0 -138
- data/doc/rdoc/fr_file_index.html +0 -108
- data/doc/rdoc/fr_method_index.html +0 -430
- data/doc/rdoc/index.html +0 -26
- data/doc/rdoc/rdoc-style.css +0 -187
- data/ext/apache2/LICENSE-CNRI.TXT +0 -79
- data/ext/common/Utils/BlockingScalar.h +0 -50
- data/ext/common/Utils/FileHandleGuard.h +0 -81
data/ext/libev/config.h
ADDED
@@ -0,0 +1,122 @@
|
|
1
|
+
/* config.h. Generated from config.h.in by configure. */
|
2
|
+
/* config.h.in. Generated from configure.ac by autoheader. */
|
3
|
+
|
4
|
+
/* Define to 1 if you have the `clock_gettime' function. */
|
5
|
+
/* #undef HAVE_CLOCK_GETTIME */
|
6
|
+
|
7
|
+
/* "use syscall interface for clock_gettime" */
|
8
|
+
/* #undef HAVE_CLOCK_SYSCALL */
|
9
|
+
|
10
|
+
/* Define to 1 if you have the <dlfcn.h> header file. */
|
11
|
+
#define HAVE_DLFCN_H 1
|
12
|
+
|
13
|
+
/* Define to 1 if you have the `epoll_ctl' function. */
|
14
|
+
/* #undef HAVE_EPOLL_CTL */
|
15
|
+
|
16
|
+
/* Define to 1 if you have the `eventfd' function. */
|
17
|
+
/* #undef HAVE_EVENTFD */
|
18
|
+
|
19
|
+
/* Define to 1 if you have the `inotify_init' function. */
|
20
|
+
/* #undef HAVE_INOTIFY_INIT */
|
21
|
+
|
22
|
+
/* Define to 1 if you have the <inttypes.h> header file. */
|
23
|
+
#define HAVE_INTTYPES_H 1
|
24
|
+
|
25
|
+
/* Define to 1 if you have the `kqueue' function. */
|
26
|
+
#define HAVE_KQUEUE 1
|
27
|
+
|
28
|
+
/* Define to 1 if you have the `m' library (-lm). */
|
29
|
+
#define HAVE_LIBM 1
|
30
|
+
|
31
|
+
/* Define to 1 if you have the `rt' library (-lrt). */
|
32
|
+
/* #undef HAVE_LIBRT */
|
33
|
+
|
34
|
+
/* Define to 1 if you have the <memory.h> header file. */
|
35
|
+
#define HAVE_MEMORY_H 1
|
36
|
+
|
37
|
+
/* Define to 1 if you have the `nanosleep' function. */
|
38
|
+
/* #undef HAVE_NANOSLEEP */
|
39
|
+
|
40
|
+
/* Define to 1 if you have the `poll' function. */
|
41
|
+
#define HAVE_POLL 1
|
42
|
+
|
43
|
+
/* Define to 1 if you have the <poll.h> header file. */
|
44
|
+
#define HAVE_POLL_H 1
|
45
|
+
|
46
|
+
/* Define to 1 if you have the `port_create' function. */
|
47
|
+
/* #undef HAVE_PORT_CREATE */
|
48
|
+
|
49
|
+
/* Define to 1 if you have the <port.h> header file. */
|
50
|
+
/* #undef HAVE_PORT_H */
|
51
|
+
|
52
|
+
/* Define to 1 if you have the `select' function. */
|
53
|
+
#define HAVE_SELECT 1
|
54
|
+
|
55
|
+
/* Define to 1 if you have the `signalfd' function. */
|
56
|
+
/* #undef HAVE_SIGNALFD */
|
57
|
+
|
58
|
+
/* Define to 1 if you have the <stdint.h> header file. */
|
59
|
+
#define HAVE_STDINT_H 1
|
60
|
+
|
61
|
+
/* Define to 1 if you have the <stdlib.h> header file. */
|
62
|
+
#define HAVE_STDLIB_H 1
|
63
|
+
|
64
|
+
/* Define to 1 if you have the <strings.h> header file. */
|
65
|
+
#define HAVE_STRINGS_H 1
|
66
|
+
|
67
|
+
/* Define to 1 if you have the <string.h> header file. */
|
68
|
+
#define HAVE_STRING_H 1
|
69
|
+
|
70
|
+
/* Define to 1 if you have the <sys/epoll.h> header file. */
|
71
|
+
/* #undef HAVE_SYS_EPOLL_H */
|
72
|
+
|
73
|
+
/* Define to 1 if you have the <sys/eventfd.h> header file. */
|
74
|
+
/* #undef HAVE_SYS_EVENTFD_H */
|
75
|
+
|
76
|
+
/* Define to 1 if you have the <sys/event.h> header file. */
|
77
|
+
#define HAVE_SYS_EVENT_H 1
|
78
|
+
|
79
|
+
/* Define to 1 if you have the <sys/inotify.h> header file. */
|
80
|
+
/* #undef HAVE_SYS_INOTIFY_H */
|
81
|
+
|
82
|
+
/* Define to 1 if you have the <sys/queue.h> header file. */
|
83
|
+
#define HAVE_SYS_QUEUE_H 1
|
84
|
+
|
85
|
+
/* Define to 1 if you have the <sys/select.h> header file. */
|
86
|
+
#define HAVE_SYS_SELECT_H 1
|
87
|
+
|
88
|
+
/* Define to 1 if you have the <sys/signalfd.h> header file. */
|
89
|
+
/* #undef HAVE_SYS_SIGNALFD_H */
|
90
|
+
|
91
|
+
/* Define to 1 if you have the <sys/stat.h> header file. */
|
92
|
+
#define HAVE_SYS_STAT_H 1
|
93
|
+
|
94
|
+
/* Define to 1 if you have the <sys/types.h> header file. */
|
95
|
+
#define HAVE_SYS_TYPES_H 1
|
96
|
+
|
97
|
+
/* Define to 1 if you have the <unistd.h> header file. */
|
98
|
+
#define HAVE_UNISTD_H 1
|
99
|
+
|
100
|
+
/* Name of package */
|
101
|
+
#define PACKAGE "libev"
|
102
|
+
|
103
|
+
/* Define to the address where bug reports for this package should be sent. */
|
104
|
+
#define PACKAGE_BUGREPORT ""
|
105
|
+
|
106
|
+
/* Define to the full name of this package. */
|
107
|
+
#define PACKAGE_NAME ""
|
108
|
+
|
109
|
+
/* Define to the full name and version of this package. */
|
110
|
+
#define PACKAGE_STRING ""
|
111
|
+
|
112
|
+
/* Define to the one symbol short name of this package. */
|
113
|
+
#define PACKAGE_TARNAME ""
|
114
|
+
|
115
|
+
/* Define to the version of this package. */
|
116
|
+
#define PACKAGE_VERSION ""
|
117
|
+
|
118
|
+
/* Define to 1 if you have the ANSI C header files. */
|
119
|
+
#define STDC_HEADERS 1
|
120
|
+
|
121
|
+
/* Version number of package */
|
122
|
+
#define VERSION "3.9"
|
data/ext/nginx/Configuration.c
CHANGED
@@ -827,8 +827,14 @@ passenger_enabled(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
|
|
827
827
|
&& clcf->name.data[clcf->name.len - 1] == '/') {
|
828
828
|
clcf->auto_redirect = 1;
|
829
829
|
}
|
830
|
-
} else {
|
830
|
+
} else if (ngx_strcasecmp(value[1].data, (u_char *) "off") == 0) {
|
831
831
|
passenger_conf->enabled = 0;
|
832
|
+
} else {
|
833
|
+
ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
|
834
|
+
"\"passenger_enabled\" must be either set to \"on\" "
|
835
|
+
"or \"off\"");
|
836
|
+
|
837
|
+
return NGX_CONF_ERROR;
|
832
838
|
}
|
833
839
|
|
834
840
|
return NGX_CONF_OK;
|
data/ext/nginx/HelperAgent.cpp
CHANGED
@@ -318,7 +318,6 @@ private:
|
|
318
318
|
HttpStatusExtractor ex;
|
319
319
|
int stream = session->getStream();
|
320
320
|
int eof = false;
|
321
|
-
MessageChannel output(clientFd);
|
322
321
|
char buf[1024 * 32];
|
323
322
|
ssize_t size;
|
324
323
|
|
@@ -343,9 +342,9 @@ private:
|
|
343
342
|
string statusLine("HTTP/1.1 ");
|
344
343
|
statusLine.append(ex.getStatusLine());
|
345
344
|
UPDATE_TRACE_POINT();
|
346
|
-
|
345
|
+
writeExact(clientFd, statusLine);
|
347
346
|
UPDATE_TRACE_POINT();
|
348
|
-
|
347
|
+
writeExact(clientFd, ex.getBuffer());
|
349
348
|
break;
|
350
349
|
} catch (const SystemException &e) {
|
351
350
|
if (e.code() == EPIPE) {
|
@@ -368,7 +367,7 @@ private:
|
|
368
367
|
} else {
|
369
368
|
UPDATE_TRACE_POINT();
|
370
369
|
try {
|
371
|
-
|
370
|
+
writeExact(clientFd, buf, size);
|
372
371
|
} catch (const SystemException &e) {
|
373
372
|
if (e.code() == EPIPE) {
|
374
373
|
throw ClientDisconnectedException();
|
@@ -392,31 +391,30 @@ private:
|
|
392
391
|
* @param friendly Whether to show a friendly error page.
|
393
392
|
*/
|
394
393
|
void handleSpawnException(FileDescriptor &fd, const SpawnException &e, bool friendly) {
|
395
|
-
|
396
|
-
|
397
|
-
|
398
|
-
|
399
|
-
channel.writeRaw("Content-Type: text/html; charset=utf-8\x0D\x0A");
|
394
|
+
writeExact(fd, "HTTP/1.1 500 Internal Server Error\x0D\x0A");
|
395
|
+
writeExact(fd, "Status: 500 Internal Server Error\x0D\x0A");
|
396
|
+
writeExact(fd, "Connection: close\x0D\x0A");
|
397
|
+
writeExact(fd, "Content-Type: text/html; charset=utf-8\x0D\x0A");
|
400
398
|
|
401
399
|
if (friendly) {
|
402
400
|
if (e.hasErrorPage()) {
|
403
|
-
|
401
|
+
writeExact(fd, "Content-Length: " +
|
404
402
|
toString(e.getErrorPage().size()) +
|
405
403
|
"\x0D\x0A");
|
406
|
-
|
407
|
-
|
404
|
+
writeExact(fd, "\x0D\x0A");
|
405
|
+
writeExact(fd, e.getErrorPage());
|
408
406
|
} else {
|
409
|
-
|
407
|
+
writeExact(fd, "Content-Length: " +
|
410
408
|
toString(strlen(e.what())) + "\x0D\x0A");
|
411
|
-
|
412
|
-
|
409
|
+
writeExact(fd, "\x0D\x0A");
|
410
|
+
writeExact(fd, e.what());
|
413
411
|
}
|
414
412
|
} else {
|
415
413
|
const char body[] = "<h1>Internal Server Error (500)</h1>";
|
416
|
-
|
414
|
+
writeExact(fd, "Content-Length: " +
|
417
415
|
toString(strlen(body)) + "\x0D\x0A");
|
418
|
-
|
419
|
-
|
416
|
+
writeExact(fd, "\x0D\x0A");
|
417
|
+
writeExact(fd, body);
|
420
418
|
}
|
421
419
|
}
|
422
420
|
|
data/ext/nginx/config
CHANGED
@@ -1,12 +1,14 @@
|
|
1
1
|
if ! test -f "$ngx_addon_dir/../common/libpassenger_common.a" || \
|
2
2
|
! test -f "$ngx_addon_dir/../common/libboost_oxt.a"; then
|
3
3
|
echo "*** The Phusion Passenger support files are not yet compiled. Compiling them for you... ***"
|
4
|
-
echo "*** Running 'rake nginx' in $ngx_addon_dir... ***"
|
5
|
-
if !
|
4
|
+
echo "*** Running 'rake nginx RELEASE=yes' in $ngx_addon_dir... ***"
|
5
|
+
if ! cd $ngx_addon_dir; then
|
6
6
|
exit 1
|
7
|
-
else
|
8
|
-
echo "*** Phusion Passenger support files have been successfully compiled. ***"
|
9
7
|
fi
|
8
|
+
if ! rake nginx RELEASE=yes; then
|
9
|
+
exit 1
|
10
|
+
fi
|
11
|
+
echo "*** Phusion Passenger support files have been successfully compiled. ***"
|
10
12
|
fi
|
11
13
|
|
12
14
|
ngx_feature="Math library"
|
data/ext/oxt/system_calls.cpp
CHANGED
@@ -291,6 +291,16 @@ syscalls::select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *errorfds,
|
|
291
291
|
return ret;
|
292
292
|
}
|
293
293
|
|
294
|
+
int
|
295
|
+
syscalls::poll(struct pollfd fds[], nfds_t nfds, int timeout) {
|
296
|
+
int ret;
|
297
|
+
CHECK_INTERRUPTION(
|
298
|
+
ret == -1,
|
299
|
+
ret = ::poll(fds, nfds, timeout)
|
300
|
+
);
|
301
|
+
return ret;
|
302
|
+
}
|
303
|
+
|
294
304
|
FILE *
|
295
305
|
syscalls::fopen(const char *path, const char *mode) {
|
296
306
|
FILE *ret;
|
data/ext/oxt/system_calls.hpp
CHANGED
@@ -36,6 +36,7 @@
|
|
36
36
|
#include <unistd.h>
|
37
37
|
#include <fcntl.h>
|
38
38
|
#include <signal.h>
|
39
|
+
#include <poll.h>
|
39
40
|
#include <cstdio>
|
40
41
|
#include <ctime>
|
41
42
|
#include <cassert>
|
@@ -147,6 +148,7 @@ namespace oxt {
|
|
147
148
|
|
148
149
|
int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *errorfds,
|
149
150
|
struct timeval *timeout);
|
151
|
+
int poll(struct pollfd fds[], nfds_t nfds, int timeout);
|
150
152
|
|
151
153
|
FILE *fopen(const char *path, const char *mode);
|
152
154
|
size_t fread(void *ptr, size_t size, size_t nitems, FILE *stream);
|
data/lib/phusion_passenger.rb
CHANGED
@@ -25,9 +25,9 @@ module PhusionPassenger
|
|
25
25
|
###### Version numbers ######
|
26
26
|
|
27
27
|
# Phusion Passenger version number. Don't forget to edit ext/common/Constants.h too.
|
28
|
-
VERSION_STRING = '3.0.
|
28
|
+
VERSION_STRING = '3.0.1'
|
29
29
|
|
30
|
-
PREFERRED_NGINX_VERSION = '0.8.
|
30
|
+
PREFERRED_NGINX_VERSION = '0.8.53'
|
31
31
|
PREFERRED_PCRE_VERSION = '8.10'
|
32
32
|
STANDALONE_INTERFACE_VERSION = 1
|
33
33
|
|
@@ -48,8 +48,7 @@ module PhusionPassenger
|
|
48
48
|
|
49
49
|
NATIVELY_PACKAGED_SOURCE_ROOT = "/usr/share/phusion-passenger/source"
|
50
50
|
NATIVELY_PACKAGED_DOCDIR = "/usr/share/doc/phusion-passenger"
|
51
|
-
|
52
|
-
NATIVELY_PACKAGED_HELPER_SCRIPTS_DIR = "/usr/share/phusion-passenger/helper-scripts"
|
51
|
+
NATIVELY_PACKAGED_RESOURCES_DIR = "/usr/share/phusion-passenger"
|
53
52
|
NATIVELY_PACKAGED_APACHE2_MODULE = "/usr/lib/apache2/modules/mod_passenger.so"
|
54
53
|
|
55
54
|
# Directory containing the Phusion Passenger Ruby libraries.
|
@@ -79,11 +78,8 @@ module PhusionPassenger
|
|
79
78
|
# Documentation directory.
|
80
79
|
DOCDIR = File.join(SOURCE_ROOT, "doc")
|
81
80
|
|
82
|
-
# Directory containing Phusion Passenger
|
83
|
-
|
84
|
-
|
85
|
-
# Directory containing Phusion Passenger helper scripts.
|
86
|
-
HELPER_SCRIPTS_DIR = File.join(SOURCE_ROOT, "helper-scripts")
|
81
|
+
# Directory containing Phusion Passenger resource files.
|
82
|
+
RESOURCES_DIR = File.join(SOURCE_ROOT, "resources")
|
87
83
|
|
88
84
|
# Location of the Apache 2 module.
|
89
85
|
APACHE2_MODULE = File.join(SOURCE_ROOT, "ext", "apache2", "mod_passenger.so")
|
@@ -94,8 +90,7 @@ module PhusionPassenger
|
|
94
90
|
else
|
95
91
|
SOURCE_ROOT = NATIVELY_PACKAGED_SOURCE_ROOT
|
96
92
|
DOCDIR = NATIVELY_PACKAGED_DOCDIR
|
97
|
-
|
98
|
-
HELPER_SCRIPTS_DIR = NATIVELY_PACKAGED_HELPER_SCRIPTS_DIR
|
93
|
+
RESOURCES_DIR = NATIVELY_PACKAGED_RESOURCES_DIR
|
99
94
|
APACHE2_MODULE = NATIVELY_PACKAGED_APACHE2_MODULE
|
100
95
|
end
|
101
96
|
|
@@ -403,6 +403,8 @@ module Dependencies # :nodoc: all
|
|
403
403
|
dep.install_command = "apt-get install libaprutil1-dev"
|
404
404
|
elsif tags.include?(:mandriva)
|
405
405
|
dep.install_command = "urpmi libapr-util-devel"
|
406
|
+
elsif tags.include?(:redhat)
|
407
|
+
dep.install_command = "yum install apr-util-devel"
|
406
408
|
end
|
407
409
|
elsif RUBY_PLATFORM =~ /darwin/
|
408
410
|
dep.install_instructions = "Please install Apache from MacPorts, which will " <<
|
@@ -37,8 +37,7 @@ module Packaging
|
|
37
37
|
'passenger',
|
38
38
|
'passenger-install-apache2-module',
|
39
39
|
'passenger-install-nginx-module',
|
40
|
-
'passenger-config'
|
41
|
-
'passenger-stress-test'
|
40
|
+
'passenger-config'
|
42
41
|
]
|
43
42
|
|
44
43
|
SUPER_USER_EXECUTABLES = [
|
@@ -72,7 +71,7 @@ module Packaging
|
|
72
71
|
'debian/*',
|
73
72
|
'helper-scripts/*',
|
74
73
|
'ext/common/**/*.{cpp,c,h,hpp}',
|
75
|
-
'ext/apache2/*.{cpp,h,hpp,c
|
74
|
+
'ext/apache2/*.{cpp,h,hpp,c}',
|
76
75
|
'ext/nginx/*.{c,cpp,h}',
|
77
76
|
'ext/nginx/config',
|
78
77
|
'ext/boost/**/*',
|
@@ -85,9 +84,10 @@ module Packaging
|
|
85
84
|
'ext/oxt/*.cpp',
|
86
85
|
'ext/oxt/detail/*.hpp',
|
87
86
|
'ext/ruby/*.{c,rb}',
|
88
|
-
'
|
87
|
+
'dev/*',
|
88
|
+
'resources/*',
|
89
89
|
'test/*.example',
|
90
|
-
'test/support/*.{cpp,h,rb}',
|
90
|
+
'test/support/*.{c,cpp,h,rb}',
|
91
91
|
'test/tut/*',
|
92
92
|
'test/cxx/*.{cpp,h}',
|
93
93
|
'test/oxt/*.{cpp,hpp}',
|
@@ -155,6 +155,94 @@ public
|
|
155
155
|
def self.env_defined?(name)
|
156
156
|
return !ENV[name].nil? && !ENV[name].empty?
|
157
157
|
end
|
158
|
+
|
159
|
+
def self.cc
|
160
|
+
return ENV['CC'] || "gcc"
|
161
|
+
end
|
162
|
+
|
163
|
+
def self.cxx
|
164
|
+
return ENV['CXX'] || "g++"
|
165
|
+
end
|
166
|
+
|
167
|
+
def self.try_compile(language, source, flags = nil)
|
168
|
+
if language == :c
|
169
|
+
compiler = cc
|
170
|
+
elsif language == :cxx
|
171
|
+
compiler = cxx
|
172
|
+
else
|
173
|
+
raise ArgumentError,"Unsupported language '#{language}'"
|
174
|
+
end
|
175
|
+
filename = File.join("/tmp/passenger-compile-check-#{Process.pid}.c")
|
176
|
+
File.open(filename, "w") do |f|
|
177
|
+
f.puts(source)
|
178
|
+
end
|
179
|
+
begin
|
180
|
+
return system("(#{compiler} #{flags} -c '#{filename}' -o '#{filename}.o') >/dev/null 2>/dev/null")
|
181
|
+
ensure
|
182
|
+
File.unlink(filename) rescue nil
|
183
|
+
File.unlink("#{filename}.o") rescue nil
|
184
|
+
end
|
185
|
+
end
|
186
|
+
private_class_method :try_compile
|
187
|
+
|
188
|
+
def self.try_link(language, source, flags = nil)
|
189
|
+
if language == :c
|
190
|
+
compiler = cc
|
191
|
+
elsif language == :cxx
|
192
|
+
compiler = cxx
|
193
|
+
else
|
194
|
+
raise ArgumentError,"Unsupported language '#{language}'"
|
195
|
+
end
|
196
|
+
filename = File.join("/tmp/passenger-link-check-#{Process.pid}.c")
|
197
|
+
File.open(filename, "w") do |f|
|
198
|
+
f.puts(source)
|
199
|
+
end
|
200
|
+
begin
|
201
|
+
return system("(#{compiler} #{flags} '#{filename}' -o '#{filename}.out') >/dev/null 2>/dev/null")
|
202
|
+
ensure
|
203
|
+
File.unlink(filename) rescue nil
|
204
|
+
File.unlink("#{filename}.out") rescue nil
|
205
|
+
end
|
206
|
+
end
|
207
|
+
private_class_method :try_link
|
208
|
+
|
209
|
+
def self.try_compile_and_run(language, source, flags = nil)
|
210
|
+
if language == :c
|
211
|
+
compiler = cc
|
212
|
+
elsif language == :cxx
|
213
|
+
compiler = cxx
|
214
|
+
else
|
215
|
+
raise ArgumentError,"Unsupported language '#{language}'"
|
216
|
+
end
|
217
|
+
filename = File.join("/tmp/passenger-compile-check-#{Process.pid}.c")
|
218
|
+
File.open(filename, "w") do |f|
|
219
|
+
f.puts(source)
|
220
|
+
end
|
221
|
+
begin
|
222
|
+
if system("(#{compiler} #{flags} '#{filename}' -o '#{filename}.out') >/dev/null 2>/dev/null")
|
223
|
+
if Process.respond_to?(:spawn)
|
224
|
+
pid = Process.spawn("#{filename}.out",
|
225
|
+
:out => ["/dev/null", "w"],
|
226
|
+
:err => ["/dev/null", "w"])
|
227
|
+
|
228
|
+
else
|
229
|
+
pid = fork do
|
230
|
+
STDOUT.reopen("/dev/null", "w")
|
231
|
+
STDERR.reopen("/dev/null", "w")
|
232
|
+
exec("#{filename}.out")
|
233
|
+
end
|
234
|
+
end
|
235
|
+
pid = Process.waitpid(pid) rescue nil
|
236
|
+
return pid && $?.exitstatus == 0
|
237
|
+
else
|
238
|
+
return false
|
239
|
+
end
|
240
|
+
ensure
|
241
|
+
File.unlink(filename) rescue nil
|
242
|
+
File.unlink("#{filename}.out") rescue nil
|
243
|
+
end
|
244
|
+
end
|
245
|
+
private_class_method :try_compile_and_run
|
158
246
|
end
|
159
247
|
|
160
248
|
end # module PhusionPassenger
|
@@ -29,20 +29,6 @@ require 'phusion_passenger/platform_info/operating_system'
|
|
29
29
|
module PhusionPassenger
|
30
30
|
|
31
31
|
module PlatformInfo
|
32
|
-
# Returns the host machine's CPU architecture. Please note that this may not be the
|
33
|
-
# same as the Ruby interpreter's CPU architecture because the Ruby interpreter may
|
34
|
-
# be running on a different architectural mode than the default one.
|
35
|
-
def self.cpu_architecture
|
36
|
-
result = `uname -p`.strip
|
37
|
-
# On some systems 'uname -p' returns something like
|
38
|
-
# 'Intel(R) Pentium(R) M processor 1400MHz'.
|
39
|
-
if result == "unknown" || result =~ / /
|
40
|
-
result = `uname -m`.strip
|
41
|
-
end
|
42
|
-
return result
|
43
|
-
end
|
44
|
-
memoize :cpu_architecture
|
45
|
-
|
46
32
|
# Returns an array of identifiers that describe the current Ruby
|
47
33
|
# interpreter's extension binary compatibility. A Ruby extension
|
48
34
|
# compiled for a certain Ruby interpreter can also be loaded on
|
@@ -85,7 +71,7 @@ module PlatformInfo
|
|
85
71
|
elsif RUBY_PLATFORM == "java"
|
86
72
|
ruby_arch = "java"
|
87
73
|
else
|
88
|
-
ruby_arch =
|
74
|
+
ruby_arch = cpu_architectures[0]
|
89
75
|
end
|
90
76
|
return [ruby_engine, ruby_ext_version, ruby_arch, os_name]
|
91
77
|
end
|
@@ -130,14 +116,14 @@ module PlatformInfo
|
|
130
116
|
os_version = "#{components[0]}.#{components[1]}"
|
131
117
|
os_runtime = os_version
|
132
118
|
|
133
|
-
os_arch =
|
119
|
+
os_arch = cpu_architectures[0]
|
134
120
|
if os_version >= "10.5" && os_arch =~ /^i.86$/
|
135
121
|
# On Snow Leopard, 'uname -m' returns i386 but
|
136
122
|
# we *know* that everything is x86_64 by default.
|
137
123
|
os_arch = "x86_64"
|
138
124
|
end
|
139
125
|
else
|
140
|
-
os_arch =
|
126
|
+
os_arch = cpu_architectures[0]
|
141
127
|
|
142
128
|
cpp = find_command('cpp')
|
143
129
|
if cpp
|