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 +1 @@
|
|
1
|
-
<area shape="rect" href="$classPassenger_1_1StandardApplicationPool.html" title="A standard implementation of ApplicationPool for single-process environments." alt="" coords="5,
|
1
|
+
<area shape="rect" href="$classPassenger_1_1StandardApplicationPool.html" title="A standard implementation of ApplicationPool for single-process environments." alt="" coords="5,80,251,107">
|
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
1cf90f56fca0d37b32c4cf4625b36b20
|
Binary file
|
@@ -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: Member List</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>
|
@@ -23,22 +23,22 @@
|
|
23
23
|
</div>
|
24
24
|
</div>
|
25
25
|
<div class="contents">
|
26
|
-
<h1>Passenger::Application::Session Member List</h1>This is the complete list of members for <a class="el" href="classPassenger_1_1Application_1_1Session.html">Passenger::Application::Session</a>, including all inherited members.<p><table>
|
27
|
-
<tr class="memlist"><td><a class="el" href="classPassenger_1_1Application_1_1Session.html#
|
28
|
-
<tr class="memlist"><td><a class="el" href="classPassenger_1_1Application_1_1Session.html#
|
29
|
-
<tr class="memlist"><td><a class="el" href="classPassenger_1_1Application_1_1Session.html#
|
30
|
-
<tr class="memlist"><td><a class="el" href="classPassenger_1_1Application_1_1Session.html#
|
31
|
-
<tr class="memlist"><td><a class="el" href="classPassenger_1_1Application_1_1Session.html#
|
32
|
-
<tr class="memlist"><td><a class="el" href="classPassenger_1_1Application_1_1Session.html#
|
33
|
-
<tr class="memlist"><td><a class="el" href="classPassenger_1_1Application_1_1Session.html#
|
34
|
-
<tr class="memlist"><td><a class="el" href="classPassenger_1_1Application_1_1Session.html#
|
35
|
-
<tr class="memlist"><td><a class="el" href="classPassenger_1_1Application_1_1Session.html#
|
36
|
-
<tr class="memlist"><td><a class="el" href="classPassenger_1_1Application_1_1Session.html#
|
37
|
-
<tr class="memlist"><td><a class="el" href="classPassenger_1_1Application_1_1Session.html#
|
38
|
-
<tr class="memlist"><td><a class="el" href="classPassenger_1_1Application_1_1Session.html#
|
26
|
+
<h1>Passenger::Application::Application::Session Member List</h1>This is the complete list of members for <a class="el" href="classPassenger_1_1Application_1_1Session.html">Passenger::Application::Application::Session</a>, including all inherited members.<p><table>
|
27
|
+
<tr class="memlist"><td><a class="el" href="classPassenger_1_1Application_1_1Session.html#bc463c55e17fe5784f351ac699f20ce4">closeStream</a>()=0</td><td><a class="el" href="classPassenger_1_1Application_1_1Session.html">Passenger::Application::Application::Session</a></td><td><code> [pure virtual]</code></td></tr>
|
28
|
+
<tr class="memlist"><td><a class="el" href="classPassenger_1_1Application_1_1Session.html#f092d4757e2d460c6f6f979473c1c4ba">discardStream</a>()=0</td><td><a class="el" href="classPassenger_1_1Application_1_1Session.html">Passenger::Application::Application::Session</a></td><td><code> [pure virtual]</code></td></tr>
|
29
|
+
<tr class="memlist"><td><a class="el" href="classPassenger_1_1Application_1_1Session.html#19cdd7428efcff759bae674fafe2dc5b">getPid</a>() const =0</td><td><a class="el" href="classPassenger_1_1Application_1_1Session.html">Passenger::Application::Application::Session</a></td><td><code> [pure virtual]</code></td></tr>
|
30
|
+
<tr class="memlist"><td><a class="el" href="classPassenger_1_1Application_1_1Session.html#fc8050e44db34aee17bc79520ba3c7dd">getStream</a>() const =0</td><td><a class="el" href="classPassenger_1_1Application_1_1Session.html">Passenger::Application::Application::Session</a></td><td><code> [pure virtual]</code></td></tr>
|
31
|
+
<tr class="memlist"><td><a class="el" href="classPassenger_1_1Application_1_1Session.html#012b2ee56c8b514f800c1ce3cee8c11b">sendBodyBlock</a>(const char *block, unsigned int size)</td><td><a class="el" href="classPassenger_1_1Application_1_1Session.html">Passenger::Application::Application::Session</a></td><td><code> [inline, virtual]</code></td></tr>
|
32
|
+
<tr class="memlist"><td><a class="el" href="classPassenger_1_1Application_1_1Session.html#fc3ecd1067d5bdb0e514c366de7bdcc9">sendHeaders</a>(const char *headers, unsigned int size)</td><td><a class="el" href="classPassenger_1_1Application_1_1Session.html">Passenger::Application::Application::Session</a></td><td><code> [inline, virtual]</code></td></tr>
|
33
|
+
<tr class="memlist"><td><a class="el" href="classPassenger_1_1Application_1_1Session.html#5ad6f1c3bca11a1083d53e2aff9f81d9">sendHeaders</a>(const string &headers)</td><td><a class="el" href="classPassenger_1_1Application_1_1Session.html">Passenger::Application::Application::Session</a></td><td><code> [inline, virtual]</code></td></tr>
|
34
|
+
<tr class="memlist"><td><a class="el" href="classPassenger_1_1Application_1_1Session.html#b4487fdd198a3a2e2bde74e5d3c2396e">setReaderTimeout</a>(unsigned int msec)=0</td><td><a class="el" href="classPassenger_1_1Application_1_1Session.html">Passenger::Application::Application::Session</a></td><td><code> [pure virtual]</code></td></tr>
|
35
|
+
<tr class="memlist"><td><a class="el" href="classPassenger_1_1Application_1_1Session.html#e279c219606fd20048bde44a150c5b17">setWriterTimeout</a>(unsigned int msec)=0</td><td><a class="el" href="classPassenger_1_1Application_1_1Session.html">Passenger::Application::Application::Session</a></td><td><code> [pure virtual]</code></td></tr>
|
36
|
+
<tr class="memlist"><td><a class="el" href="classPassenger_1_1Application_1_1Session.html#95ea71f3a7e2cb1d66681285371cbabe">shutdownReader</a>()=0</td><td><a class="el" href="classPassenger_1_1Application_1_1Session.html">Passenger::Application::Application::Session</a></td><td><code> [pure virtual]</code></td></tr>
|
37
|
+
<tr class="memlist"><td><a class="el" href="classPassenger_1_1Application_1_1Session.html#bfb2a4f08a0fa24a97e75c9a96205bba">shutdownWriter</a>()=0</td><td><a class="el" href="classPassenger_1_1Application_1_1Session.html">Passenger::Application::Application::Session</a></td><td><code> [pure virtual]</code></td></tr>
|
38
|
+
<tr class="memlist"><td><a class="el" href="classPassenger_1_1Application_1_1Session.html#a1659ee23386eec51cf1d297897e8e9f">~Session</a>()</td><td><a class="el" href="classPassenger_1_1Application_1_1Session.html">Passenger::Application::Application::Session</a></td><td><code> [inline, virtual]</code></td></tr>
|
39
39
|
</table></div>
|
40
|
-
<hr size="1"><address style="text-align: right;"><small>Generated on
|
40
|
+
<hr size="1"><address style="text-align: right;"><small>Generated on Wed Apr 8 22:35:12 2009 for Passenger by
|
41
41
|
<a href="http://www.doxygen.org/index.html">
|
42
|
-
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.
|
42
|
+
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
|
43
43
|
</body>
|
44
44
|
</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
|
-
<title>Passenger: Passenger::Application::Session Class Reference</title>
|
4
|
-
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
3
|
+
<title>Passenger: Passenger::Application::Application::Session Class Reference</title>
|
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>
|
@@ -25,159 +25,123 @@
|
|
25
25
|
</div>
|
26
26
|
</div>
|
27
27
|
<div class="contents">
|
28
|
-
<h1>Passenger::Application::Session Class Reference</h1><!-- doxytag: class="Passenger::Application::Session"
|
28
|
+
<h1>Passenger::Application::Application::Session Class Reference</h1><!-- doxytag: class="Passenger::Application::Session" -->Represents the life time of a single request/response pair of a Ruby on Rails or Rack application.
|
29
|
+
<a href="#_details">More...</a>
|
29
30
|
<p>
|
30
|
-
|
31
|
+
<code>#include <<a class="el" href="Application_8h-source.html">Application.h</a>></code>
|
31
32
|
<p>
|
32
|
-
|
33
|
-
<p>
|
34
|
-
<a href="classPassenger_1_1Application_1_1Session-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
|
35
|
-
Represents the life time of a single request/response pair of a Ruby on Rails or Rack application.
|
33
|
+
Inherited by Passenger::Application::Application::StandardSession, and Passenger::ApplicationPoolServer::ApplicationPoolServer::RemoteSession.
|
36
34
|
<p>
|
37
|
-
|
38
|
-
In general, a session object is to be used in the following manner:<p>
|
39
|
-
<ol type=1>
|
40
|
-
<li>Convert the HTTP request headers into a string, as expected by <a class="el" href="classPassenger_1_1Application_1_1Session.html#78a4c93fd80f6d913f092c488ea4d360" title="Send HTTP request headers to the application.">sendHeaders()</a>. Then send that string by calling <a class="el" href="classPassenger_1_1Application_1_1Session.html#78a4c93fd80f6d913f092c488ea4d360" title="Send HTTP request headers to the application.">sendHeaders()</a>.</li><li>In case of a POST of PUT request, send the HTTP request body by calling <a class="el" href="classPassenger_1_1Application_1_1Session.html#2091e4b60dcbe42ab80fa387610fd669" title="Send a chunk of HTTP request body data to the application.">sendBodyBlock()</a>, possibly multiple times.</li><li>Shutdown the writer channel since you're now done sending data.</li><li>The HTTP response can now be read through the reader channel (<a class="el" href="classPassenger_1_1Application_1_1Session.html#2631b6d6b4927ec66b1f620df15d8c6e" title="Get the I/O stream's file descriptor.">getStream()</a>).</li><li>When the HTTP response has been read, the session must be closed. This is done by destroying the <a class="el" href="classPassenger_1_1Application_1_1Session.html" title="Represents the life time of a single request/response pair of a Ruby on Rails or...">Session</a> object.</li></ol>
|
35
|
+
|
41
36
|
<p>
|
42
|
-
|
37
|
+
<a href="classPassenger_1_1Application_1_1Session-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
|
43
38
|
<tr><td></td></tr>
|
44
39
|
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
|
45
|
-
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="
|
46
|
-
virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Application_1_1Session.html#
|
40
|
+
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a1659ee23386eec51cf1d297897e8e9f"></a><!-- doxytag: member="Passenger::Application::Session::~Session" ref="a1659ee23386eec51cf1d297897e8e9f" args="()" -->
|
41
|
+
virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Application_1_1Session.html#a1659ee23386eec51cf1d297897e8e9f">~Session</a> ()</td></tr>
|
47
42
|
|
48
43
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Implementing classes might throw arbitrary exceptions. <br></td></tr>
|
49
|
-
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Application_1_1Session.html#
|
44
|
+
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Application_1_1Session.html#fc3ecd1067d5bdb0e514c366de7bdcc9">sendHeaders</a> (const char *headers, unsigned int size)</td></tr>
|
50
45
|
|
51
|
-
<tr><td class="mdescLeft"> </td><td class="mdescRight">Send HTTP request headers to the application. <a href="#
|
52
|
-
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Application_1_1Session.html#
|
46
|
+
<tr><td class="mdescLeft"> </td><td class="mdescRight">Send HTTP request headers to the application. <a href="#fc3ecd1067d5bdb0e514c366de7bdcc9"></a><br></td></tr>
|
47
|
+
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Application_1_1Session.html#5ad6f1c3bca11a1083d53e2aff9f81d9">sendHeaders</a> (const string &headers)</td></tr>
|
53
48
|
|
54
|
-
<tr><td class="mdescLeft"> </td><td class="mdescRight">Convenience shortcut for <a class="el" href="classPassenger_1_1Application_1_1Session.html#
|
55
|
-
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Application_1_1Session.html#
|
49
|
+
<tr><td class="mdescLeft"> </td><td class="mdescRight">Convenience shortcut for <a class="el" href="classPassenger_1_1Application_1_1Session.html#fc3ecd1067d5bdb0e514c366de7bdcc9" title="Send HTTP request headers to the application.">sendHeaders(const char *, unsigned int)</a>. <a href="#5ad6f1c3bca11a1083d53e2aff9f81d9"></a><br></td></tr>
|
50
|
+
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Application_1_1Session.html#012b2ee56c8b514f800c1ce3cee8c11b">sendBodyBlock</a> (const char *block, unsigned int size)</td></tr>
|
56
51
|
|
57
|
-
<tr><td class="mdescLeft"> </td><td class="mdescRight">Send a chunk of HTTP request body data to the application. <a href="#
|
58
|
-
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int </td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Application_1_1Session.html#
|
52
|
+
<tr><td class="mdescLeft"> </td><td class="mdescRight">Send a chunk of HTTP request body data to the application. <a href="#012b2ee56c8b514f800c1ce3cee8c11b"></a><br></td></tr>
|
53
|
+
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int </td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Application_1_1Session.html#fc8050e44db34aee17bc79520ba3c7dd">getStream</a> () const =0</td></tr>
|
59
54
|
|
60
|
-
<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the I/O stream's file descriptor. <a href="#
|
61
|
-
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Application_1_1Session.html#
|
55
|
+
<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the I/O stream's file descriptor. <a href="#fc8050e44db34aee17bc79520ba3c7dd"></a><br></td></tr>
|
56
|
+
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Application_1_1Session.html#b4487fdd198a3a2e2bde74e5d3c2396e">setReaderTimeout</a> (unsigned int msec)=0</td></tr>
|
62
57
|
|
63
|
-
<tr><td class="mdescLeft"> </td><td class="mdescRight">Set the timeout value for reading data from the I/O stream. <a href="#
|
64
|
-
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Application_1_1Session.html#
|
58
|
+
<tr><td class="mdescLeft"> </td><td class="mdescRight">Set the timeout value for reading data from the I/O stream. <a href="#b4487fdd198a3a2e2bde74e5d3c2396e"></a><br></td></tr>
|
59
|
+
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Application_1_1Session.html#e279c219606fd20048bde44a150c5b17">setWriterTimeout</a> (unsigned int msec)=0</td></tr>
|
65
60
|
|
66
|
-
<tr><td class="mdescLeft"> </td><td class="mdescRight">Set the timeout value for writing data from the I/O stream. <a href="#
|
67
|
-
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Application_1_1Session.html#
|
61
|
+
<tr><td class="mdescLeft"> </td><td class="mdescRight">Set the timeout value for writing data from the I/O stream. <a href="#e279c219606fd20048bde44a150c5b17"></a><br></td></tr>
|
62
|
+
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Application_1_1Session.html#95ea71f3a7e2cb1d66681285371cbabe">shutdownReader</a> ()=0</td></tr>
|
68
63
|
|
69
|
-
<tr><td class="mdescLeft"> </td><td class="mdescRight">Indicate that we don't want to read data anymore from the I/O stream. <a href="#
|
70
|
-
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Application_1_1Session.html#
|
64
|
+
<tr><td class="mdescLeft"> </td><td class="mdescRight">Indicate that we don't want to read data anymore from the I/O stream. <a href="#95ea71f3a7e2cb1d66681285371cbabe"></a><br></td></tr>
|
65
|
+
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Application_1_1Session.html#bfb2a4f08a0fa24a97e75c9a96205bba">shutdownWriter</a> ()=0</td></tr>
|
71
66
|
|
72
|
-
<tr><td class="mdescLeft"> </td><td class="mdescRight">Indicate that we don't want to write data anymore to the I/O stream. <a href="#
|
73
|
-
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Application_1_1Session.html#
|
67
|
+
<tr><td class="mdescLeft"> </td><td class="mdescRight">Indicate that we don't want to write data anymore to the I/O stream. <a href="#bfb2a4f08a0fa24a97e75c9a96205bba"></a><br></td></tr>
|
68
|
+
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Application_1_1Session.html#bc463c55e17fe5784f351ac699f20ce4">closeStream</a> ()=0</td></tr>
|
74
69
|
|
75
|
-
<tr><td class="mdescLeft"> </td><td class="mdescRight">Close the I/O stream. <a href="#
|
76
|
-
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="
|
77
|
-
virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Application_1_1Session.html#
|
70
|
+
<tr><td class="mdescLeft"> </td><td class="mdescRight">Close the I/O stream. <a href="#bc463c55e17fe5784f351ac699f20ce4"></a><br></td></tr>
|
71
|
+
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="f092d4757e2d460c6f6f979473c1c4ba"></a><!-- doxytag: member="Passenger::Application::Session::discardStream" ref="f092d4757e2d460c6f6f979473c1c4ba" args="()=0" -->
|
72
|
+
virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Application_1_1Session.html#f092d4757e2d460c6f6f979473c1c4ba">discardStream</a> ()=0</td></tr>
|
78
73
|
|
79
74
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Discard the I/O stream's file descriptor, so that <a class="el" href="classPassenger_1_1Application_1_1Session.html" title="Represents the life time of a single request/response pair of a Ruby on Rails or...">Session</a> won't automatically closed it upon Session's destruction. <br></td></tr>
|
80
|
-
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="
|
81
|
-
virtual pid_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Application_1_1Session.html#
|
75
|
+
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="19cdd7428efcff759bae674fafe2dc5b"></a><!-- doxytag: member="Passenger::Application::Session::getPid" ref="19cdd7428efcff759bae674fafe2dc5b" args="() const =0" -->
|
76
|
+
virtual pid_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Application_1_1Session.html#19cdd7428efcff759bae674fafe2dc5b">getPid</a> () const =0</td></tr>
|
82
77
|
|
83
78
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the process ID of the application instance that belongs to this session. <br></td></tr>
|
84
79
|
</table>
|
85
|
-
<hr><h2>
|
86
|
-
|
80
|
+
<hr><a name="_details"></a><h2>Detailed Description</h2>
|
81
|
+
Represents the life time of a single request/response pair of a Ruby on Rails or Rack application.
|
82
|
+
<p>
|
83
|
+
<a class="el" href="classPassenger_1_1Application_1_1Session.html" title="Represents the life time of a single request/response pair of a Ruby on Rails or...">Session</a> is used to forward a single HTTP request to a Ruby on Rails/Rack application. A <a class="el" href="classPassenger_1_1Application_1_1Session.html" title="Represents the life time of a single request/response pair of a Ruby on Rails or...">Session</a> has two communication channels: one for reading data from the application, and one for writing data to the application.<p>
|
84
|
+
In general, a session object is to be used in the following manner:<p>
|
85
|
+
<ol type=1>
|
86
|
+
<li>Convert the HTTP request headers into a string, as expected by <a class="el" href="classPassenger_1_1Application_1_1Session.html#fc3ecd1067d5bdb0e514c366de7bdcc9" title="Send HTTP request headers to the application.">sendHeaders()</a>. Then send that string by calling <a class="el" href="classPassenger_1_1Application_1_1Session.html#fc3ecd1067d5bdb0e514c366de7bdcc9" title="Send HTTP request headers to the application.">sendHeaders()</a>.</li><li>In case of a POST of PUT request, send the HTTP request body by calling <a class="el" href="classPassenger_1_1Application_1_1Session.html#012b2ee56c8b514f800c1ce3cee8c11b" title="Send a chunk of HTTP request body data to the application.">sendBodyBlock()</a>, possibly multiple times.</li><li>Shutdown the writer channel since you're now done sending data.</li><li>The HTTP response can now be read through the reader channel (<a class="el" href="classPassenger_1_1Application_1_1Session.html#fc8050e44db34aee17bc79520ba3c7dd" title="Get the I/O stream's file descriptor.">getStream()</a>).</li><li>When the HTTP response has been read, the session must be closed. This is done by destroying the <a class="el" href="classPassenger_1_1Application_1_1Session.html" title="Represents the life time of a single request/response pair of a Ruby on Rails or...">Session</a> object.</li></ol>
|
87
|
+
<p>
|
88
|
+
A usage example is shown in <a class="el" href="classPassenger_1_1Application.html#34636f796ff3924ad5ec142aaa581379" title="Connect to this application instance with the purpose of sending a request to the...">Application::connect()</a>. <hr><h2>Member Function Documentation</h2>
|
89
|
+
<a class="anchor" name="bc463c55e17fe5784f351ac699f20ce4"></a><!-- doxytag: member="Passenger::Application::Session::closeStream" ref="bc463c55e17fe5784f351ac699f20ce4" args="()=0" -->
|
87
90
|
<div class="memitem">
|
88
91
|
<div class="memproto">
|
89
92
|
<table class="memname">
|
90
93
|
<tr>
|
91
|
-
<td class="memname">virtual void Passenger::Application::Session::
|
94
|
+
<td class="memname">virtual void Passenger::Application::Application::Session::closeStream </td>
|
92
95
|
<td>(</td>
|
93
|
-
<td class="
|
94
|
-
<td
|
95
|
-
|
96
|
-
<tr>
|
97
|
-
<td class="paramkey"></td>
|
98
|
-
<td></td>
|
99
|
-
<td class="paramtype">unsigned int </td>
|
100
|
-
<td class="paramname"> <em>size</em></td><td> </td>
|
101
|
-
</tr>
|
102
|
-
<tr>
|
103
|
-
<td></td>
|
104
|
-
<td>)</td>
|
105
|
-
<td></td><td></td><td width="100%"><code> [inline, virtual]</code></td>
|
96
|
+
<td class="paramname"> </td>
|
97
|
+
<td> ) </td>
|
98
|
+
<td><code> [pure virtual]</code></td>
|
106
99
|
</tr>
|
107
100
|
</table>
|
108
101
|
</div>
|
109
102
|
<div class="memdoc">
|
110
103
|
|
111
104
|
<p>
|
112
|
-
|
105
|
+
Close the I/O stream.
|
113
106
|
<p>
|
114
|
-
The HTTP headers must be converted into CGI headers, and then encoded into a string that matches this grammar:<p>
|
115
|
-
<div class="fragment"><pre class="fragment">
|
116
|
-
headers ::= header*
|
117
|
-
header ::= name NUL value NUL
|
118
|
-
name ::= notnull+
|
119
|
-
value ::= notnull+
|
120
|
-
notnull ::= "\x01" | "\x02" | "\x02" | ... | "\xFF"
|
121
|
-
NUL = "\x00"
|
122
|
-
</pre></div><p>
|
123
|
-
This method should be the first one to be called during the lifetime of a <a class="el" href="classPassenger_1_1Application_1_1Session.html" title="Represents the life time of a single request/response pair of a Ruby on Rails or...">Session</a> object. Otherwise strange things may happen.<p>
|
124
|
-
<dl compact><dt><b>Parameters:</b></dt><dd>
|
125
|
-
<table border="0" cellspacing="2" cellpadding="0">
|
126
|
-
<tr><td valign="top"></td><td valign="top"><em>headers</em> </td><td>The HTTP request headers, converted into CGI headers and encoded as a string, according to the description. </td></tr>
|
127
|
-
<tr><td valign="top"></td><td valign="top"><em>size</em> </td><td>The size, in bytes, of <code>headers</code>. </td></tr>
|
128
|
-
</table>
|
129
|
-
</dl>
|
130
|
-
<dl class="pre" compact><dt><b>Precondition:</b></dt><dd>headers != NULL </dd></dl>
|
131
107
|
<dl compact><dt><b>Exceptions:</b></dt><dd>
|
132
108
|
<table border="0" cellspacing="2" cellpadding="0">
|
133
|
-
<tr><td valign="top"></td><td valign="top"><em><a class="el" href="
|
134
|
-
<tr><td valign="top"></td><td valign="top"><em><a class="el" href="classPassenger_1_1SystemException.html" title="Represents an error returned by a system call or a standard library call.">SystemException</a></em> </td><td>Something went wrong during writing. </td></tr>
|
109
|
+
<tr><td valign="top"></td><td valign="top"><em><a class="el" href="classPassenger_1_1SystemException.html" title="Represents an error returned by a system call or a standard library call.">SystemException</a></em> </td><td>Something went wrong. </td></tr>
|
135
110
|
<tr><td valign="top"></td><td valign="top"><em>boost::thread_interrupted</em> </td><td></td></tr>
|
136
111
|
</table>
|
137
112
|
</dl>
|
138
113
|
|
139
114
|
</div>
|
140
115
|
</div><p>
|
141
|
-
<a class="anchor" name="
|
116
|
+
<a class="anchor" name="fc8050e44db34aee17bc79520ba3c7dd"></a><!-- doxytag: member="Passenger::Application::Session::getStream" ref="fc8050e44db34aee17bc79520ba3c7dd" args="() const =0" -->
|
142
117
|
<div class="memitem">
|
143
118
|
<div class="memproto">
|
144
119
|
<table class="memname">
|
145
120
|
<tr>
|
146
|
-
<td class="memname">virtual
|
121
|
+
<td class="memname">virtual int Passenger::Application::Application::Session::getStream </td>
|
147
122
|
<td>(</td>
|
148
|
-
<td class="
|
149
|
-
<td class="paramname"> <em>headers</em> </td>
|
123
|
+
<td class="paramname"> </td>
|
150
124
|
<td> ) </td>
|
151
|
-
<td
|
125
|
+
<td> const<code> [pure virtual]</code></td>
|
152
126
|
</tr>
|
153
127
|
</table>
|
154
128
|
</div>
|
155
129
|
<div class="memdoc">
|
156
130
|
|
157
131
|
<p>
|
158
|
-
|
132
|
+
Get the I/O stream's file descriptor.
|
159
133
|
<p>
|
160
|
-
<
|
161
|
-
|
162
|
-
<tr><td valign="top"></td><td valign="top"><em>headers</em> </td><td></td></tr>
|
163
|
-
</table>
|
164
|
-
</dl>
|
165
|
-
<dl compact><dt><b>Exceptions:</b></dt><dd>
|
166
|
-
<table border="0" cellspacing="2" cellpadding="0">
|
167
|
-
<tr><td valign="top"></td><td valign="top"><em><a class="el" href="classPassenger_1_1IOException.html" title="Represents an error that occured during an I/O operation.">IOException</a></em> </td><td>The writer channel has already been closed. </td></tr>
|
168
|
-
<tr><td valign="top"></td><td valign="top"><em><a class="el" href="classPassenger_1_1SystemException.html" title="Represents an error returned by a system call or a standard library call.">SystemException</a></em> </td><td>Something went wrong during writing. </td></tr>
|
169
|
-
<tr><td valign="top"></td><td valign="top"><em>boost::thread_interrupted</em> </td><td></td></tr>
|
170
|
-
</table>
|
171
|
-
</dl>
|
134
|
+
This steam is full-duplex, and will be automatically closed upon Session's destruction, unless <a class="el" href="classPassenger_1_1Application_1_1Session.html#f092d4757e2d460c6f6f979473c1c4ba" title="Discard the I/O stream's file descriptor, so that Session won't automatically...">discardStream()</a> is called.<p>
|
135
|
+
<dl class="pre" compact><dt><b>Precondition:</b></dt><dd>The stream has not been fully closed. </dd></dl>
|
172
136
|
|
173
137
|
</div>
|
174
138
|
</div><p>
|
175
|
-
<a class="anchor" name="
|
139
|
+
<a class="anchor" name="012b2ee56c8b514f800c1ce3cee8c11b"></a><!-- doxytag: member="Passenger::Application::Session::sendBodyBlock" ref="012b2ee56c8b514f800c1ce3cee8c11b" args="(const char *block, unsigned int size)" -->
|
176
140
|
<div class="memitem">
|
177
141
|
<div class="memproto">
|
178
142
|
<table class="memname">
|
179
143
|
<tr>
|
180
|
-
<td class="memname">virtual void Passenger::Application::Session::sendBodyBlock </td>
|
144
|
+
<td class="memname">virtual void Passenger::Application::Application::Session::sendBodyBlock </td>
|
181
145
|
<td>(</td>
|
182
146
|
<td class="paramtype">const char * </td>
|
183
147
|
<td class="paramname"> <em>block</em>, </td>
|
@@ -191,7 +155,7 @@ Convenience shortcut for <a class="el" href="classPassenger_1_1Application_1_1Se
|
|
191
155
|
<tr>
|
192
156
|
<td></td>
|
193
157
|
<td>)</td>
|
194
|
-
<td></td><td></td><td
|
158
|
+
<td></td><td></td><td><code> [inline, virtual]</code></td>
|
195
159
|
</tr>
|
196
160
|
</table>
|
197
161
|
</div>
|
@@ -201,7 +165,7 @@ Convenience shortcut for <a class="el" href="classPassenger_1_1Application_1_1Se
|
|
201
165
|
Send a chunk of HTTP request body data to the application.
|
202
166
|
<p>
|
203
167
|
You can call this method as many times as is required to transfer the entire HTTP request body.<p>
|
204
|
-
This method should only be called after a <a class="el" href="classPassenger_1_1Application_1_1Session.html#
|
168
|
+
This method should only be called after a <a class="el" href="classPassenger_1_1Application_1_1Session.html#fc3ecd1067d5bdb0e514c366de7bdcc9" title="Send HTTP request headers to the application.">sendHeaders()</a>. Otherwise strange things may happen.<p>
|
205
169
|
<dl compact><dt><b>Parameters:</b></dt><dd>
|
206
170
|
<table border="0" cellspacing="2" cellpadding="0">
|
207
171
|
<tr><td valign="top"></td><td valign="top"><em>block</em> </td><td>A block of HTTP request body data to send. </td></tr>
|
@@ -218,82 +182,115 @@ This method should only be called after a <a class="el" href="classPassenger_1_1
|
|
218
182
|
|
219
183
|
</div>
|
220
184
|
</div><p>
|
221
|
-
<a class="anchor" name="
|
185
|
+
<a class="anchor" name="5ad6f1c3bca11a1083d53e2aff9f81d9"></a><!-- doxytag: member="Passenger::Application::Session::sendHeaders" ref="5ad6f1c3bca11a1083d53e2aff9f81d9" args="(const string &headers)" -->
|
222
186
|
<div class="memitem">
|
223
187
|
<div class="memproto">
|
224
188
|
<table class="memname">
|
225
189
|
<tr>
|
226
|
-
<td class="memname">virtual
|
190
|
+
<td class="memname">virtual void Passenger::Application::Application::Session::sendHeaders </td>
|
227
191
|
<td>(</td>
|
228
|
-
<td class="
|
192
|
+
<td class="paramtype">const string & </td>
|
193
|
+
<td class="paramname"> <em>headers</em> </td>
|
229
194
|
<td> ) </td>
|
230
|
-
<td
|
195
|
+
<td><code> [inline, virtual]</code></td>
|
231
196
|
</tr>
|
232
197
|
</table>
|
233
198
|
</div>
|
234
199
|
<div class="memdoc">
|
235
200
|
|
236
201
|
<p>
|
237
|
-
|
202
|
+
Convenience shortcut for <a class="el" href="classPassenger_1_1Application_1_1Session.html#fc3ecd1067d5bdb0e514c366de7bdcc9" title="Send HTTP request headers to the application.">sendHeaders(const char *, unsigned int)</a>.
|
238
203
|
<p>
|
239
|
-
|
240
|
-
<
|
204
|
+
<dl compact><dt><b>Parameters:</b></dt><dd>
|
205
|
+
<table border="0" cellspacing="2" cellpadding="0">
|
206
|
+
<tr><td valign="top"></td><td valign="top"><em>headers</em> </td><td></td></tr>
|
207
|
+
</table>
|
208
|
+
</dl>
|
209
|
+
<dl compact><dt><b>Exceptions:</b></dt><dd>
|
210
|
+
<table border="0" cellspacing="2" cellpadding="0">
|
211
|
+
<tr><td valign="top"></td><td valign="top"><em><a class="el" href="classPassenger_1_1IOException.html" title="Represents an error that occured during an I/O operation.">IOException</a></em> </td><td>The writer channel has already been closed. </td></tr>
|
212
|
+
<tr><td valign="top"></td><td valign="top"><em><a class="el" href="classPassenger_1_1SystemException.html" title="Represents an error returned by a system call or a standard library call.">SystemException</a></em> </td><td>Something went wrong during writing. </td></tr>
|
213
|
+
<tr><td valign="top"></td><td valign="top"><em>boost::thread_interrupted</em> </td><td></td></tr>
|
214
|
+
</table>
|
215
|
+
</dl>
|
241
216
|
|
242
217
|
</div>
|
243
218
|
</div><p>
|
244
|
-
<a class="anchor" name="
|
219
|
+
<a class="anchor" name="fc3ecd1067d5bdb0e514c366de7bdcc9"></a><!-- doxytag: member="Passenger::Application::Session::sendHeaders" ref="fc3ecd1067d5bdb0e514c366de7bdcc9" args="(const char *headers, unsigned int size)" -->
|
245
220
|
<div class="memitem">
|
246
221
|
<div class="memproto">
|
247
222
|
<table class="memname">
|
248
223
|
<tr>
|
249
|
-
<td class="memname">virtual void Passenger::Application::Session::
|
224
|
+
<td class="memname">virtual void Passenger::Application::Application::Session::sendHeaders </td>
|
250
225
|
<td>(</td>
|
226
|
+
<td class="paramtype">const char * </td>
|
227
|
+
<td class="paramname"> <em>headers</em>, </td>
|
228
|
+
</tr>
|
229
|
+
<tr>
|
230
|
+
<td class="paramkey"></td>
|
231
|
+
<td></td>
|
251
232
|
<td class="paramtype">unsigned int </td>
|
252
|
-
<td class="paramname"> <em>
|
253
|
-
|
254
|
-
|
233
|
+
<td class="paramname"> <em>size</em></td><td> </td>
|
234
|
+
</tr>
|
235
|
+
<tr>
|
236
|
+
<td></td>
|
237
|
+
<td>)</td>
|
238
|
+
<td></td><td></td><td><code> [inline, virtual]</code></td>
|
255
239
|
</tr>
|
256
240
|
</table>
|
257
241
|
</div>
|
258
242
|
<div class="memdoc">
|
259
243
|
|
260
244
|
<p>
|
261
|
-
|
245
|
+
Send HTTP request headers to the application.
|
262
246
|
<p>
|
263
|
-
|
247
|
+
The HTTP headers must be converted into CGI headers, and then encoded into a string that matches this grammar:<p>
|
248
|
+
<div class="fragment"><pre class="fragment">
|
249
|
+
headers ::= header*
|
250
|
+
header ::= name NUL value NUL
|
251
|
+
name ::= notnull+
|
252
|
+
value ::= notnull+
|
253
|
+
notnull ::= "\x01" | "\x02" | "\x02" | ... | "\xFF"
|
254
|
+
NUL = "\x00"
|
255
|
+
</pre></div><p>
|
256
|
+
This method should be the first one to be called during the lifetime of a <a class="el" href="classPassenger_1_1Application_1_1Session.html" title="Represents the life time of a single request/response pair of a Ruby on Rails or...">Session</a> object. Otherwise strange things may happen.<p>
|
264
257
|
<dl compact><dt><b>Parameters:</b></dt><dd>
|
265
258
|
<table border="0" cellspacing="2" cellpadding="0">
|
266
|
-
<tr><td valign="top"></td><td valign="top"><em>
|
259
|
+
<tr><td valign="top"></td><td valign="top"><em>headers</em> </td><td>The HTTP request headers, converted into CGI headers and encoded as a string, according to the description. </td></tr>
|
260
|
+
<tr><td valign="top"></td><td valign="top"><em>size</em> </td><td>The size, in bytes, of <code>headers</code>. </td></tr>
|
267
261
|
</table>
|
268
262
|
</dl>
|
263
|
+
<dl class="pre" compact><dt><b>Precondition:</b></dt><dd>headers != NULL </dd></dl>
|
269
264
|
<dl compact><dt><b>Exceptions:</b></dt><dd>
|
270
265
|
<table border="0" cellspacing="2" cellpadding="0">
|
271
|
-
<tr><td valign="top"></td><td valign="top"><em><a class="el" href="
|
266
|
+
<tr><td valign="top"></td><td valign="top"><em><a class="el" href="classPassenger_1_1IOException.html" title="Represents an error that occured during an I/O operation.">IOException</a></em> </td><td>The writer channel has already been closed. </td></tr>
|
267
|
+
<tr><td valign="top"></td><td valign="top"><em><a class="el" href="classPassenger_1_1SystemException.html" title="Represents an error returned by a system call or a standard library call.">SystemException</a></em> </td><td>Something went wrong during writing. </td></tr>
|
268
|
+
<tr><td valign="top"></td><td valign="top"><em>boost::thread_interrupted</em> </td><td></td></tr>
|
272
269
|
</table>
|
273
270
|
</dl>
|
274
271
|
|
275
272
|
</div>
|
276
273
|
</div><p>
|
277
|
-
<a class="anchor" name="
|
274
|
+
<a class="anchor" name="b4487fdd198a3a2e2bde74e5d3c2396e"></a><!-- doxytag: member="Passenger::Application::Session::setReaderTimeout" ref="b4487fdd198a3a2e2bde74e5d3c2396e" args="(unsigned int msec)=0" -->
|
278
275
|
<div class="memitem">
|
279
276
|
<div class="memproto">
|
280
277
|
<table class="memname">
|
281
278
|
<tr>
|
282
|
-
<td class="memname">virtual void Passenger::Application::Session::
|
279
|
+
<td class="memname">virtual void Passenger::Application::Application::Session::setReaderTimeout </td>
|
283
280
|
<td>(</td>
|
284
281
|
<td class="paramtype">unsigned int </td>
|
285
282
|
<td class="paramname"> <em>msec</em> </td>
|
286
283
|
<td> ) </td>
|
287
|
-
<td
|
284
|
+
<td><code> [pure virtual]</code></td>
|
288
285
|
</tr>
|
289
286
|
</table>
|
290
287
|
</div>
|
291
288
|
<div class="memdoc">
|
292
289
|
|
293
290
|
<p>
|
294
|
-
Set the timeout value for
|
291
|
+
Set the timeout value for reading data from the I/O stream.
|
295
292
|
<p>
|
296
|
-
If no data can be
|
293
|
+
If no data can be read within the timeout period, then the read call will fail with error EAGAIN or EWOULDBLOCK.<p>
|
297
294
|
<dl compact><dt><b>Parameters:</b></dt><dd>
|
298
295
|
<table border="0" cellspacing="2" cellpadding="0">
|
299
296
|
<tr><td valign="top"></td><td valign="top"><em>msec</em> </td><td>The timeout, in milliseconds. If 0 is given, there will be no timeout. </td></tr>
|
@@ -307,53 +304,58 @@ If no data can be written within the timeout period, then the write call will fa
|
|
307
304
|
|
308
305
|
</div>
|
309
306
|
</div><p>
|
310
|
-
<a class="anchor" name="
|
307
|
+
<a class="anchor" name="e279c219606fd20048bde44a150c5b17"></a><!-- doxytag: member="Passenger::Application::Session::setWriterTimeout" ref="e279c219606fd20048bde44a150c5b17" args="(unsigned int msec)=0" -->
|
311
308
|
<div class="memitem">
|
312
309
|
<div class="memproto">
|
313
310
|
<table class="memname">
|
314
311
|
<tr>
|
315
|
-
<td class="memname">virtual void Passenger::Application::Session::
|
312
|
+
<td class="memname">virtual void Passenger::Application::Application::Session::setWriterTimeout </td>
|
316
313
|
<td>(</td>
|
317
|
-
<td class="
|
314
|
+
<td class="paramtype">unsigned int </td>
|
315
|
+
<td class="paramname"> <em>msec</em> </td>
|
318
316
|
<td> ) </td>
|
319
|
-
<td
|
317
|
+
<td><code> [pure virtual]</code></td>
|
320
318
|
</tr>
|
321
319
|
</table>
|
322
320
|
</div>
|
323
321
|
<div class="memdoc">
|
324
322
|
|
325
323
|
<p>
|
326
|
-
|
324
|
+
Set the timeout value for writing data from the I/O stream.
|
327
325
|
<p>
|
328
|
-
|
326
|
+
If no data can be written within the timeout period, then the write call will fail with error EAGAIN or EWOULDBLOCK.<p>
|
327
|
+
<dl compact><dt><b>Parameters:</b></dt><dd>
|
328
|
+
<table border="0" cellspacing="2" cellpadding="0">
|
329
|
+
<tr><td valign="top"></td><td valign="top"><em>msec</em> </td><td>The timeout, in milliseconds. If 0 is given, there will be no timeout. </td></tr>
|
330
|
+
</table>
|
331
|
+
</dl>
|
329
332
|
<dl compact><dt><b>Exceptions:</b></dt><dd>
|
330
333
|
<table border="0" cellspacing="2" cellpadding="0">
|
331
|
-
<tr><td valign="top"></td><td valign="top"><em><a class="el" href="classPassenger_1_1SystemException.html" title="Represents an error returned by a system call or a standard library call.">SystemException</a></em> </td><td>
|
332
|
-
<tr><td valign="top"></td><td valign="top"><em>boost::thread_interrupted</em> </td><td></td></tr>
|
334
|
+
<tr><td valign="top"></td><td valign="top"><em><a class="el" href="classPassenger_1_1SystemException.html" title="Represents an error returned by a system call or a standard library call.">SystemException</a></em> </td><td>Cannot set the timeout. </td></tr>
|
333
335
|
</table>
|
334
336
|
</dl>
|
335
337
|
|
336
338
|
</div>
|
337
339
|
</div><p>
|
338
|
-
<a class="anchor" name="
|
340
|
+
<a class="anchor" name="95ea71f3a7e2cb1d66681285371cbabe"></a><!-- doxytag: member="Passenger::Application::Session::shutdownReader" ref="95ea71f3a7e2cb1d66681285371cbabe" args="()=0" -->
|
339
341
|
<div class="memitem">
|
340
342
|
<div class="memproto">
|
341
343
|
<table class="memname">
|
342
344
|
<tr>
|
343
|
-
<td class="memname">virtual void Passenger::Application::Session::
|
345
|
+
<td class="memname">virtual void Passenger::Application::Application::Session::shutdownReader </td>
|
344
346
|
<td>(</td>
|
345
347
|
<td class="paramname"> </td>
|
346
348
|
<td> ) </td>
|
347
|
-
<td
|
349
|
+
<td><code> [pure virtual]</code></td>
|
348
350
|
</tr>
|
349
351
|
</table>
|
350
352
|
</div>
|
351
353
|
<div class="memdoc">
|
352
354
|
|
353
355
|
<p>
|
354
|
-
Indicate that we don't want to
|
356
|
+
Indicate that we don't want to read data anymore from the I/O stream.
|
355
357
|
<p>
|
356
|
-
Calling this method after <a class="el" href="classPassenger_1_1Application_1_1Session.html#
|
358
|
+
Calling this method after <a class="el" href="classPassenger_1_1Application_1_1Session.html#bc463c55e17fe5784f351ac699f20ce4" title="Close the I/O stream.">closeStream()</a> is called will have no effect.<p>
|
357
359
|
<dl compact><dt><b>Exceptions:</b></dt><dd>
|
358
360
|
<table border="0" cellspacing="2" cellpadding="0">
|
359
361
|
<tr><td valign="top"></td><td valign="top"><em><a class="el" href="classPassenger_1_1SystemException.html" title="Represents an error returned by a system call or a standard library call.">SystemException</a></em> </td><td>Something went wrong. </td></tr>
|
@@ -363,24 +365,25 @@ Calling this method after <a class="el" href="classPassenger_1_1Application_1_1S
|
|
363
365
|
|
364
366
|
</div>
|
365
367
|
</div><p>
|
366
|
-
<a class="anchor" name="
|
368
|
+
<a class="anchor" name="bfb2a4f08a0fa24a97e75c9a96205bba"></a><!-- doxytag: member="Passenger::Application::Session::shutdownWriter" ref="bfb2a4f08a0fa24a97e75c9a96205bba" args="()=0" -->
|
367
369
|
<div class="memitem">
|
368
370
|
<div class="memproto">
|
369
371
|
<table class="memname">
|
370
372
|
<tr>
|
371
|
-
<td class="memname">virtual void Passenger::Application::Session::
|
373
|
+
<td class="memname">virtual void Passenger::Application::Application::Session::shutdownWriter </td>
|
372
374
|
<td>(</td>
|
373
375
|
<td class="paramname"> </td>
|
374
376
|
<td> ) </td>
|
375
|
-
<td
|
377
|
+
<td><code> [pure virtual]</code></td>
|
376
378
|
</tr>
|
377
379
|
</table>
|
378
380
|
</div>
|
379
381
|
<div class="memdoc">
|
380
382
|
|
381
383
|
<p>
|
382
|
-
|
384
|
+
Indicate that we don't want to write data anymore to the I/O stream.
|
383
385
|
<p>
|
386
|
+
Calling this method after <a class="el" href="classPassenger_1_1Application_1_1Session.html#bc463c55e17fe5784f351ac699f20ce4" title="Close the I/O stream.">closeStream()</a> is called will have no effect.<p>
|
384
387
|
<dl compact><dt><b>Exceptions:</b></dt><dd>
|
385
388
|
<table border="0" cellspacing="2" cellpadding="0">
|
386
389
|
<tr><td valign="top"></td><td valign="top"><em><a class="el" href="classPassenger_1_1SystemException.html" title="Represents an error returned by a system call or a standard library call.">SystemException</a></em> </td><td>Something went wrong. </td></tr>
|
@@ -393,8 +396,8 @@ Close the I/O stream.
|
|
393
396
|
<hr>The documentation for this class was generated from the following file:<ul>
|
394
397
|
<li><a class="el" href="Application_8h-source.html">Application.h</a></ul>
|
395
398
|
</div>
|
396
|
-
<hr size="1"><address style="text-align: right;"><small>Generated on
|
399
|
+
<hr size="1"><address style="text-align: right;"><small>Generated on Wed Apr 8 22:35:12 2009 for Passenger by
|
397
400
|
<a href="http://www.doxygen.org/index.html">
|
398
|
-
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.
|
401
|
+
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
|
399
402
|
</body>
|
400
403
|
</html>
|