passenger 2.2.15 → 3.0.0.pre1
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 +21 -12
- data/LICENSE +1 -1
- data/NEWS +8 -1
- data/PACKAGING.TXT +25 -0
- data/Rakefile +28 -891
- data/bin/passenger +32 -0
- data/bin/passenger-config +5 -5
- data/bin/passenger-install-apache2-module +37 -24
- data/bin/passenger-install-nginx-module +48 -46
- data/bin/passenger-make-enterprisey +8 -9
- data/bin/passenger-memory-stats +20 -150
- data/bin/passenger-status +130 -44
- data/bin/passenger-stress-test +5 -4
- data/build/agents.rb +73 -0
- data/build/apache2.rb +165 -0
- data/build/basics.rb +81 -0
- data/build/common_library.rb +198 -0
- data/build/config.rb +35 -0
- data/{misc/rake/cplusplus.rb → build/cplusplus_support.rb} +1 -1
- data/build/cxx_tests.rb +205 -0
- data/build/documentation.rb +77 -0
- data/{misc/rake → build}/gempackagetask.rb +1 -1
- data/build/integration_tests.rb +57 -0
- data/build/misc.rb +146 -0
- data/build/nginx.rb +64 -0
- data/build/oxt_tests.rb +52 -0
- data/{misc/rake → build}/packagetask.rb +0 -0
- data/build/packaging.rb +189 -0
- data/{misc/rake/extensions.rb → build/rake_extensions.rb} +1 -1
- data/{misc/rake → build}/rdoctask.rb +0 -0
- data/build/ruby_extension.rb +46 -0
- data/build/ruby_tests.rb +42 -0
- data/build/test_basics.rb +31 -0
- data/doc/ApplicationPool algorithm.txt +447 -234
- data/doc/Architectural overview.html +47 -56
- data/doc/Doxyfile +1 -1
- data/doc/Security of user switching support.html +46 -57
- data/doc/Users guide Apache.html +1033 -306
- data/doc/Users guide Apache.txt +419 -99
- data/doc/Users guide Nginx.html +1252 -253
- data/doc/Users guide Nginx.txt +711 -87
- data/doc/Users guide Standalone.html +603 -0
- data/doc/Users guide Standalone.txt +40 -0
- data/doc/cxxapi/AbstractSpawnManager_8h_source.html +141 -0
- data/doc/cxxapi/Account_8h_source.html +206 -0
- data/doc/cxxapi/AccountsDatabase_8h_source.html +161 -0
- data/doc/cxxapi/AgentBase_8h_source.html +70 -0
- data/doc/cxxapi/AgentsStarter_8h_source.html +112 -0
- data/doc/cxxapi/BCrypt_8h_source.html +104 -0
- data/doc/cxxapi/Blowfish_8h_source.html +134 -0
- data/doc/cxxapi/Bucket_8h_source.html +4 -3
- data/doc/cxxapi/Constants_8h_source.html +79 -0
- data/doc/cxxapi/ContentHandler_8h_source.html +95 -0
- data/doc/cxxapi/DirectoryMapper_8h_source.html +9 -8
- data/doc/cxxapi/EventedClient_8h_source.html +629 -0
- data/doc/cxxapi/EventedMessageServer_8h_source.html +358 -0
- data/doc/cxxapi/EventedServer_8h_source.html +326 -0
- data/doc/cxxapi/Exceptions_8h_source.html +366 -0
- data/doc/cxxapi/FileDescriptor_8h_source.html +260 -0
- data/doc/cxxapi/Hooks_8h_source.html +2 -1
- data/doc/cxxapi/HttpStatusExtractor_8h_source.html +382 -0
- data/doc/cxxapi/Logging_8h_source.html +726 -0
- data/doc/cxxapi/MessageChannel_8h_source.html +852 -0
- data/doc/cxxapi/MessageClient_8h_source.html +328 -0
- data/doc/cxxapi/MessageReadersWriters_8h_source.html +539 -0
- data/doc/cxxapi/MessageServer_8h_source.html +606 -0
- data/doc/cxxapi/PoolOptions_8h_source.html +548 -0
- data/doc/cxxapi/Process_8h_source.html +286 -0
- data/doc/cxxapi/RandomGenerator_8h_source.html +191 -0
- data/doc/cxxapi/ResourceLocator_8h_source.html +115 -0
- data/doc/cxxapi/ScgiRequestParser_8h_source.html +406 -0
- data/doc/cxxapi/ServerInstanceDir_8h_source.html +374 -0
- data/doc/cxxapi/Session_8h_source.html +501 -0
- data/doc/cxxapi/SpawnManager_8h_source.html +647 -0
- data/doc/cxxapi/StaticContentHandler_8h_source.html +68 -0
- data/doc/cxxapi/StaticString_8h_source.html +254 -0
- data/doc/cxxapi/StringListCreator_8h_source.html +114 -0
- data/doc/cxxapi/Utils_8h_source.html +442 -0
- data/doc/cxxapi/annotated.html +46 -0
- data/doc/cxxapi/apache2_2Configuration_8h_source.html +82 -0
- data/doc/cxxapi/classAgentWatcher-members.html +30 -26
- data/doc/cxxapi/classAgentWatcher.html +168 -194
- data/doc/cxxapi/classClient-members.html +14 -11
- data/doc/cxxapi/classClient.html +35 -35
- data/doc/cxxapi/classHooks-members.html +2 -0
- data/doc/cxxapi/classHooks.html +2 -0
- data/doc/cxxapi/classPassenger_1_1AbstractSpawnManager-members.html +16 -13
- data/doc/cxxapi/classPassenger_1_1AbstractSpawnManager.html +78 -82
- data/doc/cxxapi/classPassenger_1_1ArgumentException-members.html +12 -9
- data/doc/cxxapi/classPassenger_1_1ArgumentException.html +26 -22
- data/doc/cxxapi/classPassenger_1_1ArrayMessage-members.html +37 -0
- data/doc/cxxapi/classPassenger_1_1ArrayMessage.html +113 -0
- data/doc/cxxapi/classPassenger_1_1BufferedUpload-members.html +14 -11
- data/doc/cxxapi/classPassenger_1_1BufferedUpload.html +41 -42
- data/doc/cxxapi/classPassenger_1_1BusyException-members.html +12 -9
- data/doc/cxxapi/classPassenger_1_1BusyException.html +24 -20
- data/doc/cxxapi/classPassenger_1_1ConfigurationException-members.html +12 -9
- data/doc/cxxapi/classPassenger_1_1ConfigurationException.html +23 -19
- data/doc/cxxapi/classPassenger_1_1DirectoryMapper-members.html +2 -0
- data/doc/cxxapi/classPassenger_1_1DirectoryMapper.html +8 -6
- data/doc/cxxapi/classPassenger_1_1EOFException-members.html +12 -9
- data/doc/cxxapi/classPassenger_1_1EOFException.html +27 -23
- data/doc/cxxapi/classPassenger_1_1EventFd-members.html +12 -9
- data/doc/cxxapi/classPassenger_1_1EventFd.html +24 -21
- data/doc/cxxapi/classPassenger_1_1EventedClient-members.html +54 -0
- data/doc/cxxapi/classPassenger_1_1EventedClient.html +436 -0
- data/doc/cxxapi/classPassenger_1_1EventedMessageServer-members.html +37 -0
- data/doc/cxxapi/classPassenger_1_1EventedMessageServer.html +59 -0
- data/doc/cxxapi/classPassenger_1_1EventedMessageServer__inherit__graph.map +3 -0
- data/doc/cxxapi/classPassenger_1_1EventedMessageServer__inherit__graph.md5 +1 -0
- data/doc/cxxapi/classPassenger_1_1EventedMessageServer__inherit__graph.png +0 -0
- data/doc/cxxapi/classPassenger_1_1EventedServer-members.html +37 -0
- data/doc/cxxapi/classPassenger_1_1EventedServer.html +93 -0
- data/doc/cxxapi/classPassenger_1_1EventedServer__inherit__graph.map +3 -0
- data/doc/cxxapi/classPassenger_1_1EventedServer__inherit__graph.md5 +1 -0
- data/doc/cxxapi/classPassenger_1_1EventedServer__inherit__graph.png +0 -0
- data/doc/cxxapi/classPassenger_1_1FileDescriptor-members.html +16 -13
- data/doc/cxxapi/classPassenger_1_1FileDescriptor.html +63 -70
- data/doc/cxxapi/classPassenger_1_1FileNotFoundException-members.html +12 -9
- data/doc/cxxapi/classPassenger_1_1FileNotFoundException.html +26 -22
- data/doc/cxxapi/classPassenger_1_1FileSystemException-members.html +17 -14
- data/doc/cxxapi/classPassenger_1_1FileSystemException.html +32 -30
- data/doc/cxxapi/classPassenger_1_1HttpStatusExtractor-members.html +15 -12
- data/doc/cxxapi/classPassenger_1_1HttpStatusExtractor.html +59 -59
- data/doc/cxxapi/classPassenger_1_1IOException-members.html +12 -9
- data/doc/cxxapi/classPassenger_1_1IOException.html +27 -23
- data/doc/cxxapi/classPassenger_1_1MessageChannel-members.html +36 -33
- data/doc/cxxapi/classPassenger_1_1MessageChannel.html +326 -344
- data/doc/cxxapi/classPassenger_1_1MessageServer-members.html +25 -22
- data/doc/cxxapi/classPassenger_1_1MessageServer.html +160 -191
- data/doc/cxxapi/classPassenger_1_1MessageServer_1_1ClientContext-members.html +12 -9
- data/doc/cxxapi/classPassenger_1_1MessageServer_1_1ClientContext.html +29 -27
- data/doc/cxxapi/classPassenger_1_1MessageServer_1_1ClientContext__inherit__graph.map +3 -1
- data/doc/cxxapi/classPassenger_1_1MessageServer_1_1ClientContext__inherit__graph.md5 +1 -1
- data/doc/cxxapi/classPassenger_1_1MessageServer_1_1ClientContext__inherit__graph.png +0 -0
- data/doc/cxxapi/classPassenger_1_1MessageServer_1_1CommonClientContext-members.html +17 -14
- data/doc/cxxapi/classPassenger_1_1MessageServer_1_1CommonClientContext.html +69 -79
- data/doc/cxxapi/classPassenger_1_1MessageServer_1_1CommonClientContext__inherit__graph.map +3 -1
- data/doc/cxxapi/classPassenger_1_1MessageServer_1_1CommonClientContext__inherit__graph.md5 +1 -1
- data/doc/cxxapi/classPassenger_1_1MessageServer_1_1CommonClientContext__inherit__graph.png +0 -0
- data/doc/cxxapi/classPassenger_1_1MessageServer_1_1Handler-members.html +15 -12
- data/doc/cxxapi/classPassenger_1_1MessageServer_1_1Handler.html +60 -63
- data/doc/cxxapi/classPassenger_1_1Process-members.html +20 -17
- data/doc/cxxapi/classPassenger_1_1Process.html +88 -95
- data/doc/cxxapi/classPassenger_1_1RandomGenerator-members.html +13 -10
- data/doc/cxxapi/classPassenger_1_1RandomGenerator.html +36 -35
- data/doc/cxxapi/classPassenger_1_1RuntimeException-members.html +12 -9
- data/doc/cxxapi/classPassenger_1_1RuntimeException.html +24 -20
- data/doc/cxxapi/classPassenger_1_1ScalarMessage-members.html +37 -0
- data/doc/cxxapi/classPassenger_1_1ScalarMessage.html +76 -0
- data/doc/cxxapi/classPassenger_1_1ScgiRequestParser-members.html +26 -23
- data/doc/cxxapi/classPassenger_1_1ScgiRequestParser.html +121 -138
- data/doc/cxxapi/classPassenger_1_1SecurityException-members.html +12 -9
- data/doc/cxxapi/classPassenger_1_1SecurityException.html +26 -22
- data/doc/cxxapi/classPassenger_1_1Session-members.html +29 -26
- data/doc/cxxapi/classPassenger_1_1Session.html +219 -240
- data/doc/cxxapi/classPassenger_1_1SpawnException-members.html +14 -11
- data/doc/cxxapi/classPassenger_1_1SpawnException.html +36 -37
- data/doc/cxxapi/classPassenger_1_1SpawnManager-members.html +18 -15
- data/doc/cxxapi/classPassenger_1_1SpawnManager.html +115 -110
- data/doc/cxxapi/classPassenger_1_1StandardSession-members.html +30 -27
- data/doc/cxxapi/classPassenger_1_1StandardSession.html +163 -184
- data/doc/cxxapi/classPassenger_1_1StaticString-members.html +12 -9
- data/doc/cxxapi/classPassenger_1_1StaticString.html +27 -25
- data/doc/cxxapi/classPassenger_1_1SystemException-members.html +16 -13
- data/doc/cxxapi/classPassenger_1_1SystemException.html +65 -67
- data/doc/cxxapi/classPassenger_1_1TimeRetrievalException-members.html +16 -13
- data/doc/cxxapi/classPassenger_1_1TimeRetrievalException.html +27 -23
- data/doc/cxxapi/classPassenger_1_1TimeoutException-members.html +12 -9
- data/doc/cxxapi/classPassenger_1_1TimeoutException.html +24 -20
- data/doc/cxxapi/classPassenger_1_1Uint16Message-members.html +36 -0
- data/doc/cxxapi/classPassenger_1_1Uint16Message.html +51 -0
- data/doc/cxxapi/classPassenger_1_1Uint32Message-members.html +36 -0
- data/doc/cxxapi/classPassenger_1_1Uint32Message.html +51 -0
- data/doc/cxxapi/classServer-members.html +12 -9
- data/doc/cxxapi/classServer.html +23 -20
- data/doc/cxxapi/classServerInstanceDirToucher-members.html +12 -9
- data/doc/cxxapi/classServerInstanceDirToucher.html +21 -17
- data/doc/cxxapi/classes.html +18 -4
- data/doc/cxxapi/definitions_8h_source.html +1 -0
- data/doc/cxxapi/files.html +36 -1
- data/doc/cxxapi/functions.html +53 -21
- data/doc/cxxapi/functions_0x62.html +82 -0
- data/doc/cxxapi/functions_0x63.html +99 -0
- data/doc/cxxapi/functions_0x64.html +95 -0
- data/doc/cxxapi/functions_0x65.html +88 -0
- data/doc/cxxapi/functions_0x66.html +100 -0
- data/doc/cxxapi/functions_0x67.html +170 -0
- data/doc/cxxapi/functions_0x68.html +88 -0
- data/doc/cxxapi/functions_0x69.html +93 -0
- data/doc/cxxapi/functions_0x6b.html +80 -0
- data/doc/cxxapi/functions_0x6c.html +88 -0
- data/doc/cxxapi/functions_0x6d.html +88 -0
- data/doc/cxxapi/functions_0x6e.html +86 -0
- data/doc/cxxapi/functions_0x6f.html +94 -0
- data/doc/cxxapi/functions_0x70.html +94 -0
- data/doc/cxxapi/functions_0x72.html +110 -0
- data/doc/cxxapi/functions_0x73.html +171 -0
- data/doc/cxxapi/functions_0x74.html +85 -0
- data/doc/cxxapi/functions_0x75.html +85 -0
- data/doc/cxxapi/functions_0x77.html +92 -0
- data/doc/cxxapi/functions_0x7e.html +79 -0
- data/doc/cxxapi/functions_enum.html +14 -12
- data/doc/cxxapi/functions_eval.html +22 -16
- data/doc/cxxapi/functions_func.html +460 -1
- data/doc/cxxapi/functions_vars.html +163 -63
- data/doc/cxxapi/graph_legend.html +1 -0
- data/doc/cxxapi/graph_legend.png +0 -0
- data/doc/cxxapi/group__Core.html +2 -2
- data/doc/cxxapi/group__Core.map +1 -2
- data/doc/cxxapi/group__Core.png +0 -0
- data/doc/cxxapi/group__Exceptions.html +32 -40
- data/doc/cxxapi/group__Hooks.html +2 -1
- data/doc/cxxapi/group__Hooks.map +1 -1
- data/doc/cxxapi/group__Hooks.png +0 -0
- data/doc/cxxapi/group__Support.html +509 -0
- data/doc/cxxapi/hierarchy.html +66 -62
- data/doc/cxxapi/inherit__graph__10.map +3 -1
- data/doc/cxxapi/inherit__graph__10.md5 +1 -1
- data/doc/cxxapi/inherit__graph__10.png +0 -0
- data/doc/cxxapi/inherit__graph__11.map +4 -1
- data/doc/cxxapi/inherit__graph__11.md5 +1 -1
- data/doc/cxxapi/inherit__graph__11.png +0 -0
- data/doc/cxxapi/inherit__graph__12.map +3 -1
- data/doc/cxxapi/inherit__graph__12.md5 +1 -1
- data/doc/cxxapi/inherit__graph__12.png +0 -0
- data/doc/cxxapi/inherit__graph__13.map +3 -1
- data/doc/cxxapi/inherit__graph__13.md5 +1 -1
- data/doc/cxxapi/inherit__graph__13.png +0 -0
- data/doc/cxxapi/inherit__graph__14.map +3 -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 +5 -1
- 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 -3
- 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 +3 -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 +4 -1
- 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 +3 -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 +3 -2
- 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 +3 -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 +3 -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 +3 -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 +3 -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 +3 -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 +3 -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 +3 -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 +4 -1
- 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 +3 -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 +3 -2
- 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 +3 -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 +5 -1
- 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 +3 -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 +3 -3
- 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 +3 -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 +3 -1
- data/doc/cxxapi/inherit__graph__37.md5 +1 -1
- data/doc/cxxapi/inherit__graph__37.png +0 -0
- data/doc/cxxapi/inherit__graph__4.map +3 -1
- data/doc/cxxapi/inherit__graph__4.md5 +1 -1
- data/doc/cxxapi/inherit__graph__4.png +0 -0
- data/doc/cxxapi/inherit__graph__5.map +3 -1
- data/doc/cxxapi/inherit__graph__5.md5 +1 -1
- data/doc/cxxapi/inherit__graph__5.png +0 -0
- data/doc/cxxapi/inherit__graph__6.map +3 -1
- data/doc/cxxapi/inherit__graph__6.md5 +1 -1
- data/doc/cxxapi/inherit__graph__6.png +0 -0
- data/doc/cxxapi/inherit__graph__7.map +3 -1
- data/doc/cxxapi/inherit__graph__7.md5 +1 -1
- data/doc/cxxapi/inherit__graph__7.png +0 -0
- data/doc/cxxapi/inherit__graph__8.map +3 -1
- data/doc/cxxapi/inherit__graph__8.md5 +1 -1
- data/doc/cxxapi/inherit__graph__8.png +0 -0
- data/doc/cxxapi/inherit__graph__9.map +3 -1
- data/doc/cxxapi/inherit__graph__9.md5 +1 -1
- data/doc/cxxapi/inherit__graph__9.png +0 -0
- data/doc/cxxapi/inherits.html +123 -126
- data/doc/cxxapi/main.html +1 -0
- data/doc/cxxapi/modules.html +2 -1
- data/doc/cxxapi/namespacePassenger.html +263 -492
- data/doc/cxxapi/namespacemembers.html +68 -96
- data/doc/cxxapi/namespacemembers_enum.html +14 -12
- data/doc/cxxapi/namespacemembers_eval.html +20 -15
- data/doc/cxxapi/namespacemembers_func.html +52 -88
- data/doc/cxxapi/namespacemembers_type.html +18 -14
- data/doc/cxxapi/namespaces.html +12 -9
- data/doc/cxxapi/nginx_2Configuration_8h_source.html +125 -0
- data/doc/cxxapi/ngx__http__passenger__module_8h_source.html +94 -0
- data/doc/cxxapi/structPassenger_1_1MessageServer_1_1DisconnectEventBroadcastGuard-members.html +12 -9
- data/doc/cxxapi/structPassenger_1_1MessageServer_1_1DisconnectEventBroadcastGuard.html +24 -22
- data/doc/cxxapi/structPassenger_1_1PoolOptions-members.html +43 -38
- data/doc/cxxapi/structPassenger_1_1PoolOptions.html +275 -325
- data/doc/cxxapi/structPassenger_1_1StaticString_1_1Hash-members.html +12 -9
- data/doc/cxxapi/structPassenger_1_1StaticString_1_1Hash.html +24 -22
- data/doc/cxxapi/tree.html +152 -7
- data/doc/users_guide_snippets/{analysis_and_system_maintenance_tools.txt → analysis_and_system_maintenance.txt} +58 -1
- data/doc/users_guide_snippets/appendix_c_spawning_methods.txt +1 -2
- data/doc/users_guide_snippets/global_queueing_explained.txt +1 -5
- data/doc/users_guide_snippets/{rails_spawn_method.txt → passenger_spawn_method.txt} +9 -8
- data/doc/users_guide_snippets/tips.txt +12 -6
- data/doc/users_guide_snippets/under_the_hood/page_caching_support.txt +22 -0
- data/ext/apache2/Bucket.cpp +4 -4
- data/ext/apache2/Bucket.h +3 -3
- data/ext/apache2/Configuration.cpp +278 -381
- data/ext/apache2/Configuration.h +3 -357
- data/ext/apache2/Configuration.hpp +461 -0
- data/ext/apache2/DirectoryMapper.h +3 -3
- data/ext/apache2/HelperAgent.cpp +359 -0
- data/ext/apache2/Hooks.cpp +339 -226
- data/ext/apache2/Hooks.h +1 -1
- data/ext/apache2/mod_passenger.c +10 -4
- data/ext/boost/algorithm/string/case_conv.hpp +4 -4
- data/ext/boost/algorithm/string/concept.hpp +2 -2
- data/ext/boost/algorithm/string/detail/case_conv.hpp +18 -9
- data/ext/boost/algorithm/string/detail/find_format.hpp +44 -43
- data/ext/boost/algorithm/string/detail/find_format_all.hpp +56 -56
- data/ext/boost/algorithm/string/detail/find_format_store.hpp +7 -0
- data/ext/boost/algorithm/string/detail/finder.hpp +14 -14
- data/ext/boost/algorithm/string/detail/formatter.hpp +2 -2
- data/ext/boost/algorithm/string/detail/replace_storage.hpp +3 -3
- data/ext/boost/algorithm/string/detail/sequence.hpp +3 -3
- data/ext/boost/algorithm/string/erase.hpp +98 -98
- data/ext/boost/algorithm/string/find_format.hpp +56 -38
- data/ext/boost/algorithm/string/finder.hpp +6 -6
- data/ext/boost/algorithm/string/formatter.hpp +1 -1
- data/ext/boost/algorithm/string/replace.hpp +99 -99
- data/ext/boost/bind.hpp +5 -1670
- data/ext/boost/bind/bind.hpp +1751 -0
- data/ext/boost/bind/bind_mf2_cc.hpp +228 -0
- data/ext/boost/bind/mem_fn.hpp +389 -0
- data/ext/boost/bind/mem_fn_template.hpp +54 -27
- data/ext/boost/bind/placeholders.hpp +3 -2
- data/ext/boost/concept_check.hpp +10 -0
- data/ext/boost/config/abi/msvc_prefix.hpp +15 -1
- data/ext/boost/config/abi_prefix.hpp +1 -1
- data/ext/boost/config/abi_suffix.hpp +3 -2
- data/ext/boost/config/auto_link.hpp +6 -1
- data/ext/boost/config/compiler/borland.hpp +75 -17
- data/ext/boost/config/compiler/codegear.hpp +163 -0
- data/ext/boost/config/compiler/common_edg.hpp +35 -0
- data/ext/boost/config/compiler/digitalmars.hpp +26 -0
- data/ext/boost/config/compiler/gcc.hpp +69 -14
- data/ext/boost/config/compiler/hp_acc.hpp +32 -0
- data/ext/boost/config/compiler/intel.hpp +13 -2
- data/ext/boost/config/compiler/kai.hpp +0 -2
- data/ext/boost/config/compiler/metrowerks.hpp +29 -1
- data/ext/boost/config/compiler/mpw.hpp +30 -0
- data/ext/boost/config/compiler/pgi.hpp +37 -0
- data/ext/boost/config/compiler/sgi_mipspro.hpp +1 -0
- data/ext/boost/config/compiler/sunpro_cc.hpp +39 -7
- data/ext/boost/config/compiler/vacpp.hpp +31 -3
- data/ext/boost/config/compiler/visualc.hpp +72 -5
- data/ext/boost/config/no_tr1/cmath.hpp +28 -0
- data/ext/boost/config/platform/bsd.hpp +16 -3
- data/ext/boost/config/platform/hpux.hpp +3 -0
- data/ext/boost/config/platform/macos.hpp +8 -0
- data/ext/boost/config/platform/solaris.hpp +7 -0
- data/ext/boost/config/platform/vxworks.hpp +31 -0
- data/ext/boost/config/select_compiler_config.hpp +4 -0
- data/ext/boost/config/select_platform_config.hpp +6 -2
- data/ext/boost/config/select_stdlib_config.hpp +17 -8
- data/ext/boost/config/stdlib/dinkumware.hpp +34 -2
- data/ext/boost/config/stdlib/libcomo.hpp +25 -0
- data/ext/boost/config/stdlib/libstdcpp3.hpp +56 -2
- data/ext/boost/config/stdlib/modena.hpp +25 -0
- data/ext/boost/config/stdlib/msl.hpp +24 -0
- data/ext/boost/config/stdlib/roguewave.hpp +26 -0
- data/ext/boost/config/stdlib/sgi.hpp +25 -0
- data/ext/boost/config/stdlib/stlport.hpp +36 -1
- data/ext/boost/config/stdlib/vacpp.hpp +25 -0
- data/ext/boost/config/suffix.hpp +67 -32
- data/ext/boost/config/warning_disable.hpp +47 -0
- data/ext/boost/cstdint.hpp +62 -36
- data/ext/boost/date_time/c_time.hpp +28 -12
- data/ext/boost/date_time/compiler_config.hpp +27 -5
- data/ext/boost/date_time/constrained_value.hpp +36 -13
- data/ext/boost/date_time/date.hpp +44 -33
- data/ext/boost/date_time/date_duration.hpp +13 -14
- data/ext/boost/date_time/date_facet.hpp +215 -226
- data/ext/boost/date_time/date_generator_formatter.hpp +22 -20
- data/ext/boost/date_time/date_generator_parser.hpp +52 -51
- data/ext/boost/date_time/date_generators.hpp +16 -16
- data/ext/boost/date_time/date_parsing.hpp +115 -98
- data/ext/boost/date_time/filetime_functions.hpp +133 -41
- data/ext/boost/date_time/format_date_parser.hpp +22 -10
- data/ext/boost/date_time/gregorian/conversion.hpp +32 -39
- data/ext/boost/date_time/gregorian/greg_calendar.hpp +15 -14
- data/ext/boost/date_time/gregorian/greg_date.hpp +19 -18
- data/ext/boost/date_time/gregorian/greg_duration.hpp +106 -10
- data/ext/boost/date_time/gregorian/greg_duration_types.hpp +16 -7
- data/ext/boost/date_time/gregorian/greg_weekday.hpp +2 -2
- data/ext/boost/date_time/gregorian/gregorian_io.hpp +11 -4
- data/ext/boost/date_time/gregorian_calendar.hpp +8 -8
- data/ext/boost/date_time/gregorian_calendar.ipp +30 -30
- data/ext/boost/date_time/int_adapter.hpp +4 -2
- data/ext/boost/date_time/microsec_time_clock.hpp +39 -117
- data/ext/boost/date_time/period_parser.hpp +17 -15
- data/ext/boost/date_time/posix_time/conversion.hpp +28 -29
- data/ext/boost/date_time/posix_time/posix_time_config.hpp +19 -19
- data/ext/boost/date_time/posix_time/posix_time_io.hpp +31 -38
- data/ext/boost/date_time/posix_time/time_formatters.hpp +32 -32
- data/ext/boost/date_time/string_parse_tree.hpp +46 -46
- data/ext/boost/date_time/strings_from_facet.hpp +7 -5
- data/ext/boost/date_time/time.hpp +7 -6
- data/ext/boost/date_time/time_defs.hpp +12 -2
- data/ext/boost/date_time/time_duration.hpp +27 -26
- data/ext/boost/date_time/time_facet.hpp +386 -321
- data/ext/boost/date_time/time_formatting_streams.hpp +8 -5
- data/ext/boost/date_time/time_resolution_traits.hpp +29 -25
- data/ext/boost/date_time/time_system_split.hpp +7 -13
- data/ext/boost/date_time/wrapping_int.hpp +21 -15
- data/ext/boost/detail/call_traits.hpp +1 -1
- data/ext/boost/detail/endian.hpp +4 -4
- data/ext/boost/detail/no_exceptions_support.hpp +87 -0
- data/ext/boost/detail/sp_typeinfo.hpp +50 -4
- data/ext/boost/detail/workaround.hpp +63 -3
- data/ext/boost/enable_shared_from_this.hpp +4 -59
- data/ext/boost/exception/current_exception_cast.hpp +43 -0
- data/ext/boost/exception/detail/attribute_noreturn.hpp +17 -0
- data/ext/boost/exception/detail/error_info_impl.hpp +75 -0
- data/ext/boost/exception/detail/exception_ptr.hpp +490 -0
- data/ext/boost/exception/detail/is_output_streamable.hpp +47 -0
- data/ext/boost/exception/detail/object_hex_dump.hpp +50 -0
- data/ext/boost/exception/detail/type_info.hpp +79 -0
- data/ext/boost/exception/diagnostic_information.hpp +182 -0
- data/ext/boost/exception/exception.hpp +422 -0
- data/ext/boost/exception/get_error_info.hpp +130 -0
- data/ext/boost/exception/info.hpp +167 -0
- data/ext/boost/exception/to_string.hpp +83 -0
- data/ext/boost/exception/to_string_stub.hpp +109 -0
- data/ext/boost/exception_ptr.hpp +11 -0
- data/ext/boost/function/detail/prologue.hpp +2 -1
- data/ext/boost/function/function_base.hpp +270 -128
- data/ext/boost/function/function_fwd.hpp +70 -0
- data/ext/boost/function/function_template.hpp +319 -130
- data/ext/boost/get_pointer.hpp +5 -1
- data/ext/boost/integer.hpp +253 -0
- data/ext/boost/integer_fwd.hpp +174 -0
- data/ext/boost/integer_traits.hpp +26 -1
- data/ext/boost/io/ios_state.hpp +8 -0
- data/ext/boost/iterator/detail/config_def.hpp +4 -2
- data/ext/boost/iterator/iterator_adaptor.hpp +7 -2
- data/ext/boost/iterator/iterator_facade.hpp +1 -2
- data/ext/boost/lexical_cast.hpp +113 -105
- data/ext/boost/limits.hpp +1 -1
- data/ext/boost/mem_fn.hpp +5 -370
- data/ext/boost/memory_order.hpp +53 -0
- data/ext/boost/mpl/always.hpp +3 -3
- data/ext/boost/mpl/and.hpp +3 -3
- data/ext/boost/mpl/apply.hpp +3 -3
- data/ext/boost/mpl/apply_fwd.hpp +3 -3
- data/ext/boost/mpl/apply_wrap.hpp +37 -6
- data/ext/boost/mpl/arg.hpp +3 -3
- data/ext/boost/mpl/arg_fwd.hpp +3 -3
- data/ext/boost/mpl/assert.hpp +6 -6
- data/ext/boost/mpl/aux_/adl_barrier.hpp +3 -3
- data/ext/boost/mpl/aux_/arg_typedef.hpp +3 -3
- data/ext/boost/mpl/aux_/arity.hpp +3 -3
- data/ext/boost/mpl/aux_/arity_spec.hpp +3 -3
- data/ext/boost/mpl/aux_/common_name_wknd.hpp +3 -3
- data/ext/boost/mpl/aux_/config/adl.hpp +4 -4
- data/ext/boost/mpl/aux_/config/arrays.hpp +4 -4
- data/ext/boost/mpl/aux_/config/bcc.hpp +28 -0
- data/ext/boost/mpl/aux_/config/bind.hpp +4 -4
- data/ext/boost/mpl/aux_/config/compiler.hpp +8 -6
- data/ext/boost/mpl/aux_/config/ctps.hpp +3 -3
- data/ext/boost/mpl/aux_/config/dtp.hpp +5 -5
- data/ext/boost/mpl/aux_/config/eti.hpp +3 -3
- data/ext/boost/mpl/aux_/config/gcc.hpp +3 -3
- data/ext/boost/mpl/aux_/config/has_apply.hpp +3 -3
- data/ext/boost/mpl/aux_/config/has_xxx.hpp +3 -3
- data/ext/boost/mpl/aux_/config/integral.hpp +4 -4
- data/ext/boost/mpl/aux_/config/intel.hpp +3 -3
- data/ext/boost/mpl/aux_/config/lambda.hpp +3 -3
- data/ext/boost/mpl/aux_/config/msvc.hpp +3 -3
- data/ext/boost/mpl/aux_/config/msvc_typename.hpp +3 -3
- data/ext/boost/mpl/aux_/config/nttp.hpp +3 -3
- data/ext/boost/mpl/aux_/config/overload_resolution.hpp +3 -3
- data/ext/boost/mpl/aux_/config/pp_counter.hpp +3 -3
- data/ext/boost/mpl/aux_/config/preprocessor.hpp +4 -4
- data/ext/boost/mpl/aux_/config/static_constant.hpp +3 -3
- data/ext/boost/mpl/aux_/config/ttp.hpp +4 -4
- data/ext/boost/mpl/aux_/config/use_preprocessed.hpp +3 -3
- data/ext/boost/mpl/aux_/config/workaround.hpp +3 -3
- data/ext/boost/mpl/aux_/full_lambda.hpp +3 -3
- data/ext/boost/mpl/aux_/has_apply.hpp +3 -3
- data/ext/boost/mpl/aux_/has_type.hpp +3 -3
- data/ext/boost/mpl/aux_/include_preprocessed.hpp +3 -3
- data/ext/boost/mpl/aux_/integral_wrapper.hpp +3 -3
- data/ext/boost/mpl/aux_/lambda_arity_param.hpp +3 -3
- data/ext/boost/mpl/aux_/lambda_support.hpp +4 -4
- data/ext/boost/mpl/aux_/msvc_never_true.hpp +3 -3
- data/ext/boost/mpl/aux_/na.hpp +3 -3
- data/ext/boost/mpl/aux_/na_assert.hpp +3 -3
- data/ext/boost/mpl/aux_/na_fwd.hpp +3 -3
- data/ext/boost/mpl/aux_/na_spec.hpp +3 -3
- data/ext/boost/mpl/aux_/nested_type_wknd.hpp +3 -3
- data/ext/boost/mpl/aux_/nttp_decl.hpp +3 -3
- data/ext/boost/mpl/aux_/preprocessor/def_params_tail.hpp +3 -3
- data/ext/boost/mpl/aux_/preprocessor/enum.hpp +3 -3
- data/ext/boost/mpl/aux_/preprocessor/filter_params.hpp +3 -3
- data/ext/boost/mpl/aux_/preprocessor/params.hpp +3 -3
- data/ext/boost/mpl/aux_/preprocessor/sub.hpp +3 -3
- data/ext/boost/mpl/aux_/static_cast.hpp +3 -3
- data/ext/boost/mpl/aux_/template_arity.hpp +3 -3
- data/ext/boost/mpl/aux_/template_arity_fwd.hpp +3 -3
- data/ext/boost/mpl/aux_/type_wrapper.hpp +3 -3
- data/ext/boost/mpl/aux_/value_wknd.hpp +3 -3
- data/ext/boost/mpl/aux_/yes_no.hpp +3 -3
- data/ext/boost/mpl/bind.hpp +3 -3
- data/ext/boost/mpl/bind_fwd.hpp +3 -3
- data/ext/boost/mpl/bool.hpp +3 -3
- data/ext/boost/mpl/bool_fwd.hpp +3 -3
- data/ext/boost/mpl/eval_if.hpp +3 -3
- data/ext/boost/mpl/has_xxx.hpp +10 -8
- data/ext/boost/mpl/identity.hpp +3 -3
- data/ext/boost/mpl/if.hpp +3 -3
- data/ext/boost/mpl/int.hpp +3 -3
- data/ext/boost/mpl/int_fwd.hpp +3 -3
- data/ext/boost/mpl/integral_c.hpp +3 -3
- data/ext/boost/mpl/integral_c_fwd.hpp +3 -3
- data/ext/boost/mpl/integral_c_tag.hpp +3 -3
- data/ext/boost/mpl/lambda.hpp +3 -3
- data/ext/boost/mpl/lambda_fwd.hpp +3 -3
- data/ext/boost/mpl/limits/arity.hpp +3 -3
- data/ext/boost/mpl/logical.hpp +3 -3
- data/ext/boost/mpl/next.hpp +3 -3
- data/ext/boost/mpl/next_prior.hpp +3 -3
- data/ext/boost/mpl/not.hpp +3 -3
- data/ext/boost/mpl/or.hpp +3 -3
- data/ext/boost/mpl/placeholders.hpp +3 -3
- data/ext/boost/mpl/protect.hpp +3 -3
- data/ext/boost/mpl/quote.hpp +18 -7
- data/ext/boost/mpl/size_t.hpp +3 -3
- data/ext/boost/mpl/size_t_fwd.hpp +3 -3
- data/ext/boost/mpl/void.hpp +3 -3
- data/ext/boost/mpl/void_fwd.hpp +3 -3
- data/ext/boost/non_type.hpp +27 -27
- data/ext/boost/operators.hpp +51 -18
- data/ext/boost/preprocessor/arithmetic/detail/div_base.hpp +61 -0
- data/ext/boost/preprocessor/arithmetic/mod.hpp +39 -0
- data/ext/boost/preprocessor/comparison/less_equal.hpp +39 -0
- data/ext/boost/preprocessor/control/deduce_d.hpp +22 -0
- data/ext/boost/preprocessor/logical/not.hpp +30 -0
- data/ext/boost/preprocessor/seq/cat.hpp +48 -0
- data/ext/boost/preprocessor/seq/fold_left.hpp +1070 -0
- data/ext/boost/preprocessor/seq/transform.hpp +48 -0
- data/ext/boost/range/as_literal.hpp +10 -14
- data/ext/boost/range/begin.hpp +4 -4
- data/ext/boost/range/detail/implementation_help.hpp +4 -0
- data/ext/boost/range/end.hpp +4 -4
- data/ext/boost/range/iterator_range.hpp +31 -15
- data/ext/boost/ref.hpp +12 -1
- data/ext/boost/scoped_array.hpp +16 -0
- data/ext/boost/scoped_ptr.hpp +16 -0
- data/ext/boost/shared_ptr.hpp +2 -602
- data/ext/boost/{detail → smart_ptr}/bad_weak_ptr.hpp +4 -4
- data/ext/boost/{detail → smart_ptr/detail}/atomic_count.hpp +14 -19
- data/ext/boost/{detail → smart_ptr/detail}/atomic_count_gcc.hpp +13 -9
- data/ext/boost/{detail → smart_ptr/detail}/atomic_count_gcc_x86.hpp +5 -12
- data/ext/boost/{detail → smart_ptr/detail}/atomic_count_pthreads.hpp +5 -5
- data/ext/boost/{detail → smart_ptr/detail}/atomic_count_solaris.hpp +3 -3
- data/ext/boost/{detail → smart_ptr/detail}/atomic_count_sync.hpp +9 -5
- data/ext/boost/{detail → smart_ptr/detail}/atomic_count_win32.hpp +3 -3
- data/ext/boost/smart_ptr/detail/operator_bool.hpp +56 -0
- data/ext/boost/{detail → smart_ptr/detail}/shared_count.hpp +86 -17
- data/ext/boost/smart_ptr/detail/sp_convertible.hpp +76 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base.hpp +70 -0
- data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_acc_ia64.hpp +4 -4
- data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_cw_ppc.hpp +4 -4
- data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_cw_x86.hpp +4 -4
- data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_gcc_ia64.hpp +4 -4
- data/ext/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp +172 -0
- data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_gcc_ppc.hpp +4 -4
- data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_gcc_sparc.hpp +7 -7
- data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_gcc_x86.hpp +4 -4
- data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_nt.hpp +4 -4
- data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_pt.hpp +4 -4
- data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_solaris.hpp +4 -4
- data/ext/boost/smart_ptr/detail/sp_counted_base_spin.hpp +131 -0
- data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_sync.hpp +8 -4
- data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_w32.hpp +4 -4
- data/ext/boost/{detail → smart_ptr/detail}/sp_counted_impl.hpp +5 -5
- data/ext/boost/smart_ptr/detail/sp_has_sync.hpp +49 -0
- data/ext/boost/smart_ptr/detail/spinlock.hpp +53 -0
- data/ext/boost/smart_ptr/detail/spinlock_gcc_arm.hpp +85 -0
- data/ext/boost/smart_ptr/detail/spinlock_nt.hpp +89 -0
- data/ext/boost/smart_ptr/detail/spinlock_pool.hpp +87 -0
- data/ext/boost/smart_ptr/detail/spinlock_pt.hpp +79 -0
- data/ext/boost/smart_ptr/detail/spinlock_sync.hpp +87 -0
- data/ext/boost/smart_ptr/detail/yield_k.hpp +149 -0
- data/ext/boost/smart_ptr/enable_shared_from_this.hpp +79 -0
- data/ext/boost/smart_ptr/scoped_array.hpp +107 -0
- data/ext/boost/smart_ptr/scoped_ptr.hpp +131 -0
- data/ext/boost/smart_ptr/shared_ptr.hpp +701 -0
- data/ext/boost/smart_ptr/weak_ptr.hpp +230 -0
- data/ext/boost/src/pthread/thread.cpp +115 -203
- data/ext/boost/src/tss_null.cpp +1 -1
- data/ext/boost/static_assert.hpp +14 -4
- data/ext/boost/thread.hpp +7 -2
- data/ext/boost/thread/barrier.hpp +63 -0
- data/ext/boost/thread/detail/force_cast.hpp +39 -0
- data/ext/boost/thread/detail/move.hpp +29 -2
- data/ext/boost/thread/detail/platform.hpp +3 -3
- data/ext/boost/thread/detail/singleton.hpp +59 -0
- data/ext/boost/thread/detail/thread.hpp +496 -0
- data/ext/boost/thread/detail/thread_group.hpp +105 -0
- data/ext/boost/thread/detail/thread_heap_alloc.hpp +23 -0
- data/ext/boost/thread/detail/thread_interruption.hpp +35 -0
- data/ext/boost/thread/detail/tss_hooks.hpp +82 -0
- data/ext/boost/thread/exceptions.hpp +174 -60
- data/ext/boost/thread/future.hpp +1364 -0
- data/ext/boost/thread/locks.hpp +899 -32
- data/ext/boost/thread/once.hpp +4 -0
- data/ext/boost/thread/pthread/condition_variable.hpp +16 -21
- data/ext/boost/thread/pthread/condition_variable_fwd.hpp +37 -3
- data/ext/boost/thread/pthread/mutex.hpp +20 -7
- data/ext/boost/thread/pthread/once.hpp +7 -2
- data/ext/boost/thread/pthread/pthread_mutex_scoped_lock.hpp +5 -1
- data/ext/boost/thread/pthread/recursive_mutex.hpp +22 -5
- data/ext/boost/thread/pthread/shared_mutex.hpp +303 -0
- data/ext/boost/thread/pthread/thread_data.hpp +37 -10
- data/ext/boost/thread/pthread/thread_heap_alloc.hpp +242 -0
- data/ext/boost/thread/pthread/timespec.hpp +11 -3
- data/ext/boost/thread/shared_mutex.hpp +21 -0
- data/ext/boost/thread/thread.hpp +8 -3
- data/ext/boost/thread/thread_time.hpp +4 -0
- data/ext/boost/thread/tss.hpp +106 -13
- data/ext/boost/thread/xtime.hpp +6 -2
- data/ext/boost/throw_exception.hpp +36 -7
- data/ext/boost/token_functions.hpp +1 -1
- data/ext/boost/tokenizer.hpp +1 -1
- data/ext/boost/type_traits/add_pointer.hpp +1 -1
- data/ext/boost/type_traits/add_volatile.hpp +47 -0
- data/ext/boost/type_traits/alignment_of.hpp +29 -1
- data/ext/boost/type_traits/config.hpp +1 -1
- data/ext/boost/type_traits/conversion_traits.hpp +1 -1
- data/ext/boost/type_traits/has_trivial_destructor.hpp +42 -0
- data/ext/boost/type_traits/intrinsics.hpp +88 -1
- data/ext/boost/type_traits/is_abstract.hpp +14 -5
- data/ext/boost/type_traits/is_arithmetic.hpp +8 -0
- data/ext/boost/type_traits/is_array.hpp +3 -2
- data/ext/boost/type_traits/is_base_and_derived.hpp +254 -0
- data/ext/boost/type_traits/is_base_of.hpp +51 -0
- data/ext/boost/type_traits/is_class.hpp +12 -0
- data/ext/boost/type_traits/is_const.hpp +6 -2
- data/ext/boost/type_traits/is_convertible.hpp +14 -2
- data/ext/boost/type_traits/is_enum.hpp +10 -1
- data/ext/boost/type_traits/is_function.hpp +11 -3
- data/ext/boost/type_traits/is_fundamental.hpp +45 -0
- data/ext/boost/type_traits/is_integral.hpp +5 -0
- data/ext/boost/type_traits/is_member_function_pointer.hpp +5 -3
- data/ext/boost/type_traits/is_member_pointer.hpp +4 -2
- data/ext/boost/type_traits/is_pointer.hpp +3 -1
- data/ext/boost/type_traits/is_reference.hpp +4 -2
- data/ext/boost/type_traits/is_signed.hpp +135 -0
- data/ext/boost/type_traits/is_unsigned.hpp +130 -0
- data/ext/boost/type_traits/is_void.hpp +5 -0
- data/ext/boost/type_traits/is_volatile.hpp +4 -2
- data/ext/boost/type_traits/make_unsigned.hpp +137 -0
- data/ext/boost/type_traits/remove_reference.hpp +1 -1
- data/ext/boost/type_traits/type_with_alignment.hpp +106 -1
- data/ext/boost/utility.hpp +2 -1
- data/ext/boost/utility/addressof.hpp +61 -17
- data/ext/boost/utility/binary.hpp +708 -0
- data/ext/boost/utility/enable_if.hpp +2 -2
- data/ext/boost/weak_ptr.hpp +4 -174
- data/ext/common/AbstractSpawnManager.h +110 -0
- data/ext/common/Account.h +175 -0
- data/ext/common/AccountsDatabase.cpp +81 -0
- data/ext/common/AccountsDatabase.h +130 -0
- data/ext/common/AgentBase.cpp +323 -0
- data/ext/common/{Version.h → AgentBase.h} +14 -6
- data/ext/common/AgentsStarter.cpp +154 -0
- data/ext/common/AgentsStarter.h +81 -0
- data/ext/common/AgentsStarter.hpp +619 -0
- data/ext/common/ApplicationPool/Client.h +796 -0
- data/ext/common/{ApplicationPool.h → ApplicationPool/Interface.h} +108 -18
- data/ext/common/ApplicationPool/Pool.h +1315 -0
- data/ext/common/ApplicationPool/Server.h +475 -0
- data/ext/common/BCrypt.cpp +343 -0
- data/ext/common/BCrypt.h +73 -0
- data/ext/common/Blowfish.c +685 -0
- data/ext/common/Blowfish.h +103 -0
- data/ext/common/Constants.h +48 -0
- data/ext/common/EventedClient.h +598 -0
- data/ext/common/EventedMessageServer.h +327 -0
- data/ext/common/EventedServer.h +295 -0
- data/ext/common/Exceptions.h +78 -1
- data/ext/common/FileDescriptor.h +229 -0
- data/ext/common/HelperAgent/BacktracesServer.h +59 -0
- data/ext/common/Logging.cpp +8 -9
- data/ext/common/Logging.h +593 -21
- data/ext/common/LoggingAgent/ChangeNotifier.h +63 -0
- data/ext/common/LoggingAgent/DataStoreId.h +177 -0
- data/ext/common/LoggingAgent/LoggingServer.h +1343 -0
- data/ext/common/LoggingAgent/Main.cpp +278 -0
- data/ext/common/LoggingAgent/RemoteSender.h +457 -0
- data/ext/common/MessageChannel.h +196 -34
- data/ext/common/MessageClient.h +297 -0
- data/ext/common/MessageReadersWriters.h +508 -0
- data/ext/common/MessageServer.h +575 -0
- data/ext/common/PoolOptions.h +279 -117
- data/ext/common/Process.h +255 -0
- data/ext/common/RandomGenerator.h +160 -0
- data/ext/common/ResourceLocator.h +84 -0
- data/ext/common/ServerInstanceDir.h +343 -0
- data/ext/common/Session.h +470 -0
- data/ext/common/SpawnManager.h +256 -201
- data/ext/common/StaticString.h +79 -4
- data/ext/common/StringListCreator.h +2 -2
- data/ext/common/Utils.cpp +385 -397
- data/ext/common/Utils.h +79 -165
- data/ext/common/{Base64.cpp → Utils/Base64.cpp} +0 -0
- data/ext/common/{Base64.h → Utils/Base64.h} +27 -1
- data/ext/common/Utils/BlockingQueue.h +136 -0
- data/ext/common/Utils/BlockingScalar.h +50 -0
- data/ext/common/{CachedFileStat.cpp → Utils/CachedFileStat.cpp} +1 -1
- data/ext/common/{CachedFileStat.h → Utils/CachedFileStat.h} +1 -1
- data/ext/common/{CachedFileStat.hpp → Utils/CachedFileStat.hpp} +1 -1
- data/ext/common/{FileChangeChecker.h → Utils/FileChangeChecker.h} +1 -1
- data/ext/common/Utils/FileHandleGuard.h +81 -0
- data/ext/common/Utils/IOUtils.cpp +754 -0
- data/ext/common/Utils/IOUtils.h +253 -0
- data/ext/common/Utils/MD5.cpp +406 -0
- data/ext/common/Utils/MD5.h +98 -0
- data/ext/common/Utils/MemZeroGuard.h +103 -0
- data/ext/common/Utils/ProcessMetricsCollector.h +462 -0
- data/ext/common/Utils/ScopeGuard.h +72 -0
- data/ext/common/Utils/StrIntUtils.cpp +329 -0
- data/ext/common/Utils/StrIntUtils.h +228 -0
- data/ext/common/{SystemTime.cpp → Utils/SystemTime.cpp} +5 -1
- data/ext/common/Utils/SystemTime.h +201 -0
- data/ext/common/{Timer.h → Utils/Timer.h} +58 -18
- data/ext/common/Utils/VariantMap.h +363 -0
- data/ext/common/Utils/foo.cpp +10 -0
- data/ext/common/Watchdog.cpp +1034 -0
- data/ext/google/COPYING +28 -0
- data/ext/google/ChangeLog +167 -0
- data/ext/google/dense_hash_map +310 -0
- data/ext/google/dense_hash_set +287 -0
- data/ext/google/sparse_hash_map +294 -0
- data/ext/google/sparse_hash_set +275 -0
- data/ext/google/sparsehash/densehashtable.h +1062 -0
- data/ext/google/sparsehash/sparseconfig.h +55 -0
- data/ext/google/sparsehash/sparsehashtable.h +1015 -0
- data/ext/google/sparsetable +1468 -0
- data/ext/google/type_traits.h +250 -0
- data/ext/libev/Changes +302 -0
- data/ext/libev/LICENSE +36 -0
- data/ext/libev/Makefile.am +18 -0
- data/ext/libev/Makefile.in +685 -0
- data/ext/libev/README +58 -0
- data/ext/libev/aclocal.m4 +7549 -0
- data/ext/libev/autogen.sh +6 -0
- data/ext/libev/config.guess +1526 -0
- data/ext/libev/config.h +122 -0
- data/ext/libev/config.h.in +121 -0
- data/ext/libev/config.sub +1658 -0
- data/ext/libev/configure +22156 -0
- data/ext/libev/configure.ac +18 -0
- data/ext/libev/ev++.h +800 -0
- data/ext/libev/ev.c +3694 -0
- data/ext/libev/ev.h +705 -0
- data/ext/libev/ev_epoll.c +228 -0
- data/ext/libev/ev_kqueue.c +196 -0
- data/ext/libev/ev_poll.c +144 -0
- data/ext/libev/ev_port.c +165 -0
- data/ext/libev/ev_select.c +308 -0
- data/ext/libev/ev_vars.h +187 -0
- data/ext/libev/ev_win32.c +153 -0
- data/ext/libev/ev_wrap.h +178 -0
- data/ext/libev/event.c +401 -0
- data/ext/libev/event.h +158 -0
- data/ext/libev/install-sh +294 -0
- data/ext/libev/libev.m4 +38 -0
- data/ext/libev/ltmain.sh +6871 -0
- data/ext/libev/missing +336 -0
- data/ext/libev/mkinstalldirs +111 -0
- data/ext/nginx/Configuration.c +532 -182
- data/ext/nginx/Configuration.h +33 -10
- data/ext/nginx/ContentHandler.c +188 -53
- data/ext/nginx/ContentHandler.h +1 -1
- data/ext/nginx/{HelperServer.cpp → HelperAgent.cpp} +433 -299
- data/ext/nginx/HttpStatusExtractor.h +1 -1
- data/ext/nginx/ScgiRequestParser.h +68 -11
- data/ext/nginx/StaticContentHandler.c +4 -1
- data/ext/nginx/StaticContentHandler.h +1 -1
- data/ext/nginx/config +5 -5
- data/ext/nginx/ngx_http_passenger_module.c +315 -469
- data/ext/nginx/ngx_http_passenger_module.h +8 -17
- data/ext/oxt/backtrace.cpp +49 -41
- data/ext/oxt/backtrace.hpp +1 -1
- data/ext/oxt/detail/backtrace_disabled.hpp +1 -1
- data/ext/oxt/detail/backtrace_enabled.hpp +16 -15
- data/ext/oxt/detail/spin_lock_darwin.hpp +69 -0
- data/ext/oxt/detail/spin_lock_gcc_x86.hpp +3 -4
- data/ext/oxt/detail/spin_lock_portable.hpp +1 -1
- data/ext/oxt/detail/spin_lock_pthreads.hpp +1 -1
- data/ext/oxt/detail/tracable_exception_disabled.hpp +1 -1
- data/ext/oxt/detail/tracable_exception_enabled.hpp +1 -1
- data/ext/oxt/dynamic_thread_group.hpp +195 -0
- data/ext/oxt/macros.hpp +1 -1
- data/ext/oxt/spin_lock.hpp +4 -2
- data/ext/oxt/system_calls.cpp +129 -13
- data/ext/oxt/system_calls.hpp +16 -2
- data/ext/oxt/thread.cpp +1 -1
- data/ext/oxt/thread.hpp +49 -14
- data/ext/oxt/tracable_exception.cpp +5 -5
- data/ext/oxt/tracable_exception.hpp +1 -1
- data/ext/phusion_passenger/extconf.rb +7 -2
- data/ext/phusion_passenger/native_support.c +733 -33
- data/{bin → helper-scripts}/passenger-spawn-server +50 -12
- data/helper-scripts/prespawn +63 -0
- data/lib/phusion_passenger.rb +113 -0
- data/lib/phusion_passenger/abstract_installer.rb +50 -12
- data/lib/phusion_passenger/abstract_request_handler.rb +432 -171
- data/lib/phusion_passenger/abstract_server.rb +125 -122
- data/lib/phusion_passenger/abstract_server_collection.rb +51 -22
- data/lib/phusion_passenger/admin_tools.rb +1 -1
- data/lib/phusion_passenger/admin_tools/memory_stats.rb +299 -0
- data/lib/phusion_passenger/admin_tools/server_instance.rb +334 -0
- data/lib/phusion_passenger/analytics_logger.rb +342 -0
- data/lib/phusion_passenger/{application.rb → app_process.rb} +73 -24
- data/lib/phusion_passenger/classic_rails/application_spawner.rb +344 -0
- data/lib/phusion_passenger/{railz → classic_rails}/cgi_fixed.rb +2 -2
- data/lib/phusion_passenger/{railz → classic_rails}/framework_spawner.rb +75 -98
- data/lib/phusion_passenger/{railz → classic_rails}/request_handler.rb +8 -6
- data/lib/phusion_passenger/classic_rails_extensions/analytics_logging/ac_base_extension.rb +65 -0
- data/lib/phusion_passenger/classic_rails_extensions/analytics_logging/ac_benchmarking_extension.rb +48 -0
- data/lib/phusion_passenger/classic_rails_extensions/analytics_logging/ac_rescue_extension.rb +59 -0
- data/lib/phusion_passenger/classic_rails_extensions/analytics_logging/ar_abstract_adapter_extension.rb +54 -0
- data/lib/phusion_passenger/classic_rails_extensions/analytics_logging/as_cache_extension.rb +130 -0
- data/lib/phusion_passenger/classic_rails_extensions/analytics_logging/av_benchmark_helper_extension.rb +47 -0
- data/lib/phusion_passenger/classic_rails_extensions/init.rb +123 -0
- data/lib/phusion_passenger/console_text_template.rb +1 -1
- data/lib/phusion_passenger/constants.rb +9 -5
- data/lib/phusion_passenger/debug_logging.rb +104 -0
- data/lib/phusion_passenger/dependencies.rb +187 -4
- data/lib/phusion_passenger/exceptions.rb +4 -4
- data/lib/phusion_passenger/html_template.rb +6 -8
- data/lib/phusion_passenger/message_channel.rb +137 -21
- data/lib/phusion_passenger/message_client.rb +173 -0
- data/lib/phusion_passenger/native_support.rb +108 -0
- data/lib/phusion_passenger/packaging.rb +82 -13
- data/lib/phusion_passenger/platform_info.rb +84 -475
- data/lib/phusion_passenger/platform_info/apache.rb +329 -0
- data/lib/phusion_passenger/platform_info/binary_compatibility.rb +187 -0
- data/lib/phusion_passenger/platform_info/compiler.rb +154 -0
- data/lib/phusion_passenger/{events.rb → platform_info/curl.rb} +26 -23
- data/lib/phusion_passenger/platform_info/documentation_tools.rb +35 -0
- data/lib/phusion_passenger/platform_info/linux.rb +77 -0
- data/lib/phusion_passenger/platform_info/operating_system.rb +51 -0
- data/lib/phusion_passenger/platform_info/ruby.rb +198 -0
- data/lib/phusion_passenger/platform_info/zlib.rb +38 -0
- data/lib/phusion_passenger/plugin.rb +96 -0
- data/lib/phusion_passenger/public_api.rb +112 -0
- data/lib/phusion_passenger/rack/application_spawner.rb +146 -71
- data/lib/phusion_passenger/rack/request_handler.rb +36 -13
- data/lib/phusion_passenger/rails3_extensions/init.rb +204 -0
- data/lib/phusion_passenger/simple_benchmarking.rb +1 -1
- data/lib/phusion_passenger/spawn_manager.rb +137 -141
- data/lib/phusion_passenger/standalone/app_finder.rb +153 -0
- data/lib/phusion_passenger/standalone/command.rb +237 -0
- data/lib/phusion_passenger/standalone/config_file.rb +119 -0
- data/lib/phusion_passenger/standalone/help_command.rb +57 -0
- data/lib/phusion_passenger/standalone/main.rb +101 -0
- data/lib/phusion_passenger/standalone/package_runtime_command.rb +92 -0
- data/lib/phusion_passenger/standalone/runtime_installer.rb +466 -0
- data/lib/phusion_passenger/standalone/start_command.rb +510 -0
- data/lib/phusion_passenger/standalone/status_command.rb +62 -0
- data/lib/phusion_passenger/standalone/stop_command.rb +74 -0
- data/lib/phusion_passenger/standalone/utils.rb +42 -0
- data/lib/phusion_passenger/standalone/version_command.rb +42 -0
- data/lib/phusion_passenger/templates/framework_init_error.html.erb +1 -1
- data/lib/phusion_passenger/templates/standalone/cannot_write_to_dir.txt.erb +11 -0
- data/lib/phusion_passenger/templates/standalone/config.erb +69 -0
- data/lib/phusion_passenger/templates/standalone/possible_solutions_for_download_and_extraction_problems.txt.erb +17 -0
- data/lib/phusion_passenger/templates/standalone/run_installer_as_root.txt.erb +8 -0
- data/lib/phusion_passenger/templates/standalone/welcome.txt.erb +8 -0
- data/lib/phusion_passenger/templates/standalone_default_root/index.html +1 -0
- data/lib/phusion_passenger/templates/version_not_found.html.erb +2 -2
- data/lib/phusion_passenger/utils.rb +476 -125
- data/lib/phusion_passenger/utils/file_system_watcher.rb +186 -0
- data/lib/phusion_passenger/utils/hosts_file_parser.rb +130 -0
- data/lib/phusion_passenger/utils/tmpdir.rb +70 -0
- data/lib/phusion_passenger/utils/unseekable_socket.rb +196 -0
- data/lib/phusion_passenger/wsgi/application_spawner.rb +24 -20
- data/lib/phusion_passenger/wsgi/request_handler.py +1 -1
- data/misc/copy_boost_headers.rb +36 -9
- data/misc/find_owner_pipe_leaks.rb +1 -1
- data/misc/render_error_pages.rb +1 -1
- data/misc/union_station_gateway.crt +32 -0
- data/test/config.yml.example +24 -13
- data/test/cxx/ApplicationPool_PoolTest.cpp +33 -0
- data/test/cxx/ApplicationPool_PoolTestCases.cpp +1029 -0
- data/test/cxx/ApplicationPool_ServerTest.cpp +308 -0
- data/test/cxx/ApplicationPool_Server_PoolTest.cpp +80 -0
- data/test/{Base64Test.cpp → cxx/Base64Test.cpp} +4 -2
- data/test/{CachedFileStatTest.cpp → cxx/CachedFileStatTest.cpp} +3 -3
- data/test/{CxxTestMain.cpp → cxx/CxxTestMain.cpp} +6 -27
- data/test/cxx/EventedClientTest.cpp +386 -0
- data/test/{FileChangeCheckerTest.cpp → cxx/FileChangeCheckerTest.cpp} +3 -5
- data/test/cxx/FileDescriptorTest.cpp +69 -0
- data/test/{HttpStatusExtractorTest.cpp → cxx/HttpStatusExtractorTest.cpp} +1 -1
- data/test/cxx/IOUtilsTest.cpp +398 -0
- data/test/cxx/LoggingTest.cpp +914 -0
- data/test/cxx/MessageChannelTest.cpp +672 -0
- data/test/cxx/MessageReadersWritersTest.cpp +574 -0
- data/test/cxx/MessageServerTest.cpp +383 -0
- data/test/{PoolOptionsTest.cpp → cxx/PoolOptionsTest.cpp} +2 -3
- data/test/{ScgiRequestParserTest.cpp → cxx/ScgiRequestParserTest.cpp} +53 -1
- data/test/cxx/ServerInstanceDirTest.cpp +186 -0
- data/test/cxx/SpawnManagerTest.cpp +161 -0
- data/test/cxx/StaticStringTest.cpp +86 -0
- data/test/{SystemTimeTest.cpp → cxx/SystemTimeTest.cpp} +2 -2
- data/test/cxx/TestSupport.cpp +166 -0
- data/test/cxx/TestSupport.h +254 -0
- data/test/cxx/UtilsTest.cpp +521 -0
- data/test/cxx/VariantMapTest.cpp +179 -0
- data/test/integration_tests/apache2_tests.rb +198 -127
- data/test/integration_tests/cgi_environment_spec.rb +26 -0
- data/test/integration_tests/mycook_spec.rb +2 -28
- data/test/integration_tests/nginx_tests.rb +125 -16
- data/test/integration_tests/spec_helper.rb +19 -0
- data/test/oxt/backtrace_test.cpp +19 -59
- data/test/oxt/counter.hpp +55 -0
- data/test/oxt/dynamic_thread_group_test.cpp +131 -0
- data/test/oxt/oxt_test_main.cpp +2 -2
- data/test/oxt/spin_lock_test.cpp +59 -0
- data/test/oxt/syscall_interruption_test.cpp +1 -1
- data/test/ruby/abstract_request_handler_spec.rb +346 -25
- data/test/ruby/abstract_server_collection_spec.rb +4 -3
- data/test/ruby/abstract_server_spec.rb +37 -27
- data/test/ruby/admin_tools_spec.rb +362 -0
- data/test/ruby/analytics_logger_spec.rb +253 -0
- data/test/ruby/{application_spec.rb → app_process_spec.rb} +14 -14
- data/test/ruby/classic_rails/application_spawner_spec.rb +89 -0
- data/test/ruby/classic_rails/framework_spawner_spec.rb +92 -0
- data/test/ruby/debug_logging_spec.rb +141 -0
- data/test/ruby/message_channel_spec.rb +51 -25
- data/test/ruby/rack/application_spawner_spec.rb +99 -82
- data/test/ruby/shared/abstract_server_spec.rb +23 -0
- data/test/ruby/shared/rails/analytics_logging_extensions_spec.rb +375 -0
- data/test/ruby/shared/spawners/classic_rails/framework_spawner_spec.rb +38 -0
- data/test/ruby/shared/spawners/classic_rails/lack_of_rails_gem_version_spec.rb +19 -0
- data/test/ruby/shared/spawners/classic_rails/spawner_spec.rb +15 -0
- data/test/ruby/shared/spawners/non_preloading_spawner_spec.rb +27 -0
- data/test/ruby/shared/spawners/preloading_spawner_spec.rb +29 -0
- data/test/ruby/shared/spawners/reload_all_spec.rb +36 -0
- data/test/ruby/shared/spawners/reload_single_spec.rb +52 -0
- data/test/ruby/shared/spawners/spawn_server_spec.rb +28 -0
- data/test/ruby/shared/spawners/spawner_spec.rb +273 -0
- data/test/ruby/shared/utils/pseudo_io_spec.rb +60 -0
- data/test/ruby/spawn_manager_spec.rb +104 -175
- data/test/ruby/spec_helper.rb +104 -0
- data/test/ruby/utils/file_system_watcher_spec.rb +221 -0
- data/test/ruby/utils/hosts_file_parser.rb +258 -0
- data/test/ruby/utils/unseekable_socket_spec.rb +66 -0
- data/test/ruby/utils_spec.rb +410 -59
- data/test/ruby/wsgi/application_spawner_spec.rb +16 -20
- data/test/stub/apache2/httpd.conf.erb +11 -6
- data/test/stub/message_channel.rb +3 -1
- data/test/stub/message_channel_2.rb +3 -1
- data/test/stub/message_channel_3.rb +5 -3
- data/test/stub/nginx/nginx.conf.erb +3 -2
- data/test/stub/rails_apps/1.2/empty/Rakefile +10 -0
- data/test/stub/rails_apps/1.2/empty/app/controllers/application.rb +7 -0
- data/test/stub/rails_apps/{foobar → 1.2/empty}/app/helpers/application_helper.rb +0 -0
- data/test/stub/rails_apps/{mycook → 1.2/empty}/config/boot.rb +3 -3
- data/test/stub/rails_apps/1.2/empty/config/database.yml +31 -0
- data/test/stub/rails_apps/1.2/empty/config/environment.rb +66 -0
- data/test/stub/rails_apps/1.2/empty/config/environments/development.rb +21 -0
- data/test/stub/rails_apps/{foobar → 1.2/empty}/config/environments/production.rb +0 -0
- data/test/stub/rails_apps/1.2/empty/config/environments/staging.rb +18 -0
- data/test/stub/rails_apps/1.2/empty/config/environments/test.rb +19 -0
- data/test/stub/rails_apps/1.2/empty/config/routes.rb +23 -0
- data/test/stub/rails_apps/1.2/empty/doc/README_FOR_APP +2 -0
- data/test/stub/rails_apps/{mycook → 1.2/empty}/public/404.html +0 -0
- data/test/stub/rails_apps/1.2/empty/public/500.html +30 -0
- data/test/stub/rails_apps/1.2/empty/public/dispatch.cgi +10 -0
- data/test/stub/rails_apps/1.2/empty/public/dispatch.fcgi +24 -0
- data/test/stub/rails_apps/1.2/empty/public/dispatch.rb +10 -0
- data/test/stub/rails_apps/{mycook → 1.2/empty}/public/favicon.ico +0 -0
- data/test/stub/rails_apps/{mycook → 1.2/empty}/public/images/rails.png +0 -0
- data/test/stub/rails_apps/1.2/empty/public/robots.txt +1 -0
- data/test/stub/rails_apps/1.2/empty/script/about +3 -0
- data/test/stub/rails_apps/1.2/empty/script/breakpointer +3 -0
- data/test/stub/rails_apps/1.2/empty/script/console +3 -0
- data/test/stub/rails_apps/1.2/empty/script/destroy +3 -0
- data/test/stub/rails_apps/1.2/empty/script/generate +3 -0
- data/test/stub/rails_apps/1.2/empty/script/performance/benchmarker +3 -0
- data/test/stub/rails_apps/1.2/empty/script/performance/profiler +3 -0
- data/test/stub/rails_apps/1.2/empty/script/plugin +3 -0
- data/test/stub/rails_apps/1.2/empty/script/process/inspector +3 -0
- data/test/stub/rails_apps/1.2/empty/script/process/reaper +3 -0
- data/test/stub/rails_apps/1.2/empty/script/process/spawner +3 -0
- data/test/stub/rails_apps/1.2/empty/script/runner +3 -0
- data/test/stub/rails_apps/1.2/empty/script/server +3 -0
- data/test/stub/rails_apps/1.2/empty/test/test_helper.rb +28 -0
- data/test/stub/rails_apps/2.0/empty/Rakefile +10 -0
- data/test/stub/rails_apps/2.0/empty/app/controllers/application.rb +10 -0
- data/test/stub/rails_apps/{mycook → 2.0/empty}/app/helpers/application_helper.rb +0 -0
- data/test/stub/rails_apps/{foobar → 2.0/empty}/config/boot.rb +3 -3
- data/test/stub/rails_apps/2.0/empty/config/database.yml +31 -0
- data/test/stub/rails_apps/2.0/empty/config/environment.rb +59 -0
- data/test/stub/rails_apps/{mycook → 2.0/empty}/config/environments/development.rb +1 -1
- data/test/stub/rails_apps/2.0/empty/config/environments/production.rb +18 -0
- data/test/stub/rails_apps/2.0/empty/config/environments/staging.rb +18 -0
- data/test/stub/rails_apps/2.0/empty/config/environments/test.rb +22 -0
- data/test/stub/rails_apps/{foobar → 2.0/empty}/config/initializers/inflections.rb +0 -0
- data/test/stub/rails_apps/{foobar → 2.0/empty}/config/initializers/mime_types.rb +0 -0
- data/test/stub/rails_apps/{foobar → 2.0/empty}/config/routes.rb +0 -0
- data/test/stub/rails_apps/2.0/empty/doc/README_FOR_APP +2 -0
- data/test/stub/rails_apps/2.0/empty/public/404.html +30 -0
- data/test/stub/rails_apps/{mycook → 2.0/empty}/public/422.html +0 -0
- data/test/stub/rails_apps/{mycook → 2.0/empty}/public/500.html +0 -0
- data/test/stub/rails_apps/2.0/empty/public/dispatch.cgi +10 -0
- data/test/stub/rails_apps/2.0/empty/public/dispatch.fcgi +24 -0
- data/test/stub/rails_apps/2.0/empty/public/dispatch.rb +10 -0
- data/test/stub/rails_apps/2.0/empty/public/favicon.ico +0 -0
- data/test/stub/rails_apps/2.0/empty/public/images/rails.png +0 -0
- data/test/stub/rails_apps/{mycook → 2.0/empty}/public/robots.txt +0 -0
- data/test/stub/rails_apps/2.0/empty/script/about +3 -0
- data/test/stub/rails_apps/2.0/empty/script/console +3 -0
- data/test/stub/rails_apps/2.0/empty/script/destroy +3 -0
- data/test/stub/rails_apps/2.0/empty/script/generate +3 -0
- data/test/stub/rails_apps/2.0/empty/script/performance/benchmarker +3 -0
- data/test/stub/rails_apps/2.0/empty/script/performance/profiler +3 -0
- data/test/stub/rails_apps/2.0/empty/script/performance/request +3 -0
- data/test/stub/rails_apps/2.0/empty/script/plugin +3 -0
- data/test/stub/rails_apps/2.0/empty/script/process/inspector +3 -0
- data/test/stub/rails_apps/2.0/empty/script/process/reaper +3 -0
- data/test/stub/rails_apps/2.0/empty/script/process/spawner +3 -0
- data/test/stub/rails_apps/2.0/empty/script/runner +3 -0
- data/test/stub/rails_apps/2.0/empty/script/server +3 -0
- data/test/stub/rails_apps/2.0/empty/test/test_helper.rb +38 -0
- data/test/stub/rails_apps/2.2/empty/Rakefile +10 -0
- data/test/stub/rails_apps/2.2/empty/app/controllers/application.rb +15 -0
- data/test/stub/rails_apps/2.2/empty/app/helpers/application_helper.rb +3 -0
- data/test/stub/rails_apps/2.2/empty/config/boot.rb +109 -0
- data/test/stub/rails_apps/2.2/empty/config/database.yml +31 -0
- data/test/stub/rails_apps/2.2/empty/config/environment.rb +75 -0
- data/test/stub/rails_apps/{foobar → 2.2/empty}/config/environments/development.rb +0 -0
- data/test/stub/rails_apps/2.2/empty/config/environments/production.rb +24 -0
- data/test/stub/rails_apps/2.2/empty/config/environments/staging.rb +24 -0
- data/test/stub/rails_apps/2.2/empty/config/environments/test.rb +22 -0
- data/test/stub/rails_apps/2.2/empty/config/initializers/inflections.rb +10 -0
- data/test/stub/rails_apps/{mycook → 2.2/empty}/config/initializers/mime_types.rb +0 -0
- data/test/stub/rails_apps/2.2/empty/config/initializers/new_rails_defaults.rb +17 -0
- data/test/stub/rails_apps/2.2/empty/config/locales/en.yml +5 -0
- data/test/stub/rails_apps/2.2/empty/config/routes.rb +43 -0
- data/test/stub/rails_apps/2.2/empty/doc/README_FOR_APP +5 -0
- data/test/stub/rails_apps/2.2/empty/public/404.html +30 -0
- data/test/stub/rails_apps/2.2/empty/public/422.html +30 -0
- data/test/stub/rails_apps/2.2/empty/public/500.html +33 -0
- data/test/stub/rails_apps/2.2/empty/public/dispatch.cgi +10 -0
- data/test/stub/rails_apps/2.2/empty/public/dispatch.fcgi +24 -0
- data/test/stub/rails_apps/2.2/empty/public/dispatch.rb +10 -0
- data/test/stub/rails_apps/2.2/empty/public/favicon.ico +0 -0
- data/test/stub/rails_apps/2.2/empty/public/images/rails.png +0 -0
- data/test/stub/rails_apps/2.2/empty/public/robots.txt +5 -0
- data/test/stub/rails_apps/2.2/empty/script/about +4 -0
- data/test/stub/rails_apps/2.2/empty/script/console +3 -0
- data/test/stub/rails_apps/2.2/empty/script/dbconsole +3 -0
- data/test/stub/rails_apps/2.2/empty/script/destroy +3 -0
- data/test/stub/rails_apps/2.2/empty/script/generate +3 -0
- data/test/stub/rails_apps/2.2/empty/script/performance/benchmarker +3 -0
- data/test/stub/rails_apps/2.2/empty/script/performance/profiler +3 -0
- data/test/stub/rails_apps/2.2/empty/script/performance/request +3 -0
- data/test/stub/rails_apps/2.2/empty/script/plugin +3 -0
- data/test/stub/rails_apps/2.2/empty/script/process/inspector +3 -0
- data/test/stub/rails_apps/2.2/empty/script/process/reaper +3 -0
- data/test/stub/rails_apps/2.2/empty/script/process/spawner +3 -0
- data/test/stub/rails_apps/2.2/empty/script/runner +3 -0
- data/test/stub/rails_apps/2.2/empty/script/server +3 -0
- data/test/stub/rails_apps/2.2/empty/test/performance/browsing_test.rb +9 -0
- data/test/stub/rails_apps/2.2/empty/test/test_helper.rb +38 -0
- data/test/stub/rails_apps/2.3/empty/Rakefile +10 -0
- data/test/stub/rails_apps/2.3/empty/app/controllers/application_controller.rb +10 -0
- data/test/stub/rails_apps/2.3/empty/app/helpers/application_helper.rb +3 -0
- data/test/stub/rails_apps/2.3/empty/config/boot.rb +110 -0
- data/test/stub/rails_apps/2.3/empty/config/database.yml +31 -0
- data/test/stub/rails_apps/2.3/empty/config/environment.rb +41 -0
- data/test/stub/rails_apps/2.3/empty/config/environments/development.rb +17 -0
- data/test/stub/rails_apps/2.3/empty/config/environments/production.rb +28 -0
- data/test/stub/rails_apps/2.3/empty/config/environments/staging.rb +28 -0
- data/test/stub/rails_apps/2.3/empty/config/environments/test.rb +28 -0
- data/test/stub/rails_apps/2.3/empty/config/initializers/backtrace_silencers.rb +7 -0
- data/test/stub/rails_apps/2.3/empty/config/initializers/inflections.rb +10 -0
- data/test/stub/rails_apps/2.3/empty/config/initializers/mime_types.rb +5 -0
- data/test/stub/rails_apps/2.3/empty/config/initializers/new_rails_defaults.rb +21 -0
- data/test/stub/rails_apps/2.3/empty/config/initializers/session_store.rb +15 -0
- data/test/stub/rails_apps/2.3/empty/config/locales/en.yml +5 -0
- data/test/stub/rails_apps/2.3/empty/config/routes.rb +43 -0
- data/test/stub/rails_apps/2.3/empty/db/seeds.rb +7 -0
- data/test/stub/rails_apps/2.3/empty/doc/README_FOR_APP +2 -0
- data/test/stub/rails_apps/2.3/empty/public/404.html +30 -0
- data/test/stub/rails_apps/2.3/empty/public/422.html +30 -0
- data/test/stub/rails_apps/2.3/empty/public/500.html +30 -0
- data/test/stub/rails_apps/2.3/empty/public/favicon.ico +0 -0
- data/test/stub/rails_apps/2.3/empty/public/images/rails.png +0 -0
- data/test/stub/rails_apps/2.3/empty/public/robots.txt +5 -0
- data/test/stub/rails_apps/2.3/empty/script/about +4 -0
- data/test/stub/rails_apps/2.3/empty/script/console +3 -0
- data/test/stub/rails_apps/2.3/empty/script/dbconsole +3 -0
- data/test/stub/rails_apps/2.3/empty/script/destroy +3 -0
- data/test/stub/rails_apps/2.3/empty/script/generate +3 -0
- data/test/stub/rails_apps/2.3/empty/script/performance/benchmarker +3 -0
- data/test/stub/rails_apps/2.3/empty/script/performance/profiler +3 -0
- data/test/stub/rails_apps/2.3/empty/script/plugin +3 -0
- data/test/stub/rails_apps/2.3/empty/script/runner +3 -0
- data/test/stub/rails_apps/2.3/empty/script/server +3 -0
- data/test/stub/rails_apps/2.3/empty/test/performance/browsing_test.rb +9 -0
- data/test/stub/rails_apps/2.3/empty/test/test_helper.rb +38 -0
- data/test/stub/rails_apps/2.3/foobar/Rakefile +10 -0
- data/test/stub/rails_apps/{foobar/app/controllers/application.rb → 2.3/foobar/app/controllers/application_controller.rb} +0 -0
- data/test/stub/rails_apps/{foobar → 2.3/foobar}/app/controllers/bar_controller_1.rb +0 -0
- data/test/stub/rails_apps/{foobar → 2.3/foobar}/app/controllers/bar_controller_2.rb +0 -0
- data/test/stub/rails_apps/{foobar → 2.3/foobar}/app/controllers/foo_controller.rb +0 -0
- data/test/stub/rails_apps/2.3/foobar/app/helpers/application_helper.rb +3 -0
- data/test/stub/rails_apps/2.3/foobar/config/boot.rb +110 -0
- data/test/stub/rails_apps/{foobar → 2.3/foobar}/config/database.yml +0 -0
- data/test/stub/rails_apps/{foobar → 2.3/foobar}/config/environment.rb +1 -1
- data/test/stub/rails_apps/2.3/foobar/config/environments/development.rb +17 -0
- data/test/stub/rails_apps/2.3/foobar/config/environments/production.rb +18 -0
- data/test/stub/rails_apps/2.3/foobar/config/environments/staging.rb +18 -0
- data/test/stub/rails_apps/{mycook → 2.3/foobar}/config/initializers/inflections.rb +0 -0
- data/test/stub/rails_apps/2.3/foobar/config/initializers/mime_types.rb +5 -0
- data/test/stub/rails_apps/2.3/foobar/config/routes.rb +35 -0
- data/test/stub/rails_apps/2.3/foobar/script/about +3 -0
- data/test/stub/rails_apps/2.3/foobar/script/console +3 -0
- data/test/stub/rails_apps/2.3/foobar/script/dbconsole +3 -0
- data/test/stub/rails_apps/2.3/foobar/script/destroy +3 -0
- data/test/stub/rails_apps/2.3/foobar/script/generate +3 -0
- data/test/stub/rails_apps/2.3/foobar/script/performance/benchmarker +3 -0
- data/test/stub/rails_apps/2.3/foobar/script/performance/profiler +3 -0
- data/test/stub/rails_apps/2.3/foobar/script/performance/request +3 -0
- data/test/stub/rails_apps/2.3/foobar/script/plugin +3 -0
- data/test/stub/rails_apps/2.3/foobar/script/process/inspector +3 -0
- data/test/stub/rails_apps/2.3/foobar/script/process/reaper +3 -0
- data/test/stub/rails_apps/2.3/foobar/script/process/spawner +3 -0
- data/test/stub/rails_apps/2.3/foobar/script/runner +3 -0
- data/test/stub/rails_apps/2.3/foobar/script/server +3 -0
- data/test/stub/rails_apps/2.3/mycook/Rakefile +10 -0
- data/test/stub/rails_apps/{mycook/app/controllers/application.rb → 2.3/mycook/app/controllers/application_controller.rb} +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/app/controllers/recipes_controller.rb +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/app/controllers/uploads_controller.rb +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/app/controllers/welcome_controller.rb +0 -0
- data/test/stub/rails_apps/2.3/mycook/app/helpers/application_helper.rb +3 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/app/views/layouts/default.rhtml +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/app/views/recipes/create.rhtml +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/app/views/recipes/index.rhtml +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/app/views/recipes/new.rhtml +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/app/views/uploads/index.rhtml +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/app/views/uploads/new.html.erb +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/app/views/welcome/cached.rhtml +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/app/views/welcome/index.rhtml +0 -0
- data/test/stub/rails_apps/2.3/mycook/config/boot.rb +110 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/config/database.yml +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/config/environment.rb +1 -1
- data/test/stub/rails_apps/2.3/mycook/config/environments/development.rb +18 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/config/environments/production.rb +0 -0
- data/test/stub/rails_apps/2.3/mycook/config/initializers/inflections.rb +10 -0
- data/test/stub/rails_apps/2.3/mycook/config/initializers/mime_types.rb +5 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/config/routes.rb +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/log/useless.txt +0 -0
- data/test/stub/rails_apps/2.3/mycook/public/404.html +30 -0
- data/test/stub/rails_apps/2.3/mycook/public/422.html +30 -0
- data/test/stub/rails_apps/2.3/mycook/public/500.html +30 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/dispatch.cgi +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/dispatch.fcgi +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/dispatch.rb +1 -1
- data/test/stub/rails_apps/2.3/mycook/public/favicon.ico +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/images/angrywizard.gif +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/images/cookbook.gif +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/images/header.png +0 -0
- data/test/stub/rails_apps/2.3/mycook/public/images/rails.png +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/javascripts/application.js +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/javascripts/controls.js +73 -73
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/javascripts/dragdrop.js +166 -165
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/javascripts/effects.js +174 -166
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/javascripts/prototype.js +362 -267
- data/test/stub/rails_apps/2.3/mycook/public/robots.txt +5 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/uploads.html +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/welcome/cached.html +0 -0
- data/test/stub/rails_apps/2.3/mycook/script/about +3 -0
- data/test/stub/rails_apps/2.3/mycook/script/console +3 -0
- data/test/stub/rails_apps/2.3/mycook/script/dbconsole +3 -0
- data/test/stub/rails_apps/2.3/mycook/script/destroy +3 -0
- data/test/stub/rails_apps/2.3/mycook/script/generate +3 -0
- data/test/stub/rails_apps/2.3/mycook/script/performance/benchmarker +3 -0
- data/test/stub/rails_apps/2.3/mycook/script/performance/profiler +3 -0
- data/test/stub/rails_apps/2.3/mycook/script/performance/request +3 -0
- data/test/stub/rails_apps/2.3/mycook/script/plugin +3 -0
- data/test/stub/rails_apps/2.3/mycook/script/process/inspector +3 -0
- data/test/stub/rails_apps/2.3/mycook/script/process/reaper +3 -0
- data/test/stub/rails_apps/2.3/mycook/script/process/spawner +3 -0
- data/test/stub/rails_apps/2.3/mycook/script/runner +3 -0
- data/test/stub/rails_apps/2.3/mycook/script/server +3 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/sites/some.site/public/uploads.html +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/sites/some.site/public/welcome/cached.html +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/tmp/cache/useless.txt +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/tmp/pids/useless.txt +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/tmp/sessions/useless.txt +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/tmp/sockets/useless.txt +0 -0
- data/test/stub/rails_apps/3.0/empty/Gemfile +22 -0
- data/test/stub/rails_apps/3.0/empty/Rakefile +10 -0
- data/test/stub/rails_apps/3.0/empty/app/controllers/application_controller.rb +4 -0
- data/test/stub/rails_apps/3.0/empty/app/helpers/application_helper.rb +2 -0
- data/test/stub/rails_apps/3.0/empty/app/views/layouts/application.html.erb +14 -0
- data/test/stub/rails_apps/3.0/empty/config.ru +4 -0
- data/test/stub/rails_apps/3.0/empty/config/application.rb +48 -0
- data/test/stub/rails_apps/3.0/empty/config/boot.rb +13 -0
- data/test/stub/rails_apps/3.0/empty/config/database.yml +22 -0
- data/test/stub/rails_apps/3.0/empty/config/environment.rb +5 -0
- data/test/stub/rails_apps/3.0/empty/config/environments/development.rb +19 -0
- data/test/stub/rails_apps/3.0/empty/config/environments/production.rb +48 -0
- data/test/stub/rails_apps/3.0/empty/config/environments/test.rb +32 -0
- data/test/stub/rails_apps/3.0/empty/config/initializers/backtrace_silencers.rb +7 -0
- data/test/stub/rails_apps/3.0/empty/config/initializers/inflections.rb +10 -0
- data/test/stub/rails_apps/3.0/empty/config/initializers/mime_types.rb +5 -0
- data/test/stub/rails_apps/3.0/empty/config/initializers/passenger.rb +1 -0
- data/test/stub/rails_apps/3.0/empty/config/initializers/secret_token.rb +7 -0
- data/test/stub/rails_apps/3.0/empty/config/initializers/session_store.rb +8 -0
- data/test/stub/rails_apps/3.0/empty/config/locales/en.yml +5 -0
- data/test/stub/rails_apps/3.0/empty/config/routes.rb +58 -0
- data/test/stub/rails_apps/3.0/empty/db/seeds.rb +7 -0
- data/test/stub/rails_apps/3.0/empty/doc/README_FOR_APP +2 -0
- data/test/stub/rails_apps/3.0/empty/log/development.log +3 -0
- data/test/stub/rails_apps/3.0/empty/public/404.html +26 -0
- data/test/stub/rails_apps/3.0/empty/public/422.html +26 -0
- data/test/stub/rails_apps/3.0/empty/public/500.html +26 -0
- data/test/stub/rails_apps/3.0/empty/public/favicon.ico +0 -0
- data/test/stub/rails_apps/3.0/empty/public/index.html +279 -0
- data/test/stub/rails_apps/3.0/empty/public/robots.txt +5 -0
- data/test/stub/rails_apps/3.0/empty/script/rails +9 -0
- data/test/stub/rails_apps/3.0/empty/test/performance/browsing_test.rb +9 -0
- data/test/stub/rails_apps/3.0/empty/test/test_helper.rb +13 -0
- data/test/stub/spawn_server.rb +4 -2
- data/test/stub/vendor_rails/minimal/actionpack/lib/action_controller.rb +3 -0
- data/test/stub/vendor_rails/minimal/railties/lib/initializer.rb +7 -2
- data/test/support/apache2_controller.rb +10 -2
- data/test/support/nginx_controller.rb +3 -2
- data/test/support/test_helper.rb +282 -46
- data/test/{support → tut}/tut.h +6 -0
- data/test/{support → tut}/tut_reporter.h +0 -0
- metadata +824 -266
- data/benchmark/ApplicationPool.cpp +0 -52
- data/benchmark/accept_vs_socketpair_vs_named_pipes.rb +0 -126
- data/benchmark/dispatcher.rb +0 -42
- data/benchmark/overhead_of_password_checking.rb +0 -81
- data/benchmark/socket_connections_vs_persistent_pipe.rb +0 -99
- data/benchmark/unix_sockets_vs_pipes.rb +0 -83
- data/ext/boost/LICENSE.TXT +0 -23
- data/ext/boost/VERSION.TXT +0 -1
- data/ext/boost/detail/sp_counted_base.hpp +0 -81
- data/ext/boost/src/pthread/exceptions.cpp +0 -146
- data/ext/boost/src/win32/exceptions.cpp +0 -124
- data/ext/boost/src/win32/thread.cpp +0 -629
- data/ext/boost/src/win32/timeconv.inl +0 -130
- data/ext/boost/src/win32/tss_dll.cpp +0 -72
- data/ext/boost/src/win32/tss_pe.cpp +0 -269
- data/ext/boost/thread/pthread/thread.hpp +0 -339
- data/ext/boost/thread/pthread/tss.hpp +0 -103
- data/ext/common/Application.h +0 -511
- data/ext/common/ApplicationPoolServer.h +0 -794
- data/ext/common/ApplicationPoolServerExecutable.cpp +0 -743
- data/ext/common/ApplicationPoolStatusReporter.h +0 -336
- data/ext/common/DummySpawnManager.h +0 -108
- data/ext/common/StandardApplicationPool.h +0 -821
- data/ext/common/SystemTime.h +0 -88
- data/lib/phusion_passenger/admin_tools/control_process.rb +0 -150
- data/lib/phusion_passenger/railz/application_spawner.rb +0 -463
- data/lib/phusion_passenger/templates/invalid_app_root.html.erb +0 -9
- data/test/ApplicationPoolServerTest.cpp +0 -114
- data/test/ApplicationPoolServer_ApplicationPoolTest.cpp +0 -33
- data/test/ApplicationPoolTest.cpp +0 -599
- data/test/MessageChannelTest.cpp +0 -320
- data/test/SpawnManagerTest.cpp +0 -64
- data/test/StandardApplicationPoolTest.cpp +0 -27
- data/test/StaticStringTest.cpp +0 -51
- data/test/UtilsTest.cpp +0 -257
- data/test/ruby/rails/application_spawner_spec.rb +0 -159
- data/test/ruby/rails/framework_spawner_spec.rb +0 -133
- data/test/ruby/rails/minimal_spawner_spec.rb +0 -93
- data/test/ruby/rails/spawner_error_handling_spec.rb +0 -107
- data/test/ruby/rails/spawner_privilege_lowering_spec.rb +0 -97
- data/test/ruby/spawn_server_spec.rb +0 -26
- data/test/stub/MessageServer.dSYM/Contents/Info.plist +0 -25
- data/test/stub/MessageServer.dSYM/Contents/Resources/DWARF/MessageServer +0 -0
- data/test/support/Support.cpp +0 -84
- data/test/support/Support.h +0 -118
- data/test/support/config.rb +0 -38
- data/test/support/run_rspec_tests.rb +0 -10
data/ext/libev/missing
ADDED
@@ -0,0 +1,336 @@
|
|
1
|
+
#! /bin/sh
|
2
|
+
# Common stub for a few missing GNU programs while installing.
|
3
|
+
# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003 Free Software Foundation, Inc.
|
4
|
+
# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
|
5
|
+
|
6
|
+
# This program is free software; you can redistribute it and/or modify
|
7
|
+
# it under the terms of the GNU General Public License as published by
|
8
|
+
# the Free Software Foundation; either version 2, or (at your option)
|
9
|
+
# any later version.
|
10
|
+
|
11
|
+
# This program is distributed in the hope that it will be useful,
|
12
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
13
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
14
|
+
# GNU General Public License for more details.
|
15
|
+
|
16
|
+
# You should have received a copy of the GNU General Public License
|
17
|
+
# along with this program; if not, write to the Free Software
|
18
|
+
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
19
|
+
# 02111-1307, USA.
|
20
|
+
|
21
|
+
# As a special exception to the GNU General Public License, if you
|
22
|
+
# distribute this file as part of a program that contains a
|
23
|
+
# configuration script generated by Autoconf, you may include it under
|
24
|
+
# the same distribution terms that you use for the rest of that program.
|
25
|
+
|
26
|
+
if test $# -eq 0; then
|
27
|
+
echo 1>&2 "Try \`$0 --help' for more information"
|
28
|
+
exit 1
|
29
|
+
fi
|
30
|
+
|
31
|
+
run=:
|
32
|
+
|
33
|
+
# In the cases where this matters, `missing' is being run in the
|
34
|
+
# srcdir already.
|
35
|
+
if test -f configure.ac; then
|
36
|
+
configure_ac=configure.ac
|
37
|
+
else
|
38
|
+
configure_ac=configure.in
|
39
|
+
fi
|
40
|
+
|
41
|
+
case "$1" in
|
42
|
+
--run)
|
43
|
+
# Try to run requested program, and just exit if it succeeds.
|
44
|
+
run=
|
45
|
+
shift
|
46
|
+
"$@" && exit 0
|
47
|
+
;;
|
48
|
+
esac
|
49
|
+
|
50
|
+
# If it does not exist, or fails to run (possibly an outdated version),
|
51
|
+
# try to emulate it.
|
52
|
+
case "$1" in
|
53
|
+
|
54
|
+
-h|--h|--he|--hel|--help)
|
55
|
+
echo "\
|
56
|
+
$0 [OPTION]... PROGRAM [ARGUMENT]...
|
57
|
+
|
58
|
+
Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
|
59
|
+
error status if there is no known handling for PROGRAM.
|
60
|
+
|
61
|
+
Options:
|
62
|
+
-h, --help display this help and exit
|
63
|
+
-v, --version output version information and exit
|
64
|
+
--run try to run the given command, and emulate it if it fails
|
65
|
+
|
66
|
+
Supported PROGRAM values:
|
67
|
+
aclocal touch file \`aclocal.m4'
|
68
|
+
autoconf touch file \`configure'
|
69
|
+
autoheader touch file \`config.h.in'
|
70
|
+
automake touch all \`Makefile.in' files
|
71
|
+
bison create \`y.tab.[ch]', if possible, from existing .[ch]
|
72
|
+
flex create \`lex.yy.c', if possible, from existing .c
|
73
|
+
help2man touch the output file
|
74
|
+
lex create \`lex.yy.c', if possible, from existing .c
|
75
|
+
makeinfo touch the output file
|
76
|
+
tar try tar, gnutar, gtar, then tar without non-portable flags
|
77
|
+
yacc create \`y.tab.[ch]', if possible, from existing .[ch]"
|
78
|
+
;;
|
79
|
+
|
80
|
+
-v|--v|--ve|--ver|--vers|--versi|--versio|--version)
|
81
|
+
echo "missing 0.4 - GNU automake"
|
82
|
+
;;
|
83
|
+
|
84
|
+
-*)
|
85
|
+
echo 1>&2 "$0: Unknown \`$1' option"
|
86
|
+
echo 1>&2 "Try \`$0 --help' for more information"
|
87
|
+
exit 1
|
88
|
+
;;
|
89
|
+
|
90
|
+
aclocal*)
|
91
|
+
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
|
92
|
+
# We have it, but it failed.
|
93
|
+
exit 1
|
94
|
+
fi
|
95
|
+
|
96
|
+
echo 1>&2 "\
|
97
|
+
WARNING: \`$1' is missing on your system. You should only need it if
|
98
|
+
you modified \`acinclude.m4' or \`${configure_ac}'. You might want
|
99
|
+
to install the \`Automake' and \`Perl' packages. Grab them from
|
100
|
+
any GNU archive site."
|
101
|
+
touch aclocal.m4
|
102
|
+
;;
|
103
|
+
|
104
|
+
autoconf)
|
105
|
+
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
|
106
|
+
# We have it, but it failed.
|
107
|
+
exit 1
|
108
|
+
fi
|
109
|
+
|
110
|
+
echo 1>&2 "\
|
111
|
+
WARNING: \`$1' is missing on your system. You should only need it if
|
112
|
+
you modified \`${configure_ac}'. You might want to install the
|
113
|
+
\`Autoconf' and \`GNU m4' packages. Grab them from any GNU
|
114
|
+
archive site."
|
115
|
+
touch configure
|
116
|
+
;;
|
117
|
+
|
118
|
+
autoheader)
|
119
|
+
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
|
120
|
+
# We have it, but it failed.
|
121
|
+
exit 1
|
122
|
+
fi
|
123
|
+
|
124
|
+
echo 1>&2 "\
|
125
|
+
WARNING: \`$1' is missing on your system. You should only need it if
|
126
|
+
you modified \`acconfig.h' or \`${configure_ac}'. You might want
|
127
|
+
to install the \`Autoconf' and \`GNU m4' packages. Grab them
|
128
|
+
from any GNU archive site."
|
129
|
+
files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
|
130
|
+
test -z "$files" && files="config.h"
|
131
|
+
touch_files=
|
132
|
+
for f in $files; do
|
133
|
+
case "$f" in
|
134
|
+
*:*) touch_files="$touch_files "`echo "$f" |
|
135
|
+
sed -e 's/^[^:]*://' -e 's/:.*//'`;;
|
136
|
+
*) touch_files="$touch_files $f.in";;
|
137
|
+
esac
|
138
|
+
done
|
139
|
+
touch $touch_files
|
140
|
+
;;
|
141
|
+
|
142
|
+
automake*)
|
143
|
+
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
|
144
|
+
# We have it, but it failed.
|
145
|
+
exit 1
|
146
|
+
fi
|
147
|
+
|
148
|
+
echo 1>&2 "\
|
149
|
+
WARNING: \`$1' is missing on your system. You should only need it if
|
150
|
+
you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
|
151
|
+
You might want to install the \`Automake' and \`Perl' packages.
|
152
|
+
Grab them from any GNU archive site."
|
153
|
+
find . -type f -name Makefile.am -print |
|
154
|
+
sed 's/\.am$/.in/' |
|
155
|
+
while read f; do touch "$f"; done
|
156
|
+
;;
|
157
|
+
|
158
|
+
autom4te)
|
159
|
+
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
|
160
|
+
# We have it, but it failed.
|
161
|
+
exit 1
|
162
|
+
fi
|
163
|
+
|
164
|
+
echo 1>&2 "\
|
165
|
+
WARNING: \`$1' is needed, and you do not seem to have it handy on your
|
166
|
+
system. You might have modified some files without having the
|
167
|
+
proper tools for further handling them.
|
168
|
+
You can get \`$1' as part of \`Autoconf' from any GNU
|
169
|
+
archive site."
|
170
|
+
|
171
|
+
file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'`
|
172
|
+
test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'`
|
173
|
+
if test -f "$file"; then
|
174
|
+
touch $file
|
175
|
+
else
|
176
|
+
test -z "$file" || exec >$file
|
177
|
+
echo "#! /bin/sh"
|
178
|
+
echo "# Created by GNU Automake missing as a replacement of"
|
179
|
+
echo "# $ $@"
|
180
|
+
echo "exit 0"
|
181
|
+
chmod +x $file
|
182
|
+
exit 1
|
183
|
+
fi
|
184
|
+
;;
|
185
|
+
|
186
|
+
bison|yacc)
|
187
|
+
echo 1>&2 "\
|
188
|
+
WARNING: \`$1' is missing on your system. You should only need it if
|
189
|
+
you modified a \`.y' file. You may need the \`Bison' package
|
190
|
+
in order for those modifications to take effect. You can get
|
191
|
+
\`Bison' from any GNU archive site."
|
192
|
+
rm -f y.tab.c y.tab.h
|
193
|
+
if [ $# -ne 1 ]; then
|
194
|
+
eval LASTARG="\${$#}"
|
195
|
+
case "$LASTARG" in
|
196
|
+
*.y)
|
197
|
+
SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
|
198
|
+
if [ -f "$SRCFILE" ]; then
|
199
|
+
cp "$SRCFILE" y.tab.c
|
200
|
+
fi
|
201
|
+
SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
|
202
|
+
if [ -f "$SRCFILE" ]; then
|
203
|
+
cp "$SRCFILE" y.tab.h
|
204
|
+
fi
|
205
|
+
;;
|
206
|
+
esac
|
207
|
+
fi
|
208
|
+
if [ ! -f y.tab.h ]; then
|
209
|
+
echo >y.tab.h
|
210
|
+
fi
|
211
|
+
if [ ! -f y.tab.c ]; then
|
212
|
+
echo 'main() { return 0; }' >y.tab.c
|
213
|
+
fi
|
214
|
+
;;
|
215
|
+
|
216
|
+
lex|flex)
|
217
|
+
echo 1>&2 "\
|
218
|
+
WARNING: \`$1' is missing on your system. You should only need it if
|
219
|
+
you modified a \`.l' file. You may need the \`Flex' package
|
220
|
+
in order for those modifications to take effect. You can get
|
221
|
+
\`Flex' from any GNU archive site."
|
222
|
+
rm -f lex.yy.c
|
223
|
+
if [ $# -ne 1 ]; then
|
224
|
+
eval LASTARG="\${$#}"
|
225
|
+
case "$LASTARG" in
|
226
|
+
*.l)
|
227
|
+
SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
|
228
|
+
if [ -f "$SRCFILE" ]; then
|
229
|
+
cp "$SRCFILE" lex.yy.c
|
230
|
+
fi
|
231
|
+
;;
|
232
|
+
esac
|
233
|
+
fi
|
234
|
+
if [ ! -f lex.yy.c ]; then
|
235
|
+
echo 'main() { return 0; }' >lex.yy.c
|
236
|
+
fi
|
237
|
+
;;
|
238
|
+
|
239
|
+
help2man)
|
240
|
+
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
|
241
|
+
# We have it, but it failed.
|
242
|
+
exit 1
|
243
|
+
fi
|
244
|
+
|
245
|
+
echo 1>&2 "\
|
246
|
+
WARNING: \`$1' is missing on your system. You should only need it if
|
247
|
+
you modified a dependency of a manual page. You may need the
|
248
|
+
\`Help2man' package in order for those modifications to take
|
249
|
+
effect. You can get \`Help2man' from any GNU archive site."
|
250
|
+
|
251
|
+
file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
|
252
|
+
if test -z "$file"; then
|
253
|
+
file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'`
|
254
|
+
fi
|
255
|
+
if [ -f "$file" ]; then
|
256
|
+
touch $file
|
257
|
+
else
|
258
|
+
test -z "$file" || exec >$file
|
259
|
+
echo ".ab help2man is required to generate this page"
|
260
|
+
exit 1
|
261
|
+
fi
|
262
|
+
;;
|
263
|
+
|
264
|
+
makeinfo)
|
265
|
+
if test -z "$run" && (makeinfo --version) > /dev/null 2>&1; then
|
266
|
+
# We have makeinfo, but it failed.
|
267
|
+
exit 1
|
268
|
+
fi
|
269
|
+
|
270
|
+
echo 1>&2 "\
|
271
|
+
WARNING: \`$1' is missing on your system. You should only need it if
|
272
|
+
you modified a \`.texi' or \`.texinfo' file, or any other file
|
273
|
+
indirectly affecting the aspect of the manual. The spurious
|
274
|
+
call might also be the consequence of using a buggy \`make' (AIX,
|
275
|
+
DU, IRIX). You might want to install the \`Texinfo' package or
|
276
|
+
the \`GNU make' package. Grab either from any GNU archive site."
|
277
|
+
file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
|
278
|
+
if test -z "$file"; then
|
279
|
+
file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
|
280
|
+
file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file`
|
281
|
+
fi
|
282
|
+
touch $file
|
283
|
+
;;
|
284
|
+
|
285
|
+
tar)
|
286
|
+
shift
|
287
|
+
if test -n "$run"; then
|
288
|
+
echo 1>&2 "ERROR: \`tar' requires --run"
|
289
|
+
exit 1
|
290
|
+
fi
|
291
|
+
|
292
|
+
# We have already tried tar in the generic part.
|
293
|
+
# Look for gnutar/gtar before invocation to avoid ugly error
|
294
|
+
# messages.
|
295
|
+
if (gnutar --version > /dev/null 2>&1); then
|
296
|
+
gnutar "$@" && exit 0
|
297
|
+
fi
|
298
|
+
if (gtar --version > /dev/null 2>&1); then
|
299
|
+
gtar "$@" && exit 0
|
300
|
+
fi
|
301
|
+
firstarg="$1"
|
302
|
+
if shift; then
|
303
|
+
case "$firstarg" in
|
304
|
+
*o*)
|
305
|
+
firstarg=`echo "$firstarg" | sed s/o//`
|
306
|
+
tar "$firstarg" "$@" && exit 0
|
307
|
+
;;
|
308
|
+
esac
|
309
|
+
case "$firstarg" in
|
310
|
+
*h*)
|
311
|
+
firstarg=`echo "$firstarg" | sed s/h//`
|
312
|
+
tar "$firstarg" "$@" && exit 0
|
313
|
+
;;
|
314
|
+
esac
|
315
|
+
fi
|
316
|
+
|
317
|
+
echo 1>&2 "\
|
318
|
+
WARNING: I can't seem to be able to run \`tar' with the given arguments.
|
319
|
+
You may want to install GNU tar or Free paxutils, or check the
|
320
|
+
command line arguments."
|
321
|
+
exit 1
|
322
|
+
;;
|
323
|
+
|
324
|
+
*)
|
325
|
+
echo 1>&2 "\
|
326
|
+
WARNING: \`$1' is needed, and you do not seem to have it handy on your
|
327
|
+
system. You might have modified some files without having the
|
328
|
+
proper tools for further handling them. Check the \`README' file,
|
329
|
+
it often tells you about the needed prerequisites for installing
|
330
|
+
this package. You may also peek at any GNU archive site, in case
|
331
|
+
some other package would contain this missing \`$1' program."
|
332
|
+
exit 1
|
333
|
+
;;
|
334
|
+
esac
|
335
|
+
|
336
|
+
exit 0
|
@@ -0,0 +1,111 @@
|
|
1
|
+
#! /bin/sh
|
2
|
+
# mkinstalldirs --- make directory hierarchy
|
3
|
+
# Author: Noah Friedman <friedman@prep.ai.mit.edu>
|
4
|
+
# Created: 1993-05-16
|
5
|
+
# Public domain
|
6
|
+
|
7
|
+
errstatus=0
|
8
|
+
dirmode=""
|
9
|
+
|
10
|
+
usage="\
|
11
|
+
Usage: mkinstalldirs [-h] [--help] [-m mode] dir ..."
|
12
|
+
|
13
|
+
# process command line arguments
|
14
|
+
while test $# -gt 0 ; do
|
15
|
+
case $1 in
|
16
|
+
-h | --help | --h*) # -h for help
|
17
|
+
echo "$usage" 1>&2
|
18
|
+
exit 0
|
19
|
+
;;
|
20
|
+
-m) # -m PERM arg
|
21
|
+
shift
|
22
|
+
test $# -eq 0 && { echo "$usage" 1>&2; exit 1; }
|
23
|
+
dirmode=$1
|
24
|
+
shift
|
25
|
+
;;
|
26
|
+
--) # stop option processing
|
27
|
+
shift
|
28
|
+
break
|
29
|
+
;;
|
30
|
+
-*) # unknown option
|
31
|
+
echo "$usage" 1>&2
|
32
|
+
exit 1
|
33
|
+
;;
|
34
|
+
*) # first non-opt arg
|
35
|
+
break
|
36
|
+
;;
|
37
|
+
esac
|
38
|
+
done
|
39
|
+
|
40
|
+
for file
|
41
|
+
do
|
42
|
+
if test -d "$file"; then
|
43
|
+
shift
|
44
|
+
else
|
45
|
+
break
|
46
|
+
fi
|
47
|
+
done
|
48
|
+
|
49
|
+
case $# in
|
50
|
+
0) exit 0 ;;
|
51
|
+
esac
|
52
|
+
|
53
|
+
case $dirmode in
|
54
|
+
'')
|
55
|
+
if mkdir -p -- . 2>/dev/null; then
|
56
|
+
echo "mkdir -p -- $*"
|
57
|
+
exec mkdir -p -- "$@"
|
58
|
+
fi
|
59
|
+
;;
|
60
|
+
*)
|
61
|
+
if mkdir -m "$dirmode" -p -- . 2>/dev/null; then
|
62
|
+
echo "mkdir -m $dirmode -p -- $*"
|
63
|
+
exec mkdir -m "$dirmode" -p -- "$@"
|
64
|
+
fi
|
65
|
+
;;
|
66
|
+
esac
|
67
|
+
|
68
|
+
for file
|
69
|
+
do
|
70
|
+
set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
|
71
|
+
shift
|
72
|
+
|
73
|
+
pathcomp=
|
74
|
+
for d
|
75
|
+
do
|
76
|
+
pathcomp="$pathcomp$d"
|
77
|
+
case $pathcomp in
|
78
|
+
-*) pathcomp=./$pathcomp ;;
|
79
|
+
esac
|
80
|
+
|
81
|
+
if test ! -d "$pathcomp"; then
|
82
|
+
echo "mkdir $pathcomp"
|
83
|
+
|
84
|
+
mkdir "$pathcomp" || lasterr=$?
|
85
|
+
|
86
|
+
if test ! -d "$pathcomp"; then
|
87
|
+
errstatus=$lasterr
|
88
|
+
else
|
89
|
+
if test ! -z "$dirmode"; then
|
90
|
+
echo "chmod $dirmode $pathcomp"
|
91
|
+
lasterr=""
|
92
|
+
chmod "$dirmode" "$pathcomp" || lasterr=$?
|
93
|
+
|
94
|
+
if test ! -z "$lasterr"; then
|
95
|
+
errstatus=$lasterr
|
96
|
+
fi
|
97
|
+
fi
|
98
|
+
fi
|
99
|
+
fi
|
100
|
+
|
101
|
+
pathcomp="$pathcomp/"
|
102
|
+
done
|
103
|
+
done
|
104
|
+
|
105
|
+
exit $errstatus
|
106
|
+
|
107
|
+
# Local Variables:
|
108
|
+
# mode: shell-script
|
109
|
+
# sh-indentation: 2
|
110
|
+
# End:
|
111
|
+
# mkinstalldirs ends here
|
data/ext/nginx/Configuration.c
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
/*
|
2
2
|
* Copyright (C) Igor Sysoev
|
3
3
|
* Copyright (C) 2007 Manlio Perillo (manlio.perillo@gmail.com)
|
4
|
-
* Copyright (C)
|
4
|
+
* Copyright (C) 2010 Phusion
|
5
5
|
*
|
6
6
|
* Redistribution and use in source and binary forms, with or without
|
7
7
|
* modification, are permitted provided that the following conditions
|
@@ -29,9 +29,13 @@
|
|
29
29
|
#include <ngx_core.h>
|
30
30
|
#include <ngx_http.h>
|
31
31
|
|
32
|
+
#include <sys/types.h>
|
33
|
+
#include <pwd.h>
|
34
|
+
|
32
35
|
#include "ngx_http_passenger_module.h"
|
33
36
|
#include "Configuration.h"
|
34
37
|
#include "ContentHandler.h"
|
38
|
+
#include "../common/Constants.h"
|
35
39
|
|
36
40
|
|
37
41
|
static ngx_str_t headers_to_hide[] = {
|
@@ -47,11 +51,9 @@ static ngx_str_t headers_to_hide[] = {
|
|
47
51
|
|
48
52
|
passenger_main_conf_t passenger_main_conf;
|
49
53
|
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
};
|
54
|
-
#endif
|
54
|
+
static ngx_path_init_t ngx_http_proxy_temp_path = {
|
55
|
+
ngx_string(NGX_HTTP_PROXY_TEMP_PATH), { 1, 2, 0 }
|
56
|
+
};
|
55
57
|
|
56
58
|
|
57
59
|
void *
|
@@ -64,13 +66,36 @@ passenger_create_main_conf(ngx_conf_t *cf)
|
|
64
66
|
return NGX_CONF_ERROR;
|
65
67
|
}
|
66
68
|
|
67
|
-
conf->log_level = (
|
69
|
+
conf->log_level = (ngx_int_t) NGX_CONF_UNSET;
|
70
|
+
conf->debug_log_file.data = NULL;
|
71
|
+
conf->debug_log_file.len = 0;
|
72
|
+
conf->abort_on_startup_error = NGX_CONF_UNSET;
|
68
73
|
conf->max_pool_size = (ngx_uint_t) NGX_CONF_UNSET;
|
69
74
|
conf->max_instances_per_app = (ngx_uint_t) NGX_CONF_UNSET;
|
70
75
|
conf->pool_idle_time = (ngx_uint_t) NGX_CONF_UNSET;
|
71
76
|
conf->user_switching = NGX_CONF_UNSET;
|
72
77
|
conf->default_user.data = NULL;
|
73
78
|
conf->default_user.len = 0;
|
79
|
+
conf->default_group.data = NULL;
|
80
|
+
conf->default_group.len = 0;
|
81
|
+
conf->analytics_log_dir.data = NULL;
|
82
|
+
conf->analytics_log_dir.len = 0;
|
83
|
+
conf->analytics_log_user.data = NULL;
|
84
|
+
conf->analytics_log_user.len = 0;
|
85
|
+
conf->analytics_log_group.data = NULL;
|
86
|
+
conf->analytics_log_group.len = 0;
|
87
|
+
conf->analytics_log_permissions.data = NULL;
|
88
|
+
conf->analytics_log_permissions.len = 0;
|
89
|
+
conf->union_station_gateway_address.data = NULL;
|
90
|
+
conf->union_station_gateway_address.len = 0;
|
91
|
+
conf->union_station_gateway_port = (ngx_uint_t) NGX_CONF_UNSET;
|
92
|
+
conf->union_station_gateway_cert.data = NULL;
|
93
|
+
conf->union_station_gateway_cert.len = 0;
|
94
|
+
|
95
|
+
conf->prestart_uris = ngx_array_create(cf->pool, 1, sizeof(ngx_str_t));
|
96
|
+
if (conf->prestart_uris == NULL) {
|
97
|
+
return NGX_CONF_ERROR;
|
98
|
+
}
|
74
99
|
|
75
100
|
return conf;
|
76
101
|
}
|
@@ -79,6 +104,11 @@ char *
|
|
79
104
|
passenger_init_main_conf(ngx_conf_t *cf, void *conf_pointer)
|
80
105
|
{
|
81
106
|
passenger_main_conf_t *conf;
|
107
|
+
u_char filename[NGX_MAX_PATH], *last;
|
108
|
+
ngx_str_t str;
|
109
|
+
struct passwd *user_entry;
|
110
|
+
struct group *group_entry;
|
111
|
+
char buf[128];
|
82
112
|
|
83
113
|
conf = &passenger_main_conf;
|
84
114
|
*conf = *((passenger_main_conf_t *) conf_pointer);
|
@@ -88,20 +118,28 @@ passenger_init_main_conf(ngx_conf_t *cf, void *conf_pointer)
|
|
88
118
|
conf->ruby.len = sizeof("ruby") - 1;
|
89
119
|
}
|
90
120
|
|
91
|
-
if (conf->log_level == (
|
92
|
-
conf->log_level =
|
121
|
+
if (conf->log_level == (ngx_int_t) NGX_CONF_UNSET) {
|
122
|
+
conf->log_level = DEFAULT_LOG_LEVEL;
|
123
|
+
}
|
124
|
+
|
125
|
+
if (conf->debug_log_file.len == 0) {
|
126
|
+
conf->debug_log_file.data = (u_char *) "";
|
127
|
+
}
|
128
|
+
|
129
|
+
if (conf->abort_on_startup_error == NGX_CONF_UNSET) {
|
130
|
+
conf->abort_on_startup_error = 0;
|
93
131
|
}
|
94
132
|
|
95
133
|
if (conf->max_pool_size == (ngx_uint_t) NGX_CONF_UNSET) {
|
96
|
-
conf->max_pool_size =
|
134
|
+
conf->max_pool_size = DEFAULT_MAX_POOL_SIZE;
|
97
135
|
}
|
98
136
|
|
99
137
|
if (conf->max_instances_per_app == (ngx_uint_t) NGX_CONF_UNSET) {
|
100
|
-
conf->max_instances_per_app =
|
138
|
+
conf->max_instances_per_app = DEFAULT_MAX_INSTANCES_PER_APP;
|
101
139
|
}
|
102
140
|
|
103
141
|
if (conf->pool_idle_time == (ngx_uint_t) NGX_CONF_UNSET) {
|
104
|
-
conf->pool_idle_time =
|
142
|
+
conf->pool_idle_time = DEFAULT_POOL_IDLE_TIME;
|
105
143
|
}
|
106
144
|
|
107
145
|
if (conf->user_switching == NGX_CONF_UNSET) {
|
@@ -109,8 +147,89 @@ passenger_init_main_conf(ngx_conf_t *cf, void *conf_pointer)
|
|
109
147
|
}
|
110
148
|
|
111
149
|
if (conf->default_user.len == 0) {
|
112
|
-
conf->default_user.len = sizeof(
|
113
|
-
conf->default_user.data = (u_char *)
|
150
|
+
conf->default_user.len = sizeof(DEFAULT_WEB_APP_USER) - 1;
|
151
|
+
conf->default_user.data = (u_char *) DEFAULT_WEB_APP_USER;
|
152
|
+
}
|
153
|
+
if (conf->default_user.len > sizeof(buf) - 1) {
|
154
|
+
return "Value for 'default_user' is too long.";
|
155
|
+
}
|
156
|
+
memcpy(buf, conf->default_user.data, conf->default_user.len);
|
157
|
+
buf[conf->default_user.len] = '\0';
|
158
|
+
user_entry = getpwnam(buf);
|
159
|
+
if (user_entry == NULL) {
|
160
|
+
return "The user specified by the 'default_user' option does not exist.";
|
161
|
+
}
|
162
|
+
|
163
|
+
if (conf->default_group.len == 0) {
|
164
|
+
group_entry = getgrgid(user_entry->pw_gid);
|
165
|
+
if (group_entry != NULL) {
|
166
|
+
conf->default_group.len = strlen(group_entry->gr_name);
|
167
|
+
conf->default_group.data = ngx_palloc(cf->pool, conf->default_group.len + 1);
|
168
|
+
memcpy(conf->default_group.data, group_entry->gr_name, conf->default_group.len + 1);
|
169
|
+
} else {
|
170
|
+
return "The primary group of the user specified by the 'default_user' "
|
171
|
+
"option does not exist. Your system's user account database is "
|
172
|
+
"probably broken, please fix it.";
|
173
|
+
}
|
174
|
+
} else {
|
175
|
+
if (conf->default_group.len > sizeof(buf) - 1) {
|
176
|
+
return "Value for 'default_group' is too long.";
|
177
|
+
}
|
178
|
+
memcpy(buf, conf->default_group.data, conf->default_group.len);
|
179
|
+
buf[conf->default_group.len] = '\0';
|
180
|
+
group_entry = getgrnam(buf);
|
181
|
+
if (group_entry == NULL) {
|
182
|
+
return "The group specified by the 'default_group' option does not exist.";
|
183
|
+
}
|
184
|
+
}
|
185
|
+
|
186
|
+
if (conf->analytics_log_dir.len == 0) {
|
187
|
+
if (geteuid() == 0) {
|
188
|
+
conf->analytics_log_dir.data = (u_char *) "/var/log/passenger-analytics";
|
189
|
+
conf->analytics_log_dir.len = sizeof("/var/log/passenger-analytics") - 1;
|
190
|
+
} else {
|
191
|
+
user_entry = getpwuid(geteuid());
|
192
|
+
if (user_entry == NULL) {
|
193
|
+
last = ngx_snprintf(filename, sizeof(filename),
|
194
|
+
"/tmp/passenger-analytics-logs.user-%L",
|
195
|
+
(int64_t) geteuid());
|
196
|
+
} else {
|
197
|
+
last = ngx_snprintf(filename, sizeof(filename),
|
198
|
+
"/tmp/passenger-analytics-logs.%s",
|
199
|
+
user_entry->pw_name);
|
200
|
+
}
|
201
|
+
str.data = filename;
|
202
|
+
str.len = last - filename;
|
203
|
+
conf->analytics_log_dir.data = ngx_pstrdup(cf->pool, &str);
|
204
|
+
conf->analytics_log_dir.len = str.len;
|
205
|
+
}
|
206
|
+
}
|
207
|
+
|
208
|
+
if (conf->analytics_log_user.len == 0) {
|
209
|
+
conf->analytics_log_user.len = sizeof(DEFAULT_ANALYTICS_LOG_USER) - 1;
|
210
|
+
conf->analytics_log_user.data = (u_char *) DEFAULT_ANALYTICS_LOG_USER;
|
211
|
+
}
|
212
|
+
|
213
|
+
if (conf->analytics_log_group.len == 0) {
|
214
|
+
conf->analytics_log_group.len = sizeof(DEFAULT_ANALYTICS_LOG_GROUP) - 1;
|
215
|
+
conf->analytics_log_group.data = (u_char *) DEFAULT_ANALYTICS_LOG_GROUP;
|
216
|
+
}
|
217
|
+
|
218
|
+
if (conf->analytics_log_permissions.len == 0) {
|
219
|
+
conf->analytics_log_permissions.len = sizeof(DEFAULT_ANALYTICS_LOG_PERMISSIONS) - 1;
|
220
|
+
conf->analytics_log_permissions.data = (u_char *) DEFAULT_ANALYTICS_LOG_PERMISSIONS;
|
221
|
+
}
|
222
|
+
|
223
|
+
if (conf->union_station_gateway_address.len == 0) {
|
224
|
+
conf->union_station_gateway_address.data = (u_char *) "";
|
225
|
+
}
|
226
|
+
|
227
|
+
if (conf->union_station_gateway_port == (ngx_uint_t) NGX_CONF_UNSET) {
|
228
|
+
conf->union_station_gateway_port = DEFAULT_UNION_STATION_GATEWAY_PORT;
|
229
|
+
}
|
230
|
+
|
231
|
+
if (conf->union_station_gateway_cert.len == 0) {
|
232
|
+
conf->union_station_gateway_cert.data = (u_char *) "";
|
114
233
|
}
|
115
234
|
|
116
235
|
return NGX_CONF_OK;
|
@@ -130,17 +249,16 @@ passenger_create_loc_conf(ngx_conf_t *cf)
|
|
130
249
|
/*
|
131
250
|
* set by ngx_pcalloc():
|
132
251
|
*
|
133
|
-
* conf->
|
134
|
-
* conf->
|
135
|
-
* conf->
|
136
|
-
* conf->
|
137
|
-
* conf->
|
138
|
-
* conf->
|
139
|
-
* conf->
|
140
|
-
* conf->
|
141
|
-
* conf->
|
142
|
-
* conf->
|
143
|
-
* conf->upstream.store_values = NULL;
|
252
|
+
* conf->upstream_config.bufs.num = 0;
|
253
|
+
* conf->upstream_config.next_upstream = 0;
|
254
|
+
* conf->upstream_config.temp_path = NULL;
|
255
|
+
* conf->upstream_config.hide_headers_hash = { NULL, 0 };
|
256
|
+
* conf->upstream_config.hide_headers = NULL;
|
257
|
+
* conf->upstream_config.pass_headers = NULL;
|
258
|
+
* conf->upstream_config.uri = { 0, NULL };
|
259
|
+
* conf->upstream_config.location = NULL;
|
260
|
+
* conf->upstream_config.store_lengths = NULL;
|
261
|
+
* conf->upstream_config.store_values = NULL;
|
144
262
|
*
|
145
263
|
* conf->index.len = 0;
|
146
264
|
* conf->index.data = NULL;
|
@@ -148,36 +266,56 @@ passenger_create_loc_conf(ngx_conf_t *cf)
|
|
148
266
|
|
149
267
|
conf->enabled = NGX_CONF_UNSET;
|
150
268
|
conf->use_global_queue = NGX_CONF_UNSET;
|
269
|
+
conf->friendly_error_pages = NGX_CONF_UNSET;
|
270
|
+
conf->analytics = NGX_CONF_UNSET;
|
271
|
+
conf->debugger = NGX_CONF_UNSET;
|
272
|
+
conf->show_version_in_header = NGX_CONF_UNSET;
|
151
273
|
conf->environment.data = NULL;
|
152
274
|
conf->environment.len = 0;
|
153
275
|
conf->spawn_method.data = NULL;
|
154
276
|
conf->spawn_method.len = 0;
|
277
|
+
conf->union_station_key.data = NULL;
|
278
|
+
conf->union_station_key.len = 0;
|
279
|
+
conf->user.data = NULL;
|
280
|
+
conf->user.len = 0;
|
281
|
+
conf->group.data = NULL;
|
282
|
+
conf->group.len = 0;
|
283
|
+
conf->app_group_name.data = NULL;
|
284
|
+
conf->app_group_name.len = 0;
|
285
|
+
conf->app_rights.data = NULL;
|
286
|
+
conf->app_rights.len = 0;
|
155
287
|
conf->base_uris = NGX_CONF_UNSET_PTR;
|
288
|
+
conf->min_instances = NGX_CONF_UNSET;
|
156
289
|
conf->framework_spawner_idle_time = NGX_CONF_UNSET;
|
157
290
|
conf->app_spawner_idle_time = NGX_CONF_UNSET;
|
158
291
|
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
conf->
|
292
|
+
/******************************/
|
293
|
+
/******************************/
|
294
|
+
|
295
|
+
conf->upstream_config.pass_headers = ngx_array_create(cf->pool, 1, sizeof(ngx_keyval_t));
|
163
296
|
|
164
|
-
conf->
|
165
|
-
conf->
|
166
|
-
conf->
|
297
|
+
conf->upstream_config.store = NGX_CONF_UNSET;
|
298
|
+
conf->upstream_config.store_access = NGX_CONF_UNSET_UINT;
|
299
|
+
conf->upstream_config.buffering = NGX_CONF_UNSET;
|
300
|
+
conf->upstream_config.ignore_client_abort = NGX_CONF_UNSET;
|
167
301
|
|
168
|
-
conf->
|
169
|
-
conf->
|
302
|
+
conf->upstream_config.connect_timeout = NGX_CONF_UNSET_MSEC;
|
303
|
+
conf->upstream_config.send_timeout = NGX_CONF_UNSET_MSEC;
|
304
|
+
conf->upstream_config.read_timeout = NGX_CONF_UNSET_MSEC;
|
170
305
|
|
171
|
-
conf->
|
172
|
-
conf->
|
173
|
-
conf->upstream.temp_file_write_size_conf = NGX_CONF_UNSET_SIZE;
|
306
|
+
conf->upstream_config.send_lowat = NGX_CONF_UNSET_SIZE;
|
307
|
+
conf->upstream_config.buffer_size = NGX_CONF_UNSET_SIZE;
|
174
308
|
|
175
|
-
conf->
|
176
|
-
conf->
|
309
|
+
conf->upstream_config.busy_buffers_size_conf = NGX_CONF_UNSET_SIZE;
|
310
|
+
conf->upstream_config.max_temp_file_size_conf = NGX_CONF_UNSET_SIZE;
|
311
|
+
conf->upstream_config.temp_file_write_size_conf = NGX_CONF_UNSET_SIZE;
|
177
312
|
|
178
|
-
conf->
|
313
|
+
conf->upstream_config.pass_request_headers = NGX_CONF_UNSET;
|
314
|
+
conf->upstream_config.pass_request_body = NGX_CONF_UNSET;
|
179
315
|
|
180
|
-
conf->
|
316
|
+
conf->upstream_config.intercept_errors = NGX_CONF_UNSET;
|
317
|
+
|
318
|
+
conf->upstream_config.cyclic_temp_file = 0;
|
181
319
|
|
182
320
|
#define DEFINE_VAR_TO_PASS(header_name, var_name) \
|
183
321
|
kv = ngx_array_push(conf->vars_source); \
|
@@ -224,14 +362,21 @@ passenger_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child)
|
|
224
362
|
ngx_hash_init_t hash;
|
225
363
|
ngx_http_script_compile_t sc;
|
226
364
|
ngx_http_script_copy_code_t *copy;
|
227
|
-
#if NGINX_VERSION_NUM < 7000
|
228
|
-
u_char *temp_path;
|
229
|
-
#endif
|
230
365
|
|
231
366
|
ngx_conf_merge_value(conf->enabled, prev->enabled, 0);
|
232
|
-
ngx_conf_merge_value(conf->use_global_queue, prev->use_global_queue,
|
367
|
+
ngx_conf_merge_value(conf->use_global_queue, prev->use_global_queue, 1);
|
368
|
+
ngx_conf_merge_value(conf->friendly_error_pages, prev->friendly_error_pages, 1);
|
369
|
+
ngx_conf_merge_value(conf->analytics, prev->analytics, 0);
|
370
|
+
ngx_conf_merge_value(conf->debugger, prev->debugger, 0);
|
371
|
+
ngx_conf_merge_value(conf->show_version_in_header, prev->show_version_in_header, 1);
|
233
372
|
ngx_conf_merge_str_value(conf->environment, prev->environment, "production");
|
234
373
|
ngx_conf_merge_str_value(conf->spawn_method, prev->spawn_method, "smart-lv2");
|
374
|
+
ngx_conf_merge_str_value(conf->union_station_key, prev->union_station_key, NULL);
|
375
|
+
ngx_conf_merge_str_value(conf->user, prev->user, "");
|
376
|
+
ngx_conf_merge_str_value(conf->group, prev->group, "");
|
377
|
+
ngx_conf_merge_str_value(conf->app_group_name, prev->app_group_name, NULL);
|
378
|
+
ngx_conf_merge_str_value(conf->app_rights, prev->app_rights, NULL);
|
379
|
+
ngx_conf_merge_value(conf->min_instances, prev->min_instances, (ngx_int_t) -1);
|
235
380
|
ngx_conf_merge_value(conf->framework_spawner_idle_time, prev->framework_spawner_idle_time, (ngx_int_t) -1);
|
236
381
|
ngx_conf_merge_value(conf->app_spawner_idle_time, prev->app_spawner_idle_time, (ngx_int_t) -1);
|
237
382
|
|
@@ -253,71 +398,73 @@ passenger_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child)
|
|
253
398
|
}
|
254
399
|
}
|
255
400
|
|
401
|
+
/******************************/
|
402
|
+
/******************************/
|
256
403
|
|
257
|
-
if (conf->
|
258
|
-
ngx_conf_merge_value(conf->
|
259
|
-
prev->
|
404
|
+
if (conf->upstream_config.store != 0) {
|
405
|
+
ngx_conf_merge_value(conf->upstream_config.store,
|
406
|
+
prev->upstream_config.store, 0);
|
260
407
|
|
261
|
-
if (conf->
|
262
|
-
conf->
|
263
|
-
conf->
|
408
|
+
if (conf->upstream_config.store_lengths == NULL) {
|
409
|
+
conf->upstream_config.store_lengths = prev->upstream_config.store_lengths;
|
410
|
+
conf->upstream_config.store_values = prev->upstream_config.store_values;
|
264
411
|
}
|
265
412
|
}
|
266
413
|
|
267
|
-
ngx_conf_merge_uint_value(conf->
|
268
|
-
prev->
|
414
|
+
ngx_conf_merge_uint_value(conf->upstream_config.store_access,
|
415
|
+
prev->upstream_config.store_access, 0600);
|
269
416
|
|
270
|
-
ngx_conf_merge_value(conf->
|
271
|
-
prev->
|
417
|
+
ngx_conf_merge_value(conf->upstream_config.buffering,
|
418
|
+
prev->upstream_config.buffering, 1);
|
272
419
|
|
273
|
-
ngx_conf_merge_value(conf->
|
274
|
-
prev->
|
420
|
+
ngx_conf_merge_value(conf->upstream_config.ignore_client_abort,
|
421
|
+
prev->upstream_config.ignore_client_abort, 0);
|
275
422
|
|
276
|
-
ngx_conf_merge_msec_value(conf->
|
277
|
-
prev->
|
423
|
+
ngx_conf_merge_msec_value(conf->upstream_config.connect_timeout,
|
424
|
+
prev->upstream_config.connect_timeout, 600000);
|
278
425
|
|
279
|
-
ngx_conf_merge_msec_value(conf->
|
280
|
-
prev->
|
426
|
+
ngx_conf_merge_msec_value(conf->upstream_config.send_timeout,
|
427
|
+
prev->upstream_config.send_timeout, 600000);
|
281
428
|
|
282
|
-
ngx_conf_merge_msec_value(conf->
|
283
|
-
prev->
|
429
|
+
ngx_conf_merge_msec_value(conf->upstream_config.read_timeout,
|
430
|
+
prev->upstream_config.read_timeout, 600000);
|
284
431
|
|
285
|
-
ngx_conf_merge_size_value(conf->
|
286
|
-
prev->
|
432
|
+
ngx_conf_merge_size_value(conf->upstream_config.send_lowat,
|
433
|
+
prev->upstream_config.send_lowat, 0);
|
287
434
|
|
288
|
-
ngx_conf_merge_size_value(conf->
|
289
|
-
prev->
|
435
|
+
ngx_conf_merge_size_value(conf->upstream_config.buffer_size,
|
436
|
+
prev->upstream_config.buffer_size,
|
290
437
|
(size_t) ngx_pagesize);
|
291
438
|
|
292
439
|
|
293
|
-
ngx_conf_merge_bufs_value(conf->
|
440
|
+
ngx_conf_merge_bufs_value(conf->upstream_config.bufs, prev->upstream_config.bufs,
|
294
441
|
8, ngx_pagesize);
|
295
442
|
|
296
|
-
if (conf->
|
443
|
+
if (conf->upstream_config.bufs.num < 2) {
|
297
444
|
ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
|
298
445
|
"there must be at least 2 \"scgi_buffers\"");
|
299
446
|
return NGX_CONF_ERROR;
|
300
447
|
}
|
301
448
|
|
302
449
|
|
303
|
-
size = conf->
|
304
|
-
if (size < conf->
|
305
|
-
size = conf->
|
450
|
+
size = conf->upstream_config.buffer_size;
|
451
|
+
if (size < conf->upstream_config.bufs.size) {
|
452
|
+
size = conf->upstream_config.bufs.size;
|
306
453
|
}
|
307
454
|
|
308
455
|
|
309
|
-
ngx_conf_merge_size_value(conf->
|
310
|
-
prev->
|
456
|
+
ngx_conf_merge_size_value(conf->upstream_config.busy_buffers_size_conf,
|
457
|
+
prev->upstream_config.busy_buffers_size_conf,
|
311
458
|
NGX_CONF_UNSET_SIZE);
|
312
459
|
|
313
|
-
if (conf->
|
314
|
-
conf->
|
460
|
+
if (conf->upstream_config.busy_buffers_size_conf == NGX_CONF_UNSET_SIZE) {
|
461
|
+
conf->upstream_config.busy_buffers_size = 2 * size;
|
315
462
|
} else {
|
316
|
-
conf->
|
317
|
-
conf->
|
463
|
+
conf->upstream_config.busy_buffers_size =
|
464
|
+
conf->upstream_config.busy_buffers_size_conf;
|
318
465
|
}
|
319
466
|
|
320
|
-
if (conf->
|
467
|
+
if (conf->upstream_config.busy_buffers_size < size) {
|
321
468
|
ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
|
322
469
|
"\"scgi_busy_buffers_size\" must be equal or bigger than "
|
323
470
|
"maximum of the value of \"scgi_buffer_size\" and "
|
@@ -326,8 +473,8 @@ passenger_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child)
|
|
326
473
|
return NGX_CONF_ERROR;
|
327
474
|
}
|
328
475
|
|
329
|
-
if (conf->
|
330
|
-
> (conf->
|
476
|
+
if (conf->upstream_config.busy_buffers_size
|
477
|
+
> (conf->upstream_config.bufs.num - 1) * conf->upstream_config.bufs.size)
|
331
478
|
{
|
332
479
|
ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
|
333
480
|
"\"scgi_busy_buffers_size\" must be less than "
|
@@ -337,18 +484,18 @@ passenger_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child)
|
|
337
484
|
}
|
338
485
|
|
339
486
|
|
340
|
-
ngx_conf_merge_size_value(conf->
|
341
|
-
prev->
|
487
|
+
ngx_conf_merge_size_value(conf->upstream_config.temp_file_write_size_conf,
|
488
|
+
prev->upstream_config.temp_file_write_size_conf,
|
342
489
|
NGX_CONF_UNSET_SIZE);
|
343
490
|
|
344
|
-
if (conf->
|
345
|
-
conf->
|
491
|
+
if (conf->upstream_config.temp_file_write_size_conf == NGX_CONF_UNSET_SIZE) {
|
492
|
+
conf->upstream_config.temp_file_write_size = 2 * size;
|
346
493
|
} else {
|
347
|
-
conf->
|
348
|
-
conf->
|
494
|
+
conf->upstream_config.temp_file_write_size =
|
495
|
+
conf->upstream_config.temp_file_write_size_conf;
|
349
496
|
}
|
350
497
|
|
351
|
-
if (conf->
|
498
|
+
if (conf->upstream_config.temp_file_write_size < size) {
|
352
499
|
ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
|
353
500
|
"\"scgi_temp_file_write_size\" must be equal or bigger than "
|
354
501
|
"maximum of the value of \"scgi_buffer_size\" and "
|
@@ -358,19 +505,19 @@ passenger_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child)
|
|
358
505
|
}
|
359
506
|
|
360
507
|
|
361
|
-
ngx_conf_merge_size_value(conf->
|
362
|
-
prev->
|
508
|
+
ngx_conf_merge_size_value(conf->upstream_config.max_temp_file_size_conf,
|
509
|
+
prev->upstream_config.max_temp_file_size_conf,
|
363
510
|
NGX_CONF_UNSET_SIZE);
|
364
511
|
|
365
|
-
if (conf->
|
366
|
-
conf->
|
512
|
+
if (conf->upstream_config.max_temp_file_size_conf == NGX_CONF_UNSET_SIZE) {
|
513
|
+
conf->upstream_config.max_temp_file_size = 1024 * 1024 * 1024;
|
367
514
|
} else {
|
368
|
-
conf->
|
369
|
-
conf->
|
515
|
+
conf->upstream_config.max_temp_file_size =
|
516
|
+
conf->upstream_config.max_temp_file_size_conf;
|
370
517
|
}
|
371
518
|
|
372
|
-
if (conf->
|
373
|
-
&& conf->
|
519
|
+
if (conf->upstream_config.max_temp_file_size != 0
|
520
|
+
&& conf->upstream_config.max_temp_file_size < size)
|
374
521
|
{
|
375
522
|
ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
|
376
523
|
"\"scgi_max_temp_file_size\" must be equal to zero to disable "
|
@@ -382,63 +529,52 @@ passenger_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child)
|
|
382
529
|
}
|
383
530
|
|
384
531
|
|
385
|
-
ngx_conf_merge_bitmask_value(conf->
|
386
|
-
prev->
|
532
|
+
ngx_conf_merge_bitmask_value(conf->upstream_config.next_upstream,
|
533
|
+
prev->upstream_config.next_upstream,
|
387
534
|
(NGX_CONF_BITMASK_SET
|
388
535
|
|NGX_HTTP_UPSTREAM_FT_ERROR
|
389
536
|
|NGX_HTTP_UPSTREAM_FT_TIMEOUT));
|
390
537
|
|
391
|
-
if (conf->
|
392
|
-
conf->
|
538
|
+
if (conf->upstream_config.next_upstream & NGX_HTTP_UPSTREAM_FT_OFF) {
|
539
|
+
conf->upstream_config.next_upstream = NGX_CONF_BITMASK_SET
|
393
540
|
|NGX_HTTP_UPSTREAM_FT_OFF;
|
394
541
|
}
|
395
542
|
|
396
|
-
|
397
|
-
|
398
|
-
|
399
|
-
|
400
|
-
ngx_conf_merge_path_value(conf->upstream.temp_path,
|
401
|
-
prev->upstream.temp_path,
|
402
|
-
temp_path, 1, 2, 0,
|
403
|
-
ngx_garbage_collector_temp_handler, cf);
|
404
|
-
conf->upstream.temp_path->name.len = ngx_strlen(conf->upstream.temp_path->name.data);
|
405
|
-
#else
|
406
|
-
ngx_conf_merge_path_value(cf,
|
407
|
-
&conf->upstream.temp_path,
|
408
|
-
prev->upstream.temp_path,
|
409
|
-
&ngx_http_proxy_temp_path);
|
410
|
-
#endif
|
543
|
+
ngx_conf_merge_path_value(cf,
|
544
|
+
&conf->upstream_config.temp_path,
|
545
|
+
prev->upstream_config.temp_path,
|
546
|
+
&ngx_http_proxy_temp_path);
|
411
547
|
|
412
|
-
ngx_conf_merge_value(conf->
|
413
|
-
|
414
|
-
ngx_conf_merge_value(conf->
|
415
|
-
|
548
|
+
ngx_conf_merge_value(conf->upstream_config.pass_request_headers,
|
549
|
+
prev->upstream_config.pass_request_headers, 1);
|
550
|
+
ngx_conf_merge_value(conf->upstream_config.pass_request_body,
|
551
|
+
prev->upstream_config.pass_request_body, 1);
|
416
552
|
|
417
|
-
ngx_conf_merge_value(conf->
|
418
|
-
|
553
|
+
ngx_conf_merge_value(conf->upstream_config.intercept_errors,
|
554
|
+
prev->upstream_config.intercept_errors, 0);
|
419
555
|
|
420
556
|
|
421
557
|
|
422
558
|
ngx_conf_merge_str_value(conf->index, prev->index, "");
|
423
559
|
|
424
|
-
if (conf->
|
425
|
-
&& conf->
|
560
|
+
if (conf->upstream_config.hide_headers == NULL
|
561
|
+
&& conf->upstream_config.pass_headers == NULL)
|
426
562
|
{
|
427
|
-
conf->
|
428
|
-
conf->
|
429
|
-
conf->
|
563
|
+
conf->upstream_config.hide_headers = prev->upstream_config.hide_headers;
|
564
|
+
conf->upstream_config.pass_headers = prev->upstream_config.pass_headers;
|
565
|
+
conf->upstream_config.hide_headers_hash = prev->upstream_config.hide_headers_hash;
|
430
566
|
|
431
|
-
if (conf->
|
567
|
+
if (conf->upstream_config.hide_headers_hash.buckets) {
|
432
568
|
goto peers;
|
433
569
|
}
|
434
570
|
|
435
571
|
} else {
|
436
|
-
if (conf->
|
437
|
-
conf->
|
572
|
+
if (conf->upstream_config.hide_headers == NULL) {
|
573
|
+
conf->upstream_config.hide_headers = prev->upstream_config.hide_headers;
|
438
574
|
}
|
439
575
|
|
440
|
-
if (conf->
|
441
|
-
conf->
|
576
|
+
if (conf->upstream_config.pass_headers == NULL) {
|
577
|
+
conf->upstream_config.pass_headers = prev->upstream_config.pass_headers;
|
442
578
|
}
|
443
579
|
}
|
444
580
|
|
@@ -459,11 +595,11 @@ passenger_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child)
|
|
459
595
|
hk->value = (void *) 1;
|
460
596
|
}
|
461
597
|
|
462
|
-
if (conf->
|
598
|
+
if (conf->upstream_config.hide_headers) {
|
463
599
|
|
464
|
-
header = conf->
|
600
|
+
header = conf->upstream_config.hide_headers->elts;
|
465
601
|
|
466
|
-
for (i = 0; i < conf->
|
602
|
+
for (i = 0; i < conf->upstream_config.hide_headers->nelts; i++) {
|
467
603
|
|
468
604
|
hk = hide_headers.elts;
|
469
605
|
|
@@ -488,12 +624,12 @@ passenger_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child)
|
|
488
624
|
}
|
489
625
|
}
|
490
626
|
|
491
|
-
if (conf->
|
627
|
+
if (conf->upstream_config.pass_headers) {
|
492
628
|
|
493
629
|
hk = hide_headers.elts;
|
494
|
-
header = conf->
|
630
|
+
header = conf->upstream_config.pass_headers->elts;
|
495
631
|
|
496
|
-
for (i = 0; i < conf->
|
632
|
+
for (i = 0; i < conf->upstream_config.pass_headers->nelts; i++) {
|
497
633
|
|
498
634
|
for (j = 0; j < hide_headers.nelts; j++) {
|
499
635
|
|
@@ -509,7 +645,7 @@ passenger_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child)
|
|
509
645
|
}
|
510
646
|
}
|
511
647
|
|
512
|
-
hash.hash = &conf->
|
648
|
+
hash.hash = &conf->upstream_config.hide_headers_hash;
|
513
649
|
hash.key = ngx_hash_key_lc;
|
514
650
|
hash.max_size = 512;
|
515
651
|
hash.bucket_size = ngx_align(64, ngx_cacheline_size);
|
@@ -523,11 +659,8 @@ passenger_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child)
|
|
523
659
|
|
524
660
|
peers:
|
525
661
|
|
526
|
-
if (conf->
|
527
|
-
conf->
|
528
|
-
#if NGINX_VERSION_NUM < 7000
|
529
|
-
conf->upstream.schema = prev->upstream.schema;
|
530
|
-
#endif
|
662
|
+
if (conf->upstream_config.upstream == NULL) {
|
663
|
+
conf->upstream_config.upstream = prev->upstream_config.upstream;
|
531
664
|
}
|
532
665
|
|
533
666
|
if (conf->vars_source == NULL) {
|
@@ -665,36 +798,28 @@ peers:
|
|
665
798
|
static char *
|
666
799
|
passenger_enabled(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
|
667
800
|
{
|
668
|
-
passenger_loc_conf_t *
|
669
|
-
|
670
|
-
ngx_url_t u;
|
801
|
+
passenger_loc_conf_t *passenger_conf = conf;
|
671
802
|
ngx_http_core_loc_conf_t *clcf;
|
672
803
|
ngx_str_t *value;
|
804
|
+
ngx_url_t upstream_url;
|
673
805
|
|
674
806
|
value = cf->args->elts;
|
675
807
|
if (ngx_strcasecmp(value[1].data, (u_char *) "on") == 0) {
|
676
|
-
|
677
|
-
|
678
|
-
|
679
|
-
|
680
|
-
|
681
|
-
|
682
|
-
|
683
|
-
|
684
|
-
|
685
|
-
|
686
|
-
|
687
|
-
|
688
|
-
|
689
|
-
lcf->upstream.upstream = ngx_http_upstream_add(cf, &u, 0);
|
690
|
-
if (lcf->upstream.upstream == NULL) {
|
808
|
+
passenger_conf->enabled = 1;
|
809
|
+
|
810
|
+
/* Register a placeholder value as upstream address. The real upstream
|
811
|
+
* address (the helper agent socket filename) will be set while processing
|
812
|
+
* requests, because we can't start the helper agent until config
|
813
|
+
* loading is done.
|
814
|
+
*/
|
815
|
+
ngx_memzero(&upstream_url, sizeof(ngx_url_t));
|
816
|
+
upstream_url.url = passenger_placeholder_upstream_address;
|
817
|
+
upstream_url.no_resolve = 1;
|
818
|
+
passenger_conf->upstream_config.upstream = ngx_http_upstream_add(cf, &upstream_url, 0);
|
819
|
+
if (passenger_conf->upstream_config.upstream == NULL) {
|
691
820
|
return NGX_CONF_ERROR;
|
692
821
|
}
|
693
|
-
|
694
|
-
#if NGINX_VERSION_NUM < 7000
|
695
|
-
lcf->upstream.schema = passenger_schema_string;
|
696
|
-
#endif
|
697
|
-
|
822
|
+
|
698
823
|
clcf = ngx_http_conf_get_module_loc_conf(cf, ngx_http_core_module);
|
699
824
|
clcf->handler = passenger_content_handler;
|
700
825
|
|
@@ -703,7 +828,52 @@ passenger_enabled(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
|
|
703
828
|
clcf->auto_redirect = 1;
|
704
829
|
}
|
705
830
|
} else {
|
706
|
-
|
831
|
+
passenger_conf->enabled = 0;
|
832
|
+
}
|
833
|
+
|
834
|
+
return NGX_CONF_OK;
|
835
|
+
}
|
836
|
+
|
837
|
+
static char *
|
838
|
+
set_null_terminated_keyval_slot(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
|
839
|
+
{
|
840
|
+
char *p = conf;
|
841
|
+
|
842
|
+
ngx_str_t *value;
|
843
|
+
ngx_array_t **a;
|
844
|
+
ngx_keyval_t *kv;
|
845
|
+
ngx_conf_post_t *post;
|
846
|
+
u_char *last;
|
847
|
+
|
848
|
+
a = (ngx_array_t **) (p + cmd->offset);
|
849
|
+
|
850
|
+
if (*a == NULL) {
|
851
|
+
*a = ngx_array_create(cf->pool, 4, sizeof(ngx_keyval_t));
|
852
|
+
if (*a == NULL) {
|
853
|
+
return NGX_CONF_ERROR;
|
854
|
+
}
|
855
|
+
}
|
856
|
+
|
857
|
+
kv = ngx_array_push(*a);
|
858
|
+
if (kv == NULL) {
|
859
|
+
return NGX_CONF_ERROR;
|
860
|
+
}
|
861
|
+
|
862
|
+
value = cf->args->elts;
|
863
|
+
|
864
|
+
kv->key.data = ngx_palloc(cf->pool, value[1].len + 1);
|
865
|
+
kv->key.len = value[1].len + 1;
|
866
|
+
last = ngx_copy(kv->key.data, value[1].data, value[1].len);
|
867
|
+
*last = '\0';
|
868
|
+
|
869
|
+
kv->value.data = ngx_palloc(cf->pool, value[2].len + 1);
|
870
|
+
kv->value.len = value[2].len + 1;
|
871
|
+
last = ngx_copy(kv->value.data, value[2].data, value[2].len);
|
872
|
+
*last = '\0';
|
873
|
+
|
874
|
+
if (cmd->post) {
|
875
|
+
post = cmd->post;
|
876
|
+
return post->post_handler(cf, post, kv);
|
707
877
|
}
|
708
878
|
|
709
879
|
return NGX_CONF_OK;
|
@@ -865,13 +1035,34 @@ const ngx_command_t passenger_commands[] = {
|
|
865
1035
|
offsetof(passenger_main_conf_t, log_level),
|
866
1036
|
NULL },
|
867
1037
|
|
1038
|
+
{ ngx_string("passenger_debug_log_file"),
|
1039
|
+
NGX_HTTP_MAIN_CONF | NGX_CONF_TAKE1,
|
1040
|
+
ngx_conf_set_str_slot,
|
1041
|
+
NGX_HTTP_MAIN_CONF_OFFSET,
|
1042
|
+
offsetof(passenger_main_conf_t, debug_log_file),
|
1043
|
+
NULL },
|
1044
|
+
|
1045
|
+
{ ngx_string("passenger_abort_on_startup_error"),
|
1046
|
+
NGX_HTTP_MAIN_CONF | NGX_CONF_FLAG,
|
1047
|
+
ngx_conf_set_flag_slot,
|
1048
|
+
NGX_HTTP_MAIN_CONF_OFFSET,
|
1049
|
+
offsetof(passenger_main_conf_t, abort_on_startup_error),
|
1050
|
+
NULL },
|
1051
|
+
|
868
1052
|
{ ngx_string("passenger_use_global_queue"),
|
869
|
-
NGX_HTTP_SRV_CONF | NGX_HTTP_LOC_CONF | NGX_HTTP_LIF_CONF | NGX_CONF_FLAG,
|
1053
|
+
NGX_HTTP_MAIN_CONF | NGX_HTTP_SRV_CONF | NGX_HTTP_LOC_CONF | NGX_HTTP_LIF_CONF | NGX_CONF_FLAG,
|
870
1054
|
ngx_conf_set_flag_slot,
|
871
1055
|
NGX_HTTP_LOC_CONF_OFFSET,
|
872
1056
|
offsetof(passenger_loc_conf_t, use_global_queue),
|
873
1057
|
NULL },
|
874
1058
|
|
1059
|
+
{ ngx_string("passenger_friendly_error_pages"),
|
1060
|
+
NGX_HTTP_MAIN_CONF | NGX_HTTP_SRV_CONF | NGX_HTTP_LOC_CONF | NGX_HTTP_LIF_CONF | NGX_CONF_FLAG,
|
1061
|
+
ngx_conf_set_flag_slot,
|
1062
|
+
NGX_HTTP_LOC_CONF_OFFSET,
|
1063
|
+
offsetof(passenger_loc_conf_t, friendly_error_pages),
|
1064
|
+
NULL },
|
1065
|
+
|
875
1066
|
{ ngx_string("passenger_max_pool_size"),
|
876
1067
|
NGX_HTTP_MAIN_CONF | NGX_CONF_TAKE1,
|
877
1068
|
ngx_conf_set_num_slot,
|
@@ -879,6 +1070,13 @@ const ngx_command_t passenger_commands[] = {
|
|
879
1070
|
offsetof(passenger_main_conf_t, max_pool_size),
|
880
1071
|
NULL },
|
881
1072
|
|
1073
|
+
{ ngx_string("passenger_min_instances"),
|
1074
|
+
NGX_HTTP_MAIN_CONF | NGX_HTTP_SRV_CONF | NGX_HTTP_LOC_CONF | NGX_HTTP_LIF_CONF | NGX_CONF_TAKE1,
|
1075
|
+
ngx_conf_set_num_slot,
|
1076
|
+
NGX_HTTP_LOC_CONF_OFFSET,
|
1077
|
+
offsetof(passenger_loc_conf_t, min_instances),
|
1078
|
+
NULL },
|
1079
|
+
|
882
1080
|
{ ngx_string("passenger_max_instances_per_app"),
|
883
1081
|
NGX_HTTP_MAIN_CONF | NGX_CONF_TAKE1,
|
884
1082
|
ngx_conf_set_num_slot,
|
@@ -894,19 +1092,33 @@ const ngx_command_t passenger_commands[] = {
|
|
894
1092
|
NULL },
|
895
1093
|
|
896
1094
|
{ ngx_string("passenger_base_uri"),
|
897
|
-
NGX_HTTP_SRV_CONF | NGX_HTTP_LOC_CONF | NGX_HTTP_LIF_CONF | NGX_CONF_TAKE1,
|
1095
|
+
NGX_HTTP_MAIN_CONF | NGX_HTTP_SRV_CONF | NGX_HTTP_LOC_CONF | NGX_HTTP_LIF_CONF | NGX_CONF_TAKE1,
|
898
1096
|
ngx_conf_set_str_array_slot,
|
899
1097
|
NGX_HTTP_LOC_CONF_OFFSET,
|
900
1098
|
offsetof(passenger_loc_conf_t, base_uris),
|
901
1099
|
NULL },
|
902
1100
|
|
903
1101
|
{ ngx_string("passenger_user_switching"),
|
904
|
-
NGX_HTTP_MAIN_CONF |
|
1102
|
+
NGX_HTTP_MAIN_CONF | NGX_CONF_FLAG,
|
905
1103
|
ngx_conf_set_flag_slot,
|
906
1104
|
NGX_HTTP_MAIN_CONF_OFFSET,
|
907
1105
|
offsetof(passenger_main_conf_t, user_switching),
|
908
1106
|
NULL },
|
909
1107
|
|
1108
|
+
{ ngx_string("passenger_user"),
|
1109
|
+
NGX_HTTP_MAIN_CONF | NGX_HTTP_SRV_CONF | NGX_HTTP_LOC_CONF | NGX_HTTP_LIF_CONF | NGX_CONF_TAKE1,
|
1110
|
+
ngx_conf_set_str_slot,
|
1111
|
+
NGX_HTTP_LOC_CONF_OFFSET,
|
1112
|
+
offsetof(passenger_loc_conf_t, user),
|
1113
|
+
NULL },
|
1114
|
+
|
1115
|
+
{ ngx_string("passenger_group"),
|
1116
|
+
NGX_HTTP_MAIN_CONF | NGX_HTTP_SRV_CONF | NGX_HTTP_LOC_CONF | NGX_HTTP_LIF_CONF | NGX_CONF_TAKE1,
|
1117
|
+
ngx_conf_set_str_slot,
|
1118
|
+
NGX_HTTP_LOC_CONF_OFFSET,
|
1119
|
+
offsetof(passenger_loc_conf_t, group),
|
1120
|
+
NULL },
|
1121
|
+
|
910
1122
|
{ ngx_string("passenger_default_user"),
|
911
1123
|
NGX_HTTP_MAIN_CONF | NGX_CONF_TAKE1,
|
912
1124
|
ngx_conf_set_str_slot,
|
@@ -914,20 +1126,153 @@ const ngx_command_t passenger_commands[] = {
|
|
914
1126
|
offsetof(passenger_main_conf_t, default_user),
|
915
1127
|
NULL },
|
916
1128
|
|
917
|
-
{ ngx_string("
|
918
|
-
|
1129
|
+
{ ngx_string("passenger_default_group"),
|
1130
|
+
NGX_HTTP_MAIN_CONF | NGX_CONF_TAKE1,
|
1131
|
+
ngx_conf_set_str_slot,
|
1132
|
+
NGX_HTTP_MAIN_CONF_OFFSET,
|
1133
|
+
offsetof(passenger_main_conf_t, default_group),
|
1134
|
+
NULL },
|
1135
|
+
|
1136
|
+
{ ngx_string("passenger_app_group_name"),
|
1137
|
+
NGX_HTTP_MAIN_CONF | NGX_HTTP_SRV_CONF | NGX_HTTP_LOC_CONF | NGX_HTTP_LIF_CONF | NGX_CONF_FLAG,
|
919
1138
|
ngx_conf_set_str_slot,
|
920
1139
|
NGX_HTTP_LOC_CONF_OFFSET,
|
921
|
-
offsetof(passenger_loc_conf_t,
|
1140
|
+
offsetof(passenger_loc_conf_t, app_group_name),
|
922
1141
|
NULL },
|
923
1142
|
|
924
|
-
{ ngx_string("
|
1143
|
+
{ ngx_string("passenger_app_rights"),
|
1144
|
+
NGX_HTTP_MAIN_CONF | NGX_HTTP_SRV_CONF | NGX_HTTP_LOC_CONF | NGX_HTTP_LIF_CONF | NGX_CONF_FLAG,
|
1145
|
+
ngx_conf_set_str_slot,
|
1146
|
+
NGX_HTTP_LOC_CONF_OFFSET,
|
1147
|
+
offsetof(passenger_loc_conf_t, app_rights),
|
1148
|
+
NULL },
|
1149
|
+
|
1150
|
+
{ ngx_string("passenger_analytics"),
|
1151
|
+
NGX_HTTP_MAIN_CONF | NGX_HTTP_SRV_CONF | NGX_HTTP_LOC_CONF | NGX_HTTP_LIF_CONF | NGX_CONF_FLAG,
|
1152
|
+
ngx_conf_set_flag_slot,
|
1153
|
+
NGX_HTTP_LOC_CONF_OFFSET,
|
1154
|
+
offsetof(passenger_loc_conf_t, analytics),
|
1155
|
+
NULL },
|
1156
|
+
|
1157
|
+
{ ngx_string("passenger_analytics_log_dir"),
|
1158
|
+
NGX_HTTP_MAIN_CONF | NGX_CONF_TAKE1,
|
1159
|
+
ngx_conf_set_str_slot,
|
1160
|
+
NGX_HTTP_MAIN_CONF_OFFSET,
|
1161
|
+
offsetof(passenger_main_conf_t, analytics_log_dir),
|
1162
|
+
NULL },
|
1163
|
+
|
1164
|
+
{ ngx_string("passenger_analytics_log_user"),
|
1165
|
+
NGX_HTTP_MAIN_CONF | NGX_CONF_TAKE1,
|
1166
|
+
ngx_conf_set_str_slot,
|
1167
|
+
NGX_HTTP_MAIN_CONF_OFFSET,
|
1168
|
+
offsetof(passenger_main_conf_t, analytics_log_user),
|
1169
|
+
NULL },
|
1170
|
+
|
1171
|
+
{ ngx_string("passenger_analytics_log_group"),
|
1172
|
+
NGX_HTTP_MAIN_CONF | NGX_CONF_TAKE1,
|
1173
|
+
ngx_conf_set_str_slot,
|
1174
|
+
NGX_HTTP_MAIN_CONF_OFFSET,
|
1175
|
+
offsetof(passenger_main_conf_t, analytics_log_group),
|
1176
|
+
NULL },
|
1177
|
+
|
1178
|
+
{ ngx_string("passenger_analytics_log_permissions"),
|
1179
|
+
NGX_HTTP_MAIN_CONF | NGX_CONF_TAKE1,
|
1180
|
+
ngx_conf_set_str_slot,
|
1181
|
+
NGX_HTTP_MAIN_CONF_OFFSET,
|
1182
|
+
offsetof(passenger_main_conf_t, analytics_log_permissions),
|
1183
|
+
NULL },
|
1184
|
+
|
1185
|
+
{ ngx_string("union_station_gateway_address"),
|
1186
|
+
NGX_HTTP_MAIN_CONF | NGX_CONF_TAKE1,
|
1187
|
+
ngx_conf_set_str_slot,
|
1188
|
+
NGX_HTTP_MAIN_CONF_OFFSET,
|
1189
|
+
offsetof(passenger_main_conf_t, union_station_gateway_address),
|
1190
|
+
NULL },
|
1191
|
+
|
1192
|
+
{ ngx_string("union_station_gateway_port"),
|
1193
|
+
NGX_HTTP_MAIN_CONF | NGX_CONF_TAKE1,
|
1194
|
+
ngx_conf_set_num_slot,
|
1195
|
+
NGX_HTTP_MAIN_CONF_OFFSET,
|
1196
|
+
offsetof(passenger_main_conf_t, union_station_gateway_port),
|
1197
|
+
NULL },
|
1198
|
+
|
1199
|
+
{ ngx_string("union_station_gateway_cert"),
|
1200
|
+
NGX_HTTP_MAIN_CONF | NGX_CONF_TAKE1,
|
1201
|
+
ngx_conf_set_str_slot,
|
1202
|
+
NGX_HTTP_MAIN_CONF_OFFSET,
|
1203
|
+
offsetof(passenger_main_conf_t, union_station_gateway_cert),
|
1204
|
+
NULL },
|
1205
|
+
|
1206
|
+
{ ngx_string("passenger_debugger"),
|
1207
|
+
NGX_HTTP_MAIN_CONF | NGX_HTTP_SRV_CONF | NGX_HTTP_LOC_CONF | NGX_HTTP_LIF_CONF | NGX_CONF_FLAG,
|
1208
|
+
ngx_conf_set_flag_slot,
|
1209
|
+
NGX_HTTP_LOC_CONF_OFFSET,
|
1210
|
+
offsetof(passenger_loc_conf_t, debugger),
|
1211
|
+
NULL },
|
1212
|
+
|
1213
|
+
{ ngx_string("passenger_show_version_in_header"),
|
1214
|
+
NGX_HTTP_MAIN_CONF | NGX_HTTP_SRV_CONF | NGX_HTTP_LOC_CONF | NGX_HTTP_LIF_CONF | NGX_CONF_FLAG,
|
1215
|
+
ngx_conf_set_flag_slot,
|
1216
|
+
NGX_HTTP_LOC_CONF_OFFSET,
|
1217
|
+
offsetof(passenger_loc_conf_t, show_version_in_header),
|
1218
|
+
NULL },
|
1219
|
+
|
1220
|
+
{ ngx_string("passenger_pre_start"),
|
1221
|
+
NGX_HTTP_MAIN_CONF | NGX_CONF_TAKE1,
|
1222
|
+
ngx_conf_set_str_array_slot,
|
1223
|
+
NGX_HTTP_MAIN_CONF_OFFSET,
|
1224
|
+
offsetof(passenger_main_conf_t, prestart_uris),
|
1225
|
+
NULL },
|
1226
|
+
|
1227
|
+
{ ngx_string("passenger_pass_header"),
|
1228
|
+
NGX_HTTP_MAIN_CONF | NGX_HTTP_SRV_CONF | NGX_HTTP_LOC_CONF | NGX_HTTP_LIF_CONF | NGX_CONF_FLAG,
|
1229
|
+
ngx_conf_set_str_array_slot,
|
1230
|
+
NGX_HTTP_LOC_CONF_OFFSET,
|
1231
|
+
offsetof(passenger_loc_conf_t, upstream_config.pass_headers),
|
1232
|
+
NULL },
|
1233
|
+
|
1234
|
+
{ ngx_string("passenger_set_cgi_param"),
|
1235
|
+
NGX_HTTP_MAIN_CONF | NGX_HTTP_SRV_CONF | NGX_HTTP_LOC_CONF | NGX_HTTP_LIF_CONF | NGX_CONF_TAKE2,
|
1236
|
+
set_null_terminated_keyval_slot,
|
1237
|
+
NGX_HTTP_LOC_CONF_OFFSET,
|
1238
|
+
offsetof(passenger_loc_conf_t, vars_source),
|
1239
|
+
NULL },
|
1240
|
+
|
1241
|
+
{ ngx_string("passenger_ignore_client_abort"),
|
1242
|
+
NGX_HTTP_MAIN_CONF | NGX_HTTP_SRV_CONF | NGX_HTTP_LOC_CONF | NGX_CONF_FLAG,
|
1243
|
+
ngx_conf_set_flag_slot,
|
1244
|
+
NGX_HTTP_LOC_CONF_OFFSET,
|
1245
|
+
offsetof(passenger_loc_conf_t, upstream_config.ignore_client_abort),
|
1246
|
+
NULL },
|
1247
|
+
|
1248
|
+
{ ngx_string("passenger_buffer_response"),
|
1249
|
+
NGX_HTTP_MAIN_CONF | NGX_HTTP_SRV_CONF | NGX_HTTP_LOC_CONF | NGX_CONF_FLAG,
|
1250
|
+
ngx_conf_set_flag_slot,
|
1251
|
+
NGX_HTTP_LOC_CONF_OFFSET,
|
1252
|
+
offsetof(passenger_loc_conf_t, upstream_config.buffering),
|
1253
|
+
NULL },
|
1254
|
+
|
1255
|
+
{ ngx_string("passenger_spawn_method"),
|
925
1256
|
NGX_HTTP_MAIN_CONF | NGX_HTTP_SRV_CONF | NGX_HTTP_LOC_CONF | NGX_HTTP_LIF_CONF | NGX_CONF_TAKE1,
|
926
1257
|
ngx_conf_set_str_slot,
|
927
1258
|
NGX_HTTP_LOC_CONF_OFFSET,
|
928
1259
|
offsetof(passenger_loc_conf_t, spawn_method),
|
929
1260
|
NULL },
|
930
1261
|
|
1262
|
+
{ ngx_string("union_station_key"),
|
1263
|
+
NGX_HTTP_MAIN_CONF | NGX_HTTP_SRV_CONF | NGX_HTTP_LOC_CONF | NGX_HTTP_LIF_CONF | NGX_CONF_TAKE1,
|
1264
|
+
ngx_conf_set_str_slot,
|
1265
|
+
NGX_HTTP_LOC_CONF_OFFSET,
|
1266
|
+
offsetof(passenger_loc_conf_t, union_station_key),
|
1267
|
+
NULL },
|
1268
|
+
|
1269
|
+
{ ngx_string("rails_env"),
|
1270
|
+
NGX_HTTP_MAIN_CONF | NGX_HTTP_SRV_CONF | NGX_HTTP_LOC_CONF | NGX_HTTP_LIF_CONF | NGX_CONF_TAKE1,
|
1271
|
+
ngx_conf_set_str_slot,
|
1272
|
+
NGX_HTTP_LOC_CONF_OFFSET,
|
1273
|
+
offsetof(passenger_loc_conf_t, environment),
|
1274
|
+
NULL },
|
1275
|
+
|
931
1276
|
{ ngx_string("rails_framework_spawner_idle_time"),
|
932
1277
|
NGX_HTTP_MAIN_CONF | NGX_HTTP_SRV_CONF | NGX_HTTP_LOC_CONF | NGX_HTTP_LIF_CONF | NGX_CONF_TAKE1,
|
933
1278
|
ngx_conf_set_num_slot,
|
@@ -943,12 +1288,24 @@ const ngx_command_t passenger_commands[] = {
|
|
943
1288
|
NULL },
|
944
1289
|
|
945
1290
|
{ ngx_string("rack_env"),
|
946
|
-
NGX_HTTP_SRV_CONF | NGX_HTTP_LOC_CONF | NGX_HTTP_LIF_CONF | NGX_CONF_TAKE1,
|
1291
|
+
NGX_HTTP_MAIN_CONF | NGX_HTTP_SRV_CONF | NGX_HTTP_LOC_CONF | NGX_HTTP_LIF_CONF | NGX_CONF_TAKE1,
|
947
1292
|
ngx_conf_set_str_slot,
|
948
1293
|
NGX_HTTP_LOC_CONF_OFFSET,
|
949
1294
|
offsetof(passenger_loc_conf_t, environment),
|
950
1295
|
NULL },
|
951
1296
|
|
1297
|
+
/************************************/
|
1298
|
+
/************************************/
|
1299
|
+
|
1300
|
+
/******** Backward compatibility options ********/
|
1301
|
+
|
1302
|
+
{ ngx_string("rails_spawn_method"),
|
1303
|
+
NGX_HTTP_MAIN_CONF | NGX_HTTP_SRV_CONF | NGX_HTTP_LOC_CONF | NGX_HTTP_LIF_CONF | NGX_CONF_TAKE1,
|
1304
|
+
ngx_conf_set_str_slot,
|
1305
|
+
NGX_HTTP_LOC_CONF_OFFSET,
|
1306
|
+
offsetof(passenger_loc_conf_t, spawn_method),
|
1307
|
+
NULL },
|
1308
|
+
|
952
1309
|
/*
|
953
1310
|
|
954
1311
|
{ ngx_string("scgi_index"),
|
@@ -1077,13 +1434,6 @@ const ngx_command_t passenger_commands[] = {
|
|
1077
1434
|
offsetof(passenger_loc_conf_t, vars_source),
|
1078
1435
|
NULL },
|
1079
1436
|
|
1080
|
-
{ ngx_string("scgi_pass_header"),
|
1081
|
-
NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_FLAG,
|
1082
|
-
ngx_conf_set_str_array_slot,
|
1083
|
-
NGX_HTTP_LOC_CONF_OFFSET,
|
1084
|
-
offsetof(passenger_loc_conf_t, upstream.pass_headers),
|
1085
|
-
NULL },
|
1086
|
-
|
1087
1437
|
{ ngx_string("scgi_hide_header"),
|
1088
1438
|
NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_FLAG,
|
1089
1439
|
ngx_conf_set_str_array_slot,
|