passenger 2.1.3 → 2.2.0
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 +2 -0
- data/INSTALL +3 -1
- data/LICENSE +19 -355
- data/NEWS +3 -0
- data/README +11 -4
- data/Rakefile +435 -236
- data/bin/passenger-config +20 -14
- data/bin/passenger-install-apache2-module +67 -201
- data/bin/passenger-install-nginx-module +477 -0
- data/bin/passenger-make-enterprisey +17 -12
- data/bin/passenger-memory-stats +33 -23
- data/bin/passenger-spawn-server +17 -12
- data/bin/passenger-status +18 -13
- data/bin/passenger-stress-test +17 -12
- data/doc/{Users guide.html → Users guide Apache.html } +79 -61
- data/doc/{Users guide.txt → Users guide Apache.txt } +43 -939
- data/doc/Users guide Nginx.html +2276 -0
- data/doc/Users guide Nginx.txt +776 -0
- data/doc/cxxapi/ApplicationPoolServer_8h-source.html +9 -4
- data/doc/cxxapi/ApplicationPool_8h-source.html +9 -4
- data/doc/cxxapi/Application_8h-source.html +26 -21
- data/doc/cxxapi/Bucket_8h-source.html +54 -44
- data/doc/cxxapi/CachedFileStat_8h-source.html +9 -4
- data/doc/cxxapi/Configuration_8h-source.html +357 -339
- data/doc/cxxapi/DirectoryMapper_8h-source.html +294 -280
- data/doc/cxxapi/DummySpawnManager_8h-source.html +9 -4
- data/doc/cxxapi/Exceptions_8h-source.html +9 -4
- data/doc/cxxapi/FileChecker_8h-source.html +9 -4
- data/doc/cxxapi/Hooks_8h-source.html +50 -40
- data/doc/cxxapi/Logging_8h-source.html +9 -4
- data/doc/cxxapi/MessageChannel_8h-source.html +20 -15
- data/doc/cxxapi/PoolOptions_8h-source.html +10 -5
- data/doc/cxxapi/SpawnManager_8h-source.html +9 -4
- data/doc/cxxapi/StandardApplicationPool_8h-source.html +10 -5
- data/doc/cxxapi/SystemTime_8h-source.html +9 -4
- data/doc/cxxapi/Utils_8h-source.html +242 -214
- data/doc/cxxapi/annotated.html +4 -28
- data/doc/cxxapi/classClient-members.html +4 -4
- data/doc/cxxapi/classClient.html +14 -11
- data/doc/cxxapi/classHooks-members.html +4 -5
- data/doc/cxxapi/classHooks.html +26 -24
- data/doc/cxxapi/classPassenger_1_1Application-members.html +4 -4
- data/doc/cxxapi/classPassenger_1_1Application.html +40 -37
- data/doc/cxxapi/classPassenger_1_1ApplicationPool-members.html +4 -4
- data/doc/cxxapi/classPassenger_1_1ApplicationPool.html +95 -92
- data/doc/cxxapi/classPassenger_1_1ApplicationPoolServer-members.html +4 -4
- data/doc/cxxapi/classPassenger_1_1ApplicationPoolServer.html +26 -23
- data/doc/cxxapi/classPassenger_1_1ApplicationPool__inherit__graph.map +1 -1
- data/doc/cxxapi/classPassenger_1_1ApplicationPool__inherit__graph.md5 +1 -1
- data/doc/cxxapi/classPassenger_1_1ApplicationPool__inherit__graph.png +0 -0
- data/doc/cxxapi/classPassenger_1_1Application_1_1Session-members.html +17 -17
- data/doc/cxxapi/classPassenger_1_1Application_1_1Session.html +139 -136
- data/doc/cxxapi/classPassenger_1_1BufferedUpload-members.html +4 -4
- data/doc/cxxapi/classPassenger_1_1BufferedUpload.html +13 -10
- data/doc/cxxapi/classPassenger_1_1BusyException-members.html +4 -4
- data/doc/cxxapi/classPassenger_1_1BusyException.html +11 -8
- data/doc/cxxapi/classPassenger_1_1ConfigurationException-members.html +4 -4
- data/doc/cxxapi/classPassenger_1_1ConfigurationException.html +11 -8
- data/doc/cxxapi/classPassenger_1_1DirectoryMapper-members.html +4 -5
- data/doc/cxxapi/classPassenger_1_1DirectoryMapper.html +45 -43
- data/doc/cxxapi/classPassenger_1_1DummySpawnManager-members.html +4 -4
- data/doc/cxxapi/classPassenger_1_1DummySpawnManager.html +13 -10
- data/doc/cxxapi/classPassenger_1_1FileChecker-members.html +4 -4
- data/doc/cxxapi/classPassenger_1_1FileChecker.html +22 -19
- data/doc/cxxapi/classPassenger_1_1FileNotFoundException-members.html +4 -4
- data/doc/cxxapi/classPassenger_1_1FileNotFoundException.html +12 -9
- data/doc/cxxapi/classPassenger_1_1FileNotFoundException__inherit__graph.map +1 -1
- data/doc/cxxapi/classPassenger_1_1FileNotFoundException__inherit__graph.md5 +1 -1
- data/doc/cxxapi/classPassenger_1_1FileNotFoundException__inherit__graph.png +0 -0
- data/doc/cxxapi/classPassenger_1_1FileSystemException-members.html +4 -4
- data/doc/cxxapi/classPassenger_1_1FileSystemException.html +14 -11
- data/doc/cxxapi/classPassenger_1_1FileSystemException__inherit__graph.map +1 -1
- data/doc/cxxapi/classPassenger_1_1FileSystemException__inherit__graph.md5 +1 -1
- data/doc/cxxapi/classPassenger_1_1FileSystemException__inherit__graph.png +0 -0
- data/doc/cxxapi/classPassenger_1_1IOException-members.html +4 -4
- data/doc/cxxapi/classPassenger_1_1IOException.html +12 -9
- data/doc/cxxapi/classPassenger_1_1IOException__inherit__graph.map +1 -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_1MessageChannel-members.html +4 -4
- data/doc/cxxapi/classPassenger_1_1MessageChannel.html +228 -225
- data/doc/cxxapi/classPassenger_1_1RuntimeException-members.html +4 -4
- data/doc/cxxapi/classPassenger_1_1RuntimeException.html +11 -8
- data/doc/cxxapi/classPassenger_1_1SpawnException-members.html +4 -4
- data/doc/cxxapi/classPassenger_1_1SpawnException.html +14 -11
- data/doc/cxxapi/classPassenger_1_1SpawnManager-members.html +4 -4
- data/doc/cxxapi/classPassenger_1_1SpawnManager.html +50 -47
- data/doc/cxxapi/classPassenger_1_1StandardApplicationPool-members.html +4 -4
- data/doc/cxxapi/classPassenger_1_1StandardApplicationPool.html +73 -70
- data/doc/cxxapi/classPassenger_1_1StandardApplicationPool__inherit__graph.map +1 -1
- data/doc/cxxapi/classPassenger_1_1StandardApplicationPool__inherit__graph.md5 +1 -1
- data/doc/cxxapi/classPassenger_1_1StandardApplicationPool__inherit__graph.png +0 -0
- data/doc/cxxapi/classPassenger_1_1SystemException-members.html +4 -4
- data/doc/cxxapi/classPassenger_1_1SystemException.html +17 -14
- data/doc/cxxapi/classPassenger_1_1SystemException__inherit__graph.map +1 -1
- 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 +4 -4
- data/doc/cxxapi/classPassenger_1_1SystemTime.html +14 -11
- data/doc/cxxapi/classes.html +35 -0
- data/doc/cxxapi/definitions_8h-source.html +9 -4
- data/doc/cxxapi/doxygen.css +311 -303
- data/doc/cxxapi/files.html +9 -18
- data/doc/cxxapi/functions.html +5 -224
- data/doc/cxxapi/functions_func.html +5 -185
- data/doc/cxxapi/functions_type.html +4 -4
- data/doc/cxxapi/functions_vars.html +4 -4
- data/doc/cxxapi/graph_legend.dot +19 -19
- data/doc/cxxapi/graph_legend.html +5 -5
- data/doc/cxxapi/graph_legend.png +0 -0
- data/doc/cxxapi/group__Configuration.html +11 -13
- data/doc/cxxapi/group__Configuration.png +0 -0
- data/doc/cxxapi/group__Core.html +10 -12
- data/doc/cxxapi/group__Core.png +0 -0
- data/doc/cxxapi/group__Exceptions.html +5 -7
- data/doc/cxxapi/group__Hooks.html +5 -7
- data/doc/cxxapi/group__Hooks.png +0 -0
- data/doc/cxxapi/group__Support.html +5 -624
- data/doc/cxxapi/hierarchy.html +6 -6
- 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 -2
- 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 +2 -1
- data/doc/cxxapi/inherit__graph__14.md5 +1 -1
- data/doc/cxxapi/inherit__graph__14.png +0 -0
- data/doc/cxxapi/inherit__graph__15.map +1 -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 +1 -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 +2 -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__3.map +1 -1
- data/doc/cxxapi/inherit__graph__3.md5 +1 -1
- data/doc/cxxapi/inherit__graph__3.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 -2
- 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 +2 -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 +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 +41 -41
- data/doc/cxxapi/main.html +4 -4
- data/doc/cxxapi/modules.html +4 -5
- data/doc/cxxapi/structPassenger_1_1AnythingToString-members.html +4 -4
- data/doc/cxxapi/structPassenger_1_1AnythingToString.html +13 -10
- data/doc/cxxapi/structPassenger_1_1AnythingToString_3_01vector_3_01string_01_4_01_4-members.html +5 -5
- data/doc/cxxapi/structPassenger_1_1AnythingToString_3_01vector_3_01string_01_4_01_4.html +16 -13
- data/doc/cxxapi/structPassenger_1_1PoolOptions-members.html +4 -4
- data/doc/cxxapi/structPassenger_1_1PoolOptions.html +63 -60
- data/doc/cxxapi/tabs.css +5 -2
- data/doc/cxxapi/tree.html +7 -81
- data/doc/rdoc/classes/ConditionVariable.html +59 -59
- data/doc/rdoc/classes/Exception.html +11 -11
- data/doc/rdoc/classes/GC.html +4 -4
- data/doc/rdoc/classes/IO.html +14 -14
- data/doc/rdoc/classes/PhusionPassenger.html +75 -20
- data/doc/rdoc/classes/PhusionPassenger/AbstractInstaller.html +153 -0
- data/doc/rdoc/classes/PhusionPassenger/AbstractRequestHandler.html +125 -130
- data/doc/rdoc/classes/PhusionPassenger/AbstractServer.html +236 -236
- data/doc/rdoc/classes/PhusionPassenger/AbstractServerCollection.html +213 -213
- data/doc/rdoc/classes/PhusionPassenger/AdminTools.html +28 -28
- data/doc/rdoc/classes/PhusionPassenger/AdminTools/ControlProcess.html +91 -75
- data/doc/rdoc/classes/PhusionPassenger/AppInitError.html +10 -10
- data/doc/rdoc/classes/PhusionPassenger/Application.html +64 -64
- data/doc/rdoc/classes/PhusionPassenger/ConsoleTextTemplate.html +34 -34
- data/doc/rdoc/classes/PhusionPassenger/FrameworkInitError.html +13 -13
- data/doc/rdoc/classes/PhusionPassenger/HTMLTemplate.html +30 -30
- data/doc/rdoc/classes/PhusionPassenger/InitializationError.html +10 -10
- data/doc/rdoc/classes/PhusionPassenger/MessageChannel.html +136 -136
- data/doc/rdoc/classes/PhusionPassenger/NativeSupport.html +24 -24
- data/doc/rdoc/classes/PhusionPassenger/Rack/ApplicationSpawner.html +42 -42
- data/doc/rdoc/classes/PhusionPassenger/Rack/RequestHandler.html +55 -53
- data/doc/rdoc/classes/PhusionPassenger/Railz.html +1 -1
- data/doc/rdoc/classes/PhusionPassenger/Railz/ApplicationSpawner.html +25 -30
- data/doc/rdoc/classes/PhusionPassenger/Railz/CGIFixed.html +23 -23
- data/doc/rdoc/classes/PhusionPassenger/Railz/FrameworkSpawner.html +116 -117
- data/doc/rdoc/classes/PhusionPassenger/Railz/RequestHandler.html +22 -22
- data/doc/rdoc/classes/PhusionPassenger/SpawnManager.html +118 -124
- data/doc/rdoc/classes/PhusionPassenger/UnknownError.html +10 -10
- data/doc/rdoc/classes/PhusionPassenger/Utils.html +354 -354
- data/doc/rdoc/classes/PhusionPassenger/VersionNotFound.html +9 -9
- data/doc/rdoc/classes/PhusionPassenger/WSGI/ApplicationSpawner.html +37 -37
- data/doc/rdoc/classes/PlatformInfo.html +282 -261
- data/doc/rdoc/classes/RakeExtensions.html +7 -7
- data/doc/rdoc/classes/Signal.html +26 -26
- data/doc/rdoc/created.rid +1 -1
- data/doc/rdoc/files/DEVELOPERS_TXT.html +6 -1
- data/doc/rdoc/files/README.html +15 -6
- data/doc/rdoc/files/ext/phusion_passenger/native_support_c.html +1 -1
- data/doc/rdoc/files/lib/phusion_passenger/abstract_installer_rb.html +129 -0
- data/doc/rdoc/files/lib/phusion_passenger/abstract_request_handler_rb.html +20 -13
- data/doc/rdoc/files/lib/phusion_passenger/abstract_server_collection_rb.html +19 -13
- data/doc/rdoc/files/lib/phusion_passenger/abstract_server_rb.html +19 -13
- data/doc/rdoc/files/lib/phusion_passenger/admin_tools/control_process_rb.html +31 -1
- data/doc/rdoc/files/lib/phusion_passenger/admin_tools_rb.html +31 -1
- data/doc/rdoc/files/lib/phusion_passenger/application_rb.html +19 -13
- data/doc/rdoc/files/lib/phusion_passenger/console_text_template_rb.html +19 -13
- data/doc/rdoc/files/lib/phusion_passenger/constants_rb.html +21 -12
- data/doc/rdoc/files/lib/phusion_passenger/dependencies_rb.html +19 -13
- data/doc/rdoc/files/lib/phusion_passenger/events_rb.html +19 -13
- data/doc/rdoc/files/lib/phusion_passenger/exceptions_rb.html +19 -13
- data/doc/rdoc/files/lib/phusion_passenger/html_template_rb.html +19 -13
- data/doc/rdoc/files/lib/phusion_passenger/message_channel_rb.html +19 -13
- data/doc/rdoc/files/lib/phusion_passenger/packaging_rb.html +122 -0
- data/doc/rdoc/files/lib/phusion_passenger/platform_info_rb.html +19 -13
- data/doc/rdoc/files/lib/phusion_passenger/rack/application_spawner_rb.html +22 -12
- data/doc/rdoc/files/lib/phusion_passenger/rack/request_handler_rb.html +21 -12
- data/doc/rdoc/files/lib/phusion_passenger/railz/application_spawner_rb.html +19 -13
- data/doc/rdoc/files/lib/phusion_passenger/railz/cgi_fixed_rb.html +1 -1
- data/doc/rdoc/files/lib/phusion_passenger/railz/framework_spawner_rb.html +19 -13
- data/doc/rdoc/files/lib/phusion_passenger/railz/request_handler_rb.html +21 -12
- data/doc/rdoc/files/lib/phusion_passenger/simple_benchmarking_rb.html +19 -13
- data/doc/rdoc/files/lib/phusion_passenger/spawn_manager_rb.html +19 -13
- data/doc/rdoc/files/lib/phusion_passenger/utils_rb.html +27 -21
- data/doc/rdoc/files/lib/phusion_passenger/wsgi/application_spawner_rb.html +21 -12
- data/doc/rdoc/files/misc/rake/extensions_rb.html +21 -12
- data/doc/rdoc/fr_class_index.html +1 -0
- data/doc/rdoc/fr_file_index.html +2 -0
- data/doc/rdoc/fr_method_index.html +116 -112
- data/doc/users_guide_snippets/analysis_and_system_maintenance_tools.txt +144 -0
- data/doc/users_guide_snippets/appendix_a_about.txt +13 -0
- data/doc/users_guide_snippets/appendix_b_terminology.txt +63 -0
- data/doc/users_guide_snippets/appendix_c_spawning_methods.txt +304 -0
- data/doc/users_guide_snippets/global_queueing_explained.txt +78 -0
- data/doc/users_guide_snippets/rackup_specifications.txt +75 -0
- data/doc/users_guide_snippets/rails_spawn_method.txt +48 -0
- data/doc/users_guide_snippets/tips.txt +173 -0
- data/ext/apache2/Bucket.cpp +17 -12
- data/ext/apache2/Bucket.h +17 -12
- data/ext/apache2/Configuration.cpp +17 -12
- data/ext/apache2/Configuration.h +27 -14
- data/ext/apache2/DirectoryMapper.h +21 -12
- data/ext/apache2/Hooks.cpp +67 -21
- data/ext/apache2/Hooks.h +17 -12
- data/ext/apache2/mod_passenger.c +17 -12
- data/ext/{apache2 → common}/Application.h +19 -14
- data/ext/{apache2 → common}/ApplicationPool.h +17 -12
- data/ext/{apache2 → common}/ApplicationPoolServer.h +18 -72
- data/ext/{apache2 → common}/ApplicationPoolServerExecutable.cpp +45 -104
- data/ext/common/ApplicationPoolStatusReporter.h +212 -0
- data/ext/{apache2 → common}/CachedFileStat.cpp +17 -12
- data/ext/{apache2 → common}/CachedFileStat.h +17 -12
- data/ext/{apache2 → common}/DummySpawnManager.h +17 -12
- data/ext/{apache2 → common}/Exceptions.h +17 -12
- data/ext/{apache2 → common}/FileChecker.h +17 -12
- data/ext/common/Logging.cpp +65 -0
- data/ext/{apache2 → common}/Logging.h +17 -12
- data/ext/{apache2 → common}/MessageChannel.h +17 -12
- data/ext/{apache2 → common}/PoolOptions.h +17 -12
- data/ext/{apache2 → common}/SpawnManager.h +17 -12
- data/ext/{apache2 → common}/StandardApplicationPool.h +17 -12
- data/ext/common/StaticString.h +147 -0
- data/ext/common/SystemTime.cpp +33 -0
- data/ext/{apache2 → common}/SystemTime.h +17 -12
- data/ext/{apache2 → common}/Utils.cpp +69 -12
- data/ext/{apache2 → common}/Utils.h +41 -12
- data/ext/nginx/Configuration.c +1091 -0
- data/ext/nginx/Configuration.h +71 -0
- data/ext/nginx/ContentHandler.c +1154 -0
- data/ext/nginx/ContentHandler.h +64 -0
- data/ext/nginx/HelperServer.cpp +857 -0
- data/ext/nginx/HttpStatusExtractor.h +161 -0
- data/ext/nginx/ScgiRequestParser.h +317 -0
- data/ext/nginx/StaticContentHandler.c +222 -0
- data/ext/nginx/StaticContentHandler.h +37 -0
- data/ext/nginx/config +41 -0
- data/ext/nginx/ngx_http_passenger_module.c +572 -0
- data/ext/nginx/ngx_http_passenger_module.h +72 -0
- data/ext/oxt/backtrace.cpp +8 -1
- data/ext/oxt/system_calls.cpp +40 -0
- data/ext/oxt/system_calls.hpp +14 -7
- data/ext/phusion_passenger/extconf.rb +17 -12
- data/ext/phusion_passenger/native_support.c +19 -12
- data/lib/phusion_passenger/abstract_installer.rb +196 -0
- data/lib/phusion_passenger/abstract_request_handler.rb +19 -24
- data/lib/phusion_passenger/abstract_server.rb +17 -12
- data/lib/phusion_passenger/abstract_server_collection.rb +17 -12
- data/lib/phusion_passenger/admin_tools.rb +23 -0
- data/lib/phusion_passenger/admin_tools/control_process.rb +39 -13
- data/lib/phusion_passenger/application.rb +17 -12
- data/lib/phusion_passenger/console_text_template.rb +17 -12
- data/lib/phusion_passenger/constants.rb +22 -11
- data/lib/phusion_passenger/dependencies.rb +47 -12
- data/lib/phusion_passenger/events.rb +17 -12
- data/lib/phusion_passenger/exceptions.rb +17 -12
- data/lib/phusion_passenger/html_template.rb +17 -12
- data/lib/phusion_passenger/message_channel.rb +17 -12
- data/lib/phusion_passenger/packaging.rb +39 -0
- data/lib/phusion_passenger/platform_info.rb +48 -22
- data/lib/phusion_passenger/rack/application_spawner.rb +22 -11
- data/lib/phusion_passenger/rack/request_handler.rb +21 -12
- data/lib/phusion_passenger/railz/application_spawner.rb +23 -23
- data/lib/phusion_passenger/railz/framework_spawner.rb +18 -14
- data/lib/phusion_passenger/railz/request_handler.rb +18 -11
- data/lib/phusion_passenger/simple_benchmarking.rb +17 -12
- data/lib/phusion_passenger/spawn_manager.rb +17 -20
- data/lib/phusion_passenger/templates/{apache_must_be_compiled_with_compatible_mpm.txt.erb → apache2/apache_must_be_compiled_with_compatible_mpm.txt.erb} +0 -0
- data/lib/phusion_passenger/templates/{apache2_config_snippets.txt.erb → apache2/config_snippets.txt.erb} +0 -0
- data/lib/phusion_passenger/templates/{deployment_example.txt.erb → apache2/deployment_example.txt.erb} +0 -0
- data/lib/phusion_passenger/templates/{no_write_permission_to_passenger_root.txt.erb → apache2/no_write_permission_to_passenger_root.txt.erb} +0 -0
- data/lib/phusion_passenger/templates/{possible_solutions_for_compilation_and_installation_problems.txt.erb → apache2/possible_solutions_for_compilation_and_installation_problems.txt.erb} +0 -0
- data/lib/phusion_passenger/templates/{run_installer_as_root.txt.erb → apache2/run_installer_as_root.txt.erb} +0 -0
- data/lib/phusion_passenger/templates/{welcome.txt.erb → apache2/welcome.txt.erb} +0 -0
- data/lib/phusion_passenger/templates/nginx/ask_for_extra_configure_flags.txt.erb +8 -0
- data/lib/phusion_passenger/templates/nginx/cannot_write_to_dir.txt.erb +11 -0
- data/lib/phusion_passenger/templates/nginx/config_snippets.txt.erb +17 -0
- data/lib/phusion_passenger/templates/nginx/config_snippets_inserted.txt.erb +20 -0
- data/lib/phusion_passenger/templates/nginx/confirm_extra_configure_flags.txt.erb +5 -0
- data/lib/phusion_passenger/templates/nginx/deployment_example.txt.erb +22 -0
- data/lib/phusion_passenger/templates/nginx/pcre_could_not_be_downloaded.txt.erb +11 -0
- data/lib/phusion_passenger/templates/nginx/pcre_could_not_be_extracted.txt.erb +11 -0
- data/lib/phusion_passenger/templates/nginx/possible_solutions_for_compilation_and_installation_problems.txt.erb +11 -0
- data/lib/phusion_passenger/templates/nginx/possible_solutions_for_download_and_extraction_problems.txt.erb +20 -0
- data/lib/phusion_passenger/templates/nginx/query_download_and_install.txt.erb +21 -0
- data/lib/phusion_passenger/templates/nginx/run_installer_as_root.txt.erb +8 -0
- data/lib/phusion_passenger/templates/nginx/welcome.txt.erb +15 -0
- data/lib/phusion_passenger/utils.rb +20 -15
- data/lib/phusion_passenger/wsgi/application_spawner.rb +18 -11
- data/lib/phusion_passenger/wsgi/request_handler.py +23 -0
- data/misc/copy_boost_headers.rb +23 -0
- data/misc/find_owner_pipe_leaks.rb +18 -11
- data/misc/rake/cplusplus.rb +18 -11
- data/misc/rake/extensions.rb +21 -14
- data/misc/render_error_pages.rb +18 -11
- data/test/ApplicationPoolServerTest.cpp +1 -3
- data/test/ApplicationPoolServer_ApplicationPoolTest.cpp +1 -1
- data/test/CxxTestMain.cpp +19 -3
- data/test/HttpStatusExtractorTest.cpp +181 -0
- data/test/ScgiRequestParserTest.cpp +337 -0
- data/test/StaticStringTest.cpp +51 -0
- data/test/UtilsTest.cpp +32 -0
- data/test/config.yml.example +5 -0
- data/test/{integration_tests.rb → integration_tests/apache2_tests.rb} +7 -299
- data/test/integration_tests/hello_world_rack_spec.rb +36 -0
- data/test/integration_tests/hello_world_wsgi_spec.rb +41 -0
- data/test/integration_tests/mycook_spec.rb +192 -0
- data/test/integration_tests/nginx_tests.rb +98 -0
- data/test/ruby/rack/application_spawner_spec.rb +40 -0
- data/test/stub/nginx/koi-utf +109 -0
- data/test/stub/nginx/koi-win +103 -0
- data/test/stub/nginx/mime.types +70 -0
- data/test/stub/nginx/nginx.conf.erb +57 -0
- data/test/stub/nginx/win-utf +126 -0
- data/test/stub/rails_apps/mycook/app/controllers/uploads_controller.rb +4 -0
- data/test/stub/rails_apps/mycook/config/routes.rb +1 -1
- data/test/stub/wsgi/passenger_wsgi.pyc +0 -0
- data/test/support/Support.h +40 -0
- data/test/support/nginx_controller.rb +98 -0
- data/test/support/test_helper.rb +79 -0
- metadata +1091 -1028
- data/benchmark/DummyRequestHandler.cpp +0 -101
- data/ext/apache2/Logging.cpp +0 -60
- data/ext/apache2/SystemTime.cpp +0 -28
@@ -1,10 +1,10 @@
|
|
1
1
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
2
2
|
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
3
3
|
<title>Passenger: ApplicationPoolServer.h Source File</title>
|
4
|
-
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
5
4
|
<link href="tabs.css" rel="stylesheet" type="text/css">
|
5
|
+
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
6
6
|
</head><body>
|
7
|
-
<!-- Generated by Doxygen 1.5.
|
7
|
+
<!-- Generated by Doxygen 1.5.8 -->
|
8
8
|
<div class="navigation" id="top">
|
9
9
|
<div class="tabs">
|
10
10
|
<ul>
|
@@ -14,6 +14,11 @@
|
|
14
14
|
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
15
15
|
</ul>
|
16
16
|
</div>
|
17
|
+
<div class="tabs">
|
18
|
+
<ul>
|
19
|
+
<li><a href="files.html"><span>File List</span></a></li>
|
20
|
+
</ul>
|
21
|
+
</div>
|
17
22
|
<h1>ApplicationPoolServer.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
|
18
23
|
<a name="l00002"></a>00002 <span class="comment"> * Phusion Passenger - http://www.modrails.com/</span>
|
19
24
|
<a name="l00003"></a>00003 <span class="comment"> * Copyright (C) 2008 Phusion</span>
|
@@ -821,8 +826,8 @@
|
|
821
826
|
<a name="l00805"></a>00805
|
822
827
|
<a name="l00806"></a>00806 <span class="preprocessor">#endif </span><span class="comment">/* _PASSENGER_APPLICATION_POOL_SERVER_H_ */</span>
|
823
828
|
</pre></div></div>
|
824
|
-
<hr size="1"><address style="text-align: right;"><small>Generated on
|
829
|
+
<hr size="1"><address style="text-align: right;"><small>Generated on Wed Apr 8 22:35:10 2009 for Passenger by
|
825
830
|
<a href="http://www.doxygen.org/index.html">
|
826
|
-
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.
|
831
|
+
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
|
827
832
|
</body>
|
828
833
|
</html>
|
@@ -1,10 +1,10 @@
|
|
1
1
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
2
2
|
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
3
3
|
<title>Passenger: ApplicationPool.h Source File</title>
|
4
|
-
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
5
4
|
<link href="tabs.css" rel="stylesheet" type="text/css">
|
5
|
+
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
6
6
|
</head><body>
|
7
|
-
<!-- Generated by Doxygen 1.5.
|
7
|
+
<!-- Generated by Doxygen 1.5.8 -->
|
8
8
|
<div class="navigation" id="top">
|
9
9
|
<div class="tabs">
|
10
10
|
<ul>
|
@@ -14,6 +14,11 @@
|
|
14
14
|
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
15
15
|
</ul>
|
16
16
|
</div>
|
17
|
+
<div class="tabs">
|
18
|
+
<ul>
|
19
|
+
<li><a href="files.html"><span>File List</span></a></li>
|
20
|
+
</ul>
|
21
|
+
</div>
|
17
22
|
<h1>ApplicationPool.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
|
18
23
|
<a name="l00002"></a>00002 <span class="comment"> * Phusion Passenger - http://www.modrails.com/</span>
|
19
24
|
<a name="l00003"></a>00003 <span class="comment"> * Copyright (C) 2008 Phusion</span>
|
@@ -214,8 +219,8 @@
|
|
214
219
|
<a name="l00198"></a>00198
|
215
220
|
<a name="l00199"></a>00199 <span class="preprocessor">#endif </span><span class="comment">/* _PASSENGER_APPLICATION_POOL_H_ */</span>
|
216
221
|
</pre></div></div>
|
217
|
-
<hr size="1"><address style="text-align: right;"><small>Generated on
|
222
|
+
<hr size="1"><address style="text-align: right;"><small>Generated on Wed Apr 8 22:35:10 2009 for Passenger by
|
218
223
|
<a href="http://www.doxygen.org/index.html">
|
219
|
-
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.
|
224
|
+
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
|
220
225
|
</body>
|
221
226
|
</html>
|
@@ -1,10 +1,10 @@
|
|
1
1
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
2
2
|
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
3
3
|
<title>Passenger: Application.h Source File</title>
|
4
|
-
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
5
4
|
<link href="tabs.css" rel="stylesheet" type="text/css">
|
5
|
+
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
6
6
|
</head><body>
|
7
|
-
<!-- Generated by Doxygen 1.5.
|
7
|
+
<!-- Generated by Doxygen 1.5.8 -->
|
8
8
|
<div class="navigation" id="top">
|
9
9
|
<div class="tabs">
|
10
10
|
<ul>
|
@@ -14,6 +14,11 @@
|
|
14
14
|
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
15
15
|
</ul>
|
16
16
|
</div>
|
17
|
+
<div class="tabs">
|
18
|
+
<ul>
|
19
|
+
<li><a href="files.html"><span>File List</span></a></li>
|
20
|
+
</ul>
|
21
|
+
</div>
|
17
22
|
<h1>Application.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
|
18
23
|
<a name="l00002"></a>00002 <span class="comment"> * Phusion Passenger - http://www.modrails.com/</span>
|
19
24
|
<a name="l00003"></a>00003 <span class="comment"> * Copyright (C) 2008 Phusion</span>
|
@@ -99,7 +104,7 @@
|
|
99
104
|
<a name="l00083"></a>00083 <span class="comment"> /**</span>
|
100
105
|
<a name="l00084"></a>00084 <span class="comment"> * Implementing classes might throw arbitrary exceptions.</span>
|
101
106
|
<a name="l00085"></a>00085 <span class="comment"> */</span>
|
102
|
-
<a name="l00086"></a><a class="code" href="classPassenger_1_1Application_1_1Session.html#
|
107
|
+
<a name="l00086"></a><a class="code" href="classPassenger_1_1Application_1_1Session.html#a1659ee23386eec51cf1d297897e8e9f">00086</a> <span class="keyword">virtual</span> <a class="code" href="classPassenger_1_1Application_1_1Session.html#a1659ee23386eec51cf1d297897e8e9f" title="Implementing classes might throw arbitrary exceptions.">~Session</a>() {}
|
103
108
|
<a name="l00087"></a>00087 <span class="comment"></span>
|
104
109
|
<a name="l00088"></a>00088 <span class="comment"> /**</span>
|
105
110
|
<a name="l00089"></a>00089 <span class="comment"> * Send HTTP request headers to the application. The HTTP headers must be</span>
|
@@ -125,9 +130,9 @@
|
|
125
130
|
<a name="l00109"></a>00109 <span class="comment"> * @throws SystemException Something went wrong during writing.</span>
|
126
131
|
<a name="l00110"></a>00110 <span class="comment"> * @throws boost::thread_interrupted</span>
|
127
132
|
<a name="l00111"></a>00111 <span class="comment"> */</span>
|
128
|
-
<a name="l00112"></a><a class="code" href="classPassenger_1_1Application_1_1Session.html#
|
133
|
+
<a name="l00112"></a><a class="code" href="classPassenger_1_1Application_1_1Session.html#fc3ecd1067d5bdb0e514c366de7bdcc9">00112</a> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classPassenger_1_1Application_1_1Session.html#fc3ecd1067d5bdb0e514c366de7bdcc9" title="Send HTTP request headers to the application.">sendHeaders</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *headers, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> size) {
|
129
134
|
<a name="l00113"></a>00113 TRACE_POINT();
|
130
|
-
<a name="l00114"></a>00114 <span class="keywordtype">int</span> stream = <a class="code" href="classPassenger_1_1Application_1_1Session.html#
|
135
|
+
<a name="l00114"></a>00114 <span class="keywordtype">int</span> stream = <a class="code" href="classPassenger_1_1Application_1_1Session.html#fc8050e44db34aee17bc79520ba3c7dd" title="Get the I/O stream&#39;s file descriptor.">getStream</a>();
|
131
136
|
<a name="l00115"></a>00115 <span class="keywordflow">if</span> (stream == -1) {
|
132
137
|
<a name="l00116"></a>00116 <span class="keywordflow">throw</span> <a class="code" href="classPassenger_1_1IOException.html" title="Represents an error that occured during an I/O operation.">IOException</a>(<span class="stringliteral">"Cannot write headers to the request handler "</span>
|
133
138
|
<a name="l00117"></a>00117 <span class="stringliteral">"because the writer stream has already been closed."</span>);
|
@@ -148,8 +153,8 @@
|
|
148
153
|
<a name="l00132"></a>00132 <span class="comment"> * @throws SystemException Something went wrong during writing.</span>
|
149
154
|
<a name="l00133"></a>00133 <span class="comment"> * @throws boost::thread_interrupted</span>
|
150
155
|
<a name="l00134"></a>00134 <span class="comment"> */</span>
|
151
|
-
<a name="l00135"></a><a class="code" href="classPassenger_1_1Application_1_1Session.html#
|
152
|
-
<a name="l00136"></a>00136 <a class="code" href="classPassenger_1_1Application_1_1Session.html#
|
156
|
+
<a name="l00135"></a><a class="code" href="classPassenger_1_1Application_1_1Session.html#5ad6f1c3bca11a1083d53e2aff9f81d9">00135</a> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classPassenger_1_1Application_1_1Session.html#5ad6f1c3bca11a1083d53e2aff9f81d9" title="Convenience shortcut for sendHeaders(const char *, unsigned int).">sendHeaders</a>(<span class="keyword">const</span> <span class="keywordtype">string</span> &headers) {
|
157
|
+
<a name="l00136"></a>00136 <a class="code" href="classPassenger_1_1Application_1_1Session.html#fc3ecd1067d5bdb0e514c366de7bdcc9" title="Send HTTP request headers to the application.">sendHeaders</a>(headers.c_str(), headers.size());
|
153
158
|
<a name="l00137"></a>00137 }
|
154
159
|
<a name="l00138"></a>00138 <span class="comment"></span>
|
155
160
|
<a name="l00139"></a>00139 <span class="comment"> /**</span>
|
@@ -166,9 +171,9 @@
|
|
166
171
|
<a name="l00150"></a>00150 <span class="comment"> * @throws SystemException Something went wrong during writing.</span>
|
167
172
|
<a name="l00151"></a>00151 <span class="comment"> * @throws boost::thread_interrupted</span>
|
168
173
|
<a name="l00152"></a>00152 <span class="comment"> */</span>
|
169
|
-
<a name="l00153"></a><a class="code" href="classPassenger_1_1Application_1_1Session.html#
|
174
|
+
<a name="l00153"></a><a class="code" href="classPassenger_1_1Application_1_1Session.html#012b2ee56c8b514f800c1ce3cee8c11b">00153</a> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classPassenger_1_1Application_1_1Session.html#012b2ee56c8b514f800c1ce3cee8c11b" title="Send a chunk of HTTP request body data to the application.">sendBodyBlock</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *block, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> size) {
|
170
175
|
<a name="l00154"></a>00154 TRACE_POINT();
|
171
|
-
<a name="l00155"></a>00155 <span class="keywordtype">int</span> stream = <a class="code" href="classPassenger_1_1Application_1_1Session.html#
|
176
|
+
<a name="l00155"></a>00155 <span class="keywordtype">int</span> stream = <a class="code" href="classPassenger_1_1Application_1_1Session.html#fc8050e44db34aee17bc79520ba3c7dd" title="Get the I/O stream&#39;s file descriptor.">getStream</a>();
|
172
177
|
<a name="l00156"></a>00156 <span class="keywordflow">if</span> (stream == -1) {
|
173
178
|
<a name="l00157"></a>00157 <span class="keywordflow">throw</span> <a class="code" href="classPassenger_1_1IOException.html" title="Represents an error that occured during an I/O operation.">IOException</a>(<span class="stringliteral">"Cannot write request body block to the "</span>
|
174
179
|
<a name="l00158"></a>00158 <span class="stringliteral">"request handler because the writer stream has "</span>
|
@@ -190,7 +195,7 @@
|
|
190
195
|
<a name="l00174"></a>00174 <span class="comment"> *</span>
|
191
196
|
<a name="l00175"></a>00175 <span class="comment"> * @pre The stream has not been fully closed.</span>
|
192
197
|
<a name="l00176"></a>00176 <span class="comment"> */</span>
|
193
|
-
<a name="l00177"></a>00177 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classPassenger_1_1Application_1_1Session.html#
|
198
|
+
<a name="l00177"></a>00177 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classPassenger_1_1Application_1_1Session.html#fc8050e44db34aee17bc79520ba3c7dd" title="Get the I/O stream&#39;s file descriptor.">getStream</a>() <span class="keyword">const</span> = 0;
|
194
199
|
<a name="l00178"></a>00178 <span class="comment"></span>
|
195
200
|
<a name="l00179"></a>00179 <span class="comment"> /**</span>
|
196
201
|
<a name="l00180"></a>00180 <span class="comment"> * Set the timeout value for reading data from the I/O stream.</span>
|
@@ -201,7 +206,7 @@
|
|
201
206
|
<a name="l00185"></a>00185 <span class="comment"> * there will be no timeout.</span>
|
202
207
|
<a name="l00186"></a>00186 <span class="comment"> * @throws SystemException Cannot set the timeout.</span>
|
203
208
|
<a name="l00187"></a>00187 <span class="comment"> */</span>
|
204
|
-
<a name="l00188"></a>00188 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classPassenger_1_1Application_1_1Session.html#
|
209
|
+
<a name="l00188"></a>00188 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classPassenger_1_1Application_1_1Session.html#b4487fdd198a3a2e2bde74e5d3c2396e" title="Set the timeout value for reading data from the I/O stream.">setReaderTimeout</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> msec) = 0;
|
205
210
|
<a name="l00189"></a>00189 <span class="comment"></span>
|
206
211
|
<a name="l00190"></a>00190 <span class="comment"> /**</span>
|
207
212
|
<a name="l00191"></a>00191 <span class="comment"> * Set the timeout value for writing data from the I/O stream.</span>
|
@@ -212,7 +217,7 @@
|
|
212
217
|
<a name="l00196"></a>00196 <span class="comment"> * there will be no timeout.</span>
|
213
218
|
<a name="l00197"></a>00197 <span class="comment"> * @throws SystemException Cannot set the timeout.</span>
|
214
219
|
<a name="l00198"></a>00198 <span class="comment"> */</span>
|
215
|
-
<a name="l00199"></a>00199 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classPassenger_1_1Application_1_1Session.html#
|
220
|
+
<a name="l00199"></a>00199 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classPassenger_1_1Application_1_1Session.html#e279c219606fd20048bde44a150c5b17" title="Set the timeout value for writing data from the I/O stream.">setWriterTimeout</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> msec) = 0;
|
216
221
|
<a name="l00200"></a>00200 <span class="comment"></span>
|
217
222
|
<a name="l00201"></a>00201 <span class="comment"> /**</span>
|
218
223
|
<a name="l00202"></a>00202 <span class="comment"> * Indicate that we don't want to read data anymore from the I/O stream.</span>
|
@@ -221,7 +226,7 @@
|
|
221
226
|
<a name="l00205"></a>00205 <span class="comment"> * @throws SystemException Something went wrong.</span>
|
222
227
|
<a name="l00206"></a>00206 <span class="comment"> * @throws boost::thread_interrupted</span>
|
223
228
|
<a name="l00207"></a>00207 <span class="comment"> */</span>
|
224
|
-
<a name="l00208"></a>00208 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classPassenger_1_1Application_1_1Session.html#
|
229
|
+
<a name="l00208"></a>00208 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classPassenger_1_1Application_1_1Session.html#95ea71f3a7e2cb1d66681285371cbabe" title="Indicate that we don&#39;t want to read data anymore from the I/O stream.">shutdownReader</a>() = 0;
|
225
230
|
<a name="l00209"></a>00209 <span class="comment"></span>
|
226
231
|
<a name="l00210"></a>00210 <span class="comment"> /**</span>
|
227
232
|
<a name="l00211"></a>00211 <span class="comment"> * Indicate that we don't want to write data anymore to the I/O stream.</span>
|
@@ -230,7 +235,7 @@
|
|
230
235
|
<a name="l00214"></a>00214 <span class="comment"> * @throws SystemException Something went wrong.</span>
|
231
236
|
<a name="l00215"></a>00215 <span class="comment"> * @throws boost::thread_interrupted</span>
|
232
237
|
<a name="l00216"></a>00216 <span class="comment"> */</span>
|
233
|
-
<a name="l00217"></a>00217 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classPassenger_1_1Application_1_1Session.html#
|
238
|
+
<a name="l00217"></a>00217 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classPassenger_1_1Application_1_1Session.html#bfb2a4f08a0fa24a97e75c9a96205bba" title="Indicate that we don&#39;t want to write data anymore to the I/O stream.">shutdownWriter</a>() = 0;
|
234
239
|
<a name="l00218"></a>00218 <span class="comment"></span>
|
235
240
|
<a name="l00219"></a>00219 <span class="comment"> /**</span>
|
236
241
|
<a name="l00220"></a>00220 <span class="comment"> * Close the I/O stream.</span>
|
@@ -238,18 +243,18 @@
|
|
238
243
|
<a name="l00222"></a>00222 <span class="comment"> * @throws SystemException Something went wrong.</span>
|
239
244
|
<a name="l00223"></a>00223 <span class="comment"> * @throws boost::thread_interrupted</span>
|
240
245
|
<a name="l00224"></a>00224 <span class="comment"> */</span>
|
241
|
-
<a name="l00225"></a>00225 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classPassenger_1_1Application_1_1Session.html#
|
246
|
+
<a name="l00225"></a>00225 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classPassenger_1_1Application_1_1Session.html#bc463c55e17fe5784f351ac699f20ce4" title="Close the I/O stream.">closeStream</a>() = 0;
|
242
247
|
<a name="l00226"></a>00226 <span class="comment"></span>
|
243
248
|
<a name="l00227"></a>00227 <span class="comment"> /**</span>
|
244
249
|
<a name="l00228"></a>00228 <span class="comment"> * Discard the I/O stream's file descriptor, so that Session won't automatically</span>
|
245
250
|
<a name="l00229"></a>00229 <span class="comment"> * closed it upon Session's destruction.</span>
|
246
251
|
<a name="l00230"></a>00230 <span class="comment"> */</span>
|
247
|
-
<a name="l00231"></a>00231 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classPassenger_1_1Application_1_1Session.html#
|
252
|
+
<a name="l00231"></a>00231 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classPassenger_1_1Application_1_1Session.html#f092d4757e2d460c6f6f979473c1c4ba" title="Discard the I/O stream&#39;s file descriptor, so that Session won&#39;t automatically...">discardStream</a>() = 0;
|
248
253
|
<a name="l00232"></a>00232 <span class="comment"></span>
|
249
254
|
<a name="l00233"></a>00233 <span class="comment"> /**</span>
|
250
255
|
<a name="l00234"></a>00234 <span class="comment"> * Get the process ID of the application instance that belongs to this session.</span>
|
251
256
|
<a name="l00235"></a>00235 <span class="comment"> */</span>
|
252
|
-
<a name="l00236"></a>00236 <span class="keyword">virtual</span> pid_t <a class="code" href="classPassenger_1_1Application_1_1Session.html#
|
257
|
+
<a name="l00236"></a>00236 <span class="keyword">virtual</span> pid_t <a class="code" href="classPassenger_1_1Application_1_1Session.html#19cdd7428efcff759bae674fafe2dc5b" title="Get the process ID of the application instance that belongs to this session.">getPid</a>() <span class="keyword">const</span> = 0;
|
253
258
|
<a name="l00237"></a>00237 };
|
254
259
|
<a name="l00238"></a>00238
|
255
260
|
<a name="l00239"></a>00239 <span class="keyword">private</span>:<span class="comment"></span>
|
@@ -491,12 +496,12 @@
|
|
491
496
|
<a name="l00475"></a>00475 <span class="comment"> * session->sendHeaders(...);</span>
|
492
497
|
<a name="l00476"></a>00476 <span class="comment"> * session->sendBodyBlock(...);</span>
|
493
498
|
<a name="l00477"></a>00477 <span class="comment"> * // Done sending data, so we close the writer channel.</span>
|
494
|
-
<a name="l00478"></a>00478 <span class="comment"> * session->
|
499
|
+
<a name="l00478"></a>00478 <span class="comment"> * session->shutdownWriter();</span>
|
495
500
|
<a name="l00479"></a>00479 <span class="comment"> *</span>
|
496
501
|
<a name="l00480"></a>00480 <span class="comment"> * // Now read the HTTP response.</span>
|
497
502
|
<a name="l00481"></a>00481 <span class="comment"> * string responseData = readAllDataFromSocket(session->getReader());</span>
|
498
503
|
<a name="l00482"></a>00482 <span class="comment"> * // Done reading data, so we close the reader channel.</span>
|
499
|
-
<a name="l00483"></a>00483 <span class="comment"> * session->
|
504
|
+
<a name="l00483"></a>00483 <span class="comment"> * session->shutdownReader();</span>
|
500
505
|
<a name="l00484"></a>00484 <span class="comment"> *</span>
|
501
506
|
<a name="l00485"></a>00485 <span class="comment"> * // This session has now finished, so we close the session by resetting</span>
|
502
507
|
<a name="l00486"></a>00486 <span class="comment"> * // the smart pointer to NULL (thereby destroying the Session object).</span>
|
@@ -541,8 +546,8 @@
|
|
541
546
|
<a name="l00525"></a>00525
|
542
547
|
<a name="l00526"></a>00526 <span class="preprocessor">#endif </span><span class="comment">/* _PASSENGER_APPLICATION_H_ */</span>
|
543
548
|
</pre></div></div>
|
544
|
-
<hr size="1"><address style="text-align: right;"><small>Generated on
|
549
|
+
<hr size="1"><address style="text-align: right;"><small>Generated on Wed Apr 8 22:35:10 2009 for Passenger by
|
545
550
|
<a href="http://www.doxygen.org/index.html">
|
546
|
-
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.
|
551
|
+
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
|
547
552
|
</body>
|
548
553
|
</html>
|
@@ -1,10 +1,10 @@
|
|
1
1
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
2
2
|
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
3
3
|
<title>Passenger: Bucket.h Source File</title>
|
4
|
-
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
5
4
|
<link href="tabs.css" rel="stylesheet" type="text/css">
|
5
|
+
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
6
6
|
</head><body>
|
7
|
-
<!-- Generated by Doxygen 1.5.
|
7
|
+
<!-- Generated by Doxygen 1.5.8 -->
|
8
8
|
<div class="navigation" id="top">
|
9
9
|
<div class="tabs">
|
10
10
|
<ul>
|
@@ -14,54 +14,64 @@
|
|
14
14
|
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
15
15
|
</ul>
|
16
16
|
</div>
|
17
|
+
<div class="tabs">
|
18
|
+
<ul>
|
19
|
+
<li><a href="files.html"><span>File List</span></a></li>
|
20
|
+
</ul>
|
21
|
+
</div>
|
17
22
|
<h1>Bucket.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
|
18
23
|
<a name="l00002"></a>00002 <span class="comment"> * Phusion Passenger - http://www.modrails.com/</span>
|
19
|
-
<a name="l00003"></a>00003 <span class="comment"> * Copyright (
|
24
|
+
<a name="l00003"></a>00003 <span class="comment"> * Copyright (c) 2008, 2009 Phusion</span>
|
20
25
|
<a name="l00004"></a>00004 <span class="comment"> *</span>
|
21
|
-
<a name="l00005"></a>00005 <span class="comment"> * Phusion Passenger is a trademark of Hongli Lai & Ninh Bui.</span>
|
26
|
+
<a name="l00005"></a>00005 <span class="comment"> * "Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui.</span>
|
22
27
|
<a name="l00006"></a>00006 <span class="comment"> *</span>
|
23
|
-
<a name="l00007"></a>00007 <span class="comment"> *
|
24
|
-
<a name="l00008"></a>00008 <span class="comment"> *
|
25
|
-
<a name="l00009"></a>00009 <span class="comment"> * the
|
26
|
-
<a name="l00010"></a>00010 <span class="comment">
|
27
|
-
<a name="l00011"></a>00011 <span class="comment"> *
|
28
|
-
<a name="l00012"></a>00012 <span class="comment"> *
|
29
|
-
<a name="l00013"></a>00013 <span class="comment">
|
30
|
-
<a name="l00014"></a>00014 <span class="comment"> *
|
31
|
-
<a name="l00015"></a>00015 <span class="comment">
|
32
|
-
<a name="l00016"></a>00016 <span class="comment">
|
33
|
-
<a name="l00017"></a>00017 <span class="comment"> *
|
34
|
-
<a name="l00018"></a>00018 <span class="comment"> *
|
35
|
-
<a name="l00019"></a>00019 <span class="comment">
|
36
|
-
<a name="l00020"></a>00020 <span class="
|
37
|
-
<a name="l00021"></a>00021 <span class="
|
38
|
-
<a name="l00022"></a>00022 <span class="
|
39
|
-
<a name="l00023"></a>00023 <span class="comment"
|
40
|
-
<a name="l00024"></a>00024 <span class="comment">
|
41
|
-
<a name="l00025"></a>00025 <span class="
|
42
|
-
<a name="l00026"></a>00026 <span class="
|
43
|
-
<a name="l00027"></a>00027 <span class="comment"
|
44
|
-
<a name="l00028"></a>00028 <span class="comment"
|
45
|
-
<a name="l00029"></a>00029 <span class="comment"> *
|
46
|
-
<a name="l00030"></a>00030 <span class="comment"> *
|
47
|
-
<a name="l00031"></a>00031 <span class="comment"> * descriptor
|
28
|
+
<a name="l00007"></a>00007 <span class="comment"> * Permission is hereby granted, free of charge, to any person obtaining a copy</span>
|
29
|
+
<a name="l00008"></a>00008 <span class="comment"> * of this software and associated documentation files (the "Software"), to deal</span>
|
30
|
+
<a name="l00009"></a>00009 <span class="comment"> * in the Software without restriction, including without limitation the rights</span>
|
31
|
+
<a name="l00010"></a>00010 <span class="comment"> * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell</span>
|
32
|
+
<a name="l00011"></a>00011 <span class="comment"> * copies of the Software, and to permit persons to whom the Software is</span>
|
33
|
+
<a name="l00012"></a>00012 <span class="comment"> * furnished to do so, subject to the following conditions:</span>
|
34
|
+
<a name="l00013"></a>00013 <span class="comment"> *</span>
|
35
|
+
<a name="l00014"></a>00014 <span class="comment"> * The above copyright notice and this permission notice shall be included in</span>
|
36
|
+
<a name="l00015"></a>00015 <span class="comment"> * all copies or substantial portions of the Software.</span>
|
37
|
+
<a name="l00016"></a>00016 <span class="comment"> *</span>
|
38
|
+
<a name="l00017"></a>00017 <span class="comment"> * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR</span>
|
39
|
+
<a name="l00018"></a>00018 <span class="comment"> * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,</span>
|
40
|
+
<a name="l00019"></a>00019 <span class="comment"> * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE</span>
|
41
|
+
<a name="l00020"></a>00020 <span class="comment"> * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER</span>
|
42
|
+
<a name="l00021"></a>00021 <span class="comment"> * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,</span>
|
43
|
+
<a name="l00022"></a>00022 <span class="comment"> * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN</span>
|
44
|
+
<a name="l00023"></a>00023 <span class="comment"> * THE SOFTWARE.</span>
|
45
|
+
<a name="l00024"></a>00024 <span class="comment"> */</span>
|
46
|
+
<a name="l00025"></a>00025 <span class="preprocessor">#ifndef _PASSENGER_BUCKET_H_</span>
|
47
|
+
<a name="l00026"></a>00026 <span class="preprocessor"></span><span class="preprocessor">#define _PASSENGER_BUCKET_H_</span>
|
48
|
+
<a name="l00027"></a>00027 <span class="preprocessor"></span><span class="comment"></span>
|
49
|
+
<a name="l00028"></a>00028 <span class="comment">/**</span>
|
50
|
+
<a name="l00029"></a>00029 <span class="comment"> * apr_bucket_pipe closes a pipe's file descriptor when it has reached</span>
|
51
|
+
<a name="l00030"></a>00030 <span class="comment"> * end-of-stream, but not when an error has occurred. This behavior is</span>
|
52
|
+
<a name="l00031"></a>00031 <span class="comment"> * undesirable because it can easily cause file descriptor leaks.</span>
|
48
53
|
<a name="l00032"></a>00032 <span class="comment"> *</span>
|
49
|
-
<a name="l00033"></a>00033 <span class="comment"> * passenger_bucket
|
50
|
-
<a name="l00034"></a>00034 <span class="comment"> *
|
51
|
-
<a name="l00035"></a>00035 <span class="comment">
|
52
|
-
<a name="l00036"></a>00036
|
53
|
-
<a name="l00037"></a>00037 <span class="
|
54
|
-
<a name="l00038"></a>00038 <span class="
|
55
|
-
<a name="l00039"></a>00039
|
56
|
-
<a name="l00040"></a>00040
|
57
|
-
<a name="l00041"></a>00041
|
58
|
-
<a name="l00042"></a>00042
|
59
|
-
<a name="l00043"></a>00043
|
60
|
-
<a name="l00044"></a>00044
|
61
|
-
<a name="l00045"></a>00045
|
54
|
+
<a name="l00033"></a>00033 <span class="comment"> * passenger_bucket is like apr_bucket_pipe, but it also holds a reference to</span>
|
55
|
+
<a name="l00034"></a>00034 <span class="comment"> * a Session. When a read error has occured or when end-of-stream has been</span>
|
56
|
+
<a name="l00035"></a>00035 <span class="comment"> * reached, the Session will be dereferenced, so that the underlying file</span>
|
57
|
+
<a name="l00036"></a>00036 <span class="comment"> * descriptor is closed.</span>
|
58
|
+
<a name="l00037"></a>00037 <span class="comment"> *</span>
|
59
|
+
<a name="l00038"></a>00038 <span class="comment"> * passenger_bucket also ignores the APR_NONBLOCK_READ flag because that's</span>
|
60
|
+
<a name="l00039"></a>00039 <span class="comment"> * known to cause strange I/O problems.</span>
|
61
|
+
<a name="l00040"></a>00040 <span class="comment"> */</span>
|
62
|
+
<a name="l00041"></a>00041
|
63
|
+
<a name="l00042"></a>00042 <span class="preprocessor">#include <apr_buckets.h></span>
|
64
|
+
<a name="l00043"></a>00043 <span class="preprocessor">#include "Application.h"</span>
|
65
|
+
<a name="l00044"></a>00044
|
66
|
+
<a name="l00045"></a>00045 apr_bucket *passenger_bucket_create(Passenger::Application::SessionPtr session,
|
67
|
+
<a name="l00046"></a>00046 apr_file_t *pipe,
|
68
|
+
<a name="l00047"></a>00047 apr_bucket_alloc_t *list);
|
69
|
+
<a name="l00048"></a>00048
|
70
|
+
<a name="l00049"></a>00049 <span class="preprocessor">#endif </span><span class="comment">/* _PASSENGER_BUCKET_H_ */</span>
|
71
|
+
<a name="l00050"></a>00050
|
62
72
|
</pre></div></div>
|
63
|
-
<hr size="1"><address style="text-align: right;"><small>Generated on
|
73
|
+
<hr size="1"><address style="text-align: right;"><small>Generated on Thu Apr 16 19:48:18 2009 for Passenger by
|
64
74
|
<a href="http://www.doxygen.org/index.html">
|
65
|
-
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.
|
75
|
+
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
|
66
76
|
</body>
|
67
77
|
</html>
|
@@ -1,10 +1,10 @@
|
|
1
1
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
2
2
|
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
3
3
|
<title>Passenger: CachedFileStat.h Source File</title>
|
4
|
-
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
5
4
|
<link href="tabs.css" rel="stylesheet" type="text/css">
|
5
|
+
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
6
6
|
</head><body>
|
7
|
-
<!-- Generated by Doxygen 1.5.
|
7
|
+
<!-- Generated by Doxygen 1.5.8 -->
|
8
8
|
<div class="navigation" id="top">
|
9
9
|
<div class="tabs">
|
10
10
|
<ul>
|
@@ -14,6 +14,11 @@
|
|
14
14
|
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
15
15
|
</ul>
|
16
16
|
</div>
|
17
|
+
<div class="tabs">
|
18
|
+
<ul>
|
19
|
+
<li><a href="files.html"><span>File List</span></a></li>
|
20
|
+
</ul>
|
21
|
+
</div>
|
17
22
|
<h1>CachedFileStat.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
|
18
23
|
<a name="l00002"></a>00002 <span class="comment"> * Phusion Passenger - http://www.modrails.com/</span>
|
19
24
|
<a name="l00003"></a>00003 <span class="comment"> * Copyright (C) 2009 Phusion</span>
|
@@ -175,8 +180,8 @@
|
|
175
180
|
<a name="l00159"></a>00159 <span class="preprocessor">#endif </span><span class="comment">/* _PASSENGER_CACHED_FILE_STAT_H_ */</span>
|
176
181
|
<a name="l00160"></a>00160
|
177
182
|
</pre></div></div>
|
178
|
-
<hr size="1"><address style="text-align: right;"><small>Generated on
|
183
|
+
<hr size="1"><address style="text-align: right;"><small>Generated on Wed Apr 8 22:35:10 2009 for Passenger by
|
179
184
|
<a href="http://www.doxygen.org/index.html">
|
180
|
-
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.
|
185
|
+
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
|
181
186
|
</body>
|
182
187
|
</html>
|
@@ -1,10 +1,10 @@
|
|
1
1
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
2
2
|
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
3
3
|
<title>Passenger: Configuration.h Source File</title>
|
4
|
-
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
5
4
|
<link href="tabs.css" rel="stylesheet" type="text/css">
|
5
|
+
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
6
6
|
</head><body>
|
7
|
-
<!-- Generated by Doxygen 1.5.
|
7
|
+
<!-- Generated by Doxygen 1.5.8 -->
|
8
8
|
<div class="navigation" id="top">
|
9
9
|
<div class="tabs">
|
10
10
|
<ul>
|
@@ -14,352 +14,370 @@
|
|
14
14
|
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
15
15
|
</ul>
|
16
16
|
</div>
|
17
|
+
<div class="tabs">
|
18
|
+
<ul>
|
19
|
+
<li><a href="files.html"><span>File List</span></a></li>
|
20
|
+
</ul>
|
21
|
+
</div>
|
17
22
|
<h1>Configuration.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
|
18
23
|
<a name="l00002"></a>00002 <span class="comment"> * Phusion Passenger - http://www.modrails.com/</span>
|
19
|
-
<a name="l00003"></a>00003 <span class="comment"> * Copyright (
|
24
|
+
<a name="l00003"></a>00003 <span class="comment"> * Copyright (c) 2008, 2009 Phusion</span>
|
20
25
|
<a name="l00004"></a>00004 <span class="comment"> *</span>
|
21
|
-
<a name="l00005"></a>00005 <span class="comment"> * Phusion Passenger is a trademark of Hongli Lai & Ninh Bui.</span>
|
26
|
+
<a name="l00005"></a>00005 <span class="comment"> * "Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui.</span>
|
22
27
|
<a name="l00006"></a>00006 <span class="comment"> *</span>
|
23
|
-
<a name="l00007"></a>00007 <span class="comment"> *
|
24
|
-
<a name="l00008"></a>00008 <span class="comment"> *
|
25
|
-
<a name="l00009"></a>00009 <span class="comment"> * the
|
26
|
-
<a name="l00010"></a>00010 <span class="comment">
|
27
|
-
<a name="l00011"></a>00011 <span class="comment"> *
|
28
|
-
<a name="l00012"></a>00012 <span class="comment"> *
|
29
|
-
<a name="l00013"></a>00013 <span class="comment">
|
30
|
-
<a name="l00014"></a>00014 <span class="comment"> *
|
31
|
-
<a name="l00015"></a>00015 <span class="comment">
|
32
|
-
<a name="l00016"></a>00016 <span class="comment">
|
33
|
-
<a name="l00017"></a>00017 <span class="comment"> *
|
34
|
-
<a name="l00018"></a>00018 <span class="comment"> *
|
35
|
-
<a name="l00019"></a>00019 <span class="comment">
|
36
|
-
<a name="l00020"></a>00020 <span class="
|
37
|
-
<a name="l00021"></a>00021 <span class="
|
38
|
-
<a name="l00022"></a>00022 <span class="
|
39
|
-
<a name="l00023"></a>00023 <span class="
|
40
|
-
<a name="l00024"></a>00024 <span class="
|
41
|
-
<a name="l00025"></a>00025
|
42
|
-
<a name="l00026"></a>00026 <span class="
|
43
|
-
<a name="l00027"></a>00027 <span class="
|
44
|
-
<a name="l00028"></a>00028 <span class="
|
45
|
-
<a name="l00029"></a>00029 <span class="
|
46
|
-
<a name="l00030"></a>00030
|
47
|
-
<a name="l00031"></a>00031 <span class="comment"
|
48
|
-
<a name="l00032"></a>00032 <span class="comment">
|
49
|
-
<a name="l00033"></a>00033 <span class="
|
50
|
-
<a name="l00034"></a>00034 <span class="
|
51
|
-
<a name="l00035"></a>00035 <span class="
|
52
|
-
<a name="l00036"></a>00036 <span class="comment"
|
53
|
-
<a name="l00037"></a>00037 <span class="comment"
|
54
|
-
<a name="l00038"></a>00038 <span class="
|
55
|
-
<a name="l00039"></a>00039 <span class="
|
56
|
-
<a name="l00040"></a>00040 <span class="
|
57
|
-
<a name="l00041"></a>00041 <span class="comment"
|
58
|
-
<a name="l00042"></a>00042 <span class="comment"
|
59
|
-
<a name="l00043"></a>00043 <span class="comment"
|
60
|
-
<a name="l00044"></a
|
61
|
-
<a name="l00045"></a>00045 <span class="
|
62
|
-
<a name="l00046"></a>00046 <span class="
|
63
|
-
<a name="l00047"></a>00047 <span class="
|
64
|
-
<a name="l00048"></a>00048 <span class="
|
65
|
-
<a name="l00049"></a>00049
|
66
|
-
<a name="l00050"></a>00050
|
67
|
-
<a name="l00051"></a>00051
|
68
|
-
<a name="l00052"></a>00052
|
69
|
-
<a name="l00053"></a>00053
|
70
|
-
<a name="l00054"></a>00054
|
71
|
-
<a name="l00055"></a>00055
|
72
|
-
<a name="l00056"></a>00056
|
73
|
-
<a name="l00057"></a>00057
|
74
|
-
<a name="l00058"></a>00058
|
75
|
-
<a name="l00059"></a>00059 <span class="comment">
|
76
|
-
<a name="l00060"></a>00060
|
77
|
-
<a name="l00061"></a>00061
|
78
|
-
<a name="l00062"></a>00062
|
79
|
-
<a name="l00063"></a>00063
|
80
|
-
<a name="l00064"></a>00064
|
81
|
-
<a name="l00065"></a>00065
|
82
|
-
<a name="l00066"></a>00066
|
83
|
-
<a name="l00067"></a>00067
|
84
|
-
<a name="l00068"></a>00068
|
85
|
-
<a name="l00069"></a>00069
|
86
|
-
<a name="l00070"></a>00070
|
87
|
-
<a name="l00071"></a>00071
|
88
|
-
<a name="l00072"></a>00072
|
89
|
-
<a name="l00073"></a>00073
|
90
|
-
<a name="l00074"></a>00074
|
91
|
-
<a name="l00075"></a>00075
|
92
|
-
<a name="l00076"></a>00076
|
93
|
-
<a name="l00077"></a>00077
|
94
|
-
<a name="l00078"></a>00078
|
95
|
-
<a name="l00079"></a>00079
|
96
|
-
<a name="l00080"></a>00080
|
97
|
-
<a name="l00081"></a>00081
|
98
|
-
<a name="l00082"></a>00082
|
99
|
-
<a name="l00083"></a>00083
|
100
|
-
<a name="l00084"></a>00084
|
101
|
-
<a name="l00085"></a>00085
|
102
|
-
<a name="l00086"></a>00086 <span class="comment">
|
103
|
-
<a name="l00087"></a>00087 <span class="comment"> *
|
104
|
-
<a name="l00088"></a>00088
|
105
|
-
<a name="l00089"></a>00089
|
106
|
-
<a name="l00090"></a>00090
|
107
|
-
<a name="l00091"></a>00091
|
108
|
-
<a name="l00092"></a>00092 <span class="comment">
|
109
|
-
<a name="l00093"></a>00093 <span class="comment"> *
|
110
|
-
<a name="l00094"></a>00094
|
111
|
-
<a name="l00095"></a>00095 <span class="
|
112
|
-
<a name="l00096"></a>00096
|
113
|
-
<a name="l00097"></a>00097
|
114
|
-
<a name="l00098"></a>00098
|
115
|
-
<a name="l00099"></a>00099 <span class="
|
116
|
-
<a name="l00100"></a>00100
|
117
|
-
<a name="l00101"></a>00101 <span class="comment">
|
118
|
-
<a name="l00102"></a>00102
|
119
|
-
<a name="l00103"></a>00103
|
120
|
-
<a name="l00104"></a>00104
|
121
|
-
<a name="l00105"></a>00105
|
122
|
-
<a name="l00106"></a>00106 <span class="comment">
|
123
|
-
<a name="l00107"></a>00107 <span class="comment"> *
|
124
|
-
<a name="l00108"></a>00108 <span class="comment">
|
125
|
-
<a name="l00109"></a>00109
|
126
|
-
<a name="l00110"></a>00110
|
127
|
-
<a name="l00111"></a>00111
|
128
|
-
<a name="l00112"></a>00112
|
129
|
-
<a name="l00113"></a>00113 <span class="comment">
|
130
|
-
<a name="l00114"></a>00114 <span class="comment"> *
|
131
|
-
<a name="l00115"></a>00115 <span class="comment">
|
132
|
-
<a name="l00116"></a>00116
|
133
|
-
<a name="l00117"></a>00117 <span class="
|
134
|
-
<a name="l00118"></a>00118
|
135
|
-
<a name="l00119"></a>00119 <span class="comment">
|
136
|
-
<a name="l00120"></a>00120 <span class="comment"> *
|
137
|
-
<a name="l00121"></a>00121
|
138
|
-
<a name="l00122"></a>00122 <span class="
|
139
|
-
<a name="l00123"></a>00123
|
140
|
-
<a name="l00124"></a>00124 <span class="comment">
|
141
|
-
<a name="l00125"></a>00125 <span class="comment"> *
|
142
|
-
<a name="l00126"></a>00126
|
143
|
-
<a name="l00127"></a>00127 <span class="
|
144
|
-
<a name="l00128"></a>00128
|
145
|
-
<a name="l00129"></a>00129 <span class="comment">
|
146
|
-
<a name="l00130"></a>00130 <span class="comment"> *
|
147
|
-
<a name="l00131"></a>00131
|
148
|
-
<a name="l00132"></a>00132
|
149
|
-
<a name="l00133"></a>00133
|
150
|
-
<a name="l00134"></a>00134
|
151
|
-
<a name="l00135"></a>00135 <span class="comment">
|
152
|
-
<a name="l00136"></a>00136
|
153
|
-
<a name="l00137"></a>00137
|
154
|
-
<a name="l00138"></a>00138
|
155
|
-
<a name="l00139"></a>00139
|
156
|
-
<a name="l00140"></a>00140 <span class="comment">
|
157
|
-
<a name="l00141"></a>00141
|
158
|
-
<a name="l00142"></a>00142 <span class="
|
159
|
-
<a name="l00143"></a>00143
|
160
|
-
<a name="l00144"></a>00144 <span class="comment">
|
161
|
-
<a name="l00145"></a>00145 <span class="comment"> *
|
162
|
-
<a name="l00146"></a>00146
|
163
|
-
<a name="l00147"></a>00147 <span class="
|
164
|
-
<a name="l00148"></a>00148
|
165
|
-
<a name="l00149"></a>00149 <span class="comment">
|
166
|
-
<a name="l00150"></a>00150 <span class="comment"> *
|
167
|
-
<a name="l00151"></a>00151
|
168
|
-
<a name="l00152"></a>00152 <span class="
|
169
|
-
<a name="l00153"></a>00153
|
170
|
-
<a name="l00154"></a>00154
|
171
|
-
<a name="l00155"></a>00155
|
172
|
-
<a name="l00156"></a>00156
|
173
|
-
<a name="l00157"></a>00157
|
174
|
-
<a name="l00158"></a>00158
|
175
|
-
<a name="l00159"></a>00159
|
176
|
-
<a name="l00160"></a>00160
|
177
|
-
<a name="l00161"></a>00161
|
178
|
-
<a name="l00162"></a>00162
|
179
|
-
<a name="l00163"></a>00163
|
180
|
-
<a name="l00164"></a>00164
|
181
|
-
<a name="l00165"></a>00165
|
182
|
-
<a name="l00166"></a>00166
|
183
|
-
<a name="l00167"></a>00167
|
184
|
-
<a name="l00168"></a>00168
|
185
|
-
<a name="l00169"></a>00169
|
186
|
-
<a name="l00170"></a>00170
|
187
|
-
<a name="l00171"></a>00171
|
188
|
-
<a name="l00172"></a>00172
|
189
|
-
<a name="l00173"></a>00173
|
190
|
-
<a name="l00174"></a>00174
|
191
|
-
<a name="l00175"></a>00175
|
192
|
-
<a name="l00176"></a>00176
|
193
|
-
<a name="l00177"></a>00177
|
194
|
-
<a name="l00178"></a>00178
|
195
|
-
<a name="l00179"></a>00179
|
196
|
-
<a name="l00180"></a>00180
|
197
|
-
<a name="l00181"></a>00181
|
198
|
-
<a name="l00182"></a>00182
|
199
|
-
<a name="l00183"></a>00183
|
200
|
-
<a name="l00184"></a>00184
|
201
|
-
<a name="l00185"></a>00185
|
202
|
-
<a name="l00186"></a>00186
|
203
|
-
<a name="l00187"></a>00187
|
204
|
-
<a name="l00188"></a>00188
|
205
|
-
<a name="l00189"></a>00189
|
206
|
-
<a name="l00190"></a>00190 <span class="keywordflow">
|
207
|
-
<a name="l00191"></a>00191 <span class="keywordflow">return</span>
|
208
|
-
<a name="l00192"></a>00192 <span class="keywordflow">
|
209
|
-
<a name="l00193"></a>00193 <span class="keywordflow">return</span> <span class="stringliteral">"
|
28
|
+
<a name="l00007"></a>00007 <span class="comment"> * Permission is hereby granted, free of charge, to any person obtaining a copy</span>
|
29
|
+
<a name="l00008"></a>00008 <span class="comment"> * of this software and associated documentation files (the "Software"), to deal</span>
|
30
|
+
<a name="l00009"></a>00009 <span class="comment"> * in the Software without restriction, including without limitation the rights</span>
|
31
|
+
<a name="l00010"></a>00010 <span class="comment"> * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell</span>
|
32
|
+
<a name="l00011"></a>00011 <span class="comment"> * copies of the Software, and to permit persons to whom the Software is</span>
|
33
|
+
<a name="l00012"></a>00012 <span class="comment"> * furnished to do so, subject to the following conditions:</span>
|
34
|
+
<a name="l00013"></a>00013 <span class="comment"> *</span>
|
35
|
+
<a name="l00014"></a>00014 <span class="comment"> * The above copyright notice and this permission notice shall be included in</span>
|
36
|
+
<a name="l00015"></a>00015 <span class="comment"> * all copies or substantial portions of the Software.</span>
|
37
|
+
<a name="l00016"></a>00016 <span class="comment"> *</span>
|
38
|
+
<a name="l00017"></a>00017 <span class="comment"> * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR</span>
|
39
|
+
<a name="l00018"></a>00018 <span class="comment"> * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,</span>
|
40
|
+
<a name="l00019"></a>00019 <span class="comment"> * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE</span>
|
41
|
+
<a name="l00020"></a>00020 <span class="comment"> * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER</span>
|
42
|
+
<a name="l00021"></a>00021 <span class="comment"> * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,</span>
|
43
|
+
<a name="l00022"></a>00022 <span class="comment"> * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN</span>
|
44
|
+
<a name="l00023"></a>00023 <span class="comment"> * THE SOFTWARE.</span>
|
45
|
+
<a name="l00024"></a>00024 <span class="comment"> */</span>
|
46
|
+
<a name="l00025"></a>00025 <span class="preprocessor">#ifndef _PASSENGER_CONFIGURATION_H_</span>
|
47
|
+
<a name="l00026"></a>00026 <span class="preprocessor"></span><span class="preprocessor">#define _PASSENGER_CONFIGURATION_H_</span>
|
48
|
+
<a name="l00027"></a>00027 <span class="preprocessor"></span>
|
49
|
+
<a name="l00028"></a>00028 <span class="preprocessor">#include "Utils.h"</span>
|
50
|
+
<a name="l00029"></a>00029 <span class="preprocessor">#include "MessageChannel.h"</span>
|
51
|
+
<a name="l00030"></a>00030
|
52
|
+
<a name="l00031"></a>00031 <span class="comment">/* The APR headers must come after the Passenger headers. See Hooks.cpp</span>
|
53
|
+
<a name="l00032"></a>00032 <span class="comment"> * to learn why.</span>
|
54
|
+
<a name="l00033"></a>00033 <span class="comment"> *</span>
|
55
|
+
<a name="l00034"></a>00034 <span class="comment"> * MessageChannel.h must be included -- even though we don't actually use</span>
|
56
|
+
<a name="l00035"></a>00035 <span class="comment"> * MessageChannel.h in here, it's necessary to make sure that apr_want.h</span>
|
57
|
+
<a name="l00036"></a>00036 <span class="comment"> * doesn't b0rk on 'struct iovec'.</span>
|
58
|
+
<a name="l00037"></a>00037 <span class="comment"> */</span>
|
59
|
+
<a name="l00038"></a>00038 <span class="preprocessor">#include <apr_pools.h></span>
|
60
|
+
<a name="l00039"></a>00039 <span class="preprocessor">#include <httpd.h></span>
|
61
|
+
<a name="l00040"></a>00040 <span class="preprocessor">#include <http_config.h></span>
|
62
|
+
<a name="l00041"></a>00041 <span class="comment"></span>
|
63
|
+
<a name="l00042"></a>00042 <span class="comment">/**</span>
|
64
|
+
<a name="l00043"></a>00043 <span class="comment"> * @defgroup Configuration Apache module configuration</span>
|
65
|
+
<a name="l00044"></a>00044 <span class="comment"> * @ingroup Core</span>
|
66
|
+
<a name="l00045"></a>00045 <span class="comment"> * @{</span>
|
67
|
+
<a name="l00046"></a>00046 <span class="comment"> */</span>
|
68
|
+
<a name="l00047"></a>00047 <span class="comment"></span>
|
69
|
+
<a name="l00048"></a>00048 <span class="comment">/** Module version number. */</span>
|
70
|
+
<a name="l00049"></a><a class="code" href="group__Configuration.html#ga19398896775408d6ab7fd8ce2acd992">00049</a> <span class="preprocessor">#define PASSENGER_VERSION "2.2.0"</span>
|
71
|
+
<a name="l00050"></a>00050 <span class="preprocessor"></span>
|
72
|
+
<a name="l00051"></a>00051 <span class="preprocessor">#ifdef __cplusplus</span>
|
73
|
+
<a name="l00052"></a>00052 <span class="preprocessor"></span><span class="preprocessor"> #include <set></span>
|
74
|
+
<a name="l00053"></a>00053 <span class="preprocessor"> #include <string></span>
|
75
|
+
<a name="l00054"></a>00054
|
76
|
+
<a name="l00055"></a>00055 <span class="keyword">namespace </span>Passenger {
|
77
|
+
<a name="l00056"></a>00056
|
78
|
+
<a name="l00057"></a>00057 <span class="keyword">using namespace </span>std;
|
79
|
+
<a name="l00058"></a>00058 <span class="comment"></span>
|
80
|
+
<a name="l00059"></a>00059 <span class="comment"> /**</span>
|
81
|
+
<a name="l00060"></a>00060 <span class="comment"> * Per-directory configuration information.</span>
|
82
|
+
<a name="l00061"></a>00061 <span class="comment"> *</span>
|
83
|
+
<a name="l00062"></a>00062 <span class="comment"> * Use the getter methods to query information, because those will return</span>
|
84
|
+
<a name="l00063"></a>00063 <span class="comment"> * the default value if the value is not specified.</span>
|
85
|
+
<a name="l00064"></a>00064 <span class="comment"> */</span>
|
86
|
+
<a name="l00065"></a>00065 <span class="keyword">struct </span>DirConfig {
|
87
|
+
<a name="l00066"></a>00066 <span class="keyword">enum</span> Threeway { ENABLED, DISABLED, UNSET };
|
88
|
+
<a name="l00067"></a>00067 <span class="keyword">enum</span> SpawnMethod { SM_UNSET, SM_SMART, SM_SMART_LV2, SM_CONSERVATIVE };
|
89
|
+
<a name="l00068"></a>00068
|
90
|
+
<a name="l00069"></a>00069 Threeway enabled;
|
91
|
+
<a name="l00070"></a>00070
|
92
|
+
<a name="l00071"></a>00071 std::set<std::string> railsBaseURIs;
|
93
|
+
<a name="l00072"></a>00072 std::set<std::string> rackBaseURIs;
|
94
|
+
<a name="l00073"></a>00073 <span class="comment"></span>
|
95
|
+
<a name="l00074"></a>00074 <span class="comment"> /** Whether to autodetect Rails applications. */</span>
|
96
|
+
<a name="l00075"></a>00075 Threeway autoDetectRails;
|
97
|
+
<a name="l00076"></a>00076 <span class="comment"></span>
|
98
|
+
<a name="l00077"></a>00077 <span class="comment"> /** Whether to autodetect Rack applications. */</span>
|
99
|
+
<a name="l00078"></a>00078 Threeway autoDetectRack;
|
100
|
+
<a name="l00079"></a>00079 <span class="comment"></span>
|
101
|
+
<a name="l00080"></a>00080 <span class="comment"> /** Whether to autodetect WSGI applications. */</span>
|
102
|
+
<a name="l00081"></a>00081 Threeway autoDetectWSGI;
|
103
|
+
<a name="l00082"></a>00082 <span class="comment"></span>
|
104
|
+
<a name="l00083"></a>00083 <span class="comment"> /** Whether mod_rewrite should be allowed for Rails applications. */</span>
|
105
|
+
<a name="l00084"></a>00084 Threeway allowModRewrite;
|
106
|
+
<a name="l00085"></a>00085 <span class="comment"></span>
|
107
|
+
<a name="l00086"></a>00086 <span class="comment"> /** The environment (i.e. value for RAILS_ENV) under which</span>
|
108
|
+
<a name="l00087"></a>00087 <span class="comment"> * Rails applications should operate. */</span>
|
109
|
+
<a name="l00088"></a>00088 <span class="keyword">const</span> <span class="keywordtype">char</span> *railsEnv;
|
110
|
+
<a name="l00089"></a>00089 <span class="comment"></span>
|
111
|
+
<a name="l00090"></a>00090 <span class="comment"> /** The path to the application's root (for example: RAILS_ROOT</span>
|
112
|
+
<a name="l00091"></a>00091 <span class="comment"> * for Rails applications, directory containing 'config.ru'</span>
|
113
|
+
<a name="l00092"></a>00092 <span class="comment"> * for Rack applications). If this value is NULL, the default</span>
|
114
|
+
<a name="l00093"></a>00093 <span class="comment"> * autodetected path will be used.</span>
|
115
|
+
<a name="l00094"></a>00094 <span class="comment"> */</span>
|
116
|
+
<a name="l00095"></a>00095 <span class="keyword">const</span> <span class="keywordtype">char</span> *appRoot;
|
117
|
+
<a name="l00096"></a>00096 <span class="comment"></span>
|
118
|
+
<a name="l00097"></a>00097 <span class="comment"> /** The environment (i.e. value for RACK_ENV) under which</span>
|
119
|
+
<a name="l00098"></a>00098 <span class="comment"> * Rack applications should operate. */</span>
|
120
|
+
<a name="l00099"></a>00099 <span class="keyword">const</span> <span class="keywordtype">char</span> *rackEnv;
|
121
|
+
<a name="l00100"></a>00100 <span class="comment"></span>
|
122
|
+
<a name="l00101"></a>00101 <span class="comment"> /** The Rails spawn method to use. */</span>
|
123
|
+
<a name="l00102"></a>00102 SpawnMethod spawnMethod;
|
124
|
+
<a name="l00103"></a>00103 <span class="comment"></span>
|
125
|
+
<a name="l00104"></a>00104 <span class="comment"> /**</span>
|
126
|
+
<a name="l00105"></a>00105 <span class="comment"> * The idle timeout, in seconds, of Rails framework spawners.</span>
|
127
|
+
<a name="l00106"></a>00106 <span class="comment"> * May also be 0 (which indicates that the framework spawner should</span>
|
128
|
+
<a name="l00107"></a>00107 <span class="comment"> * never idle timeout) or -1 (which means that the value is not specified).</span>
|
129
|
+
<a name="l00108"></a>00108 <span class="comment"> */</span>
|
130
|
+
<a name="l00109"></a>00109 <span class="keywordtype">long</span> frameworkSpawnerTimeout;
|
131
|
+
<a name="l00110"></a>00110 <span class="comment"></span>
|
132
|
+
<a name="l00111"></a>00111 <span class="comment"> /**</span>
|
133
|
+
<a name="l00112"></a>00112 <span class="comment"> * The idle timeout, in seconds, of Rails application spawners.</span>
|
134
|
+
<a name="l00113"></a>00113 <span class="comment"> * May also be 0 (which indicates that the application spawner should</span>
|
135
|
+
<a name="l00114"></a>00114 <span class="comment"> * never idle timeout) or -1 (which means that the value is not specified).</span>
|
136
|
+
<a name="l00115"></a>00115 <span class="comment"> */</span>
|
137
|
+
<a name="l00116"></a>00116 <span class="keywordtype">long</span> appSpawnerTimeout;
|
138
|
+
<a name="l00117"></a>00117 <span class="comment"></span>
|
139
|
+
<a name="l00118"></a>00118 <span class="comment"> /**</span>
|
140
|
+
<a name="l00119"></a>00119 <span class="comment"> * The maximum number of requests that the spawned application may process</span>
|
141
|
+
<a name="l00120"></a>00120 <span class="comment"> * before exiting. A value of 0 means unlimited.</span>
|
142
|
+
<a name="l00121"></a>00121 <span class="comment"> */</span>
|
143
|
+
<a name="l00122"></a>00122 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> maxRequests;
|
144
|
+
<a name="l00123"></a>00123 <span class="comment"></span>
|
145
|
+
<a name="l00124"></a>00124 <span class="comment"> /** Indicates whether the maxRequests option was explicitly specified</span>
|
146
|
+
<a name="l00125"></a>00125 <span class="comment"> * in the directory configuration. */</span>
|
147
|
+
<a name="l00126"></a>00126 <span class="keywordtype">bool</span> maxRequestsSpecified;
|
148
|
+
<a name="l00127"></a>00127 <span class="comment"></span>
|
149
|
+
<a name="l00128"></a>00128 <span class="comment"> /**</span>
|
150
|
+
<a name="l00129"></a>00129 <span class="comment"> * The maximum amount of memory (in MB) the spawned application may use.</span>
|
151
|
+
<a name="l00130"></a>00130 <span class="comment"> * A value of 0 means unlimited.</span>
|
152
|
+
<a name="l00131"></a>00131 <span class="comment"> */</span>
|
153
|
+
<a name="l00132"></a>00132 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> memoryLimit;
|
154
|
+
<a name="l00133"></a>00133 <span class="comment"></span>
|
155
|
+
<a name="l00134"></a>00134 <span class="comment"> /** Indicates whether the memoryLimit option was explicitly specified</span>
|
156
|
+
<a name="l00135"></a>00135 <span class="comment"> * in the directory configuration. */</span>
|
157
|
+
<a name="l00136"></a>00136 <span class="keywordtype">bool</span> memoryLimitSpecified;
|
158
|
+
<a name="l00137"></a>00137
|
159
|
+
<a name="l00138"></a>00138 Threeway highPerformance;
|
160
|
+
<a name="l00139"></a>00139 <span class="comment"></span>
|
161
|
+
<a name="l00140"></a>00140 <span class="comment"> /** Whether global queuing should be used. */</span>
|
162
|
+
<a name="l00141"></a>00141 Threeway useGlobalQueue;
|
163
|
+
<a name="l00142"></a>00142 <span class="comment"></span>
|
164
|
+
<a name="l00143"></a>00143 <span class="comment"> /**</span>
|
165
|
+
<a name="l00144"></a>00144 <span class="comment"> * Throttle the number of stat() calls on files like</span>
|
166
|
+
<a name="l00145"></a>00145 <span class="comment"> * restart.txt to the once per given number of seconds.</span>
|
167
|
+
<a name="l00146"></a>00146 <span class="comment"> */</span>
|
168
|
+
<a name="l00147"></a>00147 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> statThrottleRate;
|
169
|
+
<a name="l00148"></a>00148 <span class="comment"></span>
|
170
|
+
<a name="l00149"></a>00149 <span class="comment"> /** Indicates whether the statThrottleRate option was</span>
|
171
|
+
<a name="l00150"></a>00150 <span class="comment"> * explicitly specified in the directory configuration. */</span>
|
172
|
+
<a name="l00151"></a>00151 <span class="keywordtype">bool</span> statThrottleRateSpecified;
|
173
|
+
<a name="l00152"></a>00152 <span class="comment"></span>
|
174
|
+
<a name="l00153"></a>00153 <span class="comment"> /** The directory in which Passenger should look for</span>
|
175
|
+
<a name="l00154"></a>00154 <span class="comment"> * restart.txt. NULL means that the default directory</span>
|
176
|
+
<a name="l00155"></a>00155 <span class="comment"> * should be used.</span>
|
177
|
+
<a name="l00156"></a>00156 <span class="comment"> */</span>
|
178
|
+
<a name="l00157"></a>00157 <span class="keyword">const</span> <span class="keywordtype">char</span> *restartDir;
|
179
|
+
<a name="l00158"></a>00158
|
180
|
+
<a name="l00159"></a>00159 <span class="comment">/*************************************/</span>
|
181
|
+
<a name="l00160"></a>00160
|
182
|
+
<a name="l00161"></a>00161 <span class="keywordtype">bool</span> isEnabled()<span class="keyword"> const </span>{
|
183
|
+
<a name="l00162"></a>00162 <span class="keywordflow">return</span> enabled != DISABLED;
|
184
|
+
<a name="l00163"></a>00163 }
|
185
|
+
<a name="l00164"></a>00164
|
186
|
+
<a name="l00165"></a>00165 <span class="keywordtype">string</span> getAppRoot(<span class="keyword">const</span> <span class="keywordtype">char</span> *documentRoot)<span class="keyword"> const </span>{
|
187
|
+
<a name="l00166"></a>00166 <span class="keywordflow">if</span> (appRoot == NULL) {
|
188
|
+
<a name="l00167"></a>00167 <span class="keywordflow">return</span> extractDirName(documentRoot);
|
189
|
+
<a name="l00168"></a>00168 } <span class="keywordflow">else</span> {
|
190
|
+
<a name="l00169"></a>00169 <span class="keywordflow">return</span> appRoot;
|
191
|
+
<a name="l00170"></a>00170 }
|
192
|
+
<a name="l00171"></a>00171 }
|
193
|
+
<a name="l00172"></a>00172
|
194
|
+
<a name="l00173"></a>00173 <span class="keywordtype">string</span> getAppRoot(<span class="keyword">const</span> <span class="keywordtype">string</span> &documentRoot)<span class="keyword"> const </span>{
|
195
|
+
<a name="l00174"></a>00174 <span class="keywordflow">if</span> (appRoot == NULL) {
|
196
|
+
<a name="l00175"></a>00175 <span class="keywordflow">return</span> extractDirName(documentRoot);
|
197
|
+
<a name="l00176"></a>00176 } <span class="keywordflow">else</span> {
|
198
|
+
<a name="l00177"></a>00177 <span class="keywordflow">return</span> appRoot;
|
199
|
+
<a name="l00178"></a>00178 }
|
200
|
+
<a name="l00179"></a>00179 }
|
201
|
+
<a name="l00180"></a>00180
|
202
|
+
<a name="l00181"></a>00181 <span class="keyword">const</span> <span class="keywordtype">char</span> *getRailsEnv()<span class="keyword"> const </span>{
|
203
|
+
<a name="l00182"></a>00182 <span class="keywordflow">if</span> (railsEnv != NULL) {
|
204
|
+
<a name="l00183"></a>00183 <span class="keywordflow">return</span> railsEnv;
|
205
|
+
<a name="l00184"></a>00184 } <span class="keywordflow">else</span> {
|
206
|
+
<a name="l00185"></a>00185 <span class="keywordflow">return</span> <span class="stringliteral">"production"</span>;
|
207
|
+
<a name="l00186"></a>00186 }
|
208
|
+
<a name="l00187"></a>00187 }
|
209
|
+
<a name="l00188"></a>00188
|
210
|
+
<a name="l00189"></a>00189 <span class="keyword">const</span> <span class="keywordtype">char</span> *getRackEnv()<span class="keyword"> const </span>{
|
211
|
+
<a name="l00190"></a>00190 <span class="keywordflow">if</span> (rackEnv != NULL) {
|
212
|
+
<a name="l00191"></a>00191 <span class="keywordflow">return</span> rackEnv;
|
213
|
+
<a name="l00192"></a>00192 } <span class="keywordflow">else</span> {
|
214
|
+
<a name="l00193"></a>00193 <span class="keywordflow">return</span> <span class="stringliteral">"production"</span>;
|
210
215
|
<a name="l00194"></a>00194 }
|
211
216
|
<a name="l00195"></a>00195 }
|
212
217
|
<a name="l00196"></a>00196
|
213
|
-
<a name="l00197"></a>00197 <span class="
|
214
|
-
<a name="l00198"></a>00198 <span class="keywordflow">
|
215
|
-
<a name="l00199"></a>00199
|
216
|
-
<a name="l00200"></a>00200
|
217
|
-
<a name="l00201"></a>00201
|
218
|
-
<a name="l00202"></a>00202
|
219
|
-
<a name="l00203"></a>00203
|
220
|
-
<a name="l00204"></a>00204
|
221
|
-
<a name="l00205"></a>00205
|
222
|
-
<a name="l00206"></a>00206
|
223
|
-
<a name="l00207"></a>00207
|
224
|
-
<a name="l00208"></a>00208
|
225
|
-
<a name="l00209"></a>00209
|
226
|
-
<a name="l00210"></a>00210
|
227
|
-
<a name="l00211"></a>00211
|
228
|
-
<a name="l00212"></a>00212
|
229
|
-
<a name="l00213"></a>00213
|
230
|
-
<a name="l00214"></a>00214
|
231
|
-
<a name="l00215"></a>00215
|
232
|
-
<a name="l00216"></a>00216
|
233
|
-
<a name="l00217"></a>00217
|
234
|
-
<a name="l00218"></a>00218
|
235
|
-
<a name="l00219"></a>00219
|
236
|
-
<a name="l00220"></a>00220
|
237
|
-
<a name="l00221"></a>00221
|
238
|
-
<a name="l00222"></a>00222
|
239
|
-
<a name="l00223"></a>00223
|
240
|
-
<a name="l00224"></a>00224
|
241
|
-
<a name="l00225"></a>00225
|
242
|
-
<a name="l00226"></a>00226
|
243
|
-
<a name="l00227"></a>00227
|
244
|
-
<a name="l00228"></a>00228
|
245
|
-
<a name="l00229"></a>00229
|
246
|
-
<a name="l00230"></a>00230
|
247
|
-
<a name="l00231"></a>00231
|
248
|
-
<a name="l00232"></a>00232
|
249
|
-
<a name="l00233"></a>00233
|
250
|
-
<a name="l00234"></a>00234
|
251
|
-
<a name="l00235"></a>00235
|
252
|
-
<a name="l00236"></a>00236
|
253
|
-
<a name="l00237"></a>00237
|
254
|
-
<a name="l00238"></a>00238
|
255
|
-
<a name="l00239"></a>00239
|
256
|
-
<a name="l00240"></a>00240
|
257
|
-
<a name="l00241"></a>00241
|
258
|
-
<a name="l00242"></a>00242 <span class="
|
259
|
-
<a name="l00243"></a>00243
|
260
|
-
<a name="l00244"></a>00244
|
261
|
-
<a name="l00245"></a>00245 <span class="
|
262
|
-
<a name="l00246"></a>00246
|
263
|
-
<a name="l00247"></a>00247
|
264
|
-
<a name="l00248"></a>00248
|
265
|
-
<a name="l00249"></a>00249
|
266
|
-
<a name="l00250"></a>00250
|
267
|
-
<a name="l00251"></a>00251
|
268
|
-
<a name="l00252"></a>00252
|
269
|
-
<a name="l00253"></a>00253 <span class="comment">
|
270
|
-
<a name="l00254"></a>00254
|
271
|
-
<a name="l00255"></a>00255
|
272
|
-
<a name="l00256"></a>00256 <span class="comment">
|
273
|
-
<a name="l00257"></a>00257 <span class="comment">
|
274
|
-
<a name="l00258"></a>00258
|
275
|
-
<a name="l00259"></a>00259
|
276
|
-
<a name="l00260"></a>00260 <span class="comment"> /**
|
277
|
-
<a name="l00261"></a>00261
|
278
|
-
<a name="l00262"></a>00262 <span class="
|
279
|
-
<a name="l00263"></a>00263
|
280
|
-
<a name="l00264"></a>00264
|
281
|
-
<a name="l00265"></a>00265
|
282
|
-
<a name="l00266"></a>00266
|
283
|
-
<a name="l00267"></a>00267 <span class="
|
284
|
-
<a name="l00268"></a>00268
|
285
|
-
<a name="l00269"></a>00269 <span class="comment">
|
286
|
-
<a name="l00270"></a>00270
|
287
|
-
<a name="l00271"></a>00271 <span class="
|
288
|
-
<a name="l00272"></a>00272
|
289
|
-
<a name="l00273"></a>00273 <span class="comment">
|
290
|
-
<a name="l00274"></a>00274
|
291
|
-
<a name="l00275"></a>00275 <span class="
|
292
|
-
<a name="l00276"></a>00276
|
293
|
-
<a name="l00277"></a>00277 <span class="comment">
|
294
|
-
<a name="l00278"></a>00278
|
295
|
-
<a name="l00279"></a>00279 <span class="
|
296
|
-
<a name="l00280"></a>00280
|
297
|
-
<a name="l00281"></a>00281
|
298
|
-
<a name="l00282"></a>00282
|
299
|
-
<a name="l00283"></a>00283
|
300
|
-
<a name="l00284"></a>00284
|
301
|
-
<a name="l00285"></a>00285
|
302
|
-
<a name="l00286"></a>00286 <span class="comment"
|
303
|
-
<a name="l00287"></a>00287
|
304
|
-
<a name="l00288"></a>00288
|
305
|
-
<a name="l00289"></a>00289 <span class="comment">
|
306
|
-
<a name="l00290"></a>00290
|
307
|
-
<a name="l00291"></a>00291 <span class="
|
308
|
-
<a name="l00292"></a>00292
|
309
|
-
<a name="l00293"></a>00293 <span class="comment">
|
310
|
-
<a name="l00294"></a>00294
|
311
|
-
<a name="l00295"></a>00295 <span class="
|
312
|
-
<a name="l00296"></a>00296
|
313
|
-
<a name="l00297"></a>00297
|
314
|
-
<a name="l00298"></a>00298
|
315
|
-
<a name="l00299"></a>00299
|
316
|
-
<a name="l00300"></a>00300
|
317
|
-
<a name="l00301"></a>00301
|
318
|
-
<a name="l00302"></a>00302
|
319
|
-
<a name="l00303"></a>00303
|
320
|
-
<a name="l00304"></a>00304
|
321
|
-
<a name="l00305"></a>00305
|
322
|
-
<a name="l00306"></a>00306
|
323
|
-
<a name="l00307"></a>00307
|
324
|
-
<a name="l00308"></a>00308
|
325
|
-
<a name="l00309"></a>00309
|
326
|
-
<a name="l00310"></a>00310
|
327
|
-
<a name="l00311"></a>00311
|
328
|
-
<a name="l00312"></a>00312
|
329
|
-
<a name="l00313"></a>00313
|
330
|
-
<a name="l00314"></a>00314
|
331
|
-
<a name="l00315"></a>00315
|
332
|
-
<a name="l00316"></a>00316
|
333
|
-
<a name="l00317"></a>00317
|
334
|
-
<a name="l00318"></a>00318
|
335
|
-
<a name="l00319"></a>00319
|
336
|
-
<a name="l00320"></a>00320
|
337
|
-
<a name="l00321"></a>00321 <span class="
|
338
|
-
<a name="l00322"></a>00322
|
339
|
-
<a name="l00323"></a>00323
|
340
|
-
<a name="l00324"></a>00324
|
341
|
-
<a name="l00325"></a>00325
|
342
|
-
<a name="l00326"></a>00326
|
343
|
-
<a name="l00327"></a>00327
|
344
|
-
<a name="l00328"></a>00328
|
345
|
-
<a name="l00329"></a>00329
|
346
|
-
<a name="l00330"></a>00330 <span class="
|
347
|
-
<a name="l00331"></a>00331 <span class="comment"
|
348
|
-
<a name="l00332"></a>00332 <span class="
|
349
|
-
<a name="l00333"></a>00333 <span class="
|
350
|
-
<a name="l00334"></a>00334
|
351
|
-
<a name="l00335"></a>00335 <span class="
|
352
|
-
<a name="l00336"></a>00336 <span class="
|
353
|
-
<a name="l00337"></a>00337 <span class="
|
354
|
-
<a name="l00338"></a>00338 <span class="
|
355
|
-
<a name="l00339"></a>00339 <span class="comment"
|
356
|
-
<a name="l00340"></a>00340 <span class="comment"
|
357
|
-
<a name="l00341"></a>00341 <span class="
|
218
|
+
<a name="l00197"></a>00197 <span class="keyword">const</span> <span class="keywordtype">char</span> *getSpawnMethodString() {
|
219
|
+
<a name="l00198"></a>00198 <span class="keywordflow">switch</span> (spawnMethod) {
|
220
|
+
<a name="l00199"></a>00199 <span class="keywordflow">case</span> SM_SMART:
|
221
|
+
<a name="l00200"></a>00200 <span class="keywordflow">return</span> <span class="stringliteral">"smart"</span>;
|
222
|
+
<a name="l00201"></a>00201 <span class="keywordflow">case</span> SM_SMART_LV2:
|
223
|
+
<a name="l00202"></a>00202 <span class="keywordflow">return</span> <span class="stringliteral">"smart-lv2"</span>;
|
224
|
+
<a name="l00203"></a>00203 <span class="keywordflow">case</span> SM_CONSERVATIVE:
|
225
|
+
<a name="l00204"></a>00204 <span class="keywordflow">return</span> <span class="stringliteral">"conservative"</span>;
|
226
|
+
<a name="l00205"></a>00205 <span class="keywordflow">default</span>:
|
227
|
+
<a name="l00206"></a>00206 <span class="keywordflow">return</span> <span class="stringliteral">"smart-lv2"</span>;
|
228
|
+
<a name="l00207"></a>00207 }
|
229
|
+
<a name="l00208"></a>00208 }
|
230
|
+
<a name="l00209"></a>00209
|
231
|
+
<a name="l00210"></a>00210 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> getMaxRequests() {
|
232
|
+
<a name="l00211"></a>00211 <span class="keywordflow">if</span> (maxRequestsSpecified) {
|
233
|
+
<a name="l00212"></a>00212 <span class="keywordflow">return</span> maxRequests;
|
234
|
+
<a name="l00213"></a>00213 } <span class="keywordflow">else</span> {
|
235
|
+
<a name="l00214"></a>00214 <span class="keywordflow">return</span> 0;
|
236
|
+
<a name="l00215"></a>00215 }
|
237
|
+
<a name="l00216"></a>00216 }
|
238
|
+
<a name="l00217"></a>00217
|
239
|
+
<a name="l00218"></a>00218 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> getMemoryLimit() {
|
240
|
+
<a name="l00219"></a>00219 <span class="keywordflow">if</span> (memoryLimitSpecified) {
|
241
|
+
<a name="l00220"></a>00220 <span class="keywordflow">return</span> memoryLimit;
|
242
|
+
<a name="l00221"></a>00221 } <span class="keywordflow">else</span> {
|
243
|
+
<a name="l00222"></a>00222 <span class="keywordflow">return</span> 200;
|
244
|
+
<a name="l00223"></a>00223 }
|
245
|
+
<a name="l00224"></a>00224 }
|
246
|
+
<a name="l00225"></a>00225
|
247
|
+
<a name="l00226"></a>00226 <span class="keywordtype">bool</span> highPerformanceMode()<span class="keyword"> const </span>{
|
248
|
+
<a name="l00227"></a>00227 <span class="keywordflow">return</span> highPerformance == ENABLED;
|
249
|
+
<a name="l00228"></a>00228 }
|
250
|
+
<a name="l00229"></a>00229
|
251
|
+
<a name="l00230"></a>00230 <span class="keywordtype">bool</span> usingGlobalQueue()<span class="keyword"> const </span>{
|
252
|
+
<a name="l00231"></a>00231 <span class="keywordflow">return</span> useGlobalQueue == ENABLED;
|
253
|
+
<a name="l00232"></a>00232 }
|
254
|
+
<a name="l00233"></a>00233
|
255
|
+
<a name="l00234"></a>00234 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> getStatThrottleRate()<span class="keyword"> const </span>{
|
256
|
+
<a name="l00235"></a>00235 <span class="keywordflow">if</span> (statThrottleRateSpecified) {
|
257
|
+
<a name="l00236"></a>00236 <span class="keywordflow">return</span> statThrottleRate;
|
258
|
+
<a name="l00237"></a>00237 } <span class="keywordflow">else</span> {
|
259
|
+
<a name="l00238"></a>00238 <span class="keywordflow">return</span> 0;
|
260
|
+
<a name="l00239"></a>00239 }
|
261
|
+
<a name="l00240"></a>00240 }
|
262
|
+
<a name="l00241"></a>00241
|
263
|
+
<a name="l00242"></a>00242 <span class="keyword">const</span> <span class="keywordtype">char</span> *getRestartDir()<span class="keyword"> const </span>{
|
264
|
+
<a name="l00243"></a>00243 <span class="keywordflow">if</span> (restartDir != NULL) {
|
265
|
+
<a name="l00244"></a>00244 <span class="keywordflow">return</span> restartDir;
|
266
|
+
<a name="l00245"></a>00245 } <span class="keywordflow">else</span> {
|
267
|
+
<a name="l00246"></a>00246 <span class="keywordflow">return</span> <span class="stringliteral">""</span>;
|
268
|
+
<a name="l00247"></a>00247 }
|
269
|
+
<a name="l00248"></a>00248 }
|
270
|
+
<a name="l00249"></a>00249
|
271
|
+
<a name="l00250"></a>00250 <span class="comment">/*************************************/</span>
|
272
|
+
<a name="l00251"></a>00251 };
|
273
|
+
<a name="l00252"></a>00252 <span class="comment"></span>
|
274
|
+
<a name="l00253"></a>00253 <span class="comment"> /**</span>
|
275
|
+
<a name="l00254"></a>00254 <span class="comment"> * Server-wide (global, not per-virtual host) configuration information.</span>
|
276
|
+
<a name="l00255"></a>00255 <span class="comment"> *</span>
|
277
|
+
<a name="l00256"></a>00256 <span class="comment"> * Use the getter methods to query information, because those will return</span>
|
278
|
+
<a name="l00257"></a>00257 <span class="comment"> * the default value if the value is not specified.</span>
|
279
|
+
<a name="l00258"></a>00258 <span class="comment"> */</span>
|
280
|
+
<a name="l00259"></a>00259 <span class="keyword">struct </span>ServerConfig {<span class="comment"></span>
|
281
|
+
<a name="l00260"></a>00260 <span class="comment"> /** The filename of the Ruby interpreter to use. */</span>
|
282
|
+
<a name="l00261"></a>00261 <span class="keyword">const</span> <span class="keywordtype">char</span> *ruby;
|
283
|
+
<a name="l00262"></a>00262 <span class="comment"></span>
|
284
|
+
<a name="l00263"></a>00263 <span class="comment"> /** The Passenger root folder. */</span>
|
285
|
+
<a name="l00264"></a>00264 <span class="keyword">const</span> <span class="keywordtype">char</span> *root;
|
286
|
+
<a name="l00265"></a>00265 <span class="comment"></span>
|
287
|
+
<a name="l00266"></a>00266 <span class="comment"> /** The log verbosity. */</span>
|
288
|
+
<a name="l00267"></a>00267 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> logLevel;
|
289
|
+
<a name="l00268"></a>00268 <span class="comment"></span>
|
290
|
+
<a name="l00269"></a>00269 <span class="comment"> /** The maximum number of simultaneously alive application</span>
|
291
|
+
<a name="l00270"></a>00270 <span class="comment"> * instances. */</span>
|
292
|
+
<a name="l00271"></a>00271 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> maxPoolSize;
|
293
|
+
<a name="l00272"></a>00272 <span class="comment"></span>
|
294
|
+
<a name="l00273"></a>00273 <span class="comment"> /** Whether the maxPoolSize option was explicitly specified in</span>
|
295
|
+
<a name="l00274"></a>00274 <span class="comment"> * this server config. */</span>
|
296
|
+
<a name="l00275"></a>00275 <span class="keywordtype">bool</span> maxPoolSizeSpecified;
|
297
|
+
<a name="l00276"></a>00276 <span class="comment"></span>
|
298
|
+
<a name="l00277"></a>00277 <span class="comment"> /** The maximum number of simultaneously alive Rails application</span>
|
299
|
+
<a name="l00278"></a>00278 <span class="comment"> * that a single Rails application may occupy. */</span>
|
300
|
+
<a name="l00279"></a>00279 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> maxInstancesPerApp;
|
301
|
+
<a name="l00280"></a>00280 <span class="comment"></span>
|
302
|
+
<a name="l00281"></a>00281 <span class="comment"> /** Whether the maxInstancesPerApp option was explicitly specified in</span>
|
303
|
+
<a name="l00282"></a>00282 <span class="comment"> * this server config. */</span>
|
304
|
+
<a name="l00283"></a>00283 <span class="keywordtype">bool</span> maxInstancesPerAppSpecified;
|
305
|
+
<a name="l00284"></a>00284 <span class="comment"></span>
|
306
|
+
<a name="l00285"></a>00285 <span class="comment"> /** The maximum number of seconds that an application may be</span>
|
307
|
+
<a name="l00286"></a>00286 <span class="comment"> * idle before it gets terminated. */</span>
|
308
|
+
<a name="l00287"></a>00287 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> poolIdleTime;
|
309
|
+
<a name="l00288"></a>00288 <span class="comment"></span>
|
310
|
+
<a name="l00289"></a>00289 <span class="comment"> /** Whether the poolIdleTime option was explicitly specified in</span>
|
311
|
+
<a name="l00290"></a>00290 <span class="comment"> * this server config. */</span>
|
312
|
+
<a name="l00291"></a>00291 <span class="keywordtype">bool</span> poolIdleTimeSpecified;
|
313
|
+
<a name="l00292"></a>00292 <span class="comment"></span>
|
314
|
+
<a name="l00293"></a>00293 <span class="comment"> /** Whether user switching support is enabled. */</span>
|
315
|
+
<a name="l00294"></a>00294 <span class="keywordtype">bool</span> userSwitching;
|
316
|
+
<a name="l00295"></a>00295 <span class="comment"></span>
|
317
|
+
<a name="l00296"></a>00296 <span class="comment"> /** Whether the userSwitching option was explicitly specified in</span>
|
318
|
+
<a name="l00297"></a>00297 <span class="comment"> * this server config. */</span>
|
319
|
+
<a name="l00298"></a>00298 <span class="keywordtype">bool</span> userSwitchingSpecified;
|
320
|
+
<a name="l00299"></a>00299 <span class="comment"></span>
|
321
|
+
<a name="l00300"></a>00300 <span class="comment"> /** The user that applications must run as if user switching</span>
|
322
|
+
<a name="l00301"></a>00301 <span class="comment"> * fails or is disabled. NULL means the option is not specified.</span>
|
323
|
+
<a name="l00302"></a>00302 <span class="comment"> */</span>
|
324
|
+
<a name="l00303"></a>00303 <span class="keyword">const</span> <span class="keywordtype">char</span> *defaultUser;
|
325
|
+
<a name="l00304"></a>00304 <span class="comment"></span>
|
326
|
+
<a name="l00305"></a>00305 <span class="comment"> /** The temp directory that Passenger should use. NULL</span>
|
327
|
+
<a name="l00306"></a>00306 <span class="comment"> * means unspecified.</span>
|
328
|
+
<a name="l00307"></a>00307 <span class="comment"> */</span>
|
329
|
+
<a name="l00308"></a>00308 <span class="keyword">const</span> <span class="keywordtype">char</span> *tempDir;
|
330
|
+
<a name="l00309"></a>00309
|
331
|
+
<a name="l00310"></a>00310 <span class="keyword">const</span> <span class="keywordtype">char</span> *getDefaultUser()<span class="keyword"> const </span>{
|
332
|
+
<a name="l00311"></a>00311 <span class="keywordflow">if</span> (defaultUser != NULL) {
|
333
|
+
<a name="l00312"></a>00312 <span class="keywordflow">return</span> defaultUser;
|
334
|
+
<a name="l00313"></a>00313 } <span class="keywordflow">else</span> {
|
335
|
+
<a name="l00314"></a>00314 <span class="keywordflow">return</span> <span class="stringliteral">"nobody"</span>;
|
336
|
+
<a name="l00315"></a>00315 }
|
337
|
+
<a name="l00316"></a>00316 }
|
338
|
+
<a name="l00317"></a>00317
|
339
|
+
<a name="l00318"></a>00318 <span class="keyword">const</span> <span class="keywordtype">char</span> *getTempDir()<span class="keyword"> const </span>{
|
340
|
+
<a name="l00319"></a>00319 <span class="keywordflow">if</span> (tempDir != NULL) {
|
341
|
+
<a name="l00320"></a>00320 <span class="keywordflow">return</span> tempDir;
|
342
|
+
<a name="l00321"></a>00321 } <span class="keywordflow">else</span> {
|
343
|
+
<a name="l00322"></a>00322 <span class="keywordflow">return</span> getSystemTempDir();
|
344
|
+
<a name="l00323"></a>00323 }
|
345
|
+
<a name="l00324"></a>00324 }
|
346
|
+
<a name="l00325"></a>00325 };
|
347
|
+
<a name="l00326"></a>00326 }
|
348
|
+
<a name="l00327"></a>00327
|
349
|
+
<a name="l00328"></a>00328 <span class="keyword">extern</span> <span class="stringliteral">"C"</span> {
|
350
|
+
<a name="l00329"></a>00329 <span class="preprocessor">#endif</span>
|
351
|
+
<a name="l00330"></a>00330 <span class="preprocessor"></span><span class="comment"></span>
|
352
|
+
<a name="l00331"></a>00331 <span class="comment">/** Configuration hook for per-directory configuration structure creation. */</span>
|
353
|
+
<a name="l00332"></a>00332 <span class="keywordtype">void</span> *<a class="code" href="group__Configuration.html#g92dc583c1fa5f8025149799e356a6c78" title="Configuration hook for per-directory configuration structure creation.">passenger_config_create_dir</a>(apr_pool_t *p, <span class="keywordtype">char</span> *dirspec);
|
354
|
+
<a name="l00333"></a>00333 <span class="comment"></span>
|
355
|
+
<a name="l00334"></a>00334 <span class="comment">/** Configuration hook for per-directory configuration structure merging. */</span>
|
356
|
+
<a name="l00335"></a>00335 <span class="keywordtype">void</span> *<a class="code" href="group__Configuration.html#g17787a036ef3f4dc46ae0acc9da2c7b0" title="Configuration hook for per-directory configuration structure merging.">passenger_config_merge_dir</a>(apr_pool_t *p, <span class="keywordtype">void</span> *basev, <span class="keywordtype">void</span> *addv);
|
357
|
+
<a name="l00336"></a>00336 <span class="comment"></span>
|
358
|
+
<a name="l00337"></a>00337 <span class="comment">/** Configuration hook for per-server configuration structure creation. */</span>
|
359
|
+
<a name="l00338"></a>00338 <span class="keywordtype">void</span> *<a class="code" href="group__Configuration.html#ga93bd8d426649b4e86da38eb67a49178" title="Configuration hook for per-server configuration structure creation.">passenger_config_create_server</a>(apr_pool_t *p, server_rec *s);
|
360
|
+
<a name="l00339"></a>00339 <span class="comment"></span>
|
361
|
+
<a name="l00340"></a>00340 <span class="comment">/** Configuration hook for per-server configuration structure merging. */</span>
|
362
|
+
<a name="l00341"></a>00341 <span class="keywordtype">void</span> *<a class="code" href="group__Configuration.html#g95c963a61867190928d912779952b15e" title="Configuration hook for per-server configuration structure merging.">passenger_config_merge_server</a>(apr_pool_t *p, <span class="keywordtype">void</span> *basev, <span class="keywordtype">void</span> *overridesv);
|
358
363
|
<a name="l00342"></a>00342
|
359
|
-
<a name="l00343"></a>00343 <span class="
|
364
|
+
<a name="l00343"></a>00343 <span class="keywordtype">void</span> passenger_config_merge_all_servers(apr_pool_t *pool, server_rec *main_server);
|
365
|
+
<a name="l00344"></a>00344 <span class="comment"></span>
|
366
|
+
<a name="l00345"></a>00345 <span class="comment">/** Apache module commands array. */</span>
|
367
|
+
<a name="l00346"></a>00346 <span class="keyword">extern</span> <span class="keyword">const</span> command_rec <a class="code" href="group__Configuration.html#g21954abbf4018583acb9d8daef3dfd95" title="Apache module commands array.">passenger_commands</a>[];
|
368
|
+
<a name="l00347"></a>00347
|
369
|
+
<a name="l00348"></a>00348 <span class="preprocessor">#ifdef __cplusplus</span>
|
370
|
+
<a name="l00349"></a>00349 <span class="preprocessor"></span> }
|
371
|
+
<a name="l00350"></a>00350 <span class="preprocessor">#endif</span>
|
372
|
+
<a name="l00351"></a>00351 <span class="preprocessor"></span><span class="comment"></span>
|
373
|
+
<a name="l00352"></a>00352 <span class="comment">/**</span>
|
374
|
+
<a name="l00353"></a>00353 <span class="comment"> * @}</span>
|
375
|
+
<a name="l00354"></a>00354 <span class="comment"> */</span>
|
376
|
+
<a name="l00355"></a>00355
|
377
|
+
<a name="l00356"></a>00356 <span class="preprocessor">#endif </span><span class="comment">/* _PASSENGER_CONFIGURATION_H_ */</span>
|
360
378
|
</pre></div></div>
|
361
|
-
<hr size="1"><address style="text-align: right;"><small>Generated on
|
379
|
+
<hr size="1"><address style="text-align: right;"><small>Generated on Thu Apr 16 19:48:18 2009 for Passenger by
|
362
380
|
<a href="http://www.doxygen.org/index.html">
|
363
|
-
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.
|
381
|
+
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
|
364
382
|
</body>
|
365
383
|
</html>
|