passenger 2.2.9 → 2.2.10
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/NEWS +10 -0
- data/doc/Architectural overview.html +202 -65
- data/doc/Security of user switching support.html +200 -63
- data/doc/Users guide Apache.html +266 -129
- data/doc/Users guide Nginx.html +234 -97
- data/doc/cxxapi/AbstractSpawnManager_8h-source.html +138 -0
- data/doc/cxxapi/Account_8h-source.html +202 -0
- data/doc/cxxapi/AccountsDatabase_8h-source.html +158 -0
- data/doc/cxxapi/AgentsStarter_8h-source.html +79 -0
- data/doc/cxxapi/BCrypt_8h-source.html +101 -0
- data/doc/cxxapi/BacktracesServer_8h-source.html +87 -0
- data/doc/cxxapi/Base64_8h-source.html +85 -0
- data/doc/cxxapi/Blowfish_8h-source.html +131 -0
- data/doc/cxxapi/Bucket_8h-source.html +1 -1
- data/doc/cxxapi/CachedFileStat_8h-source.html +49 -157
- data/doc/cxxapi/Configuration_8h-source.html +1 -1
- data/doc/cxxapi/Constants_8h-source.html +71 -0
- data/doc/cxxapi/ContentHandler_8h-source.html +92 -0
- data/doc/cxxapi/DirectoryMapper_8h-source.html +1 -1
- data/doc/cxxapi/Exceptions_8h-source.html +332 -236
- data/doc/cxxapi/FileChangeChecker_8h-source.html +237 -0
- data/doc/cxxapi/FileDescriptor_8h-source.html +206 -0
- data/doc/cxxapi/Hooks_8h-source.html +1 -1
- data/doc/cxxapi/HttpStatusExtractor_8h-source.html +378 -0
- data/doc/cxxapi/LoggingServer_8h-source.html +165 -0
- data/doc/cxxapi/Logging_8h-source.html +580 -112
- data/doc/cxxapi/MessageChannel_8h-source.html +789 -599
- data/doc/cxxapi/MessageClient_8h-source.html +297 -0
- data/doc/cxxapi/MessageServer_8h-source.html +607 -0
- data/doc/cxxapi/PoolOptions_8h-source.html +471 -278
- data/doc/cxxapi/Process_8h-source.html +272 -0
- data/doc/cxxapi/RandomGenerator_8h-source.html +156 -0
- data/doc/cxxapi/ResourceLocator_8h-source.html +104 -0
- data/doc/cxxapi/ScgiRequestParser_8h-source.html +399 -0
- data/doc/cxxapi/ServerInstanceDir_8h-source.html +356 -0
- data/doc/cxxapi/Session_8h-source.html +483 -0
- data/doc/cxxapi/SpawnManager_8h-source.html +590 -546
- data/doc/cxxapi/StaticContentHandler_8h-source.html +65 -0
- data/doc/cxxapi/StaticString_8h-source.html +214 -0
- data/doc/cxxapi/StringListCreator_8h-source.html +111 -0
- data/doc/cxxapi/SystemTime_8h-source.html +191 -78
- data/doc/cxxapi/Timer_8h-source.html +157 -0
- data/doc/cxxapi/Utils_8h-source.html +621 -434
- data/doc/cxxapi/Version_8h-source.html +59 -0
- data/doc/cxxapi/annotated.html +1 -1
- data/doc/cxxapi/apache2_2Configuration_8h-source.html +79 -0
- data/doc/cxxapi/classAgentWatcher-members.html +50 -0
- data/doc/cxxapi/classAgentWatcher.html +445 -0
- data/doc/cxxapi/classClient-members.html +4 -3
- data/doc/cxxapi/classClient.html +50 -46
- data/doc/cxxapi/classHooks-members.html +1 -1
- data/doc/cxxapi/classHooks.html +1 -1
- data/doc/cxxapi/classPassenger_1_1AbstractSpawnManager-members.html +37 -0
- data/doc/cxxapi/classPassenger_1_1AbstractSpawnManager.html +191 -0
- data/doc/cxxapi/classPassenger_1_1AbstractSpawnManager__inherit__graph.map +1 -0
- data/doc/cxxapi/classPassenger_1_1AbstractSpawnManager__inherit__graph.md5 +1 -0
- data/doc/cxxapi/classPassenger_1_1AbstractSpawnManager__inherit__graph.png +0 -0
- data/doc/cxxapi/{classPassenger_1_1DummySpawnManager-members.html → classPassenger_1_1ArgumentException-members.html} +3 -2
- data/doc/cxxapi/classPassenger_1_1ArgumentException.html +52 -0
- data/doc/cxxapi/classPassenger_1_1BacktracesServer-members.html +36 -0
- data/doc/cxxapi/classPassenger_1_1BacktracesServer.html +107 -0
- data/doc/cxxapi/classPassenger_1_1BacktracesServer__inherit__graph.map +1 -0
- data/doc/cxxapi/classPassenger_1_1BacktracesServer__inherit__graph.md5 +1 -0
- data/doc/cxxapi/classPassenger_1_1BacktracesServer__inherit__graph.png +0 -0
- data/doc/cxxapi/classPassenger_1_1BufferedUpload-members.html +3 -3
- data/doc/cxxapi/classPassenger_1_1BufferedUpload.html +18 -34
- data/doc/cxxapi/classPassenger_1_1BusyException-members.html +2 -1
- data/doc/cxxapi/classPassenger_1_1BusyException.html +3 -2
- data/doc/cxxapi/classPassenger_1_1ConfigurationException-members.html +2 -1
- data/doc/cxxapi/classPassenger_1_1ConfigurationException.html +3 -2
- data/doc/cxxapi/classPassenger_1_1DirectoryMapper-members.html +1 -1
- data/doc/cxxapi/classPassenger_1_1DirectoryMapper.html +1 -1
- data/doc/cxxapi/{classPassenger_1_1FileChecker-members.html → classPassenger_1_1EOFException-members.html} +3 -4
- data/doc/cxxapi/classPassenger_1_1EOFException.html +57 -0
- data/doc/cxxapi/classPassenger_1_1EOFException__inherit__graph.map +1 -0
- data/doc/cxxapi/classPassenger_1_1EOFException__inherit__graph.md5 +1 -0
- data/doc/cxxapi/classPassenger_1_1EOFException__inherit__graph.png +0 -0
- data/doc/cxxapi/classPassenger_1_1EventFd-members.html +33 -0
- data/doc/cxxapi/classPassenger_1_1EventFd.html +49 -0
- data/doc/cxxapi/classPassenger_1_1FileChangeChecker-members.html +37 -0
- data/doc/cxxapi/classPassenger_1_1FileChangeChecker.html +166 -0
- data/doc/cxxapi/classPassenger_1_1FileDescriptor-members.html +37 -0
- data/doc/cxxapi/classPassenger_1_1FileDescriptor.html +159 -0
- data/doc/cxxapi/classPassenger_1_1FileNotFoundException-members.html +2 -1
- data/doc/cxxapi/classPassenger_1_1FileNotFoundException.html +3 -2
- data/doc/cxxapi/classPassenger_1_1FileSystemException-members.html +2 -1
- data/doc/cxxapi/classPassenger_1_1FileSystemException.html +3 -2
- data/doc/cxxapi/{classPassenger_1_1ApplicationPoolServer-members.html → classPassenger_1_1HttpStatusExtractor-members.html} +6 -5
- data/doc/cxxapi/classPassenger_1_1HttpStatusExtractor.html +128 -0
- data/doc/cxxapi/classPassenger_1_1IOException-members.html +2 -1
- data/doc/cxxapi/classPassenger_1_1IOException.html +4 -3
- data/doc/cxxapi/classPassenger_1_1IOException__inherit__graph.map +2 -1
- data/doc/cxxapi/classPassenger_1_1IOException__inherit__graph.md5 +1 -1
- data/doc/cxxapi/classPassenger_1_1IOException__inherit__graph.png +0 -0
- data/doc/cxxapi/classPassenger_1_1MemZeroGuard-members.html +36 -0
- data/doc/cxxapi/classPassenger_1_1MemZeroGuard.html +147 -0
- data/doc/cxxapi/classPassenger_1_1MessageChannel-members.html +12 -5
- data/doc/cxxapi/classPassenger_1_1MessageChannel.html +267 -34
- data/doc/cxxapi/classPassenger_1_1MessageServer-members.html +46 -0
- data/doc/cxxapi/classPassenger_1_1MessageServer.html +438 -0
- data/doc/cxxapi/classPassenger_1_1MessageServer_1_1ClientContext-members.html +33 -0
- data/doc/cxxapi/classPassenger_1_1MessageServer_1_1ClientContext.html +56 -0
- data/doc/cxxapi/classPassenger_1_1MessageServer_1_1ClientContext__inherit__graph.map +1 -0
- data/doc/cxxapi/classPassenger_1_1MessageServer_1_1ClientContext__inherit__graph.md5 +1 -0
- data/doc/cxxapi/classPassenger_1_1MessageServer_1_1ClientContext__inherit__graph.png +0 -0
- data/doc/cxxapi/classPassenger_1_1MessageServer_1_1CommonClientContext-members.html +38 -0
- data/doc/cxxapi/classPassenger_1_1MessageServer_1_1CommonClientContext.html +175 -0
- data/doc/cxxapi/classPassenger_1_1MessageServer_1_1CommonClientContext__inherit__graph.map +1 -0
- data/doc/cxxapi/classPassenger_1_1MessageServer_1_1CommonClientContext__inherit__graph.md5 +1 -0
- data/doc/cxxapi/classPassenger_1_1MessageServer_1_1CommonClientContext__inherit__graph.png +0 -0
- data/doc/cxxapi/classPassenger_1_1MessageServer_1_1Handler-members.html +36 -0
- data/doc/cxxapi/classPassenger_1_1MessageServer_1_1Handler.html +176 -0
- data/doc/cxxapi/classPassenger_1_1MessageServer_1_1Handler__inherit__graph.map +1 -0
- data/doc/cxxapi/classPassenger_1_1MessageServer_1_1Handler__inherit__graph.md5 +1 -0
- data/doc/cxxapi/classPassenger_1_1MessageServer_1_1Handler__inherit__graph.png +0 -0
- data/doc/cxxapi/classPassenger_1_1Process-members.html +40 -0
- data/doc/cxxapi/classPassenger_1_1Process.html +266 -0
- data/doc/cxxapi/classPassenger_1_1RandomGenerator-members.html +33 -0
- data/doc/cxxapi/classPassenger_1_1RandomGenerator.html +51 -0
- data/doc/cxxapi/classPassenger_1_1RuntimeException-members.html +2 -1
- data/doc/cxxapi/classPassenger_1_1RuntimeException.html +3 -2
- data/doc/cxxapi/classPassenger_1_1ScgiRequestParser-members.html +47 -0
- data/doc/cxxapi/classPassenger_1_1ScgiRequestParser.html +302 -0
- data/doc/cxxapi/classPassenger_1_1SecurityException-members.html +33 -0
- data/doc/cxxapi/classPassenger_1_1SecurityException.html +52 -0
- data/doc/cxxapi/classPassenger_1_1Session-members.html +50 -0
- data/doc/cxxapi/classPassenger_1_1Session.html +577 -0
- data/doc/cxxapi/classPassenger_1_1Session__inherit__graph.map +1 -0
- data/doc/cxxapi/classPassenger_1_1Session__inherit__graph.md5 +1 -0
- data/doc/cxxapi/classPassenger_1_1Session__inherit__graph.png +0 -0
- data/doc/cxxapi/classPassenger_1_1SpawnException-members.html +2 -1
- data/doc/cxxapi/classPassenger_1_1SpawnException.html +5 -4
- data/doc/cxxapi/classPassenger_1_1SpawnManager-members.html +8 -5
- data/doc/cxxapi/classPassenger_1_1SpawnManager.html +127 -45
- data/doc/cxxapi/classPassenger_1_1SpawnManager__inherit__graph.map +1 -0
- data/doc/cxxapi/classPassenger_1_1SpawnManager__inherit__graph.md5 +1 -0
- data/doc/cxxapi/classPassenger_1_1SpawnManager__inherit__graph.png +0 -0
- data/doc/cxxapi/classPassenger_1_1StandardSession-members.html +51 -0
- data/doc/cxxapi/classPassenger_1_1StandardSession.html +415 -0
- data/doc/cxxapi/classPassenger_1_1StandardSession__inherit__graph.map +1 -0
- data/doc/cxxapi/classPassenger_1_1StandardSession__inherit__graph.md5 +1 -0
- data/doc/cxxapi/classPassenger_1_1StandardSession__inherit__graph.png +0 -0
- data/doc/cxxapi/classPassenger_1_1StaticString-members.html +33 -0
- data/doc/cxxapi/classPassenger_1_1StaticString.html +54 -0
- data/doc/cxxapi/classPassenger_1_1SystemException-members.html +2 -1
- data/doc/cxxapi/classPassenger_1_1SystemException.html +4 -3
- data/doc/cxxapi/classPassenger_1_1SystemException__inherit__graph.map +1 -0
- data/doc/cxxapi/classPassenger_1_1SystemException__inherit__graph.md5 +1 -1
- data/doc/cxxapi/classPassenger_1_1SystemException__inherit__graph.png +0 -0
- data/doc/cxxapi/classPassenger_1_1SystemTime-members.html +9 -1
- data/doc/cxxapi/classPassenger_1_1SystemTime.html +92 -8
- data/doc/cxxapi/classPassenger_1_1TimeRetrievalException-members.html +37 -0
- data/doc/cxxapi/classPassenger_1_1TimeRetrievalException.html +57 -0
- data/doc/cxxapi/classPassenger_1_1TimeRetrievalException__inherit__graph.map +1 -0
- data/doc/cxxapi/classPassenger_1_1TimeRetrievalException__inherit__graph.md5 +1 -0
- data/doc/cxxapi/classPassenger_1_1TimeRetrievalException__inherit__graph.png +0 -0
- data/doc/cxxapi/classPassenger_1_1TimeoutException-members.html +33 -0
- data/doc/cxxapi/classPassenger_1_1TimeoutException.html +50 -0
- data/doc/cxxapi/{classPassenger_1_1Application-members.html → classPassenger_1_1Timer-members.html} +8 -7
- data/doc/cxxapi/classPassenger_1_1Timer.html +163 -0
- data/doc/cxxapi/classServer-members.html +33 -0
- data/doc/cxxapi/classServer.html +46 -0
- data/doc/cxxapi/classServerInstanceDirToucher-members.html +33 -0
- data/doc/cxxapi/classServerInstanceDirToucher.html +43 -0
- data/doc/cxxapi/classes.html +1 -1
- data/doc/cxxapi/definitions_8h-source.html +1 -1
- data/doc/cxxapi/files.html +1 -1
- data/doc/cxxapi/functions.html +1 -1
- data/doc/cxxapi/{functions_type.html → functions_enum.html} +7 -5
- data/doc/cxxapi/functions_eval.html +55 -0
- data/doc/cxxapi/functions_func.html +1 -1
- data/doc/cxxapi/functions_vars.html +106 -9
- data/doc/cxxapi/graph_legend.html +1 -1
- data/doc/cxxapi/group__Configuration.html +1 -1
- data/doc/cxxapi/group__Core.html +1 -1
- data/doc/cxxapi/group__Exceptions.html +17 -1
- data/doc/cxxapi/group__Hooks.html +1 -1
- data/doc/cxxapi/group__Support.html +1 -1
- data/doc/cxxapi/hierarchy.html +34 -12
- data/doc/cxxapi/inherit__graph__0.map +1 -1
- data/doc/cxxapi/inherit__graph__0.md5 +1 -1
- data/doc/cxxapi/inherit__graph__0.png +0 -0
- data/doc/cxxapi/inherit__graph__1.map +1 -1
- data/doc/cxxapi/inherit__graph__1.md5 +1 -1
- data/doc/cxxapi/inherit__graph__1.png +0 -0
- data/doc/cxxapi/inherit__graph__10.map +1 -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 +1 -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 +1 -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 +1 -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 -2
- data/doc/cxxapi/inherit__graph__14.md5 +1 -1
- data/doc/cxxapi/inherit__graph__14.png +0 -0
- data/doc/cxxapi/inherit__graph__15.map +1 -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 +1 -1
- data/doc/cxxapi/inherit__graph__16.md5 +1 -1
- data/doc/cxxapi/inherit__graph__16.png +0 -0
- data/doc/cxxapi/inherit__graph__17.map +1 -1
- data/doc/cxxapi/inherit__graph__17.md5 +1 -1
- data/doc/cxxapi/inherit__graph__17.png +0 -0
- data/doc/cxxapi/inherit__graph__18.map +2 -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 +1 -1
- data/doc/cxxapi/inherit__graph__19.md5 +1 -1
- data/doc/cxxapi/inherit__graph__19.png +0 -0
- data/doc/cxxapi/inherit__graph__2.map +1 -1
- data/doc/cxxapi/inherit__graph__2.md5 +1 -1
- data/doc/cxxapi/inherit__graph__2.png +0 -0
- data/doc/cxxapi/inherit__graph__20.map +1 -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 +1 -1
- data/doc/cxxapi/inherit__graph__21.md5 +1 -1
- data/doc/cxxapi/inherit__graph__21.png +0 -0
- data/doc/cxxapi/inherit__graph__22.map +1 -0
- data/doc/cxxapi/inherit__graph__22.md5 +1 -0
- data/doc/cxxapi/inherit__graph__22.png +0 -0
- data/doc/cxxapi/inherit__graph__23.map +1 -0
- data/doc/cxxapi/inherit__graph__23.md5 +1 -0
- data/doc/cxxapi/inherit__graph__23.png +0 -0
- data/doc/cxxapi/inherit__graph__24.map +1 -0
- data/doc/cxxapi/inherit__graph__24.md5 +1 -0
- data/doc/cxxapi/inherit__graph__24.png +0 -0
- data/doc/cxxapi/inherit__graph__25.map +1 -0
- data/doc/cxxapi/inherit__graph__25.md5 +1 -0
- data/doc/cxxapi/inherit__graph__25.png +0 -0
- data/doc/cxxapi/inherit__graph__26.map +1 -0
- data/doc/cxxapi/inherit__graph__26.md5 +1 -0
- data/doc/cxxapi/inherit__graph__26.png +0 -0
- data/doc/cxxapi/inherit__graph__27.map +2 -0
- data/doc/cxxapi/inherit__graph__27.md5 +1 -0
- data/doc/cxxapi/inherit__graph__27.png +0 -0
- data/doc/cxxapi/inherit__graph__28.map +1 -0
- data/doc/cxxapi/inherit__graph__28.md5 +1 -0
- data/doc/cxxapi/inherit__graph__28.png +0 -0
- data/doc/cxxapi/inherit__graph__29.map +1 -0
- data/doc/cxxapi/inherit__graph__29.md5 +1 -0
- data/doc/cxxapi/inherit__graph__29.png +0 -0
- data/doc/cxxapi/inherit__graph__3.map +2 -1
- data/doc/cxxapi/inherit__graph__3.md5 +1 -1
- data/doc/cxxapi/inherit__graph__3.png +0 -0
- data/doc/cxxapi/inherit__graph__30.map +1 -0
- data/doc/cxxapi/inherit__graph__30.md5 +1 -0
- data/doc/cxxapi/inherit__graph__30.png +0 -0
- data/doc/cxxapi/inherit__graph__31.map +3 -0
- data/doc/cxxapi/inherit__graph__31.md5 +1 -0
- data/doc/cxxapi/inherit__graph__31.png +0 -0
- data/doc/cxxapi/inherit__graph__32.map +1 -0
- data/doc/cxxapi/inherit__graph__32.md5 +1 -0
- data/doc/cxxapi/inherit__graph__32.png +0 -0
- data/doc/cxxapi/inherit__graph__33.map +1 -0
- data/doc/cxxapi/inherit__graph__33.md5 +1 -0
- data/doc/cxxapi/inherit__graph__33.png +0 -0
- data/doc/cxxapi/inherit__graph__34.map +1 -0
- data/doc/cxxapi/inherit__graph__34.md5 +1 -0
- data/doc/cxxapi/inherit__graph__34.png +0 -0
- data/doc/cxxapi/inherit__graph__35.map +1 -0
- data/doc/cxxapi/inherit__graph__35.md5 +1 -0
- data/doc/cxxapi/inherit__graph__35.png +0 -0
- data/doc/cxxapi/inherit__graph__36.map +1 -0
- data/doc/cxxapi/inherit__graph__36.md5 +1 -0
- data/doc/cxxapi/inherit__graph__36.png +0 -0
- data/doc/cxxapi/inherit__graph__4.map +1 -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 +1 -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 +1 -2
- 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 +1 -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 +1 -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 +1 -1
- data/doc/cxxapi/inherit__graph__9.md5 +1 -1
- data/doc/cxxapi/inherit__graph__9.png +0 -0
- data/doc/cxxapi/inherits.html +81 -41
- data/doc/cxxapi/main.html +1 -1
- data/doc/cxxapi/md5_8h-source.html +121 -0
- data/doc/cxxapi/modules.html +1 -1
- data/doc/cxxapi/namespacePassenger.html +651 -0
- data/doc/cxxapi/namespacemembers.html +155 -0
- data/doc/cxxapi/namespacemembers_enum.html +46 -0
- data/doc/cxxapi/namespacemembers_eval.html +52 -0
- data/doc/cxxapi/namespacemembers_func.html +139 -0
- data/doc/cxxapi/namespacemembers_type.html +50 -0
- data/doc/cxxapi/namespaces.html +34 -0
- data/doc/cxxapi/nginx_2Configuration_8h-source.html +114 -0
- data/doc/cxxapi/ngx__http__passenger__module_8h-source.html +91 -0
- data/doc/cxxapi/structPassenger_1_1AnythingToString-members.html +2 -1
- data/doc/cxxapi/structPassenger_1_1AnythingToString.html +3 -2
- data/doc/cxxapi/structPassenger_1_1AnythingToString_3_01vector_3_01string_01_4_01_4-members.html +2 -1
- data/doc/cxxapi/structPassenger_1_1AnythingToString_3_01vector_3_01string_01_4_01_4.html +3 -2
- data/doc/cxxapi/structPassenger_1_1MessageServer_1_1DisconnectEventBroadcastGuard-members.html +33 -0
- data/doc/cxxapi/structPassenger_1_1MessageServer_1_1DisconnectEventBroadcastGuard.html +49 -0
- data/doc/cxxapi/structPassenger_1_1PoolOptions-members.html +19 -7
- data/doc/cxxapi/structPassenger_1_1PoolOptions.html +323 -53
- data/doc/cxxapi/structPassenger_1_1StaticString_1_1Hash-members.html +33 -0
- data/doc/cxxapi/structPassenger_1_1StaticString_1_1Hash.html +49 -0
- data/ext/common/MessageChannel.h +48 -4
- data/ext/common/Version.h +1 -1
- data/ext/nginx/HttpStatusExtractor.h +1 -0
- data/ext/nginx/ScgiRequestParser.h +1 -0
- data/ext/phusion_passenger/native_support.c +5 -1
- data/lib/phusion_passenger/constants.rb +1 -1
- data/lib/phusion_passenger/message_channel.rb +45 -3
- data/lib/phusion_passenger/rack/application_spawner.rb +4 -0
- data/lib/phusion_passenger/railz/application_spawner.rb +19 -1
- data/lib/phusion_passenger/utils.rb +3 -3
- data/lib/phusion_passenger/utils/rewindable_input.rb +5 -0
- data/test/MessageChannelTest.cpp +9 -1
- data/test/stub/message_channel.rb +1 -1
- data/test/stub/message_channel_2.rb +1 -1
- data/test/stub/message_channel_3.rb +2 -2
- metadata +173 -113
- data/doc/cxxapi/ApplicationPoolServer_8h-source.html +0 -833
- data/doc/cxxapi/ApplicationPool_8h-source.html +0 -226
- data/doc/cxxapi/Application_8h-source.html +0 -553
- data/doc/cxxapi/DummySpawnManager_8h-source.html +0 -130
- data/doc/cxxapi/FileChecker_8h-source.html +0 -134
- data/doc/cxxapi/StandardApplicationPool_8h-source.html +0 -842
- data/doc/cxxapi/classPassenger_1_1Application.html +0 -231
- data/doc/cxxapi/classPassenger_1_1ApplicationPool-members.html +0 -41
- data/doc/cxxapi/classPassenger_1_1ApplicationPool.html +0 -323
- data/doc/cxxapi/classPassenger_1_1ApplicationPoolServer.html +0 -227
- data/doc/cxxapi/classPassenger_1_1ApplicationPool__inherit__graph.map +0 -1
- data/doc/cxxapi/classPassenger_1_1ApplicationPool__inherit__graph.md5 +0 -1
- data/doc/cxxapi/classPassenger_1_1ApplicationPool__inherit__graph.png +0 -0
- data/doc/cxxapi/classPassenger_1_1Application_1_1Session-members.html +0 -44
- data/doc/cxxapi/classPassenger_1_1Application_1_1Session.html +0 -403
- data/doc/cxxapi/classPassenger_1_1DummySpawnManager.html +0 -53
- data/doc/cxxapi/classPassenger_1_1FileChecker.html +0 -124
- data/doc/cxxapi/classPassenger_1_1StandardApplicationPool-members.html +0 -44
- data/doc/cxxapi/classPassenger_1_1StandardApplicationPool.html +0 -342
- data/doc/cxxapi/classPassenger_1_1StandardApplicationPool__inherit__graph.map +0 -1
- data/doc/cxxapi/classPassenger_1_1StandardApplicationPool__inherit__graph.md5 +0 -1
- data/doc/cxxapi/classPassenger_1_1StandardApplicationPool__inherit__graph.png +0 -0
- data/doc/rdoc/classes/ConditionVariable.html +0 -194
- data/doc/rdoc/classes/Exception.html +0 -120
- data/doc/rdoc/classes/GC.html +0 -113
- data/doc/rdoc/classes/IO.html +0 -169
- data/doc/rdoc/classes/PhusionPassenger.html +0 -239
- data/doc/rdoc/classes/PhusionPassenger/AbstractInstaller.html +0 -153
- data/doc/rdoc/classes/PhusionPassenger/AbstractRequestHandler.html +0 -517
- data/doc/rdoc/classes/PhusionPassenger/AbstractServer.html +0 -719
- data/doc/rdoc/classes/PhusionPassenger/AbstractServer/ServerAlreadyStarted.html +0 -97
- data/doc/rdoc/classes/PhusionPassenger/AbstractServer/ServerError.html +0 -96
- data/doc/rdoc/classes/PhusionPassenger/AbstractServer/ServerNotStarted.html +0 -97
- data/doc/rdoc/classes/PhusionPassenger/AbstractServer/UnknownMessage.html +0 -96
- data/doc/rdoc/classes/PhusionPassenger/AbstractServerCollection.html +0 -598
- data/doc/rdoc/classes/PhusionPassenger/AdminTools.html +0 -140
- data/doc/rdoc/classes/PhusionPassenger/AdminTools/ControlProcess.html +0 -317
- data/doc/rdoc/classes/PhusionPassenger/AdminTools/ControlProcess/Instance.html +0 -138
- data/doc/rdoc/classes/PhusionPassenger/AppInitError.html +0 -154
- data/doc/rdoc/classes/PhusionPassenger/Application.html +0 -283
- data/doc/rdoc/classes/PhusionPassenger/ConsoleTextTemplate.html +0 -172
- data/doc/rdoc/classes/PhusionPassenger/FrameworkInitError.html +0 -145
- data/doc/rdoc/classes/PhusionPassenger/HTMLTemplate.html +0 -175
- data/doc/rdoc/classes/PhusionPassenger/InitializationError.html +0 -141
- data/doc/rdoc/classes/PhusionPassenger/InvalidPath.html +0 -92
- data/doc/rdoc/classes/PhusionPassenger/MessageChannel.html +0 -489
- data/doc/rdoc/classes/PhusionPassenger/NativeSupport.html +0 -350
- data/doc/rdoc/classes/PhusionPassenger/Rack.html +0 -91
- data/doc/rdoc/classes/PhusionPassenger/Rack/ApplicationSpawner.html +0 -188
- data/doc/rdoc/classes/PhusionPassenger/Rack/RequestHandler.html +0 -199
- data/doc/rdoc/classes/PhusionPassenger/Railz.html +0 -95
- data/doc/rdoc/classes/PhusionPassenger/Railz/ApplicationSpawner.html +0 -438
- data/doc/rdoc/classes/PhusionPassenger/Railz/ApplicationSpawner/Error.html +0 -98
- data/doc/rdoc/classes/PhusionPassenger/Railz/CGIFixed.html +0 -200
- data/doc/rdoc/classes/PhusionPassenger/Railz/FrameworkSpawner.html +0 -436
- data/doc/rdoc/classes/PhusionPassenger/Railz/FrameworkSpawner/Error.html +0 -98
- data/doc/rdoc/classes/PhusionPassenger/Railz/RequestHandler.html +0 -155
- data/doc/rdoc/classes/PhusionPassenger/SpawnManager.html +0 -402
- data/doc/rdoc/classes/PhusionPassenger/UnknownError.html +0 -125
- data/doc/rdoc/classes/PhusionPassenger/Utils.html +0 -805
- data/doc/rdoc/classes/PhusionPassenger/Utils/PseudoIO.html +0 -169
- data/doc/rdoc/classes/PhusionPassenger/Utils/RewindableInput.html +0 -247
- data/doc/rdoc/classes/PhusionPassenger/Utils/RewindableInput/Tempfile.html +0 -120
- data/doc/rdoc/classes/PhusionPassenger/VersionNotFound.html +0 -140
- data/doc/rdoc/classes/PhusionPassenger/WSGI.html +0 -89
- data/doc/rdoc/classes/PhusionPassenger/WSGI/ApplicationSpawner.html +0 -188
- data/doc/rdoc/classes/PlatformInfo.html +0 -866
- data/doc/rdoc/classes/RakeExtensions.html +0 -197
- data/doc/rdoc/classes/Signal.html +0 -139
- data/doc/rdoc/created.rid +0 -1
- data/doc/rdoc/files/DEVELOPERS_TXT.html +0 -255
- data/doc/rdoc/files/README.html +0 -157
- data/doc/rdoc/files/ext/phusion_passenger/native_support_c.html +0 -92
- data/doc/rdoc/files/lib/phusion_passenger/abstract_installer_rb.html +0 -129
- data/doc/rdoc/files/lib/phusion_passenger/abstract_request_handler_rb.html +0 -129
- data/doc/rdoc/files/lib/phusion_passenger/abstract_server_collection_rb.html +0 -126
- data/doc/rdoc/files/lib/phusion_passenger/abstract_server_rb.html +0 -128
- data/doc/rdoc/files/lib/phusion_passenger/admin_tools/control_process_rb.html +0 -130
- data/doc/rdoc/files/lib/phusion_passenger/admin_tools_rb.html +0 -122
- data/doc/rdoc/files/lib/phusion_passenger/application_rb.html +0 -127
- data/doc/rdoc/files/lib/phusion_passenger/console_text_template_rb.html +0 -126
- data/doc/rdoc/files/lib/phusion_passenger/constants_rb.html +0 -122
- data/doc/rdoc/files/lib/phusion_passenger/dependencies_rb.html +0 -134
- data/doc/rdoc/files/lib/phusion_passenger/events_rb.html +0 -122
- data/doc/rdoc/files/lib/phusion_passenger/exceptions_rb.html +0 -122
- data/doc/rdoc/files/lib/phusion_passenger/html_template_rb.html +0 -126
- data/doc/rdoc/files/lib/phusion_passenger/message_channel_rb.html +0 -120
- data/doc/rdoc/files/lib/phusion_passenger/packaging_rb.html +0 -122
- data/doc/rdoc/files/lib/phusion_passenger/platform_info_rb.html +0 -127
- data/doc/rdoc/files/lib/phusion_passenger/rack/application_spawner_rb.html +0 -133
- data/doc/rdoc/files/lib/phusion_passenger/rack/request_handler_rb.html +0 -125
- data/doc/rdoc/files/lib/phusion_passenger/railz/application_spawner_rb.html +0 -140
- data/doc/rdoc/files/lib/phusion_passenger/railz/cgi_fixed_rb.html +0 -126
- data/doc/rdoc/files/lib/phusion_passenger/railz/framework_spawner_rb.html +0 -145
- data/doc/rdoc/files/lib/phusion_passenger/railz/request_handler_rb.html +0 -125
- data/doc/rdoc/files/lib/phusion_passenger/simple_benchmarking_rb.html +0 -122
- data/doc/rdoc/files/lib/phusion_passenger/spawn_manager_rb.html +0 -159
- data/doc/rdoc/files/lib/phusion_passenger/utils/rewindable_input_rb.html +0 -100
- data/doc/rdoc/files/lib/phusion_passenger/utils_rb.html +0 -174
- data/doc/rdoc/files/lib/phusion_passenger/wsgi/application_spawner_rb.html +0 -129
- data/doc/rdoc/files/misc/rake/extensions_rb.html +0 -130
- data/doc/rdoc/fr_class_index.html +0 -93
- data/doc/rdoc/fr_file_index.html +0 -77
- data/doc/rdoc/fr_method_index.html +0 -212
- data/doc/rdoc/index.html +0 -26
- data/doc/rdoc/rdoc-style.css +0 -187
@@ -0,0 +1,33 @@
|
|
1
|
+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
2
|
+
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
3
|
+
<title>Passenger: Member List</title>
|
4
|
+
<link href="tabs.css" rel="stylesheet" type="text/css">
|
5
|
+
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
6
|
+
</head><body>
|
7
|
+
<!-- Generated by Doxygen 1.5.8 -->
|
8
|
+
<div class="navigation" id="top">
|
9
|
+
<div class="tabs">
|
10
|
+
<ul>
|
11
|
+
<li><a href="main.html"><span>Main Page</span></a></li>
|
12
|
+
<li><a href="modules.html"><span>Modules</span></a></li>
|
13
|
+
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
|
14
|
+
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
15
|
+
<li><a href="files.html"><span>Files</span></a></li>
|
16
|
+
</ul>
|
17
|
+
</div>
|
18
|
+
<div class="tabs">
|
19
|
+
<ul>
|
20
|
+
<li><a href="annotated.html"><span>Class List</span></a></li>
|
21
|
+
<li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
|
22
|
+
<li><a href="functions.html"><span>Class Members</span></a></li>
|
23
|
+
</ul>
|
24
|
+
</div>
|
25
|
+
</div>
|
26
|
+
<div class="contents">
|
27
|
+
<h1>Passenger::StaticString::StaticString::Hash Member List</h1>This is the complete list of members for <a class="el" href="structPassenger_1_1StaticString_1_1Hash.html">Passenger::StaticString::StaticString::Hash</a>, including all inherited members.<p><table>
|
28
|
+
</table></div>
|
29
|
+
<hr size="1"><address style="text-align: right;"><small>Generated on Sun Feb 21 12:22:48 2010 for Passenger by
|
30
|
+
<a href="http://www.doxygen.org/index.html">
|
31
|
+
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
|
32
|
+
</body>
|
33
|
+
</html>
|
@@ -0,0 +1,49 @@
|
|
1
|
+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
2
|
+
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
3
|
+
<title>Passenger: Passenger::StaticString::StaticString::Hash Struct Reference</title>
|
4
|
+
<link href="tabs.css" rel="stylesheet" type="text/css">
|
5
|
+
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
6
|
+
</head><body>
|
7
|
+
<!-- Generated by Doxygen 1.5.8 -->
|
8
|
+
<div class="navigation" id="top">
|
9
|
+
<div class="tabs">
|
10
|
+
<ul>
|
11
|
+
<li><a href="main.html"><span>Main Page</span></a></li>
|
12
|
+
<li><a href="modules.html"><span>Modules</span></a></li>
|
13
|
+
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
|
14
|
+
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
15
|
+
<li><a href="files.html"><span>Files</span></a></li>
|
16
|
+
</ul>
|
17
|
+
</div>
|
18
|
+
<div class="tabs">
|
19
|
+
<ul>
|
20
|
+
<li><a href="annotated.html"><span>Class List</span></a></li>
|
21
|
+
<li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
|
22
|
+
<li><a href="functions.html"><span>Class Members</span></a></li>
|
23
|
+
</ul>
|
24
|
+
</div>
|
25
|
+
<div class="navpath"><a class="el" href="namespacePassenger.html">Passenger</a>::<a class="el" href="classPassenger_1_1StaticString.html">StaticString</a>::<a class="el" href="structPassenger_1_1StaticString_1_1Hash.html">Hash</a>
|
26
|
+
</div>
|
27
|
+
</div>
|
28
|
+
<div class="contents">
|
29
|
+
<h1>Passenger::StaticString::StaticString::Hash Struct Reference</h1><!-- doxytag: class="Passenger::StaticString::Hash" -->A hash function object for <a class="el" href="classPassenger_1_1StaticString.html" title="An immutable, static byte buffer.">StaticString</a>.
|
30
|
+
<a href="#_details">More...</a>
|
31
|
+
<p>
|
32
|
+
<code>#include <<a class="el" href="StaticString_8h-source.html">StaticString.h</a>></code>
|
33
|
+
<p>
|
34
|
+
|
35
|
+
<p>
|
36
|
+
<a href="structPassenger_1_1StaticString_1_1Hash-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
|
37
|
+
<tr><td></td></tr>
|
38
|
+
</table>
|
39
|
+
<hr><a name="_details"></a><h2>Detailed Description</h2>
|
40
|
+
A hash function object for <a class="el" href="classPassenger_1_1StaticString.html" title="An immutable, static byte buffer.">StaticString</a>.
|
41
|
+
<p>
|
42
|
+
<hr>The documentation for this struct was generated from the following file:<ul>
|
43
|
+
<li><a class="el" href="StaticString_8h-source.html">StaticString.h</a></ul>
|
44
|
+
</div>
|
45
|
+
<hr size="1"><address style="text-align: right;"><small>Generated on Sun Feb 21 12:22:48 2010 for Passenger by
|
46
|
+
<a href="http://www.doxygen.org/index.html">
|
47
|
+
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
|
48
|
+
</body>
|
49
|
+
</html>
|
data/ext/common/MessageChannel.h
CHANGED
@@ -319,12 +319,24 @@ public:
|
|
319
319
|
* descriptor is a Unix socket.
|
320
320
|
*
|
321
321
|
* @param fileDescriptor The file descriptor to pass.
|
322
|
+
* @param negotiate See Ruby's MessageChannel#send_io method's comments.
|
322
323
|
* @throws SystemException Something went wrong during file descriptor passing.
|
323
324
|
* @throws boost::thread_interrupted
|
324
325
|
* @pre <tt>fileDescriptor >= 0</tt>
|
325
326
|
* @see readFileDescriptor()
|
326
327
|
*/
|
327
|
-
void writeFileDescriptor(int fileDescriptor) {
|
328
|
+
void writeFileDescriptor(int fileDescriptor, bool negotiate = true) {
|
329
|
+
// See message_channel.rb for more info about negotiation.
|
330
|
+
if (negotiate) {
|
331
|
+
vector<string> args;
|
332
|
+
|
333
|
+
if (!read(args)) {
|
334
|
+
throw IOException("Unexpected end of stream encountered while pre-negotiating a file descriptor");
|
335
|
+
} else if (args.size() != 1 || args[0] != "pass IO") {
|
336
|
+
throw IOException("FD passing pre-negotiation message expected.");
|
337
|
+
}
|
338
|
+
}
|
339
|
+
|
328
340
|
struct msghdr msg;
|
329
341
|
struct iovec vec;
|
330
342
|
char dummy[1];
|
@@ -368,6 +380,16 @@ public:
|
|
368
380
|
if (ret == -1) {
|
369
381
|
throw SystemException("Cannot send file descriptor with sendmsg()", errno);
|
370
382
|
}
|
383
|
+
|
384
|
+
if (negotiate) {
|
385
|
+
vector<string> args;
|
386
|
+
|
387
|
+
if (!read(args)) {
|
388
|
+
throw IOException("Unexpected end of stream encountered while post-negotiating a file descriptor");
|
389
|
+
} else if (args.size() != 1 || args[0] != "got IO") {
|
390
|
+
throw IOException("FD passing post-negotiation message expected.");
|
391
|
+
}
|
392
|
+
}
|
371
393
|
}
|
372
394
|
|
373
395
|
/**
|
@@ -492,6 +514,7 @@ public:
|
|
492
514
|
* Receive a file descriptor, which had been passed over the underlying
|
493
515
|
* file descriptor.
|
494
516
|
*
|
517
|
+
* @param negotiate See Ruby's MessageChannel#send_io method's comments.
|
495
518
|
* @return The passed file descriptor.
|
496
519
|
* @throws SystemException If something went wrong during the
|
497
520
|
* receiving of a file descriptor. Perhaps the underlying
|
@@ -500,7 +523,12 @@ public:
|
|
500
523
|
* file descriptor.
|
501
524
|
* @throws boost::thread_interrupted
|
502
525
|
*/
|
503
|
-
int readFileDescriptor() {
|
526
|
+
int readFileDescriptor(bool negotiate = true) {
|
527
|
+
// See message_channel.rb for more info about negotiation.
|
528
|
+
if (negotiate) {
|
529
|
+
write("pass IO", NULL);
|
530
|
+
}
|
531
|
+
|
504
532
|
struct msghdr msg;
|
505
533
|
struct iovec vec;
|
506
534
|
char dummy[1];
|
@@ -538,16 +566,32 @@ public:
|
|
538
566
|
}
|
539
567
|
|
540
568
|
control_header = CMSG_FIRSTHDR(&msg);
|
569
|
+
if (control_header == NULL) {
|
570
|
+
throw IOException("No valid file descriptor received.");
|
571
|
+
}
|
541
572
|
if (control_header->cmsg_len != EXPECTED_CMSG_LEN
|
542
573
|
|| control_header->cmsg_level != SOL_SOCKET
|
543
574
|
|| control_header->cmsg_type != SCM_RIGHTS) {
|
544
575
|
throw IOException("No valid file descriptor received.");
|
545
576
|
}
|
577
|
+
|
546
578
|
#if defined(__APPLE__) || defined(__SOLARIS__) || defined(__arm__)
|
547
|
-
|
579
|
+
int fd = control_data.fd;
|
548
580
|
#else
|
549
|
-
|
581
|
+
int fd = *((int *) CMSG_DATA(control_header));
|
550
582
|
#endif
|
583
|
+
|
584
|
+
if (negotiate) {
|
585
|
+
try {
|
586
|
+
write("got IO", NULL);
|
587
|
+
} catch (...) {
|
588
|
+
this_thread::disable_syscall_interruption dsi;
|
589
|
+
syscalls::close(fd);
|
590
|
+
throw;
|
591
|
+
}
|
592
|
+
}
|
593
|
+
|
594
|
+
return fd;
|
551
595
|
}
|
552
596
|
|
553
597
|
/**
|
data/ext/common/Version.h
CHANGED
@@ -158,10 +158,14 @@ recv_fd(VALUE self, VALUE socket_fd) {
|
|
158
158
|
}
|
159
159
|
|
160
160
|
control_header = CMSG_FIRSTHDR(&msg);
|
161
|
+
if (control_header == NULL) {
|
162
|
+
rb_raise(rb_eIOError, "No valid file descriptor received.");
|
163
|
+
return Qnil;
|
164
|
+
}
|
161
165
|
if (control_header->cmsg_len != EXPECTED_CMSG_LEN
|
162
166
|
|| control_header->cmsg_level != SOL_SOCKET
|
163
167
|
|| control_header->cmsg_type != SCM_RIGHTS) {
|
164
|
-
|
168
|
+
rb_raise(rb_eIOError, "No valid file descriptor received.");
|
165
169
|
return Qnil;
|
166
170
|
}
|
167
171
|
#if defined(__APPLE__) || defined(__SOLARIS__) || defined(__arm__)
|
@@ -24,7 +24,7 @@
|
|
24
24
|
module PhusionPassenger
|
25
25
|
# Phusion Passenger version number.
|
26
26
|
# Don't forget to edit ext/common/Version.h too.
|
27
|
-
VERSION_STRING = '2.2.
|
27
|
+
VERSION_STRING = '2.2.10'
|
28
28
|
|
29
29
|
DEFAULT_FRAMEWORK_SPAWNER_MAX_IDLE_TIME = 30 * 60
|
30
30
|
DEFAULT_APP_SPAWNER_MAX_IDLE_TIME = 10 * 60
|
@@ -193,8 +193,11 @@ class MessageChannel
|
|
193
193
|
#
|
194
194
|
# Might raise SystemCallError, IOError or SocketError when something
|
195
195
|
# goes wrong.
|
196
|
-
def recv_io
|
197
|
-
|
196
|
+
def recv_io(klass = IO, negotiate = true)
|
197
|
+
write("pass IO") if negotiate
|
198
|
+
io = @io.recv_io(klass)
|
199
|
+
write("got IO") if negotiate
|
200
|
+
return io
|
198
201
|
end
|
199
202
|
|
200
203
|
# Send an IO object (a file descriptor) over the channel. The other
|
@@ -204,7 +207,46 @@ class MessageChannel
|
|
204
207
|
# Might raise SystemCallError, IOError or SocketError when something
|
205
208
|
# goes wrong.
|
206
209
|
def send_io(io)
|
207
|
-
|
210
|
+
# We read a message before actually calling #send_io
|
211
|
+
# in order to prevent the other side from accidentally
|
212
|
+
# read()ing past the normal data and reading our file
|
213
|
+
# descriptor too.
|
214
|
+
#
|
215
|
+
# For example suppose that side A looks like this:
|
216
|
+
#
|
217
|
+
# read(fd, buf, 1024)
|
218
|
+
# read_io(fd)
|
219
|
+
#
|
220
|
+
# and side B:
|
221
|
+
#
|
222
|
+
# write(fd, buf, 100)
|
223
|
+
# send_io(fd_to_pass)
|
224
|
+
#
|
225
|
+
# If B completes both write() and send_io(), then A's read() call
|
226
|
+
# reads past the 100 bytes that B sent. On some platforms, like
|
227
|
+
# Linux, this will cause read_io() to fail. And it just so happens
|
228
|
+
# that Ruby's IO#read method slurps more than just the given amount
|
229
|
+
# of bytes.
|
230
|
+
result = read
|
231
|
+
if !result
|
232
|
+
raise EOFError, "End of stream"
|
233
|
+
elsif result != ["pass IO"]
|
234
|
+
raise IOError, "IO passing pre-negotiation header expected"
|
235
|
+
else
|
236
|
+
@io.send_io(io)
|
237
|
+
# Once you've sent the IO you expect to be able to close it on the
|
238
|
+
# sender's side, even if the other side hasn't read the IO yet.
|
239
|
+
# Not so: on some operating systems (I'm looking at you OS X) this
|
240
|
+
# can cause the receiving side to receive a bad file descriptor.
|
241
|
+
# The post negotiation protocol ensures that we block until the
|
242
|
+
# other side has really received the IO.
|
243
|
+
result = read
|
244
|
+
if !result
|
245
|
+
raise EOFError, "End of stream"
|
246
|
+
elsif result != ["got IO"]
|
247
|
+
raise IOError, "IO passing post-negotiation header expected"
|
248
|
+
end
|
249
|
+
end
|
208
250
|
end
|
209
251
|
|
210
252
|
# Return the file descriptor of the underlying IO object.
|
@@ -97,6 +97,10 @@ private
|
|
97
97
|
if options["lower_privilege"]
|
98
98
|
lower_privilege('config.ru', options["lowest_user"])
|
99
99
|
end
|
100
|
+
# Make sure RubyGems uses any new environment variable values
|
101
|
+
# that have been set now (e.g. $HOME, $GEM_HOME, etc) and that
|
102
|
+
# it is able to detect newly installed gems.
|
103
|
+
Gem.clear_paths
|
100
104
|
app = load_rack_app
|
101
105
|
end
|
102
106
|
|
@@ -169,6 +169,10 @@ class ApplicationSpawner < AbstractServer
|
|
169
169
|
if @lower_privilege
|
170
170
|
lower_privilege('config/environment.rb', @lowest_user)
|
171
171
|
end
|
172
|
+
# Make sure RubyGems uses any new environment variable values
|
173
|
+
# that have been set now (e.g. $HOME, $GEM_HOME, etc) and that
|
174
|
+
# it is able to detect newly installed gems.
|
175
|
+
Gem.clear_paths
|
172
176
|
|
173
177
|
require File.expand_path('config/environment')
|
174
178
|
require 'dispatcher'
|
@@ -346,9 +350,12 @@ private
|
|
346
350
|
end
|
347
351
|
|
348
352
|
def handle_spawn_application
|
353
|
+
a, b = UNIXSocket.pair
|
349
354
|
safe_fork('application', true) do
|
350
355
|
begin
|
351
|
-
|
356
|
+
a.close
|
357
|
+
client.close
|
358
|
+
start_request_handler(MessageChannel.new(b), true)
|
352
359
|
rescue SignalException => e
|
353
360
|
if e.message != AbstractRequestHandler::HARD_TERMINATION_SIGNAL &&
|
354
361
|
e.message != AbstractRequestHandler::SOFT_TERMINATION_SIGNAL
|
@@ -356,6 +363,17 @@ private
|
|
356
363
|
end
|
357
364
|
end
|
358
365
|
end
|
366
|
+
|
367
|
+
b.close
|
368
|
+
worker_channel = MessageChannel.new(a)
|
369
|
+
info = worker_channel.read
|
370
|
+
owner_pipe = worker_channel.recv_io
|
371
|
+
client.write(*info)
|
372
|
+
client.send_io(owner_pipe)
|
373
|
+
ensure
|
374
|
+
a.close if a
|
375
|
+
b.close if b && !b.closed?
|
376
|
+
owner_pipe.close if owner_pipe
|
359
377
|
end
|
360
378
|
|
361
379
|
# Initialize the request handler and enter its main loop.
|
@@ -538,8 +538,8 @@ class IO
|
|
538
538
|
# This only works if this IO channel is a Unix socket.
|
539
539
|
#
|
540
540
|
# Raises SystemCallError if something went wrong.
|
541
|
-
def recv_io
|
542
|
-
return
|
541
|
+
def recv_io(klass = IO)
|
542
|
+
return klass.for_fd(PhusionPassenger::NativeSupport.recv_fd(self.fileno))
|
543
543
|
end
|
544
544
|
end
|
545
545
|
|
@@ -590,7 +590,7 @@ end
|
|
590
590
|
if RUBY_PLATFORM =~ /freebsd/ || RUBY_PLATFORM =~ /openbsd/ || (RUBY_PLATFORM =~ /darwin/ && RUBY_PLATFORM !~ /universal/)
|
591
591
|
require 'socket'
|
592
592
|
UNIXSocket.class_eval do
|
593
|
-
def recv_io
|
593
|
+
def recv_io(klass = IO)
|
594
594
|
super
|
595
595
|
end
|
596
596
|
|
@@ -41,6 +41,11 @@ module Utils
|
|
41
41
|
@rewindable_io.rewind
|
42
42
|
end
|
43
43
|
|
44
|
+
def size
|
45
|
+
make_rewindable unless @rewindable_io
|
46
|
+
@rewindable_io.size
|
47
|
+
end
|
48
|
+
|
44
49
|
# Closes this RewindableInput object without closing the originally
|
45
50
|
# wrapped IO oject. Cleans up any temporary resources that this RewindableInput
|
46
51
|
# has created.
|
data/test/MessageChannelTest.cpp
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
#include "tut.h"
|
2
2
|
#include "MessageChannel.h"
|
3
3
|
|
4
|
+
#include <boost/bind.hpp>
|
5
|
+
#include <boost/thread.hpp>
|
4
6
|
#include <cstring>
|
5
7
|
#include <cstdio>
|
6
8
|
|
@@ -144,8 +146,14 @@ namespace tut {
|
|
144
146
|
MessageChannel channel2(s[1]);
|
145
147
|
|
146
148
|
pipe(my_pipe);
|
147
|
-
|
149
|
+
boost::thread thr(boost::bind(
|
150
|
+
&MessageChannel::writeFileDescriptor,
|
151
|
+
&channel1,
|
152
|
+
my_pipe[1],
|
153
|
+
true
|
154
|
+
));
|
148
155
|
fd = channel2.readFileDescriptor();
|
156
|
+
thr.join();
|
149
157
|
|
150
158
|
char buf[5];
|
151
159
|
write(fd, "hello", 5);
|
@@ -1,6 +1,6 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
-
$LOAD_PATH
|
3
|
-
$LOAD_PATH
|
2
|
+
$LOAD_PATH.unshift("#{File.dirname(__FILE__)}/../../lib")
|
3
|
+
$LOAD_PATH.unshift("#{File.dirname(__FILE__)}/../../ext")
|
4
4
|
require 'phusion_passenger/message_channel'
|
5
5
|
require 'phusion_passenger/utils'
|
6
6
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: passenger
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.2.
|
4
|
+
version: 2.2.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Phusion - http://www.phusion.nl/
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2010-
|
12
|
+
date: 2010-02-22 00:00:00 +01:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -141,28 +141,37 @@ files:
|
|
141
141
|
- doc/Users guide Apache.txt
|
142
142
|
- doc/Users guide Nginx.html
|
143
143
|
- doc/Users guide Nginx.txt
|
144
|
+
- doc/cxxapi/AbstractSpawnManager_8h-source.html
|
145
|
+
- doc/cxxapi/Account_8h-source.html
|
146
|
+
- doc/cxxapi/AccountsDatabase_8h-source.html
|
147
|
+
- doc/cxxapi/AgentsStarter_8h-source.html
|
144
148
|
- doc/cxxapi/annotated.html
|
145
|
-
- doc/cxxapi/
|
146
|
-
- doc/cxxapi/
|
147
|
-
- doc/cxxapi/
|
149
|
+
- doc/cxxapi/apache2_2Configuration_8h-source.html
|
150
|
+
- doc/cxxapi/BacktracesServer_8h-source.html
|
151
|
+
- doc/cxxapi/Base64_8h-source.html
|
152
|
+
- doc/cxxapi/BCrypt_8h-source.html
|
153
|
+
- doc/cxxapi/Blowfish_8h-source.html
|
148
154
|
- doc/cxxapi/Bucket_8h-source.html
|
149
155
|
- doc/cxxapi/CachedFileStat_8h-source.html
|
156
|
+
- doc/cxxapi/classAgentWatcher-members.html
|
157
|
+
- doc/cxxapi/classAgentWatcher.html
|
150
158
|
- doc/cxxapi/classClient-members.html
|
151
159
|
- doc/cxxapi/classClient.html
|
152
160
|
- doc/cxxapi/classes.html
|
153
161
|
- doc/cxxapi/classHooks-members.html
|
154
162
|
- doc/cxxapi/classHooks.html
|
155
|
-
- doc/cxxapi/
|
156
|
-
- doc/cxxapi/
|
157
|
-
- doc/cxxapi/
|
158
|
-
- doc/cxxapi/
|
159
|
-
- doc/cxxapi/
|
160
|
-
- doc/cxxapi/
|
161
|
-
- doc/cxxapi/
|
162
|
-
- doc/cxxapi/
|
163
|
-
- doc/cxxapi/
|
164
|
-
- doc/cxxapi/
|
165
|
-
- doc/cxxapi/
|
163
|
+
- doc/cxxapi/classPassenger_1_1AbstractSpawnManager-members.html
|
164
|
+
- doc/cxxapi/classPassenger_1_1AbstractSpawnManager.html
|
165
|
+
- doc/cxxapi/classPassenger_1_1AbstractSpawnManager__inherit__graph.map
|
166
|
+
- doc/cxxapi/classPassenger_1_1AbstractSpawnManager__inherit__graph.md5
|
167
|
+
- doc/cxxapi/classPassenger_1_1AbstractSpawnManager__inherit__graph.png
|
168
|
+
- doc/cxxapi/classPassenger_1_1ArgumentException-members.html
|
169
|
+
- doc/cxxapi/classPassenger_1_1ArgumentException.html
|
170
|
+
- doc/cxxapi/classPassenger_1_1BacktracesServer-members.html
|
171
|
+
- doc/cxxapi/classPassenger_1_1BacktracesServer.html
|
172
|
+
- doc/cxxapi/classPassenger_1_1BacktracesServer__inherit__graph.map
|
173
|
+
- doc/cxxapi/classPassenger_1_1BacktracesServer__inherit__graph.md5
|
174
|
+
- doc/cxxapi/classPassenger_1_1BacktracesServer__inherit__graph.png
|
166
175
|
- doc/cxxapi/classPassenger_1_1BufferedUpload-members.html
|
167
176
|
- doc/cxxapi/classPassenger_1_1BufferedUpload.html
|
168
177
|
- doc/cxxapi/classPassenger_1_1BusyException-members.html
|
@@ -171,10 +180,17 @@ files:
|
|
171
180
|
- doc/cxxapi/classPassenger_1_1ConfigurationException.html
|
172
181
|
- doc/cxxapi/classPassenger_1_1DirectoryMapper-members.html
|
173
182
|
- doc/cxxapi/classPassenger_1_1DirectoryMapper.html
|
174
|
-
- doc/cxxapi/
|
175
|
-
- doc/cxxapi/
|
176
|
-
- doc/cxxapi/
|
177
|
-
- doc/cxxapi/
|
183
|
+
- doc/cxxapi/classPassenger_1_1EOFException-members.html
|
184
|
+
- doc/cxxapi/classPassenger_1_1EOFException.html
|
185
|
+
- doc/cxxapi/classPassenger_1_1EOFException__inherit__graph.map
|
186
|
+
- doc/cxxapi/classPassenger_1_1EOFException__inherit__graph.md5
|
187
|
+
- doc/cxxapi/classPassenger_1_1EOFException__inherit__graph.png
|
188
|
+
- doc/cxxapi/classPassenger_1_1EventFd-members.html
|
189
|
+
- doc/cxxapi/classPassenger_1_1EventFd.html
|
190
|
+
- doc/cxxapi/classPassenger_1_1FileChangeChecker-members.html
|
191
|
+
- doc/cxxapi/classPassenger_1_1FileChangeChecker.html
|
192
|
+
- doc/cxxapi/classPassenger_1_1FileDescriptor-members.html
|
193
|
+
- doc/cxxapi/classPassenger_1_1FileDescriptor.html
|
178
194
|
- doc/cxxapi/classPassenger_1_1FileNotFoundException-members.html
|
179
195
|
- doc/cxxapi/classPassenger_1_1FileNotFoundException.html
|
180
196
|
- doc/cxxapi/classPassenger_1_1FileNotFoundException__inherit__graph.map
|
@@ -185,24 +201,63 @@ files:
|
|
185
201
|
- doc/cxxapi/classPassenger_1_1FileSystemException__inherit__graph.map
|
186
202
|
- doc/cxxapi/classPassenger_1_1FileSystemException__inherit__graph.md5
|
187
203
|
- doc/cxxapi/classPassenger_1_1FileSystemException__inherit__graph.png
|
204
|
+
- doc/cxxapi/classPassenger_1_1HttpStatusExtractor-members.html
|
205
|
+
- doc/cxxapi/classPassenger_1_1HttpStatusExtractor.html
|
188
206
|
- doc/cxxapi/classPassenger_1_1IOException-members.html
|
189
207
|
- doc/cxxapi/classPassenger_1_1IOException.html
|
190
208
|
- doc/cxxapi/classPassenger_1_1IOException__inherit__graph.map
|
191
209
|
- doc/cxxapi/classPassenger_1_1IOException__inherit__graph.md5
|
192
210
|
- doc/cxxapi/classPassenger_1_1IOException__inherit__graph.png
|
211
|
+
- doc/cxxapi/classPassenger_1_1MemZeroGuard-members.html
|
212
|
+
- doc/cxxapi/classPassenger_1_1MemZeroGuard.html
|
193
213
|
- doc/cxxapi/classPassenger_1_1MessageChannel-members.html
|
194
214
|
- doc/cxxapi/classPassenger_1_1MessageChannel.html
|
215
|
+
- doc/cxxapi/classPassenger_1_1MessageServer-members.html
|
216
|
+
- doc/cxxapi/classPassenger_1_1MessageServer.html
|
217
|
+
- doc/cxxapi/classPassenger_1_1MessageServer_1_1ClientContext-members.html
|
218
|
+
- doc/cxxapi/classPassenger_1_1MessageServer_1_1ClientContext.html
|
219
|
+
- doc/cxxapi/classPassenger_1_1MessageServer_1_1ClientContext__inherit__graph.map
|
220
|
+
- doc/cxxapi/classPassenger_1_1MessageServer_1_1ClientContext__inherit__graph.md5
|
221
|
+
- doc/cxxapi/classPassenger_1_1MessageServer_1_1ClientContext__inherit__graph.png
|
222
|
+
- doc/cxxapi/classPassenger_1_1MessageServer_1_1CommonClientContext-members.html
|
223
|
+
- doc/cxxapi/classPassenger_1_1MessageServer_1_1CommonClientContext.html
|
224
|
+
- doc/cxxapi/classPassenger_1_1MessageServer_1_1CommonClientContext__inherit__graph.map
|
225
|
+
- doc/cxxapi/classPassenger_1_1MessageServer_1_1CommonClientContext__inherit__graph.md5
|
226
|
+
- doc/cxxapi/classPassenger_1_1MessageServer_1_1CommonClientContext__inherit__graph.png
|
227
|
+
- doc/cxxapi/classPassenger_1_1MessageServer_1_1Handler-members.html
|
228
|
+
- doc/cxxapi/classPassenger_1_1MessageServer_1_1Handler.html
|
229
|
+
- doc/cxxapi/classPassenger_1_1MessageServer_1_1Handler__inherit__graph.map
|
230
|
+
- doc/cxxapi/classPassenger_1_1MessageServer_1_1Handler__inherit__graph.md5
|
231
|
+
- doc/cxxapi/classPassenger_1_1MessageServer_1_1Handler__inherit__graph.png
|
232
|
+
- doc/cxxapi/classPassenger_1_1Process-members.html
|
233
|
+
- doc/cxxapi/classPassenger_1_1Process.html
|
234
|
+
- doc/cxxapi/classPassenger_1_1RandomGenerator-members.html
|
235
|
+
- doc/cxxapi/classPassenger_1_1RandomGenerator.html
|
195
236
|
- doc/cxxapi/classPassenger_1_1RuntimeException-members.html
|
196
237
|
- doc/cxxapi/classPassenger_1_1RuntimeException.html
|
238
|
+
- doc/cxxapi/classPassenger_1_1ScgiRequestParser-members.html
|
239
|
+
- doc/cxxapi/classPassenger_1_1ScgiRequestParser.html
|
240
|
+
- doc/cxxapi/classPassenger_1_1SecurityException-members.html
|
241
|
+
- doc/cxxapi/classPassenger_1_1SecurityException.html
|
242
|
+
- doc/cxxapi/classPassenger_1_1Session-members.html
|
243
|
+
- doc/cxxapi/classPassenger_1_1Session.html
|
244
|
+
- doc/cxxapi/classPassenger_1_1Session__inherit__graph.map
|
245
|
+
- doc/cxxapi/classPassenger_1_1Session__inherit__graph.md5
|
246
|
+
- doc/cxxapi/classPassenger_1_1Session__inherit__graph.png
|
197
247
|
- doc/cxxapi/classPassenger_1_1SpawnException-members.html
|
198
248
|
- doc/cxxapi/classPassenger_1_1SpawnException.html
|
199
249
|
- doc/cxxapi/classPassenger_1_1SpawnManager-members.html
|
200
250
|
- doc/cxxapi/classPassenger_1_1SpawnManager.html
|
201
|
-
- doc/cxxapi/
|
202
|
-
- doc/cxxapi/
|
203
|
-
- doc/cxxapi/
|
204
|
-
- doc/cxxapi/
|
205
|
-
- doc/cxxapi/
|
251
|
+
- doc/cxxapi/classPassenger_1_1SpawnManager__inherit__graph.map
|
252
|
+
- doc/cxxapi/classPassenger_1_1SpawnManager__inherit__graph.md5
|
253
|
+
- doc/cxxapi/classPassenger_1_1SpawnManager__inherit__graph.png
|
254
|
+
- doc/cxxapi/classPassenger_1_1StandardSession-members.html
|
255
|
+
- doc/cxxapi/classPassenger_1_1StandardSession.html
|
256
|
+
- doc/cxxapi/classPassenger_1_1StandardSession__inherit__graph.map
|
257
|
+
- doc/cxxapi/classPassenger_1_1StandardSession__inherit__graph.md5
|
258
|
+
- doc/cxxapi/classPassenger_1_1StandardSession__inherit__graph.png
|
259
|
+
- doc/cxxapi/classPassenger_1_1StaticString-members.html
|
260
|
+
- doc/cxxapi/classPassenger_1_1StaticString.html
|
206
261
|
- doc/cxxapi/classPassenger_1_1SystemException-members.html
|
207
262
|
- doc/cxxapi/classPassenger_1_1SystemException.html
|
208
263
|
- doc/cxxapi/classPassenger_1_1SystemException__inherit__graph.map
|
@@ -210,14 +265,29 @@ files:
|
|
210
265
|
- doc/cxxapi/classPassenger_1_1SystemException__inherit__graph.png
|
211
266
|
- doc/cxxapi/classPassenger_1_1SystemTime-members.html
|
212
267
|
- doc/cxxapi/classPassenger_1_1SystemTime.html
|
268
|
+
- doc/cxxapi/classPassenger_1_1TimeoutException-members.html
|
269
|
+
- doc/cxxapi/classPassenger_1_1TimeoutException.html
|
270
|
+
- doc/cxxapi/classPassenger_1_1Timer-members.html
|
271
|
+
- doc/cxxapi/classPassenger_1_1Timer.html
|
272
|
+
- doc/cxxapi/classPassenger_1_1TimeRetrievalException-members.html
|
273
|
+
- doc/cxxapi/classPassenger_1_1TimeRetrievalException.html
|
274
|
+
- doc/cxxapi/classPassenger_1_1TimeRetrievalException__inherit__graph.map
|
275
|
+
- doc/cxxapi/classPassenger_1_1TimeRetrievalException__inherit__graph.md5
|
276
|
+
- doc/cxxapi/classPassenger_1_1TimeRetrievalException__inherit__graph.png
|
277
|
+
- doc/cxxapi/classServer-members.html
|
278
|
+
- doc/cxxapi/classServer.html
|
279
|
+
- doc/cxxapi/classServerInstanceDirToucher-members.html
|
280
|
+
- doc/cxxapi/classServerInstanceDirToucher.html
|
213
281
|
- doc/cxxapi/Configuration_8h-source.html
|
282
|
+
- doc/cxxapi/Constants_8h-source.html
|
283
|
+
- doc/cxxapi/ContentHandler_8h-source.html
|
214
284
|
- doc/cxxapi/definitions_8h-source.html
|
215
285
|
- doc/cxxapi/DirectoryMapper_8h-source.html
|
216
286
|
- doc/cxxapi/doxygen.css
|
217
287
|
- doc/cxxapi/doxygen.png
|
218
|
-
- doc/cxxapi/DummySpawnManager_8h-source.html
|
219
288
|
- doc/cxxapi/Exceptions_8h-source.html
|
220
|
-
- doc/cxxapi/
|
289
|
+
- doc/cxxapi/FileChangeChecker_8h-source.html
|
290
|
+
- doc/cxxapi/FileDescriptor_8h-source.html
|
221
291
|
- doc/cxxapi/files.html
|
222
292
|
- doc/cxxapi/ftv2blank.png
|
223
293
|
- doc/cxxapi/ftv2doc.png
|
@@ -232,8 +302,9 @@ files:
|
|
232
302
|
- doc/cxxapi/ftv2pnode.png
|
233
303
|
- doc/cxxapi/ftv2vertline.png
|
234
304
|
- doc/cxxapi/functions.html
|
305
|
+
- doc/cxxapi/functions_enum.html
|
306
|
+
- doc/cxxapi/functions_eval.html
|
235
307
|
- doc/cxxapi/functions_func.html
|
236
|
-
- doc/cxxapi/functions_type.html
|
237
308
|
- doc/cxxapi/functions_vars.html
|
238
309
|
- doc/cxxapi/graph_legend.dot
|
239
310
|
- doc/cxxapi/graph_legend.html
|
@@ -248,6 +319,7 @@ files:
|
|
248
319
|
- doc/cxxapi/group__Support.html
|
249
320
|
- doc/cxxapi/hierarchy.html
|
250
321
|
- doc/cxxapi/Hooks_8h-source.html
|
322
|
+
- doc/cxxapi/HttpStatusExtractor_8h-source.html
|
251
323
|
- doc/cxxapi/index.html
|
252
324
|
- doc/cxxapi/inherit__graph__0.map
|
253
325
|
- doc/cxxapi/inherit__graph__0.md5
|
@@ -294,9 +366,54 @@ files:
|
|
294
366
|
- doc/cxxapi/inherit__graph__21.map
|
295
367
|
- doc/cxxapi/inherit__graph__21.md5
|
296
368
|
- doc/cxxapi/inherit__graph__21.png
|
369
|
+
- doc/cxxapi/inherit__graph__22.map
|
370
|
+
- doc/cxxapi/inherit__graph__22.md5
|
371
|
+
- doc/cxxapi/inherit__graph__22.png
|
372
|
+
- doc/cxxapi/inherit__graph__23.map
|
373
|
+
- doc/cxxapi/inherit__graph__23.md5
|
374
|
+
- doc/cxxapi/inherit__graph__23.png
|
375
|
+
- doc/cxxapi/inherit__graph__24.map
|
376
|
+
- doc/cxxapi/inherit__graph__24.md5
|
377
|
+
- doc/cxxapi/inherit__graph__24.png
|
378
|
+
- doc/cxxapi/inherit__graph__25.map
|
379
|
+
- doc/cxxapi/inherit__graph__25.md5
|
380
|
+
- doc/cxxapi/inherit__graph__25.png
|
381
|
+
- doc/cxxapi/inherit__graph__26.map
|
382
|
+
- doc/cxxapi/inherit__graph__26.md5
|
383
|
+
- doc/cxxapi/inherit__graph__26.png
|
384
|
+
- doc/cxxapi/inherit__graph__27.map
|
385
|
+
- doc/cxxapi/inherit__graph__27.md5
|
386
|
+
- doc/cxxapi/inherit__graph__27.png
|
387
|
+
- doc/cxxapi/inherit__graph__28.map
|
388
|
+
- doc/cxxapi/inherit__graph__28.md5
|
389
|
+
- doc/cxxapi/inherit__graph__28.png
|
390
|
+
- doc/cxxapi/inherit__graph__29.map
|
391
|
+
- doc/cxxapi/inherit__graph__29.md5
|
392
|
+
- doc/cxxapi/inherit__graph__29.png
|
297
393
|
- doc/cxxapi/inherit__graph__3.map
|
298
394
|
- doc/cxxapi/inherit__graph__3.md5
|
299
395
|
- doc/cxxapi/inherit__graph__3.png
|
396
|
+
- doc/cxxapi/inherit__graph__30.map
|
397
|
+
- doc/cxxapi/inherit__graph__30.md5
|
398
|
+
- doc/cxxapi/inherit__graph__30.png
|
399
|
+
- doc/cxxapi/inherit__graph__31.map
|
400
|
+
- doc/cxxapi/inherit__graph__31.md5
|
401
|
+
- doc/cxxapi/inherit__graph__31.png
|
402
|
+
- doc/cxxapi/inherit__graph__32.map
|
403
|
+
- doc/cxxapi/inherit__graph__32.md5
|
404
|
+
- doc/cxxapi/inherit__graph__32.png
|
405
|
+
- doc/cxxapi/inherit__graph__33.map
|
406
|
+
- doc/cxxapi/inherit__graph__33.md5
|
407
|
+
- doc/cxxapi/inherit__graph__33.png
|
408
|
+
- doc/cxxapi/inherit__graph__34.map
|
409
|
+
- doc/cxxapi/inherit__graph__34.md5
|
410
|
+
- doc/cxxapi/inherit__graph__34.png
|
411
|
+
- doc/cxxapi/inherit__graph__35.map
|
412
|
+
- doc/cxxapi/inherit__graph__35.md5
|
413
|
+
- doc/cxxapi/inherit__graph__35.png
|
414
|
+
- doc/cxxapi/inherit__graph__36.map
|
415
|
+
- doc/cxxapi/inherit__graph__36.md5
|
416
|
+
- doc/cxxapi/inherit__graph__36.png
|
300
417
|
- doc/cxxapi/inherit__graph__4.map
|
301
418
|
- doc/cxxapi/inherit__graph__4.md5
|
302
419
|
- doc/cxxapi/inherit__graph__4.png
|
@@ -317,25 +434,52 @@ files:
|
|
317
434
|
- doc/cxxapi/inherit__graph__9.png
|
318
435
|
- doc/cxxapi/inherits.html
|
319
436
|
- doc/cxxapi/Logging_8h-source.html
|
437
|
+
- doc/cxxapi/LoggingServer_8h-source.html
|
320
438
|
- doc/cxxapi/main.html
|
439
|
+
- doc/cxxapi/md5_8h-source.html
|
321
440
|
- doc/cxxapi/MessageChannel_8h-source.html
|
441
|
+
- doc/cxxapi/MessageClient_8h-source.html
|
442
|
+
- doc/cxxapi/MessageServer_8h-source.html
|
322
443
|
- doc/cxxapi/modules.html
|
444
|
+
- doc/cxxapi/namespacemembers.html
|
445
|
+
- doc/cxxapi/namespacemembers_enum.html
|
446
|
+
- doc/cxxapi/namespacemembers_eval.html
|
447
|
+
- doc/cxxapi/namespacemembers_func.html
|
448
|
+
- doc/cxxapi/namespacemembers_type.html
|
449
|
+
- doc/cxxapi/namespacePassenger.html
|
450
|
+
- doc/cxxapi/namespaces.html
|
451
|
+
- doc/cxxapi/nginx_2Configuration_8h-source.html
|
452
|
+
- doc/cxxapi/ngx__http__passenger__module_8h-source.html
|
323
453
|
- doc/cxxapi/PoolOptions_8h-source.html
|
454
|
+
- doc/cxxapi/Process_8h-source.html
|
455
|
+
- doc/cxxapi/RandomGenerator_8h-source.html
|
456
|
+
- doc/cxxapi/ResourceLocator_8h-source.html
|
457
|
+
- doc/cxxapi/ScgiRequestParser_8h-source.html
|
458
|
+
- doc/cxxapi/ServerInstanceDir_8h-source.html
|
459
|
+
- doc/cxxapi/Session_8h-source.html
|
324
460
|
- doc/cxxapi/SpawnManager_8h-source.html
|
325
|
-
- doc/cxxapi/
|
461
|
+
- doc/cxxapi/StaticContentHandler_8h-source.html
|
462
|
+
- doc/cxxapi/StaticString_8h-source.html
|
463
|
+
- doc/cxxapi/StringListCreator_8h-source.html
|
326
464
|
- doc/cxxapi/structPassenger_1_1AnythingToString-members.html
|
327
465
|
- doc/cxxapi/structPassenger_1_1AnythingToString.html
|
328
466
|
- doc/cxxapi/structPassenger_1_1AnythingToString_3_01vector_3_01string_01_4_01_4-members.html
|
329
467
|
- doc/cxxapi/structPassenger_1_1AnythingToString_3_01vector_3_01string_01_4_01_4.html
|
468
|
+
- doc/cxxapi/structPassenger_1_1MessageServer_1_1DisconnectEventBroadcastGuard-members.html
|
469
|
+
- doc/cxxapi/structPassenger_1_1MessageServer_1_1DisconnectEventBroadcastGuard.html
|
330
470
|
- doc/cxxapi/structPassenger_1_1PoolOptions-members.html
|
331
471
|
- doc/cxxapi/structPassenger_1_1PoolOptions.html
|
472
|
+
- doc/cxxapi/structPassenger_1_1StaticString_1_1Hash-members.html
|
473
|
+
- doc/cxxapi/structPassenger_1_1StaticString_1_1Hash.html
|
332
474
|
- doc/cxxapi/SystemTime_8h-source.html
|
333
475
|
- doc/cxxapi/tab_b.gif
|
334
476
|
- doc/cxxapi/tab_l.gif
|
335
477
|
- doc/cxxapi/tab_r.gif
|
336
478
|
- doc/cxxapi/tabs.css
|
479
|
+
- doc/cxxapi/Timer_8h-source.html
|
337
480
|
- doc/cxxapi/tree.html
|
338
481
|
- doc/cxxapi/Utils_8h-source.html
|
482
|
+
- doc/cxxapi/Version_8h-source.html
|
339
483
|
- doc/images/by_sa.png
|
340
484
|
- doc/images/conservative_spawning.png
|
341
485
|
- doc/images/conservative_spawning.svg
|
@@ -348,12 +492,6 @@ files:
|
|
348
492
|
- doc/images/spawn_server_architecture.svg
|
349
493
|
- doc/images/typical_isolated_web_application.png
|
350
494
|
- doc/images/typical_isolated_web_application.svg
|
351
|
-
- doc/rdoc/created.rid
|
352
|
-
- doc/rdoc/fr_class_index.html
|
353
|
-
- doc/rdoc/fr_file_index.html
|
354
|
-
- doc/rdoc/fr_method_index.html
|
355
|
-
- doc/rdoc/index.html
|
356
|
-
- doc/rdoc/rdoc-style.css
|
357
495
|
- doc/template/horo.rb
|
358
496
|
- doc/users_guide_snippets/analysis_and_system_maintenance_tools.txt
|
359
497
|
- doc/users_guide_snippets/appendix_a_about.txt
|
@@ -374,16 +512,6 @@ files:
|
|
374
512
|
- doc/images/icons/tip.png
|
375
513
|
- doc/images/icons/up.png
|
376
514
|
- doc/images/icons/warning.png
|
377
|
-
- doc/rdoc/classes/ConditionVariable.html
|
378
|
-
- doc/rdoc/classes/Exception.html
|
379
|
-
- doc/rdoc/classes/GC.html
|
380
|
-
- doc/rdoc/classes/IO.html
|
381
|
-
- doc/rdoc/classes/PhusionPassenger.html
|
382
|
-
- doc/rdoc/classes/PlatformInfo.html
|
383
|
-
- doc/rdoc/classes/RakeExtensions.html
|
384
|
-
- doc/rdoc/classes/Signal.html
|
385
|
-
- doc/rdoc/files/DEVELOPERS_TXT.html
|
386
|
-
- doc/rdoc/files/README.html
|
387
515
|
- doc/images/icons/callouts/1.png
|
388
516
|
- doc/images/icons/callouts/10.png
|
389
517
|
- doc/images/icons/callouts/11.png
|
@@ -399,74 +527,6 @@ files:
|
|
399
527
|
- doc/images/icons/callouts/7.png
|
400
528
|
- doc/images/icons/callouts/8.png
|
401
529
|
- doc/images/icons/callouts/9.png
|
402
|
-
- doc/rdoc/classes/PhusionPassenger/AbstractInstaller.html
|
403
|
-
- doc/rdoc/classes/PhusionPassenger/AbstractRequestHandler.html
|
404
|
-
- doc/rdoc/classes/PhusionPassenger/AbstractServer.html
|
405
|
-
- doc/rdoc/classes/PhusionPassenger/AbstractServerCollection.html
|
406
|
-
- doc/rdoc/classes/PhusionPassenger/AdminTools.html
|
407
|
-
- doc/rdoc/classes/PhusionPassenger/AppInitError.html
|
408
|
-
- doc/rdoc/classes/PhusionPassenger/Application.html
|
409
|
-
- doc/rdoc/classes/PhusionPassenger/ConsoleTextTemplate.html
|
410
|
-
- doc/rdoc/classes/PhusionPassenger/FrameworkInitError.html
|
411
|
-
- doc/rdoc/classes/PhusionPassenger/HTMLTemplate.html
|
412
|
-
- doc/rdoc/classes/PhusionPassenger/InitializationError.html
|
413
|
-
- doc/rdoc/classes/PhusionPassenger/InvalidPath.html
|
414
|
-
- doc/rdoc/classes/PhusionPassenger/MessageChannel.html
|
415
|
-
- doc/rdoc/classes/PhusionPassenger/NativeSupport.html
|
416
|
-
- doc/rdoc/classes/PhusionPassenger/Rack.html
|
417
|
-
- doc/rdoc/classes/PhusionPassenger/Railz.html
|
418
|
-
- doc/rdoc/classes/PhusionPassenger/SpawnManager.html
|
419
|
-
- doc/rdoc/classes/PhusionPassenger/UnknownError.html
|
420
|
-
- doc/rdoc/classes/PhusionPassenger/Utils.html
|
421
|
-
- doc/rdoc/classes/PhusionPassenger/VersionNotFound.html
|
422
|
-
- doc/rdoc/classes/PhusionPassenger/WSGI.html
|
423
|
-
- doc/rdoc/classes/PhusionPassenger/AbstractServer/ServerAlreadyStarted.html
|
424
|
-
- doc/rdoc/classes/PhusionPassenger/AbstractServer/ServerError.html
|
425
|
-
- doc/rdoc/classes/PhusionPassenger/AbstractServer/ServerNotStarted.html
|
426
|
-
- doc/rdoc/classes/PhusionPassenger/AbstractServer/UnknownMessage.html
|
427
|
-
- doc/rdoc/classes/PhusionPassenger/AdminTools/ControlProcess.html
|
428
|
-
- doc/rdoc/classes/PhusionPassenger/Rack/ApplicationSpawner.html
|
429
|
-
- doc/rdoc/classes/PhusionPassenger/Rack/RequestHandler.html
|
430
|
-
- doc/rdoc/classes/PhusionPassenger/Railz/ApplicationSpawner.html
|
431
|
-
- doc/rdoc/classes/PhusionPassenger/Railz/CGIFixed.html
|
432
|
-
- doc/rdoc/classes/PhusionPassenger/Railz/FrameworkSpawner.html
|
433
|
-
- doc/rdoc/classes/PhusionPassenger/Railz/RequestHandler.html
|
434
|
-
- doc/rdoc/classes/PhusionPassenger/Utils/PseudoIO.html
|
435
|
-
- doc/rdoc/classes/PhusionPassenger/Utils/RewindableInput.html
|
436
|
-
- doc/rdoc/classes/PhusionPassenger/WSGI/ApplicationSpawner.html
|
437
|
-
- doc/rdoc/files/ext/phusion_passenger/native_support_c.html
|
438
|
-
- doc/rdoc/files/lib/phusion_passenger/abstract_installer_rb.html
|
439
|
-
- doc/rdoc/files/lib/phusion_passenger/abstract_request_handler_rb.html
|
440
|
-
- doc/rdoc/files/lib/phusion_passenger/abstract_server_collection_rb.html
|
441
|
-
- doc/rdoc/files/lib/phusion_passenger/abstract_server_rb.html
|
442
|
-
- doc/rdoc/files/lib/phusion_passenger/admin_tools_rb.html
|
443
|
-
- doc/rdoc/files/lib/phusion_passenger/application_rb.html
|
444
|
-
- doc/rdoc/files/lib/phusion_passenger/console_text_template_rb.html
|
445
|
-
- doc/rdoc/files/lib/phusion_passenger/constants_rb.html
|
446
|
-
- doc/rdoc/files/lib/phusion_passenger/dependencies_rb.html
|
447
|
-
- doc/rdoc/files/lib/phusion_passenger/events_rb.html
|
448
|
-
- doc/rdoc/files/lib/phusion_passenger/exceptions_rb.html
|
449
|
-
- doc/rdoc/files/lib/phusion_passenger/html_template_rb.html
|
450
|
-
- doc/rdoc/files/lib/phusion_passenger/message_channel_rb.html
|
451
|
-
- doc/rdoc/files/lib/phusion_passenger/packaging_rb.html
|
452
|
-
- doc/rdoc/files/lib/phusion_passenger/platform_info_rb.html
|
453
|
-
- doc/rdoc/files/lib/phusion_passenger/simple_benchmarking_rb.html
|
454
|
-
- doc/rdoc/files/lib/phusion_passenger/spawn_manager_rb.html
|
455
|
-
- doc/rdoc/files/lib/phusion_passenger/utils_rb.html
|
456
|
-
- doc/rdoc/files/misc/rake/extensions_rb.html
|
457
|
-
- doc/rdoc/classes/PhusionPassenger/AdminTools/ControlProcess/Instance.html
|
458
|
-
- doc/rdoc/classes/PhusionPassenger/Railz/ApplicationSpawner/Error.html
|
459
|
-
- doc/rdoc/classes/PhusionPassenger/Railz/FrameworkSpawner/Error.html
|
460
|
-
- doc/rdoc/classes/PhusionPassenger/Utils/RewindableInput/Tempfile.html
|
461
|
-
- doc/rdoc/files/lib/phusion_passenger/admin_tools/control_process_rb.html
|
462
|
-
- doc/rdoc/files/lib/phusion_passenger/rack/application_spawner_rb.html
|
463
|
-
- doc/rdoc/files/lib/phusion_passenger/rack/request_handler_rb.html
|
464
|
-
- doc/rdoc/files/lib/phusion_passenger/railz/application_spawner_rb.html
|
465
|
-
- doc/rdoc/files/lib/phusion_passenger/railz/cgi_fixed_rb.html
|
466
|
-
- doc/rdoc/files/lib/phusion_passenger/railz/framework_spawner_rb.html
|
467
|
-
- doc/rdoc/files/lib/phusion_passenger/railz/request_handler_rb.html
|
468
|
-
- doc/rdoc/files/lib/phusion_passenger/utils/rewindable_input_rb.html
|
469
|
-
- doc/rdoc/files/lib/phusion_passenger/wsgi/application_spawner_rb.html
|
470
530
|
- man/passenger-config.1
|
471
531
|
- man/passenger-make-enterprisey.8
|
472
532
|
- man/passenger-memory-stats.8
|