passenger 2.2.4 → 2.2.5
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of passenger might be problematic. Click here for more details.
- data/NEWS +137 -0
- data/Rakefile +101 -19
- data/bin/passenger-install-nginx-module +10 -3
- data/bin/passenger-make-enterprisey +1 -1
- data/doc/Users guide Apache.html +227 -92
- data/doc/Users guide Apache.txt +169 -75
- data/doc/Users guide Nginx.html +1 -1
- data/doc/cxxapi/Bucket_8h-source.html +1 -1
- data/doc/cxxapi/Configuration_8h-source.html +373 -338
- data/doc/cxxapi/DirectoryMapper_8h-source.html +1 -1
- data/doc/cxxapi/Hooks_8h-source.html +1 -1
- data/doc/cxxapi/annotated.html +1 -1
- data/doc/cxxapi/classHooks-members.html +1 -1
- data/doc/cxxapi/classHooks.html +2 -2
- data/doc/cxxapi/classPassenger_1_1DirectoryMapper-members.html +1 -1
- data/doc/cxxapi/classPassenger_1_1DirectoryMapper.html +1 -1
- data/doc/cxxapi/classes.html +1 -1
- data/doc/cxxapi/definitions_8h-source.html +1 -1
- data/doc/cxxapi/files.html +1 -1
- data/doc/cxxapi/functions.html +1 -1
- data/doc/cxxapi/functions_func.html +1 -1
- data/doc/cxxapi/graph_legend.html +1 -1
- data/doc/cxxapi/group__Configuration.html +1 -1
- data/doc/cxxapi/group__Core.html +1 -1
- data/doc/cxxapi/group__Hooks.html +1 -1
- data/doc/cxxapi/group__Support.html +1 -1
- data/doc/cxxapi/main.html +1 -1
- data/doc/cxxapi/modules.html +1 -1
- 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 +1 -1
- data/doc/rdoc/classes/PhusionPassenger/AbstractInstaller.html +8 -8
- data/doc/rdoc/classes/PhusionPassenger/AbstractRequestHandler.html +136 -136
- data/doc/rdoc/classes/PhusionPassenger/AbstractServer.html +254 -254
- data/doc/rdoc/classes/PhusionPassenger/AbstractServerCollection.html +61 -61
- data/doc/rdoc/classes/PhusionPassenger/AppInitError.html +4 -4
- data/doc/rdoc/classes/PhusionPassenger/Application.html +14 -14
- data/doc/rdoc/classes/PhusionPassenger/ConsoleTextTemplate.html +12 -12
- data/doc/rdoc/classes/PhusionPassenger/FrameworkInitError.html +4 -4
- data/doc/rdoc/classes/PhusionPassenger/HTMLTemplate.html +12 -12
- data/doc/rdoc/classes/PhusionPassenger/InitializationError.html +5 -5
- data/doc/rdoc/classes/PhusionPassenger/MessageChannel.html +139 -139
- data/doc/rdoc/classes/PhusionPassenger/Rack/RequestHandler.html +61 -56
- data/doc/rdoc/classes/PhusionPassenger/Railz/ApplicationSpawner.html +3 -3
- data/doc/rdoc/classes/PhusionPassenger/Railz/FrameworkSpawner.html +7 -7
- data/doc/rdoc/classes/PhusionPassenger/Railz/RequestHandler.html +15 -15
- data/doc/rdoc/classes/PhusionPassenger/SpawnManager.html +119 -119
- data/doc/rdoc/classes/PhusionPassenger/UnknownError.html +4 -4
- data/doc/rdoc/classes/PhusionPassenger/Utils.html +310 -312
- data/doc/rdoc/classes/PhusionPassenger/Utils/PseudoIO.html +169 -0
- data/doc/rdoc/classes/PhusionPassenger/VersionNotFound.html +4 -4
- data/doc/rdoc/classes/PlatformInfo.html +165 -164
- data/doc/rdoc/classes/Signal.html +23 -23
- data/doc/rdoc/created.rid +1 -1
- data/doc/rdoc/files/ext/phusion_passenger/native_support_c.html +1 -1
- data/doc/rdoc/files/lib/phusion_passenger/abstract_request_handler_rb.html +26 -28
- data/doc/rdoc/files/lib/phusion_passenger/abstract_server_rb.html +26 -28
- data/doc/rdoc/files/lib/phusion_passenger/admin_tools/control_process_rb.html +1 -1
- data/doc/rdoc/files/lib/phusion_passenger/constants_rb.html +1 -1
- data/doc/rdoc/files/lib/phusion_passenger/message_channel_rb.html +26 -28
- data/doc/rdoc/files/lib/phusion_passenger/platform_info_rb.html +1 -1
- data/doc/rdoc/files/lib/phusion_passenger/rack/application_spawner_rb.html +1 -1
- data/doc/rdoc/files/lib/phusion_passenger/rack/request_handler_rb.html +26 -28
- data/doc/rdoc/files/lib/phusion_passenger/railz/application_spawner_rb.html +1 -2
- data/doc/rdoc/files/lib/phusion_passenger/railz/framework_spawner_rb.html +1 -1
- data/doc/rdoc/files/lib/phusion_passenger/railz/request_handler_rb.html +26 -28
- data/doc/rdoc/files/lib/phusion_passenger/spawn_manager_rb.html +26 -28
- data/doc/rdoc/files/lib/phusion_passenger/utils_rb.html +34 -36
- data/doc/rdoc/fr_class_index.html +1 -0
- data/doc/rdoc/fr_method_index.html +72 -68
- data/ext/apache2/Configuration.cpp +69 -15
- data/ext/apache2/Configuration.h +37 -2
- data/ext/apache2/Hooks.cpp +167 -59
- data/ext/common/ApplicationPoolServerExecutable.cpp +1 -1
- data/ext/common/MessageChannel.h +4 -4
- data/ext/common/StandardApplicationPool.h +1 -1
- data/ext/common/Timer.h +2 -0
- data/ext/common/Version.h +1 -1
- data/ext/nginx/Configuration.c +3 -3
- data/ext/nginx/ContentHandler.c +16 -4
- data/ext/nginx/HelperServer.cpp +1 -1
- data/ext/oxt/system_calls.cpp +6 -1
- data/ext/oxt/thread.hpp +17 -2
- data/ext/phusion_passenger/native_support.c +4 -4
- data/lib/phusion_passenger/abstract_request_handler.rb +3 -3
- data/lib/phusion_passenger/abstract_server.rb +1 -0
- data/lib/phusion_passenger/constants.rb +1 -1
- data/lib/phusion_passenger/message_channel.rb +1 -0
- data/lib/phusion_passenger/platform_info.rb +3 -2
- data/lib/phusion_passenger/rack/request_handler.rb +11 -7
- data/lib/phusion_passenger/railz/application_spawner.rb +7 -4
- data/lib/phusion_passenger/railz/request_handler.rb +1 -0
- data/lib/phusion_passenger/spawn_manager.rb +1 -0
- data/lib/phusion_passenger/utils.rb +38 -20
- data/test/integration_tests/apache2_tests.rb +162 -100
- data/test/integration_tests/mycook_spec.rb +63 -62
- data/test/integration_tests/nginx_tests.rb +12 -5
- data/test/ruby/utils_spec.rb +98 -14
- data/test/stub/apache2/httpd.conf.erb +2 -1
- data/test/stub/rails_apps/mycook/app/controllers/welcome_controller.rb +8 -0
- data/test/support/apache2_controller.rb +5 -1
- data/test/support/test_helper.rb +42 -13
- metadata +7 -137
@@ -63,7 +63,7 @@
|
|
63
63
|
</tr>
|
64
64
|
<tr>
|
65
65
|
<td>Modified:</td>
|
66
|
-
<td>
|
66
|
+
<td>Mon Aug 31 15:39:27 +0200 2009</td>
|
67
67
|
</tr>
|
68
68
|
</table>
|
69
69
|
</td></tr>
|
@@ -76,34 +76,32 @@
|
|
76
76
|
<div id="content">
|
77
77
|
|
78
78
|
<div class="description"><p>
|
79
|
-
|
80
|
-
Copyright (c) 2008, 2009 Phusion
|
81
|
-
</p>
|
82
|
-
<p>
|
83
|
-
"Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui.
|
84
|
-
</p>
|
85
|
-
<p>
|
86
|
-
Permission is hereby granted, free of charge, to any person obtaining a
|
87
|
-
copy of this software and associated documentation files (the
|
88
|
-
"Software"), to deal in the Software without restriction,
|
89
|
-
including without limitation the rights to use, copy, modify, merge,
|
90
|
-
publish, distribute, sublicense, and/or sell copies of the Software, and to
|
91
|
-
permit persons to whom the Software is furnished to do so, subject to the
|
92
|
-
following conditions:
|
93
|
-
</p>
|
94
|
-
<p>
|
95
|
-
The above copyright notice and this permission notice shall be included in
|
96
|
-
all copies or substantial portions of the Software.
|
97
|
-
</p>
|
98
|
-
<p>
|
99
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
100
|
-
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
101
|
-
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
|
102
|
-
NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
103
|
-
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
104
|
-
OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
|
105
|
-
USE OR OTHER DEALINGS IN THE SOFTWARE.
|
79
|
+
encoding: binary
|
106
80
|
</p>
|
81
|
+
<pre>
|
82
|
+
Phusion Passenger - http://www.modrails.com/
|
83
|
+
Copyright (c) 2008, 2009 Phusion
|
84
|
+
|
85
|
+
"Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui.
|
86
|
+
|
87
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
88
|
+
of this software and associated documentation files (the "Software"), to deal
|
89
|
+
in the Software without restriction, including without limitation the rights
|
90
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
91
|
+
copies of the Software, and to permit persons to whom the Software is
|
92
|
+
furnished to do so, subject to the following conditions:
|
93
|
+
|
94
|
+
The above copyright notice and this permission notice shall be included in
|
95
|
+
all copies or substantial portions of the Software.
|
96
|
+
|
97
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
98
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
99
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
100
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
101
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
102
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
103
|
+
THE SOFTWARE.
|
104
|
+
</pre>
|
107
105
|
</div>
|
108
106
|
|
109
107
|
<div class="sectiontitle">Required Files</div>
|
@@ -63,7 +63,7 @@
|
|
63
63
|
</tr>
|
64
64
|
<tr>
|
65
65
|
<td>Modified:</td>
|
66
|
-
<td>
|
66
|
+
<td>Mon Aug 31 15:39:27 +0200 2009</td>
|
67
67
|
</tr>
|
68
68
|
</table>
|
69
69
|
</td></tr>
|
@@ -76,34 +76,32 @@
|
|
76
76
|
<div id="content">
|
77
77
|
|
78
78
|
<div class="description"><p>
|
79
|
-
|
80
|
-
Copyright (c) 2008, 2009 Phusion
|
81
|
-
</p>
|
82
|
-
<p>
|
83
|
-
"Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui.
|
84
|
-
</p>
|
85
|
-
<p>
|
86
|
-
Permission is hereby granted, free of charge, to any person obtaining a
|
87
|
-
copy of this software and associated documentation files (the
|
88
|
-
"Software"), to deal in the Software without restriction,
|
89
|
-
including without limitation the rights to use, copy, modify, merge,
|
90
|
-
publish, distribute, sublicense, and/or sell copies of the Software, and to
|
91
|
-
permit persons to whom the Software is furnished to do so, subject to the
|
92
|
-
following conditions:
|
93
|
-
</p>
|
94
|
-
<p>
|
95
|
-
The above copyright notice and this permission notice shall be included in
|
96
|
-
all copies or substantial portions of the Software.
|
97
|
-
</p>
|
98
|
-
<p>
|
99
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
100
|
-
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
101
|
-
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
|
102
|
-
NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
103
|
-
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
104
|
-
OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
|
105
|
-
USE OR OTHER DEALINGS IN THE SOFTWARE.
|
79
|
+
encoding: binary
|
106
80
|
</p>
|
81
|
+
<pre>
|
82
|
+
Phusion Passenger - http://www.modrails.com/
|
83
|
+
Copyright (c) 2008, 2009 Phusion
|
84
|
+
|
85
|
+
"Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui.
|
86
|
+
|
87
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
88
|
+
of this software and associated documentation files (the "Software"), to deal
|
89
|
+
in the Software without restriction, including without limitation the rights
|
90
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
91
|
+
copies of the Software, and to permit persons to whom the Software is
|
92
|
+
furnished to do so, subject to the following conditions:
|
93
|
+
|
94
|
+
The above copyright notice and this permission notice shall be included in
|
95
|
+
all copies or substantial portions of the Software.
|
96
|
+
|
97
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
98
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
99
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
100
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
101
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
102
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
103
|
+
THE SOFTWARE.
|
104
|
+
</pre>
|
107
105
|
</div>
|
108
106
|
|
109
107
|
<div class="sectiontitle">Required Files</div>
|
@@ -143,10 +141,10 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
143
141
|
<p class="source-link">[ <a href="javascript:toggleSource('M000001_source')" id="l_M000001_source">show source</a> ]</p>
|
144
142
|
<div id="M000001_source" class="dyn-source">
|
145
143
|
<pre>
|
146
|
-
<span class="ruby-comment cmt"># File lib/phusion_passenger/utils.rb, line
|
147
|
-
|
148
|
-
|
149
|
-
|
144
|
+
<span class="ruby-comment cmt"># File lib/phusion_passenger/utils.rb, line 584</span>
|
145
|
+
584: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">recv_io</span>
|
146
|
+
585: <span class="ruby-keyword kw">super</span>
|
147
|
+
586: <span class="ruby-keyword kw">end</span>
|
150
148
|
</pre>
|
151
149
|
</div>
|
152
150
|
</div>
|
@@ -159,10 +157,10 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
159
157
|
<p class="source-link">[ <a href="javascript:toggleSource('M000002_source')" id="l_M000002_source">show source</a> ]</p>
|
160
158
|
<div id="M000002_source" class="dyn-source">
|
161
159
|
<pre>
|
162
|
-
<span class="ruby-comment cmt"># File lib/phusion_passenger/utils.rb, line
|
163
|
-
|
164
|
-
|
165
|
-
|
160
|
+
<span class="ruby-comment cmt"># File lib/phusion_passenger/utils.rb, line 588</span>
|
161
|
+
588: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">send_io</span>(<span class="ruby-identifier">io</span>)
|
162
|
+
589: <span class="ruby-keyword kw">super</span>
|
163
|
+
590: <span class="ruby-keyword kw">end</span>
|
166
164
|
</pre>
|
167
165
|
</div>
|
168
166
|
</div>
|
@@ -80,6 +80,7 @@
|
|
80
80
|
<a href="classes/PhusionPassenger/SpawnManager.html">PhusionPassenger::SpawnManager</a><br />
|
81
81
|
<a href="classes/PhusionPassenger/UnknownError.html">PhusionPassenger::UnknownError</a><br />
|
82
82
|
<a href="classes/PhusionPassenger/Utils.html">PhusionPassenger::Utils</a><br />
|
83
|
+
<a href="classes/PhusionPassenger/Utils/PseudoIO.html">PhusionPassenger::Utils::PseudoIO</a><br />
|
83
84
|
<a href="classes/PhusionPassenger/VersionNotFound.html">PhusionPassenger::VersionNotFound</a><br />
|
84
85
|
<a href="classes/PhusionPassenger/WSGI.html">PhusionPassenger::WSGI</a><br />
|
85
86
|
<a href="classes/PhusionPassenger/WSGI/ApplicationSpawner.html">PhusionPassenger::WSGI::ApplicationSpawner</a><br />
|
@@ -42,8 +42,8 @@
|
|
42
42
|
<body>
|
43
43
|
<div class="banner">Methods</div>
|
44
44
|
<div class="entries">
|
45
|
-
<a href="classes/PhusionPassenger/
|
46
|
-
<a href="classes/PhusionPassenger/
|
45
|
+
<a href="classes/PhusionPassenger/ConsoleTextTemplate.html#M000131">[]= (PhusionPassenger::ConsoleTextTemplate)</a><br />
|
46
|
+
<a href="classes/PhusionPassenger/HTMLTemplate.html#M000115">[]= (PhusionPassenger::HTMLTemplate)</a><br />
|
47
47
|
<a href="classes/PhusionPassenger/NativeSupport.html#M000061">accept (PhusionPassenger::NativeSupport)</a><br />
|
48
48
|
<a href="classes/PlatformInfo.html#M000019">apache2_bindir (PlatformInfo)</a><br />
|
49
49
|
<a href="classes/PlatformInfo.html#M000024">apache2_module_cflags (PlatformInfo)</a><br />
|
@@ -66,72 +66,75 @@
|
|
66
66
|
<a href="classes/PhusionPassenger/Utils.html#M000078">assert_valid_username (PhusionPassenger::Utils)</a><br />
|
67
67
|
<a href="classes/Exception.html#M000008">backtrace_string (Exception)</a><br />
|
68
68
|
<a href="classes/PhusionPassenger/AdminTools/ControlProcess.html#M000070">backtraces (PhusionPassenger::AdminTools::ControlProcess)</a><br />
|
69
|
-
<a href="classes/PhusionPassenger/AbstractServer.html#
|
69
|
+
<a href="classes/PhusionPassenger/AbstractServer.html#M000139">before_fork (PhusionPassenger::AbstractServer)</a><br />
|
70
70
|
<a href="classes/PhusionPassenger.html#M000035">call_event (PhusionPassenger)</a><br />
|
71
71
|
<a href="classes/PhusionPassenger/Utils.html#M000074">canonicalize_path (PhusionPassenger::Utils)</a><br />
|
72
|
-
<a href="classes/PhusionPassenger/AbstractServerCollection.html#
|
73
|
-
<a href="classes/PhusionPassenger/
|
74
|
-
<a href="classes/PhusionPassenger/
|
75
|
-
<a href="classes/PhusionPassenger/
|
76
|
-
<a href="classes/PhusionPassenger/AbstractServerCollection.html#
|
77
|
-
<a href="classes/PhusionPassenger/AbstractServer.html#
|
78
|
-
<a href="classes/PhusionPassenger/
|
79
|
-
<a href="classes/PhusionPassenger/
|
72
|
+
<a href="classes/PhusionPassenger/AbstractServerCollection.html#M000108">check_idle_servers! (PhusionPassenger::AbstractServerCollection)</a><br />
|
73
|
+
<a href="classes/PhusionPassenger/AbstractRequestHandler.html#M000125">cleanup (PhusionPassenger::AbstractRequestHandler)</a><br />
|
74
|
+
<a href="classes/PhusionPassenger/SpawnManager.html#M000123">cleanup (PhusionPassenger::SpawnManager)</a><br />
|
75
|
+
<a href="classes/PhusionPassenger/AbstractServerCollection.html#M000112">cleanup (PhusionPassenger::AbstractServerCollection)</a><br />
|
76
|
+
<a href="classes/PhusionPassenger/AbstractServerCollection.html#M000111">clear (PhusionPassenger::AbstractServerCollection)</a><br />
|
77
|
+
<a href="classes/PhusionPassenger/AbstractServer.html#M000145">client (PhusionPassenger::AbstractServer)</a><br />
|
78
|
+
<a href="classes/PhusionPassenger/MessageChannel.html#M000156">close (PhusionPassenger::MessageChannel)</a><br />
|
79
|
+
<a href="classes/PhusionPassenger/Application.html#M000119">close (PhusionPassenger::Application)</a><br />
|
80
80
|
<a href="classes/PhusionPassenger/NativeSupport.html#M000062">close_all_file_descriptors (PhusionPassenger::NativeSupport)</a><br />
|
81
81
|
<a href="classes/PhusionPassenger/Utils.html#M000080">close_all_io_objects_for_fds (PhusionPassenger::Utils)</a><br />
|
82
82
|
<a href="classes/IO.html#M000007">close_on_exec! (IO)</a><br />
|
83
83
|
<a href="classes/GC.html#M000033">copy_on_write_friendly? (GC)</a><br />
|
84
84
|
<a href="classes/PhusionPassenger/NativeSupport.html#M000060">create_unix_socket (PhusionPassenger::NativeSupport)</a><br />
|
85
85
|
<a href="classes/PlatformInfo.html#M000023">debugging_cflags (PlatformInfo)</a><br />
|
86
|
-
<a href="classes/PhusionPassenger/AbstractServer.html#
|
87
|
-
<a href="classes/PhusionPassenger/AbstractServer.html#
|
88
|
-
<a href="classes/PhusionPassenger/AbstractServerCollection.html#
|
89
|
-
<a href="classes/PhusionPassenger/Application.html#
|
86
|
+
<a href="classes/PhusionPassenger/AbstractServer.html#M000142">define_message_handler (PhusionPassenger::AbstractServer)</a><br />
|
87
|
+
<a href="classes/PhusionPassenger/AbstractServer.html#M000143">define_signal_handler (PhusionPassenger::AbstractServer)</a><br />
|
88
|
+
<a href="classes/PhusionPassenger/AbstractServerCollection.html#M000106">delete (PhusionPassenger::AbstractServerCollection)</a><br />
|
89
|
+
<a href="classes/PhusionPassenger/Application.html#M000117">detect_framework_version (PhusionPassenger::Application)</a><br />
|
90
90
|
<a href="classes/PhusionPassenger/NativeSupport.html#M000063">disable_stdio_buffering (PhusionPassenger::NativeSupport)</a><br />
|
91
91
|
<a href="classes/PhusionPassenger/AdminTools/ControlProcess.html#M000072">domains (PhusionPassenger::AdminTools::ControlProcess)</a><br />
|
92
|
-
<a href="classes/PhusionPassenger/
|
93
|
-
<a href="classes/PhusionPassenger/AbstractServerCollection.html#
|
94
|
-
<a href="classes/PhusionPassenger/AbstractServerCollection.html#
|
92
|
+
<a href="classes/PhusionPassenger/Utils/PseudoIO.html#M000095">done! (PhusionPassenger::Utils::PseudoIO)</a><br />
|
93
|
+
<a href="classes/PhusionPassenger/AbstractServerCollection.html#M000109">each (PhusionPassenger::AbstractServerCollection)</a><br />
|
94
|
+
<a href="classes/PhusionPassenger/AbstractServerCollection.html#M000110">each_pair (PhusionPassenger::AbstractServerCollection)</a><br />
|
95
|
+
<a href="classes/PhusionPassenger/AbstractServerCollection.html#M000105">empty? (PhusionPassenger::AbstractServerCollection)</a><br />
|
95
96
|
<a href="classes/PhusionPassenger/Railz/CGIFixed.html#M000045">env_table (PhusionPassenger::Railz::CGIFixed)</a><br />
|
96
|
-
<a href="classes/PhusionPassenger/MessageChannel.html#
|
97
|
-
<a href="classes/PhusionPassenger/AbstractServer.html#
|
98
|
-
<a href="classes/PhusionPassenger/AbstractServer.html#
|
97
|
+
<a href="classes/PhusionPassenger/MessageChannel.html#M000155">fileno (PhusionPassenger::MessageChannel)</a><br />
|
98
|
+
<a href="classes/PhusionPassenger/AbstractServer.html#M000147">fileno_of (PhusionPassenger::AbstractServer)</a><br />
|
99
|
+
<a href="classes/PhusionPassenger/AbstractServer.html#M000141">finalize_server (PhusionPassenger::AbstractServer)</a><br />
|
99
100
|
<a href="classes/PlatformInfo.html#M000011">find_command (PlatformInfo)</a><br />
|
100
101
|
<a href="classes/PhusionPassenger/AdminTools/ControlProcess.html#M000067">for_pid (PhusionPassenger::AdminTools::ControlProcess)</a><br />
|
101
|
-
<a href="classes/PhusionPassenger/AbstractServerCollection.html#
|
102
|
+
<a href="classes/PhusionPassenger/AbstractServerCollection.html#M000104">has_key? (PhusionPassenger::AbstractServerCollection)</a><br />
|
102
103
|
<a href="classes/PlatformInfo.html#M000016">httpd (PlatformInfo)</a><br />
|
103
|
-
<a href="classes/PhusionPassenger/AbstractServer.html#
|
104
|
+
<a href="classes/PhusionPassenger/AbstractServer.html#M000140">initialize_server (PhusionPassenger::AbstractServer)</a><br />
|
104
105
|
<a href="classes/PhusionPassenger/AdminTools/ControlProcess.html#M000073">instances (PhusionPassenger::AdminTools::ControlProcess)</a><br />
|
105
106
|
<a href="classes/PlatformInfo.html#M000031">library_extension (PlatformInfo)</a><br />
|
106
107
|
<a href="classes/PlatformInfo.html#M000032">linux_distro (PlatformInfo)</a><br />
|
107
108
|
<a href="classes/PhusionPassenger/AdminTools/ControlProcess.html#M000066">list (PhusionPassenger::AdminTools::ControlProcess)</a><br />
|
108
109
|
<a href="classes/Signal.html#M000010">list_trappable (Signal)</a><br />
|
109
|
-
<a href="classes/PhusionPassenger/AbstractServerCollection.html#
|
110
|
+
<a href="classes/PhusionPassenger/AbstractServerCollection.html#M000103">lookup_or_add (PhusionPassenger::AbstractServerCollection)</a><br />
|
110
111
|
<a href="classes/PhusionPassenger/Utils.html#M000087">lower_privilege (PhusionPassenger::Utils)</a><br />
|
111
|
-
<a href="classes/PhusionPassenger/AbstractRequestHandler.html#
|
112
|
-
<a href="classes/PhusionPassenger/AbstractRequestHandler.html#
|
112
|
+
<a href="classes/PhusionPassenger/AbstractRequestHandler.html#M000127">main_loop (PhusionPassenger::AbstractRequestHandler)</a><br />
|
113
|
+
<a href="classes/PhusionPassenger/AbstractRequestHandler.html#M000126">main_loop_running? (PhusionPassenger::AbstractRequestHandler)</a><br />
|
113
114
|
<a href="classes/PhusionPassenger/Utils.html#M000081">marshal_exception (PhusionPassenger::Utils)</a><br />
|
115
|
+
<a href="classes/PhusionPassenger/Utils/PseudoIO.html#M000096">method_missing (PhusionPassenger::Utils::PseudoIO)</a><br />
|
114
116
|
<a href="classes/PhusionPassenger.html#M000036">natively_packaged? (PhusionPassenger)</a><br />
|
115
|
-
<a href="classes/PhusionPassenger/
|
116
|
-
<a href="classes/PhusionPassenger/AdminTools/ControlProcess.html#M000068">new (PhusionPassenger::AdminTools::ControlProcess)</a><br />
|
117
|
+
<a href="classes/PhusionPassenger/AbstractServer.html#M000133">new (PhusionPassenger::AbstractServer)</a><br />
|
117
118
|
<a href="classes/PhusionPassenger/Railz/FrameworkSpawner.html#M000039">new (PhusionPassenger::Railz::FrameworkSpawner)</a><br />
|
118
|
-
<a href="classes/PhusionPassenger/Railz/CGIFixed.html#M000043">new (PhusionPassenger::Railz::CGIFixed)</a><br />
|
119
119
|
<a href="classes/PhusionPassenger/Rack/RequestHandler.html#M000056">new (PhusionPassenger::Rack::RequestHandler)</a><br />
|
120
|
-
<a href="classes/PhusionPassenger/
|
121
|
-
<a href="classes/PhusionPassenger/
|
122
|
-
<a href="classes/PhusionPassenger/
|
123
|
-
<a href="classes/PhusionPassenger/UnknownError.html#M000125">new (PhusionPassenger::UnknownError)</a><br />
|
124
|
-
<a href="classes/PhusionPassenger/InitializationError.html#M000096">new (PhusionPassenger::InitializationError)</a><br />
|
125
|
-
<a href="classes/PhusionPassenger/AbstractInstaller.html#M000153">new (PhusionPassenger::AbstractInstaller)</a><br />
|
126
|
-
<a href="classes/PhusionPassenger/Railz/RequestHandler.html#M000052">new (PhusionPassenger::Railz::RequestHandler)</a><br />
|
127
|
-
<a href="classes/PhusionPassenger/AppInitError.html#M000095">new (PhusionPassenger::AppInitError)</a><br />
|
128
|
-
<a href="classes/PhusionPassenger/Application.html#M000114">new (PhusionPassenger::Application)</a><br />
|
129
|
-
<a href="classes/PhusionPassenger/ConsoleTextTemplate.html#M000126">new (PhusionPassenger::ConsoleTextTemplate)</a><br />
|
130
|
-
<a href="classes/PhusionPassenger/MessageChannel.html#M000144">new (PhusionPassenger::MessageChannel)</a><br />
|
120
|
+
<a href="classes/PhusionPassenger/AbstractRequestHandler.html#M000124">new (PhusionPassenger::AbstractRequestHandler)</a><br />
|
121
|
+
<a href="classes/PhusionPassenger/AdminTools/ControlProcess.html#M000068">new (PhusionPassenger::AdminTools::ControlProcess)</a><br />
|
122
|
+
<a href="classes/PhusionPassenger/MessageChannel.html#M000148">new (PhusionPassenger::MessageChannel)</a><br />
|
131
123
|
<a href="classes/PhusionPassenger/Railz/ApplicationSpawner.html#M000048">new (PhusionPassenger::Railz::ApplicationSpawner)</a><br />
|
132
|
-
<a href="classes/PhusionPassenger/
|
133
|
-
<a href="classes/PhusionPassenger/
|
134
|
-
<a href="classes/PhusionPassenger/
|
124
|
+
<a href="classes/PhusionPassenger/SpawnManager.html#M000120">new (PhusionPassenger::SpawnManager)</a><br />
|
125
|
+
<a href="classes/PhusionPassenger/AbstractServerCollection.html#M000101">new (PhusionPassenger::AbstractServerCollection)</a><br />
|
126
|
+
<a href="classes/PhusionPassenger/InitializationError.html#M000100">new (PhusionPassenger::InitializationError)</a><br />
|
127
|
+
<a href="classes/PhusionPassenger/AppInitError.html#M000099">new (PhusionPassenger::AppInitError)</a><br />
|
128
|
+
<a href="classes/PhusionPassenger/Application.html#M000118">new (PhusionPassenger::Application)</a><br />
|
129
|
+
<a href="classes/PhusionPassenger/VersionNotFound.html#M000098">new (PhusionPassenger::VersionNotFound)</a><br />
|
130
|
+
<a href="classes/PhusionPassenger/AbstractInstaller.html#M000157">new (PhusionPassenger::AbstractInstaller)</a><br />
|
131
|
+
<a href="classes/PhusionPassenger/ConsoleTextTemplate.html#M000130">new (PhusionPassenger::ConsoleTextTemplate)</a><br />
|
132
|
+
<a href="classes/PhusionPassenger/HTMLTemplate.html#M000114">new (PhusionPassenger::HTMLTemplate)</a><br />
|
133
|
+
<a href="classes/PhusionPassenger/FrameworkInitError.html#M000113">new (PhusionPassenger::FrameworkInitError)</a><br />
|
134
|
+
<a href="classes/PhusionPassenger/Railz/RequestHandler.html#M000052">new (PhusionPassenger::Railz::RequestHandler)</a><br />
|
135
|
+
<a href="classes/PhusionPassenger/Utils/PseudoIO.html#M000094">new (PhusionPassenger::Utils::PseudoIO)</a><br />
|
136
|
+
<a href="classes/PhusionPassenger/Railz/CGIFixed.html#M000043">new (PhusionPassenger::Railz::CGIFixed)</a><br />
|
137
|
+
<a href="classes/PhusionPassenger/UnknownError.html#M000129">new (PhusionPassenger::UnknownError)</a><br />
|
135
138
|
<a href="classes/PhusionPassenger.html#M000034">on_event (PhusionPassenger)</a><br />
|
136
139
|
<a href="classes/PhusionPassenger/Utils.html#M000092">passenger_tmpdir (PhusionPassenger::Utils)</a><br />
|
137
140
|
<a href="classes/PhusionPassenger/Utils.html#M000091">passenger_tmpdir (PhusionPassenger::Utils)</a><br />
|
@@ -140,61 +143,62 @@
|
|
140
143
|
<a href="classes/PlatformInfo.html#M000022">portability_ldflags (PlatformInfo)</a><br />
|
141
144
|
<a href="classes/PhusionPassenger/Utils.html#M000083">print_exception (PhusionPassenger::Utils)</a><br />
|
142
145
|
<a href="classes/PhusionPassenger/AdminTools.html#M000065">process_is_alive? (PhusionPassenger::AdminTools)</a><br />
|
143
|
-
<a href="classes/PhusionPassenger/Railz/RequestHandler.html#M000053">process_request (PhusionPassenger::Railz::RequestHandler)</a><br />
|
144
146
|
<a href="classes/PhusionPassenger/Rack/RequestHandler.html#M000057">process_request (PhusionPassenger::Rack::RequestHandler)</a><br />
|
145
|
-
<a href="classes/PhusionPassenger/
|
147
|
+
<a href="classes/PhusionPassenger/Railz/RequestHandler.html#M000053">process_request (PhusionPassenger::Railz::RequestHandler)</a><br />
|
148
|
+
<a href="classes/PhusionPassenger/AbstractServer.html#M000146">quit_main (PhusionPassenger::AbstractServer)</a><br />
|
146
149
|
<a href="classes/PlatformInfo.html#M000012">rake (PlatformInfo)</a><br />
|
147
|
-
<a href="classes/PhusionPassenger/MessageChannel.html#
|
148
|
-
<a href="classes/PhusionPassenger/MessageChannel.html#
|
150
|
+
<a href="classes/PhusionPassenger/MessageChannel.html#M000149">read (PhusionPassenger::MessageChannel)</a><br />
|
151
|
+
<a href="classes/PhusionPassenger/MessageChannel.html#M000150">read_scalar (PhusionPassenger::MessageChannel)</a><br />
|
149
152
|
<a href="classes/PhusionPassenger/NativeSupport.html#M000059">recv_fd (PhusionPassenger::NativeSupport)</a><br />
|
150
153
|
<a href="files/lib/phusion_passenger/utils_rb.html#M000001">recv_io (lib/phusion_passenger/utils.rb)</a><br />
|
154
|
+
<a href="classes/PhusionPassenger/MessageChannel.html#M000153">recv_io (PhusionPassenger::MessageChannel)</a><br />
|
151
155
|
<a href="classes/IO.html#M000006">recv_io (IO)</a><br />
|
152
|
-
<a href="classes/PhusionPassenger/
|
153
|
-
<a href="classes/PhusionPassenger/AbstractServerCollection.html#M000103">register_activity (PhusionPassenger::AbstractServerCollection)</a><br />
|
156
|
+
<a href="classes/PhusionPassenger/AbstractServerCollection.html#M000107">register_activity (PhusionPassenger::AbstractServerCollection)</a><br />
|
154
157
|
<a href="classes/PhusionPassenger/Railz/FrameworkSpawner.html#M000042">reload (PhusionPassenger::Railz::FrameworkSpawner)</a><br />
|
155
|
-
<a href="classes/PhusionPassenger/SpawnManager.html#
|
158
|
+
<a href="classes/PhusionPassenger/SpawnManager.html#M000122">reload (PhusionPassenger::SpawnManager)</a><br />
|
156
159
|
<a href="classes/PhusionPassenger/Utils.html#M000085">report_app_init_status (PhusionPassenger::Utils)</a><br />
|
157
|
-
<a href="classes/PhusionPassenger/
|
158
|
-
<a href="classes/PhusionPassenger/
|
160
|
+
<a href="classes/PhusionPassenger/Utils/PseudoIO.html#M000097">respond_to? (PhusionPassenger::Utils::PseudoIO)</a><br />
|
161
|
+
<a href="classes/PhusionPassenger/ConsoleTextTemplate.html#M000132">result (PhusionPassenger::ConsoleTextTemplate)</a><br />
|
162
|
+
<a href="classes/PhusionPassenger/HTMLTemplate.html#M000116">result (PhusionPassenger::HTMLTemplate)</a><br />
|
159
163
|
<a href="classes/PlatformInfo.html#M000013">rspec (PlatformInfo)</a><br />
|
160
164
|
<a href="classes/PhusionPassenger/Utils.html#M000084">safe_fork (PhusionPassenger::Utils)</a><br />
|
161
165
|
<a href="classes/PhusionPassenger/Utils.html#M000090">sanitize_spawn_options (PhusionPassenger::Utils)</a><br />
|
162
166
|
<a href="classes/PhusionPassenger/NativeSupport.html#M000058">send_fd (PhusionPassenger::NativeSupport)</a><br />
|
163
|
-
<a href="files/lib/phusion_passenger/utils_rb.html#M000002">send_io (lib/phusion_passenger/utils.rb)</a><br />
|
164
167
|
<a href="classes/IO.html#M000005">send_io (IO)</a><br />
|
165
|
-
<a href="classes/PhusionPassenger/MessageChannel.html#
|
166
|
-
<a href="
|
167
|
-
<a href="classes/PhusionPassenger/AbstractServer.html#
|
168
|
-
<a href="classes/PhusionPassenger/
|
168
|
+
<a href="classes/PhusionPassenger/MessageChannel.html#M000154">send_io (PhusionPassenger::MessageChannel)</a><br />
|
169
|
+
<a href="files/lib/phusion_passenger/utils_rb.html#M000002">send_io (lib/phusion_passenger/utils.rb)</a><br />
|
170
|
+
<a href="classes/PhusionPassenger/AbstractServer.html#M000144">server (PhusionPassenger::AbstractServer)</a><br />
|
171
|
+
<a href="classes/PhusionPassenger/AbstractServer.html#M000138">server_pid (PhusionPassenger::AbstractServer)</a><br />
|
172
|
+
<a href="classes/PhusionPassenger/WSGI/ApplicationSpawner.html#M000038">spawn_application (PhusionPassenger::WSGI::ApplicationSpawner)</a><br />
|
169
173
|
<a href="classes/PhusionPassenger/Rack/ApplicationSpawner.html#M000054">spawn_application (PhusionPassenger::Rack::ApplicationSpawner)</a><br />
|
174
|
+
<a href="classes/PhusionPassenger/Railz/FrameworkSpawner.html#M000041">spawn_application (PhusionPassenger::Railz::FrameworkSpawner)</a><br />
|
175
|
+
<a href="classes/PhusionPassenger/SpawnManager.html#M000121">spawn_application (PhusionPassenger::SpawnManager)</a><br />
|
170
176
|
<a href="classes/PhusionPassenger/Rack/ApplicationSpawner.html#M000055">spawn_application (PhusionPassenger::Rack::ApplicationSpawner)</a><br />
|
171
|
-
<a href="classes/PhusionPassenger/WSGI/ApplicationSpawner.html#M000038">spawn_application (PhusionPassenger::WSGI::ApplicationSpawner)</a><br />
|
172
177
|
<a href="classes/PhusionPassenger/WSGI/ApplicationSpawner.html#M000037">spawn_application (PhusionPassenger::WSGI::ApplicationSpawner)</a><br />
|
173
178
|
<a href="classes/PhusionPassenger/Railz/ApplicationSpawner.html#M000049">spawn_application (PhusionPassenger::Railz::ApplicationSpawner)</a><br />
|
174
|
-
<a href="classes/PhusionPassenger/Railz/FrameworkSpawner.html#M000041">spawn_application (PhusionPassenger::Railz::FrameworkSpawner)</a><br />
|
175
179
|
<a href="classes/PhusionPassenger/Railz/ApplicationSpawner.html#M000050">spawn_application! (PhusionPassenger::Railz::ApplicationSpawner)</a><br />
|
176
180
|
<a href="classes/PhusionPassenger/Railz/ApplicationSpawner.html#M000051">start (PhusionPassenger::Railz::ApplicationSpawner)</a><br />
|
177
|
-
<a href="classes/PhusionPassenger/AbstractServer.html#M000130">start (PhusionPassenger::AbstractServer)</a><br />
|
178
181
|
<a href="classes/PhusionPassenger/Railz/FrameworkSpawner.html#M000040">start (PhusionPassenger::Railz::FrameworkSpawner)</a><br />
|
179
|
-
<a href="classes/PhusionPassenger/AbstractInstaller.html#
|
180
|
-
<a href="classes/PhusionPassenger/
|
181
|
-
<a href="classes/PhusionPassenger/
|
182
|
-
<a href="classes/PhusionPassenger/AbstractServer.html#
|
182
|
+
<a href="classes/PhusionPassenger/AbstractInstaller.html#M000158">start (PhusionPassenger::AbstractInstaller)</a><br />
|
183
|
+
<a href="classes/PhusionPassenger/AbstractServer.html#M000134">start (PhusionPassenger::AbstractServer)</a><br />
|
184
|
+
<a href="classes/PhusionPassenger/AbstractRequestHandler.html#M000128">start_main_loop_thread (PhusionPassenger::AbstractRequestHandler)</a><br />
|
185
|
+
<a href="classes/PhusionPassenger/AbstractServer.html#M000135">start_synchronously (PhusionPassenger::AbstractServer)</a><br />
|
186
|
+
<a href="classes/PhusionPassenger/AbstractServer.html#M000137">started? (PhusionPassenger::AbstractServer)</a><br />
|
183
187
|
<a href="classes/PhusionPassenger/AdminTools/ControlProcess.html#M000069">status (PhusionPassenger::AdminTools::ControlProcess)</a><br />
|
184
188
|
<a href="classes/PhusionPassenger/Railz/CGIFixed.html#M000046">stdinput (PhusionPassenger::Railz::CGIFixed)</a><br />
|
185
189
|
<a href="classes/PhusionPassenger/Railz/CGIFixed.html#M000047">stdoutput (PhusionPassenger::Railz::CGIFixed)</a><br />
|
186
|
-
<a href="classes/PhusionPassenger/AbstractServer.html#
|
190
|
+
<a href="classes/PhusionPassenger/AbstractServer.html#M000136">stop (PhusionPassenger::AbstractServer)</a><br />
|
187
191
|
<a href="classes/RakeExtensions.html#M000009">subdir (RakeExtensions)</a><br />
|
188
192
|
<a href="classes/PhusionPassenger/Utils.html#M000088">switch_to_user (PhusionPassenger::Utils)</a><br />
|
189
|
-
<a href="classes/PhusionPassenger/AbstractServerCollection.html#
|
193
|
+
<a href="classes/PhusionPassenger/AbstractServerCollection.html#M000102">synchronize (PhusionPassenger::AbstractServerCollection)</a><br />
|
190
194
|
<a href="classes/ConditionVariable.html#M000003">timed_wait (ConditionVariable)</a><br />
|
191
195
|
<a href="classes/ConditionVariable.html#M000004">timed_wait! (ConditionVariable)</a><br />
|
192
196
|
<a href="classes/PhusionPassenger/AdminTools.html#M000064">tmpdir (PhusionPassenger::AdminTools)</a><br />
|
193
197
|
<a href="classes/PhusionPassenger/Utils.html#M000089">to_boolean (PhusionPassenger::Utils)</a><br />
|
194
198
|
<a href="classes/PhusionPassenger/Utils.html#M000086">unmarshal_and_raise_errors (PhusionPassenger::Utils)</a><br />
|
195
199
|
<a href="classes/PhusionPassenger/Utils.html#M000082">unmarshal_exception (PhusionPassenger::Utils)</a><br />
|
196
|
-
<a href="classes/PhusionPassenger/MessageChannel.html#
|
197
|
-
<a href="classes/PhusionPassenger/MessageChannel.html#
|
200
|
+
<a href="classes/PhusionPassenger/MessageChannel.html#M000151">write (PhusionPassenger::MessageChannel)</a><br />
|
201
|
+
<a href="classes/PhusionPassenger/MessageChannel.html#M000152">write_scalar (PhusionPassenger::MessageChannel)</a><br />
|
198
202
|
<a href="classes/PhusionPassenger/AdminTools/ControlProcess.html#M000071">xml (PhusionPassenger::AdminTools::ControlProcess)</a><br />
|
199
203
|
</div>
|
200
204
|
</body></html>
|
@@ -24,6 +24,16 @@
|
|
24
24
|
*/
|
25
25
|
#include <algorithm>
|
26
26
|
#include <cstdlib>
|
27
|
+
|
28
|
+
/* ap_config.h checks whether the compiler has support for C99's designated
|
29
|
+
* initializers, and defines AP_HAVE_DESIGNATED_INITIALIZER if it does. However,
|
30
|
+
* g++ does not support designated initializers, even when ap_config.h thinks
|
31
|
+
* it does. Here we undefine the macro to force httpd_config.h to not use
|
32
|
+
* designated initializers. This should fix compilation problems on some systems.
|
33
|
+
*/
|
34
|
+
#include <ap_config.h>
|
35
|
+
#undef AP_HAVE_DESIGNATED_INITIALIZER
|
36
|
+
|
27
37
|
#include "Configuration.h"
|
28
38
|
#include "Utils.h"
|
29
39
|
|
@@ -84,6 +94,8 @@ passenger_config_create_dir(apr_pool_t *p, char *dirspec) {
|
|
84
94
|
config->memoryLimitSpecified = false;
|
85
95
|
config->highPerformance = DirConfig::UNSET;
|
86
96
|
config->useGlobalQueue = DirConfig::UNSET;
|
97
|
+
config->resolveSymlinksInDocRoot = DirConfig::UNSET;
|
98
|
+
config->allowEncodedSlashes = DirConfig::UNSET;
|
87
99
|
config->statThrottleRate = 0;
|
88
100
|
config->statThrottleRateSpecified = false;
|
89
101
|
config->restartDir = NULL;
|
@@ -129,6 +141,8 @@ passenger_config_merge_dir(apr_pool_t *p, void *basev, void *addv) {
|
|
129
141
|
config->statThrottleRateSpecified = base->statThrottleRateSpecified || add->statThrottleRateSpecified;
|
130
142
|
config->restartDir = (add->restartDir == NULL) ? base->restartDir : add->restartDir;
|
131
143
|
config->uploadBufferDir = (add->uploadBufferDir == NULL) ? base->uploadBufferDir : add->uploadBufferDir;
|
144
|
+
config->resolveSymlinksInDocRoot = (add->resolveSymlinksInDocRoot == DirConfig::UNSET) ? base->resolveSymlinksInDocRoot : add->resolveSymlinksInDocRoot;
|
145
|
+
config->allowEncodedSlashes = (add->allowEncodedSlashes == DirConfig::UNSET) ? base->allowEncodedSlashes : add->allowEncodedSlashes;
|
132
146
|
/*************************************/
|
133
147
|
return config;
|
134
148
|
}
|
@@ -410,6 +424,20 @@ cmd_passenger_upload_buffer_dir(cmd_parms *cmd, void *pcfg, const char *arg) {
|
|
410
424
|
return NULL;
|
411
425
|
}
|
412
426
|
|
427
|
+
static const char *
|
428
|
+
cmd_passenger_resolve_symlinks_in_document_root(cmd_parms *cmd, void *pcfg, int arg) {
|
429
|
+
DirConfig *config = (DirConfig *) pcfg;
|
430
|
+
config->resolveSymlinksInDocRoot = (arg) ? DirConfig::ENABLED : DirConfig::DISABLED;
|
431
|
+
return NULL;
|
432
|
+
}
|
433
|
+
|
434
|
+
static const char *
|
435
|
+
cmd_passenger_allow_encoded_slashes(cmd_parms *cmd, void *pcfg, int arg) {
|
436
|
+
DirConfig *config = (DirConfig *) pcfg;
|
437
|
+
config->allowEncodedSlashes = (arg) ? DirConfig::ENABLED : DirConfig::DISABLED;
|
438
|
+
return NULL;
|
439
|
+
}
|
440
|
+
|
413
441
|
|
414
442
|
/*************************************************
|
415
443
|
* Rails-specific settings
|
@@ -418,8 +446,16 @@ cmd_passenger_upload_buffer_dir(cmd_parms *cmd, void *pcfg, const char *arg) {
|
|
418
446
|
static const char *
|
419
447
|
cmd_rails_base_uri(cmd_parms *cmd, void *pcfg, const char *arg) {
|
420
448
|
DirConfig *config = (DirConfig *) pcfg;
|
421
|
-
|
422
|
-
|
449
|
+
if (strlen(arg) == 0) {
|
450
|
+
return "RailsBaseURI may not be set to the empty string";
|
451
|
+
} else if (arg[0] != '/') {
|
452
|
+
return "RailsBaseURI must start with a slash (/)";
|
453
|
+
} else if (strlen(arg) > 1 && arg[strlen(arg) - 1] == '/') {
|
454
|
+
return "RailsBaseURI must not end with a slash (/)";
|
455
|
+
} else {
|
456
|
+
config->railsBaseURIs.insert(arg);
|
457
|
+
return NULL;
|
458
|
+
}
|
423
459
|
}
|
424
460
|
|
425
461
|
static const char *
|
@@ -500,8 +536,16 @@ cmd_rails_app_spawner_idle_time(cmd_parms *cmd, void *pcfg, const char *arg) {
|
|
500
536
|
static const char *
|
501
537
|
cmd_rack_base_uri(cmd_parms *cmd, void *pcfg, const char *arg) {
|
502
538
|
DirConfig *config = (DirConfig *) pcfg;
|
503
|
-
|
504
|
-
|
539
|
+
if (strlen(arg) == 0) {
|
540
|
+
return "RackBaseURI may not be set to the empty string";
|
541
|
+
} else if (arg[0] != '/') {
|
542
|
+
return "RackBaseURI must start with a slash (/)";
|
543
|
+
} else if (strlen(arg) > 1 && arg[strlen(arg) - 1] == '/') {
|
544
|
+
return "RackBaseURI must not end with a slash (/)";
|
545
|
+
} else {
|
546
|
+
config->rackBaseURIs.insert(arg);
|
547
|
+
return NULL;
|
548
|
+
}
|
505
549
|
}
|
506
550
|
|
507
551
|
static const char *
|
@@ -545,9 +589,8 @@ cmd_rails_spawn_server(cmd_parms *cmd, void *pcfg, const char *arg) {
|
|
545
589
|
}
|
546
590
|
|
547
591
|
|
548
|
-
// Workaround for some weird C++-specific compiler error.
|
549
|
-
typedef const char * (*Take0Func)();
|
550
592
|
typedef const char * (*Take1Func)();
|
593
|
+
typedef const char * (*FlagFunc)();
|
551
594
|
|
552
595
|
const command_rec passenger_commands[] = {
|
553
596
|
// Passenger settings.
|
@@ -582,12 +625,12 @@ const command_rec passenger_commands[] = {
|
|
582
625
|
RSRC_CONF,
|
583
626
|
"The maximum number of seconds that an application may be idle before it gets terminated."),
|
584
627
|
AP_INIT_FLAG("PassengerUseGlobalQueue",
|
585
|
-
(
|
628
|
+
(FlagFunc) cmd_passenger_use_global_queue,
|
586
629
|
NULL,
|
587
630
|
OR_OPTIONS | ACCESS_CONF | RSRC_CONF,
|
588
631
|
"Enable or disable Passenger's global queuing mode mode."),
|
589
632
|
AP_INIT_FLAG("PassengerUserSwitching",
|
590
|
-
(
|
633
|
+
(FlagFunc) cmd_passenger_user_switching,
|
591
634
|
NULL,
|
592
635
|
RSRC_CONF,
|
593
636
|
"Whether to enable user switching support."),
|
@@ -607,12 +650,12 @@ const command_rec passenger_commands[] = {
|
|
607
650
|
OR_LIMIT | ACCESS_CONF | RSRC_CONF,
|
608
651
|
"The maximum number of requests that an application instance may process."),
|
609
652
|
AP_INIT_FLAG("PassengerHighPerformance",
|
610
|
-
(
|
653
|
+
(FlagFunc) cmd_passenger_high_performance,
|
611
654
|
NULL,
|
612
655
|
OR_ALL,
|
613
656
|
"Enable or disable Passenger's high performance mode."),
|
614
657
|
AP_INIT_FLAG("PassengerEnabled",
|
615
|
-
(
|
658
|
+
(FlagFunc) cmd_passenger_enabled,
|
616
659
|
NULL,
|
617
660
|
OR_ALL,
|
618
661
|
"Enable or disable Phusion Passenger."),
|
@@ -636,6 +679,17 @@ const command_rec passenger_commands[] = {
|
|
636
679
|
NULL,
|
637
680
|
OR_OPTIONS,
|
638
681
|
"The directory in which upload buffer files should be placed."),
|
682
|
+
AP_INIT_FLAG("PassengerResolveSymlinksInDocumentRoot",
|
683
|
+
(FlagFunc) cmd_passenger_resolve_symlinks_in_document_root,
|
684
|
+
NULL,
|
685
|
+
OR_OPTIONS | ACCESS_CONF | RSRC_CONF,
|
686
|
+
"Whether to resolve symlinks in the DocumentRoot path"),
|
687
|
+
AP_INIT_FLAG("PassengerAllowEncodedSlashes",
|
688
|
+
(FlagFunc) cmd_passenger_allow_encoded_slashes,
|
689
|
+
NULL,
|
690
|
+
OR_OPTIONS | ACCESS_CONF | RSRC_CONF,
|
691
|
+
"Whether to support encoded slashes in the URL"),
|
692
|
+
|
639
693
|
/*****************************/
|
640
694
|
|
641
695
|
// Rails-specific settings.
|
@@ -645,12 +699,12 @@ const command_rec passenger_commands[] = {
|
|
645
699
|
OR_OPTIONS | ACCESS_CONF | RSRC_CONF,
|
646
700
|
"Reserve the given URI to a Rails application."),
|
647
701
|
AP_INIT_FLAG("RailsAutoDetect",
|
648
|
-
(
|
702
|
+
(FlagFunc) cmd_rails_auto_detect,
|
649
703
|
NULL,
|
650
704
|
RSRC_CONF,
|
651
705
|
"Whether auto-detection of Ruby on Rails applications should be enabled."),
|
652
706
|
AP_INIT_FLAG("RailsAllowModRewrite",
|
653
|
-
(
|
707
|
+
(FlagFunc) cmd_rails_allow_mod_rewrite,
|
654
708
|
NULL,
|
655
709
|
RSRC_CONF,
|
656
710
|
"Whether custom mod_rewrite rules should be allowed."),
|
@@ -682,7 +736,7 @@ const command_rec passenger_commands[] = {
|
|
682
736
|
OR_OPTIONS | ACCESS_CONF | RSRC_CONF,
|
683
737
|
"Reserve the given URI to a Rack application."),
|
684
738
|
AP_INIT_FLAG("RackAutoDetect",
|
685
|
-
(
|
739
|
+
(FlagFunc) cmd_rack_auto_detect,
|
686
740
|
NULL,
|
687
741
|
RSRC_CONF,
|
688
742
|
"Whether auto-detection of Rack applications should be enabled."),
|
@@ -694,7 +748,7 @@ const command_rec passenger_commands[] = {
|
|
694
748
|
|
695
749
|
// WSGI-specific settings.
|
696
750
|
AP_INIT_FLAG("PassengerWSGIAutoDetect",
|
697
|
-
(
|
751
|
+
(FlagFunc) cmd_wsgi_auto_detect,
|
698
752
|
NULL,
|
699
753
|
RSRC_CONF,
|
700
754
|
"Whether auto-detection of WSGI applications should be enabled."),
|
@@ -721,7 +775,7 @@ const command_rec passenger_commands[] = {
|
|
721
775
|
RSRC_CONF,
|
722
776
|
"Deprecated option."),
|
723
777
|
AP_INIT_FLAG("RailsUserSwitching",
|
724
|
-
(
|
778
|
+
(FlagFunc) cmd_passenger_user_switching,
|
725
779
|
NULL,
|
726
780
|
RSRC_CONF,
|
727
781
|
"Deprecated option."),
|