passenger 5.3.4 → 6.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG +69 -0
- data/CONTRIBUTORS +1 -0
- data/README.md +2 -1
- data/Rakefile +0 -5
- data/build/agent.rb +6 -3
- data/build/cxx_tests.rb +28 -19
- data/build/integration_tests.rb +6 -2
- data/build/misc.rb +2 -1
- data/build/packaging.rb +2 -0
- data/build/support/cplusplus.rb +2 -2
- data/build/support/cxx_dependency_map.rb +2651 -2189
- data/dev/colorize-logs +272 -0
- data/dev/show-latest-crashlog-dir +27 -0
- data/resources/templates/standalone/http.erb +2 -0
- data/resources/templates/standalone/server.erb +1 -0
- data/src/agent/AgentMain.cpp +4 -0
- data/src/agent/Core/AdminPanelConnector.h +6 -6
- data/src/agent/Core/ApiServer.h +4 -4
- data/src/agent/Core/ApplicationPool/BasicProcessInfo.h +2 -2
- data/src/agent/Core/ApplicationPool/Context.h +5 -1
- data/src/agent/Core/ApplicationPool/Group/InternalUtils.cpp +2 -2
- data/src/agent/Core/ApplicationPool/Group/LifetimeAndBasics.cpp +5 -0
- data/src/agent/Core/ApplicationPool/Group/Miscellaneous.cpp +2 -1
- data/src/agent/Core/ApplicationPool/Group/OutOfBandWork.cpp +3 -3
- data/src/agent/Core/ApplicationPool/Group/ProcessListManagement.cpp +1 -1
- data/src/agent/Core/ApplicationPool/Group/StateInspection.cpp +13 -20
- data/src/agent/Core/ApplicationPool/Group.h +4 -2
- data/src/agent/Core/ApplicationPool/Implementation.cpp +5 -5
- data/src/agent/Core/ApplicationPool/Options.h +42 -38
- data/src/agent/Core/ApplicationPool/Pool/GroupUtils.cpp +2 -1
- data/src/agent/Core/ApplicationPool/Pool.h +4 -4
- data/src/agent/Core/ApplicationPool/Process.h +13 -15
- data/src/agent/Core/ApplicationPool/Socket.h +5 -5
- data/src/agent/Core/ApplicationPool/TestSession.h +3 -3
- data/src/agent/Core/Config.h +50 -10
- data/src/agent/Core/ConfigChange.cpp +13 -1
- data/src/agent/Core/Controller/Config.h +41 -17
- data/src/agent/Core/Controller/ForwardResponse.cpp +4 -0
- data/src/agent/Core/Controller/InitRequest.cpp +14 -8
- data/src/agent/Core/Controller/InitializationAndShutdown.cpp +5 -0
- data/src/agent/Core/Controller/SendRequest.cpp +9 -9
- data/src/agent/Core/Controller/TurboCaching.h +2 -2
- data/src/agent/Core/Controller.h +7 -5
- data/src/agent/Core/CoreMain.cpp +204 -60
- data/src/agent/Core/OptionParser.h +20 -3
- data/src/agent/Core/ResponseCache.h +3 -3
- data/src/agent/Core/SecurityUpdateChecker.h +4 -2
- data/src/agent/Core/SpawningKit/Config/AutoGeneratedCode.h +1 -1
- data/src/agent/Core/SpawningKit/Config.h +3 -2
- data/src/agent/Core/SpawningKit/Context.h +8 -2
- data/src/agent/Core/SpawningKit/DirectSpawner.h +4 -4
- data/src/agent/Core/SpawningKit/DummySpawner.h +3 -3
- data/src/agent/Core/SpawningKit/ErrorRenderer.h +1 -1
- data/src/agent/Core/SpawningKit/Exceptions.h +21 -14
- data/src/agent/Core/SpawningKit/Factory.h +1 -1
- data/src/agent/Core/SpawningKit/Handshake/BackgroundIOCapturer.h +1 -1
- data/src/agent/Core/SpawningKit/Handshake/Perform.h +14 -2
- data/src/agent/Core/SpawningKit/Handshake/Prepare.h +3 -3
- data/src/agent/Core/SpawningKit/Handshake/WorkDir.h +1 -1
- data/src/agent/Core/SpawningKit/Journey.h +4 -5
- data/src/agent/Core/SpawningKit/PipeWatcher.h +1 -1
- data/src/agent/Core/SpawningKit/README.md +34 -17
- data/src/agent/Core/SpawningKit/Result/AutoGeneratedCode.h +1 -1
- data/src/agent/Core/SpawningKit/Result.h +20 -8
- data/src/agent/Core/SpawningKit/SmartSpawner.h +7 -7
- data/src/agent/Core/SpawningKit/Spawner.h +25 -8
- data/src/agent/Core/SpawningKit/UserSwitchingRules.h +17 -7
- data/src/agent/Core/TelemetryCollector.h +681 -0
- data/src/agent/ExecHelper/ExecHelperMain.cpp +1 -1
- data/src/agent/FileReadHelper/FileReadHelperMain.cpp +198 -0
- data/src/agent/README.md +1 -1
- data/src/agent/Shared/ApiAccountUtils.h +1 -1
- data/src/agent/Shared/ApiServerUtils.h +3 -3
- data/src/agent/Shared/ApplicationPoolApiKey.h +2 -2
- data/src/agent/Shared/Fundamentals/AbortHandler.cpp +324 -98
- data/src/agent/Shared/Fundamentals/AbortHandler.h +31 -4
- data/src/agent/Shared/Fundamentals/Initialization.cpp +4 -5
- data/src/agent/Shared/Fundamentals/Initialization.h +9 -1
- data/src/agent/SpawnEnvSetupper/SpawnEnvSetupperMain.cpp +1 -1
- data/src/agent/SystemMetrics/SystemMetricsMain.cpp +4 -3
- data/src/agent/TempDirToucher/TempDirToucherMain.cpp +3 -3
- data/src/agent/Watchdog/ApiServer.h +3 -3
- data/src/agent/Watchdog/Config.h +24 -5
- data/src/agent/Watchdog/CoreWatcher.cpp +2 -2
- data/src/agent/Watchdog/WatchdogMain.cpp +97 -28
- data/src/apache2_module/Config.cpp +14 -14
- data/src/apache2_module/Config.h +8 -16
- data/src/apache2_module/ConfigGeneral/AutoGeneratedDefinitions.cpp +510 -481
- data/src/apache2_module/ConfigGeneral/AutoGeneratedDefinitions.cpp.cxxcodebuilder +39 -17
- data/src/apache2_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.cpp +5 -0
- data/src/apache2_module/ConfigGeneral/AutoGeneratedSetterFuncs.cpp +69 -1
- data/src/apache2_module/ConfigGeneral/AutoGeneratedSetterFuncs.cpp.cxxcodebuilder +31 -1
- data/src/apache2_module/ConfigGeneral/Common.h +45 -0
- data/src/apache2_module/DirConfig/AutoGeneratedCreateFunction.cpp +17 -1
- data/src/apache2_module/DirConfig/AutoGeneratedCreateFunction.cpp.cxxcodebuilder +16 -1
- data/src/apache2_module/DirConfig/AutoGeneratedHeaderSerialization.cpp +19 -5
- data/src/apache2_module/DirConfig/AutoGeneratedHeaderSerialization.cpp.cxxcodebuilder +26 -9
- data/src/apache2_module/DirConfig/AutoGeneratedManifestGeneration.cpp +19 -1
- data/src/apache2_module/DirConfig/AutoGeneratedManifestGeneration.cpp.cxxcodebuilder +10 -1
- data/src/apache2_module/DirConfig/AutoGeneratedMergeFunction.cpp +14 -1
- data/src/apache2_module/DirConfig/AutoGeneratedMergeFunction.cpp.cxxcodebuilder +11 -1
- data/src/apache2_module/DirConfig/AutoGeneratedStruct.h +36 -1
- data/src/apache2_module/DirConfig/AutoGeneratedStruct.h.cxxcodebuilder +34 -1
- data/src/apache2_module/DirectoryMapper.h +36 -37
- data/src/apache2_module/Hooks.cpp +27 -8
- data/src/apache2_module/ServerConfig/AutoGeneratedManifestGeneration.cpp +20 -0
- data/src/apache2_module/ServerConfig/AutoGeneratedStruct.h +48 -1
- data/src/apache2_module/ServerConfig/AutoGeneratedStruct.h.cxxcodebuilder +36 -1
- data/src/cxx_supportlib/{Utils → Algorithms}/Hasher.cpp +2 -2
- data/src/cxx_supportlib/{Utils → Algorithms}/Hasher.h +4 -4
- data/src/cxx_supportlib/AppLocalConfigFileUtils.h +148 -0
- data/src/cxx_supportlib/AppTypeDetector/CBindings.cpp +147 -0
- data/src/cxx_supportlib/AppTypeDetector/CBindings.h +75 -0
- data/src/cxx_supportlib/{AppTypes.h → AppTypeDetector/Detector.h} +92 -131
- data/src/cxx_supportlib/ConfigKit/README.md +90 -2
- data/src/cxx_supportlib/ConfigKit/Schema.h +60 -15
- data/src/cxx_supportlib/ConfigKit/Store.h +129 -5
- data/src/cxx_supportlib/Constants.h +1 -1
- data/src/cxx_supportlib/{Utils → DataStructures}/HashMap.h +4 -4
- data/src/cxx_supportlib/DataStructures/HashedStaticString.h +5 -5
- data/src/cxx_supportlib/DataStructures/LString.h +3 -3
- data/src/cxx_supportlib/{Utils → DataStructures}/StringMap.h +36 -36
- data/src/cxx_supportlib/FileTools/FileManip.cpp +1 -1
- data/src/cxx_supportlib/FileTools/PathManip.cpp +2 -2
- data/src/cxx_supportlib/FileTools/PathSecurityCheck.cpp +1 -1
- data/src/cxx_supportlib/Hooks.h +2 -2
- data/src/cxx_supportlib/{Utils → IOTools}/BufferedIO.h +5 -5
- data/src/cxx_supportlib/{Utils → IOTools}/IOUtils.cpp +4 -3
- data/src/cxx_supportlib/{Utils → IOTools}/IOUtils.h +3 -3
- data/src/cxx_supportlib/{Utils → IOTools}/MessageIO.h +7 -7
- data/src/cxx_supportlib/{MessageReadersWriters.h → IOTools/MessageSerialization.h} +5 -5
- data/src/cxx_supportlib/InstanceDirectory.h +4 -4
- data/src/cxx_supportlib/Integrations/LibevJsonUtils.h +3 -3
- data/src/cxx_supportlib/{Utils → JsonTools}/JsonUtils.h +5 -5
- data/src/cxx_supportlib/LoggingKit/Context.h +2 -2
- data/src/cxx_supportlib/LoggingKit/Implementation.cpp +3 -3
- data/src/cxx_supportlib/MemoryKit/mbuf.cpp +2 -2
- data/src/cxx_supportlib/ProcessManagement/Ruby.cpp +3 -3
- data/src/cxx_supportlib/ProcessManagement/Ruby.h +7 -2
- data/src/cxx_supportlib/ProcessManagement/Spawn.cpp +19 -12
- data/src/cxx_supportlib/ProcessManagement/Spawn.h +21 -2
- data/src/cxx_supportlib/ProcessManagement/Utils.h +10 -0
- data/src/cxx_supportlib/RandomGenerator.h +2 -2
- data/src/cxx_supportlib/ResourceLocator.h +1 -1
- data/src/cxx_supportlib/{Crypto.cpp → SecurityKit/Crypto.cpp} +4 -4
- data/src/cxx_supportlib/{Crypto.h → SecurityKit/Crypto.h} +4 -4
- data/src/cxx_supportlib/{Utils → SecurityKit}/MemZeroGuard.h +0 -0
- data/src/cxx_supportlib/ServerKit/AcceptLoadBalancer.h +2 -2
- data/src/cxx_supportlib/ServerKit/Channel.h +1 -1
- data/src/cxx_supportlib/ServerKit/ClientRef.h +17 -7
- data/src/cxx_supportlib/ServerKit/Context.h +2 -2
- data/src/cxx_supportlib/ServerKit/FileBufferedChannel.h +1 -1
- data/src/cxx_supportlib/ServerKit/HttpHeaderParser.h +3 -3
- data/src/cxx_supportlib/ServerKit/HttpHeaderParserState.h +2 -2
- data/src/cxx_supportlib/ServerKit/HttpRequestRef.h +17 -7
- data/src/cxx_supportlib/ServerKit/HttpServer.h +16 -10
- data/src/cxx_supportlib/ServerKit/Server.h +3 -4
- data/src/cxx_supportlib/{Utils → StrIntTools}/DateParsing.h +5 -5
- data/src/cxx_supportlib/{Utils → StrIntTools}/StrIntUtils.cpp +3 -3
- data/src/cxx_supportlib/{Utils → StrIntTools}/StrIntUtils.h +0 -0
- data/src/cxx_supportlib/{Utils → StrIntTools}/StrIntUtilsNoStrictAliasing.cpp +12 -12
- data/src/cxx_supportlib/{Utils → StrIntTools}/StringScanning.h +5 -5
- data/src/cxx_supportlib/{Utils → StrIntTools}/Template.h +30 -5
- data/src/cxx_supportlib/SystemTools/ContainerHelpers.h +88 -0
- data/src/cxx_supportlib/{Utils → SystemTools}/ProcessMetricsCollector.h +15 -12
- data/src/cxx_supportlib/{Utils → SystemTools}/SystemMetricsCollector.h +3 -3
- data/src/cxx_supportlib/{Utils → SystemTools}/SystemTime.cpp +1 -1
- data/src/cxx_supportlib/{Utils → SystemTools}/SystemTime.h +0 -0
- data/src/cxx_supportlib/SystemTools/UserDatabase.h +1 -1
- data/src/cxx_supportlib/Utils/CachedFileStat.hpp +3 -3
- data/src/cxx_supportlib/Utils/Curl.h +2 -2
- data/src/cxx_supportlib/Utils/FileChangeChecker.h +2 -2
- data/src/cxx_supportlib/Utils/MessagePassing.h +1 -1
- data/src/cxx_supportlib/Utils/SpeedMeter.h +2 -2
- data/src/cxx_supportlib/Utils/Timer.h +2 -2
- data/src/cxx_supportlib/Utils/VariantMap.h +3 -3
- data/src/cxx_supportlib/Utils.cpp +2 -2
- data/src/cxx_supportlib/WatchdogLauncher.h +3 -3
- data/src/cxx_supportlib/WebSocketCommandReverseServer.h +1 -1
- data/src/cxx_supportlib/WrapperRegistry/CBindings.cpp +85 -0
- data/src/cxx_supportlib/{Utils/MemoryBarrier.h → WrapperRegistry/CBindings.h} +30 -27
- data/src/cxx_supportlib/WrapperRegistry/Entry.h +112 -0
- data/src/cxx_supportlib/WrapperRegistry/README.md +37 -0
- data/src/cxx_supportlib/WrapperRegistry/Registry.h +309 -0
- data/src/cxx_supportlib/vendor-modified/psg_sysqueue.h +3 -0
- data/src/helper-scripts/download_binaries/extconf.rb +6 -2
- data/src/nginx_module/ConfigGeneral/AutoGeneratedDefinitions.c +32 -0
- data/src/nginx_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.c +12 -0
- data/src/nginx_module/ConfigGeneral/AutoGeneratedSetterFuncs.c +36 -0
- data/src/nginx_module/Configuration.c +23 -3
- data/src/nginx_module/ContentHandler.c +331 -32
- data/src/nginx_module/ContentHandler.h +8 -3
- data/src/nginx_module/LocationConfig/AutoGeneratedCreateFunction.c +10 -0
- data/src/nginx_module/LocationConfig/AutoGeneratedManifestGeneration.c +27 -0
- data/src/nginx_module/LocationConfig/AutoGeneratedMergeFunction.c +3 -0
- data/src/nginx_module/LocationConfig/AutoGeneratedStruct.h +7 -0
- data/src/nginx_module/MainConfig/AutoGeneratedCreateFunction.c +11 -0
- data/src/nginx_module/MainConfig/AutoGeneratedManifestGeneration.c +23 -0
- data/src/nginx_module/MainConfig/AutoGeneratedStruct.h +8 -0
- data/src/nginx_module/config +2 -1
- data/src/nginx_module/ngx_http_passenger_module.c +9 -3
- data/src/nginx_module/ngx_http_passenger_module.h +10 -3
- data/src/ruby_supportlib/phusion_passenger/apache2/config_options.rb +19 -0
- data/src/ruby_supportlib/phusion_passenger/common_library.rb +19 -16
- data/src/ruby_supportlib/phusion_passenger/config/agent_compiler.rb +4 -4
- data/src/ruby_supportlib/phusion_passenger/config/download_agent_command.rb +6 -2
- data/src/ruby_supportlib/phusion_passenger/config/download_nginx_engine_command.rb +6 -2
- data/src/ruby_supportlib/phusion_passenger/config/nginx_engine_compiler.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/message_channel.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/native_support.rb +7 -3
- data/src/ruby_supportlib/phusion_passenger/nginx/config_options.rb +29 -0
- data/src/ruby_supportlib/phusion_passenger/packaging.rb +20 -19
- data/src/ruby_supportlib/phusion_passenger/platform_info/apache.rb +22 -4
- data/src/ruby_supportlib/phusion_passenger/platform_info/ruby.rb +33 -13
- data/src/ruby_supportlib/phusion_passenger/standalone/app_finder.rb +1 -0
- data/src/ruby_supportlib/phusion_passenger/standalone/config_options_list.rb +22 -2
- data/src/ruby_supportlib/phusion_passenger/standalone/start_command/builtin_engine.rb +4 -1
- data/src/ruby_supportlib/phusion_passenger.rb +7 -5
- data/src/schema_printer/SchemaPrinterMain.cpp +2 -0
- metadata +40 -89
- data/.editorconfig +0 -134
- data/CODE_OF_CONDUCT.md +0 -52
- data/dev/boost-patches/0001-Patch-boost-thread-so-that-oxt-thread-can-use-it.patch +0 -48
- data/dev/boost-patches/0002-Make-boost-thread_interrupted-derive-from-oxt-tracab.patch +0 -33
- data/dev/boost-patches/0003-Disable-a-Clang-pragma-to-prevent-warnings-on-OS-X.patch +0 -25
- data/dev/ci/README.md +0 -134
- data/dev/ci/lib/functions.sh +0 -129
- data/dev/ci/lib/set-container-envvars.sh +0 -53
- data/dev/ci/lib/setup-container.sh +0 -46
- data/dev/ci/run-tests-natively +0 -24
- data/dev/ci/run-tests-with-docker +0 -42
- data/dev/ci/scripts/debug-console-wrapper.sh +0 -29
- data/dev/ci/scripts/docker-entrypoint-stage2.sh +0 -17
- data/dev/ci/scripts/docker-entrypoint.sh +0 -17
- data/dev/ci/scripts/inituidgid +0 -17
- data/dev/ci/scripts/run-tests-natively-stage2.sh +0 -17
- data/dev/ci/scripts/setup-host-natively.sh +0 -11
- data/dev/ci/setup-host +0 -56
- data/dev/ci/tests/apache2/run +0 -6
- data/dev/ci/tests/apache2/setup +0 -4
- data/dev/ci/tests/binaries/Jenkinsfile +0 -105
- data/dev/ci/tests/binaries/build-linux +0 -38
- data/dev/ci/tests/binaries/build-macos +0 -40
- data/dev/ci/tests/binaries/prepare-macos +0 -38
- data/dev/ci/tests/binaries/test-linux +0 -45
- data/dev/ci/tests/binaries/test-macos +0 -38
- data/dev/ci/tests/cxx/run +0 -9
- data/dev/ci/tests/cxx/setup +0 -4
- data/dev/ci/tests/debian/Jenkinsfile +0 -89
- data/dev/ci/tests/debian/run +0 -60
- data/dev/ci/tests/nginx/run +0 -5
- data/dev/ci/tests/nginx/setup +0 -4
- data/dev/ci/tests/nginx-dynamic/run +0 -20
- data/dev/ci/tests/nginx-dynamic/setup +0 -4
- data/dev/ci/tests/nodejs/run +0 -4
- data/dev/ci/tests/nodejs/setup +0 -4
- data/dev/ci/tests/rpm/Jenkinsfile +0 -68
- data/dev/ci/tests/rpm/run +0 -63
- data/dev/ci/tests/ruby/run +0 -4
- data/dev/ci/tests/ruby/setup +0 -4
- data/dev/ci/tests/source-packaging/run +0 -4
- data/dev/ci/tests/source-packaging/setup +0 -4
- data/dev/ci/tests/standalone/run +0 -4
- data/dev/ci/tests/standalone/setup +0 -4
- data/dev/configkit-schemas/index.json +0 -1748
- data/dev/configkit-schemas/update_schema_inline_comments.rb +0 -118
- data/dev/rack.test/config.ru +0 -5
- data/dev/rack.test/public/asset.txt +0 -1
- data/dev/vagrant/apache_default_site.conf +0 -35
- data/dev/vagrant/apache_passenger.conf +0 -5
- data/dev/vagrant/apache_passenger.load +0 -1
- data/dev/vagrant/apache_ports.conf +0 -24
- data/dev/vagrant/apache_rack_test.conf +0 -9
- data/dev/vagrant/bashrc +0 -23
- data/dev/vagrant/nginx.conf +0 -39
- data/dev/vagrant/nginx_rakefile +0 -33
- data/dev/vagrant/nginx_start +0 -32
- data/dev/vagrant/provision.sh +0 -117
- data/dev/vagrant/sudoers.conf +0 -5
- data/resources/templates/error_renderer/.editorconfig +0 -19
- data/src/cxx_supportlib/AppTypes.cpp +0 -109
- data/src/cxx_supportlib/vendor-modified/SmallVector.h +0 -653
@@ -1,6 +1,6 @@
|
|
1
1
|
/*
|
2
2
|
* Phusion Passenger - https://www.phusionpassenger.com/
|
3
|
-
* Copyright (c) 2010-
|
3
|
+
* Copyright (c) 2010-2018 Phusion Holding B.V.
|
4
4
|
*
|
5
5
|
* "Passenger", "Phusion Passenger" and "Union Station" are registered
|
6
6
|
* trademarks of Phusion Holding B.V.
|
@@ -23,6 +23,14 @@
|
|
23
23
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
24
24
|
* THE SOFTWARE.
|
25
25
|
*/
|
26
|
+
#ifndef _PASSENGER_APACHE2_MODULE_DIR_CONFIG_AUTOGENERATED_STRUCT_H_
|
27
|
+
#define _PASSENGER_APACHE2_MODULE_DIR_CONFIG_AUTOGENERATED_STRUCT_H_
|
28
|
+
|
29
|
+
#ifdef INTELLISENSE
|
30
|
+
// These includes do nothing, but keep IntelliSense happy.
|
31
|
+
#include <ap_config.h>
|
32
|
+
#include "../ConfigGeneral/Common.h"
|
33
|
+
#endif
|
26
34
|
|
27
35
|
/*
|
28
36
|
* DirConfig/AutoGeneratedStruct.h is automatically generated from DirConfig/AutoGeneratedStruct.h.cxxcodebuilder,
|
@@ -37,6 +45,15 @@
|
|
37
45
|
* rake src/apache2_module/DirConfig/AutoGeneratedStruct.h
|
38
46
|
*/
|
39
47
|
|
48
|
+
namespace Passenger {
|
49
|
+
namespace Apache2Module {
|
50
|
+
|
51
|
+
/*
|
52
|
+
* Per-directory configuration information (autogenerated part).
|
53
|
+
*
|
54
|
+
* Use the getter methods to query information, because those will return
|
55
|
+
* the default value if the value is not specified.
|
56
|
+
*/
|
40
57
|
struct AutoGeneratedDirConfig {
|
41
58
|
|
42
59
|
/*
|
@@ -139,6 +156,11 @@ struct AutoGeneratedDirConfig {
|
|
139
156
|
*/
|
140
157
|
StaticString mAppRoot;
|
141
158
|
|
159
|
+
/*
|
160
|
+
* Command string for starting the application.
|
161
|
+
*/
|
162
|
+
StaticString mAppStartCommand;
|
163
|
+
|
142
164
|
/*
|
143
165
|
* Force specific application type.
|
144
166
|
*/
|
@@ -225,6 +247,7 @@ struct AutoGeneratedDirConfig {
|
|
225
247
|
StaticString mAppGroupNameSourceFile;
|
226
248
|
StaticString mAppLogFileSourceFile;
|
227
249
|
StaticString mAppRootSourceFile;
|
250
|
+
StaticString mAppStartCommandSourceFile;
|
228
251
|
StaticString mAppTypeSourceFile;
|
229
252
|
StaticString mGroupSourceFile;
|
230
253
|
StaticString mMeteorAppSettingsSourceFile;
|
@@ -259,6 +282,7 @@ struct AutoGeneratedDirConfig {
|
|
259
282
|
unsigned int mAppGroupNameSourceLine;
|
260
283
|
unsigned int mAppLogFileSourceLine;
|
261
284
|
unsigned int mAppRootSourceLine;
|
285
|
+
unsigned int mAppStartCommandSourceLine;
|
262
286
|
unsigned int mAppTypeSourceLine;
|
263
287
|
unsigned int mGroupSourceLine;
|
264
288
|
unsigned int mMeteorAppSettingsSourceLine;
|
@@ -293,6 +317,7 @@ struct AutoGeneratedDirConfig {
|
|
293
317
|
bool mAppGroupNameExplicitlySet: 1;
|
294
318
|
bool mAppLogFileExplicitlySet: 1;
|
295
319
|
bool mAppRootExplicitlySet: 1;
|
320
|
+
bool mAppStartCommandExplicitlySet: 1;
|
296
321
|
bool mAppTypeExplicitlySet: 1;
|
297
322
|
bool mGroupExplicitlySet: 1;
|
298
323
|
bool mMeteorAppSettingsExplicitlySet: 1;
|
@@ -472,6 +497,11 @@ struct AutoGeneratedDirConfig {
|
|
472
497
|
return mAppRoot;
|
473
498
|
}
|
474
499
|
|
500
|
+
StaticString
|
501
|
+
getAppStartCommand() const {
|
502
|
+
return mAppStartCommand;
|
503
|
+
}
|
504
|
+
|
475
505
|
StaticString
|
476
506
|
getAppType() const {
|
477
507
|
return mAppType;
|
@@ -558,3 +588,8 @@ struct AutoGeneratedDirConfig {
|
|
558
588
|
}
|
559
589
|
|
560
590
|
};
|
591
|
+
|
592
|
+
} // namespace Apache2Module
|
593
|
+
} // namespace Passenger
|
594
|
+
|
595
|
+
#endif /* _PASSENGER_APACHE2_MODULE_DIR_CONFIG_AUTOGENERATED_STRUCT_H_ */
|
@@ -1,5 +1,5 @@
|
|
1
1
|
# Phusion Passenger - https://www.phusionpassenger.com/
|
2
|
-
# Copyright (c) 2010-
|
2
|
+
# Copyright (c) 2010-2018 Phusion Holding B.V.
|
3
3
|
#
|
4
4
|
# "Passenger", "Phusion Passenger" and "Union Station" are registered
|
5
5
|
# trademarks of Phusion Holding B.V.
|
@@ -30,6 +30,17 @@ require 'phusion_passenger/apache2/config_options'
|
|
30
30
|
def main
|
31
31
|
comment copyright_header_for(__FILE__), 1
|
32
32
|
|
33
|
+
add_code %Q{
|
34
|
+
#ifndef _PASSENGER_APACHE2_MODULE_DIR_CONFIG_AUTOGENERATED_STRUCT_H_
|
35
|
+
#define _PASSENGER_APACHE2_MODULE_DIR_CONFIG_AUTOGENERATED_STRUCT_H_
|
36
|
+
|
37
|
+
#ifdef INTELLISENSE
|
38
|
+
// These includes do nothing, but keep IntelliSense happy.
|
39
|
+
#include <ap_config.h>
|
40
|
+
#include "../ConfigGeneral/Common.h"
|
41
|
+
#endif
|
42
|
+
}
|
43
|
+
|
33
44
|
separator
|
34
45
|
|
35
46
|
comment %q{
|
@@ -47,6 +58,19 @@ def main
|
|
47
58
|
|
48
59
|
separator
|
49
60
|
|
61
|
+
add_code %Q[
|
62
|
+
namespace Passenger {
|
63
|
+
namespace Apache2Module {
|
64
|
+
]
|
65
|
+
|
66
|
+
separator
|
67
|
+
|
68
|
+
comment %Q{
|
69
|
+
Per-directory configuration information (autogenerated part).
|
70
|
+
|
71
|
+
Use the getter methods to query information, because those will return
|
72
|
+
the default value if the value is not specified.
|
73
|
+
}
|
50
74
|
struct 'AutoGeneratedDirConfig' do
|
51
75
|
definitions.each do |definition|
|
52
76
|
separator
|
@@ -80,6 +104,15 @@ def main
|
|
80
104
|
add_getter_function(definition)
|
81
105
|
end
|
82
106
|
end
|
107
|
+
|
108
|
+
separator
|
109
|
+
|
110
|
+
add_code %Q[
|
111
|
+
} // namespace Apache2Module
|
112
|
+
} // namespace Passenger
|
113
|
+
|
114
|
+
#endif /* _PASSENGER_APACHE2_MODULE_DIR_CONFIG_AUTOGENERATED_STRUCT_H_ */
|
115
|
+
]
|
83
116
|
end
|
84
117
|
|
85
118
|
def filter_eligible_options(options)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
/*
|
2
2
|
* Phusion Passenger - https://www.phusionpassenger.com/
|
3
|
-
* Copyright (c) 2010-
|
3
|
+
* Copyright (c) 2010-2018 Phusion Holding B.V.
|
4
4
|
*
|
5
5
|
* "Passenger", "Phusion Passenger" and "Union Station" are registered
|
6
6
|
* trademarks of Phusion Holding B.V.
|
@@ -33,7 +33,7 @@
|
|
33
33
|
#include <oxt/backtrace.hpp>
|
34
34
|
#include <boost/thread.hpp>
|
35
35
|
|
36
|
-
#include <
|
36
|
+
#include <AppTypeDetector/Detector.h>
|
37
37
|
#include <Utils.h>
|
38
38
|
#include <Utils/CachedFileStat.hpp>
|
39
39
|
|
@@ -72,16 +72,18 @@ public:
|
|
72
72
|
*/
|
73
73
|
class DirectoryMapper {
|
74
74
|
private:
|
75
|
+
const WrapperRegistry::Registry ®istry;
|
75
76
|
DirConfig *config;
|
76
77
|
request_rec *r;
|
77
78
|
CachedFileStat *cstat;
|
78
79
|
boost::mutex *cstatMutex;
|
80
|
+
boost::mutex *configMutex;
|
79
81
|
const char *baseURI;
|
80
82
|
string publicDir;
|
81
83
|
string appRoot;
|
82
84
|
unsigned int throttleRate;
|
83
|
-
|
84
|
-
bool autoDetectionDone
|
85
|
+
AppTypeDetector::Detector::Result detectorResult;
|
86
|
+
bool autoDetectionDone;
|
85
87
|
|
86
88
|
const char *findBaseURI() const {
|
87
89
|
set<string>::const_iterator it, end = config->getBaseURIs().end();
|
@@ -146,30 +148,37 @@ private:
|
|
146
148
|
}
|
147
149
|
|
148
150
|
UPDATE_TRACE_POINT();
|
149
|
-
AppTypeDetector detector(
|
150
|
-
|
151
|
+
AppTypeDetector::Detector detector(registry, cstat,
|
152
|
+
cstatMutex, throttleRate, configMutex);
|
153
|
+
AppTypeDetector::Detector::Result detectorResult;
|
151
154
|
string appRoot;
|
152
|
-
|
155
|
+
// If `AppStartCommand` is set, then it means the config specified that it is
|
156
|
+
// either a generic app or a Kuria app.
|
157
|
+
if (!config->getAppStartCommand().empty()) {
|
158
|
+
appRoot = config->getAppRoot();
|
159
|
+
} else if (config->getAppType().empty()) {
|
160
|
+
// If neither `AppStartCommand` nor `AppType` are set, then
|
161
|
+
// autodetect what kind of app this is.
|
153
162
|
if (config->getAppRoot().empty()) {
|
154
|
-
|
163
|
+
detectorResult = detector.checkDocumentRoot(publicDir,
|
155
164
|
baseURI != NULL,
|
156
165
|
&appRoot);
|
157
166
|
} else {
|
158
167
|
appRoot = config->getAppRoot();
|
159
|
-
|
160
|
-
}
|
161
|
-
} else {
|
162
|
-
if (config->getAppRoot().empty()) {
|
163
|
-
appType = PAT_NONE;
|
164
|
-
} else {
|
165
|
-
appRoot = config->getAppRoot().toString();
|
166
|
-
appType = getAppType(config->getAppType());
|
168
|
+
detectorResult = detector.checkAppRoot(appRoot);
|
167
169
|
}
|
170
|
+
} else if (!config->getAppRoot().empty()) {
|
171
|
+
// If `AppStartCommand` is not set but `AppType` is (as well as
|
172
|
+
// the required `AppRoot`), then verify whether the given
|
173
|
+
// `AppType` value is supported and resolve aliases.
|
174
|
+
appRoot = config->getAppRoot().toString();
|
175
|
+
detectorResult.wrapperRegistryEntry = ®istry.lookup(
|
176
|
+
config->getAppType());
|
168
177
|
}
|
169
178
|
|
170
179
|
this->appRoot = appRoot;
|
171
180
|
this->baseURI = baseURI;
|
172
|
-
this->
|
181
|
+
this->detectorResult = detectorResult;
|
173
182
|
autoDetectionDone = true;
|
174
183
|
}
|
175
184
|
|
@@ -184,14 +193,18 @@ public:
|
|
184
193
|
* @warning Do not use this object after the destruction of <tt>r</tt>,
|
185
194
|
* <tt>config</tt> or <tt>cstat</tt>.
|
186
195
|
*/
|
187
|
-
DirectoryMapper(request_rec *r, DirConfig *config,
|
188
|
-
|
196
|
+
DirectoryMapper(request_rec *r, DirConfig *config,
|
197
|
+
const WrapperRegistry::Registry &_registry,
|
198
|
+
CachedFileStat *cstat, boost::mutex *cstatMutex,
|
199
|
+
unsigned int throttleRate, boost::mutex *configMutex)
|
200
|
+
: registry(_registry)
|
201
|
+
{
|
189
202
|
this->r = r;
|
190
203
|
this->config = config;
|
191
204
|
this->cstat = cstat;
|
192
205
|
this->cstatMutex = cstatMutex;
|
206
|
+
this->configMutex = configMutex;
|
193
207
|
this->throttleRate = throttleRate;
|
194
|
-
appType = PAT_NONE;
|
195
208
|
baseURI = NULL;
|
196
209
|
autoDetectionDone = false;
|
197
210
|
}
|
@@ -243,30 +256,16 @@ public:
|
|
243
256
|
}
|
244
257
|
|
245
258
|
/**
|
246
|
-
* Returns the application
|
247
|
-
*
|
248
|
-
* @throws FileSystemException An error occured while examening the filesystem.
|
249
|
-
* @throws DocumentRootDeterminationError Unable to query the location of the document root.
|
250
|
-
* @throws TimeRetrievalException
|
251
|
-
* @throws boost::thread_interrupted
|
252
|
-
*/
|
253
|
-
PassengerAppType getApplicationType() {
|
254
|
-
autoDetect();
|
255
|
-
return appType;
|
256
|
-
}
|
257
|
-
|
258
|
-
/**
|
259
|
-
* Returns the application type (as a string) that's associated
|
260
|
-
* with the HTTP request.
|
259
|
+
* Returns the application detector result associated with the HTTP request.
|
261
260
|
*
|
262
261
|
* @throws FileSystemException An error occured while examening the filesystem.
|
263
262
|
* @throws DocumentRootDeterminationError Unable to query the location of the document root.
|
264
263
|
* @throws TimeRetrievalException
|
265
264
|
* @throws boost::thread_interrupted
|
266
265
|
*/
|
267
|
-
|
266
|
+
AppTypeDetector::Detector::Result getDetectorResult() {
|
268
267
|
autoDetect();
|
269
|
-
return
|
268
|
+
return detectorResult;
|
270
269
|
}
|
271
270
|
};
|
272
271
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
/*
|
2
2
|
* Phusion Passenger - https://www.phusionpassenger.com/
|
3
|
-
* Copyright (c) 2010-
|
3
|
+
* Copyright (c) 2010-2018 Phusion Holding B.V.
|
4
4
|
*
|
5
5
|
* "Passenger", "Phusion Passenger" and "Union Station" are registered
|
6
6
|
* trademarks of Phusion Holding B.V.
|
@@ -60,12 +60,13 @@
|
|
60
60
|
#include "DirectoryMapper.h"
|
61
61
|
#include "Utils.h"
|
62
62
|
#include <modp_b64.h>
|
63
|
+
#include <WrapperRegistry/Registry.h>
|
63
64
|
#include <FileTools/FileManip.h>
|
64
65
|
#include <FileTools/FileManip.h>
|
65
66
|
#include <Utils.h>
|
66
|
-
#include <
|
67
|
-
#include <
|
68
|
-
#include <
|
67
|
+
#include <IOTools/IOUtils.h>
|
68
|
+
#include <StrIntTools/StrIntUtils.h>
|
69
|
+
#include <SystemTools/SystemTime.h>
|
69
70
|
#include <Utils/HttpConstants.h>
|
70
71
|
#include <Utils/ReleaseableScopedPointer.h>
|
71
72
|
#include <LoggingKit/LoggingKit.h>
|
@@ -232,9 +233,11 @@ private:
|
|
232
233
|
enum Threeway { YES, NO, UNKNOWN };
|
233
234
|
|
234
235
|
Threeway m_hasModRewrite, m_hasModDir, m_hasModAutoIndex, m_hasModXsendfile;
|
236
|
+
WrapperRegistry::Registry wrapperRegistry;
|
235
237
|
CachedFileStat cstat;
|
236
238
|
WatchdogLauncher watchdogLauncher;
|
237
239
|
boost::mutex cstatMutex;
|
240
|
+
boost::mutex configMutex;
|
238
241
|
|
239
242
|
static Json::Value strsetToJson(const set<string> &input) {
|
240
243
|
Json::Value result(Json::arrayValue);
|
@@ -443,9 +446,12 @@ private:
|
|
443
446
|
bool prepareRequest(request_rec *r, DirConfig *config, const char *filename, bool coreModuleWillBeRun = false) {
|
444
447
|
TRACE_POINT();
|
445
448
|
|
446
|
-
DirectoryMapper mapper(r, config,
|
449
|
+
DirectoryMapper mapper(r, config, wrapperRegistry, &cstat,
|
450
|
+
&cstatMutex, serverConfig.statThrottleRate, &configMutex);
|
447
451
|
try {
|
448
|
-
if (
|
452
|
+
if (config->getAppStartCommand().empty()
|
453
|
+
&& mapper.getDetectorResult().isNull())
|
454
|
+
{
|
449
455
|
// (B) is not true.
|
450
456
|
disableRequestNote(r);
|
451
457
|
return false;
|
@@ -983,8 +989,18 @@ private:
|
|
983
989
|
}
|
984
990
|
|
985
991
|
// Phusion Passenger options.
|
986
|
-
addHeader(result, P_STATIC_STRING("!~PASSENGER_APP_ROOT"),
|
987
|
-
|
992
|
+
addHeader(result, P_STATIC_STRING("!~PASSENGER_APP_ROOT"),
|
993
|
+
mapper.getAppRoot());
|
994
|
+
if (!config->getAppStartCommand().empty()) {
|
995
|
+
addHeader(result, P_STATIC_STRING("!~PASSENGER_APP_START_COMMAND"),
|
996
|
+
config->getAppStartCommand());
|
997
|
+
} else if (mapper.getDetectorResult().wrapperRegistryEntry != NULL) {
|
998
|
+
addHeader(result, P_STATIC_STRING("!~PASSENGER_APP_TYPE"),
|
999
|
+
mapper.getDetectorResult().wrapperRegistryEntry->language);
|
1000
|
+
} else {
|
1001
|
+
addHeader(result, P_STATIC_STRING("!~PASSENGER_APP_START_COMMAND"),
|
1002
|
+
mapper.getDetectorResult().appStartCommand);
|
1003
|
+
}
|
988
1004
|
constructRequestHeaders_autoGenerated(r, config, result);
|
989
1005
|
|
990
1006
|
/*********************/
|
@@ -1247,6 +1263,7 @@ public:
|
|
1247
1263
|
: cstat(1024),
|
1248
1264
|
watchdogLauncher(IM_APACHE)
|
1249
1265
|
{
|
1266
|
+
wrapperRegistry.finalize();
|
1250
1267
|
postprocessConfig(s, pconf, ptemp);
|
1251
1268
|
|
1252
1269
|
Json::Value loggingConfig;
|
@@ -1319,6 +1336,8 @@ public:
|
|
1319
1336
|
config["instance_registry_dir"] = nonEmptyString(serverConfig.instanceRegistryDir);
|
1320
1337
|
config["security_update_checker_disabled"] = serverConfig.disableSecurityUpdateCheck;
|
1321
1338
|
config["security_update_checker_proxy_url"] = nonEmptyString(serverConfig.securityUpdateCheckProxy);
|
1339
|
+
config["telemetry_collector_disabled"] = serverConfig.disableAnonymousTelemetry;
|
1340
|
+
config["telemetry_collector_proxy_url"] = nonEmptyString(serverConfig.anonymousTelemetryProxy);
|
1322
1341
|
config["user_switching"] = serverConfig.userSwitching;
|
1323
1342
|
config["default_user"] = serverConfig.defaultUser.toString();
|
1324
1343
|
config["default_group"] = serverConfig.defaultGroup.toString();
|
@@ -91,6 +91,17 @@ ConfigManifestGenerator::autoGenerated_generateConfigManifestForServerConfig() {
|
|
91
91
|
serverConfig.adminPanelUsername.data(),
|
92
92
|
serverConfig.adminPanelUsername.data() + serverConfig.adminPanelUsername.size());
|
93
93
|
}
|
94
|
+
if (serverConfig.anonymousTelemetryProxyExplicitlySet) {
|
95
|
+
Json::Value &optionContainer = findOrCreateOptionContainer(globalOptionsContainer,
|
96
|
+
"PassengerAnonymousTelemetryProxy",
|
97
|
+
sizeof("PassengerAnonymousTelemetryProxy") - 1);
|
98
|
+
Json::Value &hierarchyMember = addOptionContainerHierarchyMember(optionContainer,
|
99
|
+
serverConfig.anonymousTelemetryProxySourceFile,
|
100
|
+
serverConfig.anonymousTelemetryProxySourceLine);
|
101
|
+
hierarchyMember["value"] = Json::Value(
|
102
|
+
serverConfig.anonymousTelemetryProxy.data(),
|
103
|
+
serverConfig.anonymousTelemetryProxy.data() + serverConfig.anonymousTelemetryProxy.size());
|
104
|
+
}
|
94
105
|
if (serverConfig.dataBufferDirExplicitlySet) {
|
95
106
|
Json::Value &optionContainer = findOrCreateOptionContainer(globalOptionsContainer,
|
96
107
|
"PassengerDataBufferDir",
|
@@ -135,6 +146,15 @@ ConfigManifestGenerator::autoGenerated_generateConfigManifestForServerConfig() {
|
|
135
146
|
serverConfig.defaultUser.data(),
|
136
147
|
serverConfig.defaultUser.data() + serverConfig.defaultUser.size());
|
137
148
|
}
|
149
|
+
if (serverConfig.disableAnonymousTelemetryExplicitlySet) {
|
150
|
+
Json::Value &optionContainer = findOrCreateOptionContainer(globalOptionsContainer,
|
151
|
+
"PassengerDisableAnonymousTelemetry",
|
152
|
+
sizeof("PassengerDisableAnonymousTelemetry") - 1);
|
153
|
+
Json::Value &hierarchyMember = addOptionContainerHierarchyMember(optionContainer,
|
154
|
+
serverConfig.disableAnonymousTelemetrySourceFile,
|
155
|
+
serverConfig.disableAnonymousTelemetrySourceLine);
|
156
|
+
hierarchyMember["value"] = serverConfig.disableAnonymousTelemetry == Apache2Module::ENABLED;
|
157
|
+
}
|
138
158
|
if (serverConfig.disableSecurityUpdateCheckExplicitlySet) {
|
139
159
|
Json::Value &optionContainer = findOrCreateOptionContainer(globalOptionsContainer,
|
140
160
|
"PassengerDisableSecurityUpdateCheck",
|
@@ -1,6 +1,6 @@
|
|
1
1
|
/*
|
2
2
|
* Phusion Passenger - https://www.phusionpassenger.com/
|
3
|
-
* Copyright (c) 2017 Phusion Holding B.V.
|
3
|
+
* Copyright (c) 2017-2018 Phusion Holding B.V.
|
4
4
|
*
|
5
5
|
* "Passenger", "Phusion Passenger" and "Union Station" are registered
|
6
6
|
* trademarks of Phusion Holding B.V.
|
@@ -23,6 +23,15 @@
|
|
23
23
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
24
24
|
* THE SOFTWARE.
|
25
25
|
*/
|
26
|
+
#ifndef _PASSENGER_APACHE2_MODULE_SERVER_CONFIG_AUTOGENERATED_STRUCT_H_
|
27
|
+
#define _PASSENGER_APACHE2_MODULE_SERVER_CONFIG_AUTOGENERATED_STRUCT_H_
|
28
|
+
|
29
|
+
#ifdef INTELLISENSE
|
30
|
+
// These includes do nothing, but keep IntelliSense happy.
|
31
|
+
#include <StaticString.h>
|
32
|
+
#include <ap_config.h>
|
33
|
+
#include "../ConfigGeneral/Common.h"
|
34
|
+
#endif
|
26
35
|
|
27
36
|
/*
|
28
37
|
* ServerConfig/AutoGeneratedStruct.h is automatically generated from ServerConfig/AutoGeneratedStruct.h.cxxcodebuilder,
|
@@ -37,8 +46,22 @@
|
|
37
46
|
* rake src/apache2_module/ServerConfig/AutoGeneratedStruct.h
|
38
47
|
*/
|
39
48
|
|
49
|
+
namespace Passenger {
|
50
|
+
namespace Apache2Module {
|
51
|
+
|
52
|
+
/*
|
53
|
+
* Server-wide (global, not per-virtual host) configuration information (autogenerated part).
|
54
|
+
*
|
55
|
+
* Use the getter methods to query information, because those will return
|
56
|
+
* the default value if the value is not specified.
|
57
|
+
*/
|
40
58
|
struct AutoGeneratedServerConfig {
|
41
59
|
|
60
|
+
/*
|
61
|
+
* Whether to disable Phusion Passenger anonymous telemetry.
|
62
|
+
*/
|
63
|
+
bool disableAnonymousTelemetry;
|
64
|
+
|
42
65
|
/*
|
43
66
|
* Whether to disable the Phusion Passenger security update check & notification.
|
44
67
|
*/
|
@@ -114,6 +137,11 @@ struct AutoGeneratedServerConfig {
|
|
114
137
|
*/
|
115
138
|
StaticString adminPanelUsername;
|
116
139
|
|
140
|
+
/*
|
141
|
+
* Use specified HTTP/SOCKS proxy for Phusion Passenger anonymous telemetry collection.
|
142
|
+
*/
|
143
|
+
StaticString anonymousTelemetryProxy;
|
144
|
+
|
117
145
|
/*
|
118
146
|
* The directory that Phusion Passenger data buffers should be stored into.
|
119
147
|
*/
|
@@ -170,6 +198,7 @@ struct AutoGeneratedServerConfig {
|
|
170
198
|
std::set<std::string> prestartURLs;
|
171
199
|
|
172
200
|
|
201
|
+
StaticString disableAnonymousTelemetrySourceFile;
|
173
202
|
StaticString disableSecurityUpdateCheckSourceFile;
|
174
203
|
StaticString showVersionInHeaderSourceFile;
|
175
204
|
StaticString turbocachingSourceFile;
|
@@ -185,6 +214,7 @@ struct AutoGeneratedServerConfig {
|
|
185
214
|
StaticString adminPanelPasswordSourceFile;
|
186
215
|
StaticString adminPanelUrlSourceFile;
|
187
216
|
StaticString adminPanelUsernameSourceFile;
|
217
|
+
StaticString anonymousTelemetryProxySourceFile;
|
188
218
|
StaticString dataBufferDirSourceFile;
|
189
219
|
StaticString defaultGroupSourceFile;
|
190
220
|
StaticString defaultRubySourceFile;
|
@@ -197,6 +227,7 @@ struct AutoGeneratedServerConfig {
|
|
197
227
|
StaticString securityUpdateCheckProxySourceFile;
|
198
228
|
StaticString prestartURLsSourceFile;
|
199
229
|
|
230
|
+
unsigned int disableAnonymousTelemetrySourceLine;
|
200
231
|
unsigned int disableSecurityUpdateCheckSourceLine;
|
201
232
|
unsigned int showVersionInHeaderSourceLine;
|
202
233
|
unsigned int turbocachingSourceLine;
|
@@ -212,6 +243,7 @@ struct AutoGeneratedServerConfig {
|
|
212
243
|
unsigned int adminPanelPasswordSourceLine;
|
213
244
|
unsigned int adminPanelUrlSourceLine;
|
214
245
|
unsigned int adminPanelUsernameSourceLine;
|
246
|
+
unsigned int anonymousTelemetryProxySourceLine;
|
215
247
|
unsigned int dataBufferDirSourceLine;
|
216
248
|
unsigned int defaultGroupSourceLine;
|
217
249
|
unsigned int defaultRubySourceLine;
|
@@ -224,6 +256,7 @@ struct AutoGeneratedServerConfig {
|
|
224
256
|
unsigned int securityUpdateCheckProxySourceLine;
|
225
257
|
unsigned int prestartURLsSourceLine;
|
226
258
|
|
259
|
+
bool disableAnonymousTelemetryExplicitlySet: 1;
|
227
260
|
bool disableSecurityUpdateCheckExplicitlySet: 1;
|
228
261
|
bool showVersionInHeaderExplicitlySet: 1;
|
229
262
|
bool turbocachingExplicitlySet: 1;
|
@@ -239,6 +272,7 @@ struct AutoGeneratedServerConfig {
|
|
239
272
|
bool adminPanelPasswordExplicitlySet: 1;
|
240
273
|
bool adminPanelUrlExplicitlySet: 1;
|
241
274
|
bool adminPanelUsernameExplicitlySet: 1;
|
275
|
+
bool anonymousTelemetryProxyExplicitlySet: 1;
|
242
276
|
bool dataBufferDirExplicitlySet: 1;
|
243
277
|
bool defaultGroupExplicitlySet: 1;
|
244
278
|
bool defaultRubyExplicitlySet: 1;
|
@@ -253,6 +287,7 @@ struct AutoGeneratedServerConfig {
|
|
253
287
|
|
254
288
|
|
255
289
|
AutoGeneratedServerConfig() {
|
290
|
+
disableAnonymousTelemetry = false;
|
256
291
|
disableSecurityUpdateCheck = false;
|
257
292
|
showVersionInHeader = true;
|
258
293
|
turbocaching = true;
|
@@ -276,6 +311,9 @@ struct AutoGeneratedServerConfig {
|
|
276
311
|
/*
|
277
312
|
* adminPanelUsername: default initialized
|
278
313
|
*/
|
314
|
+
/*
|
315
|
+
* anonymousTelemetryProxy: default initialized
|
316
|
+
*/
|
279
317
|
/*
|
280
318
|
* dataBufferDir: default initialized
|
281
319
|
*/
|
@@ -306,6 +344,7 @@ struct AutoGeneratedServerConfig {
|
|
306
344
|
* prestartURLs: default initialized
|
307
345
|
*/
|
308
346
|
|
347
|
+
disableAnonymousTelemetrySourceLine = 0;
|
309
348
|
disableSecurityUpdateCheckSourceLine = 0;
|
310
349
|
showVersionInHeaderSourceLine = 0;
|
311
350
|
turbocachingSourceLine = 0;
|
@@ -321,6 +360,7 @@ struct AutoGeneratedServerConfig {
|
|
321
360
|
adminPanelPasswordSourceLine = 0;
|
322
361
|
adminPanelUrlSourceLine = 0;
|
323
362
|
adminPanelUsernameSourceLine = 0;
|
363
|
+
anonymousTelemetryProxySourceLine = 0;
|
324
364
|
dataBufferDirSourceLine = 0;
|
325
365
|
defaultGroupSourceLine = 0;
|
326
366
|
defaultRubySourceLine = 0;
|
@@ -333,6 +373,7 @@ struct AutoGeneratedServerConfig {
|
|
333
373
|
securityUpdateCheckProxySourceLine = 0;
|
334
374
|
prestartURLsSourceLine = 0;
|
335
375
|
|
376
|
+
disableAnonymousTelemetryExplicitlySet = false;
|
336
377
|
disableSecurityUpdateCheckExplicitlySet = false;
|
337
378
|
showVersionInHeaderExplicitlySet = false;
|
338
379
|
turbocachingExplicitlySet = false;
|
@@ -348,6 +389,7 @@ struct AutoGeneratedServerConfig {
|
|
348
389
|
adminPanelPasswordExplicitlySet = false;
|
349
390
|
adminPanelUrlExplicitlySet = false;
|
350
391
|
adminPanelUsernameExplicitlySet = false;
|
392
|
+
anonymousTelemetryProxyExplicitlySet = false;
|
351
393
|
dataBufferDirExplicitlySet = false;
|
352
394
|
defaultGroupExplicitlySet = false;
|
353
395
|
defaultRubyExplicitlySet = false;
|
@@ -362,3 +404,8 @@ struct AutoGeneratedServerConfig {
|
|
362
404
|
}
|
363
405
|
|
364
406
|
};
|
407
|
+
|
408
|
+
} // namespace Apache2Module
|
409
|
+
} // namespace Passenger
|
410
|
+
|
411
|
+
#endif /* _PASSENGER_APACHE2_MODULE_SERVER_CONFIG_AUTOGENERATED_STRUCT_H_ */
|
@@ -1,5 +1,5 @@
|
|
1
1
|
# Phusion Passenger - https://www.phusionpassenger.com/
|
2
|
-
# Copyright (c) 2017 Phusion Holding B.V.
|
2
|
+
# Copyright (c) 2017-2018 Phusion Holding B.V.
|
3
3
|
#
|
4
4
|
# "Passenger", "Phusion Passenger" and "Union Station" are registered
|
5
5
|
# trademarks of Phusion Holding B.V.
|
@@ -30,6 +30,18 @@ require 'phusion_passenger/apache2/config_options'
|
|
30
30
|
def main
|
31
31
|
comment copyright_header_for(__FILE__), 1
|
32
32
|
|
33
|
+
add_code %Q{
|
34
|
+
#ifndef _PASSENGER_APACHE2_MODULE_SERVER_CONFIG_AUTOGENERATED_STRUCT_H_
|
35
|
+
#define _PASSENGER_APACHE2_MODULE_SERVER_CONFIG_AUTOGENERATED_STRUCT_H_
|
36
|
+
|
37
|
+
#ifdef INTELLISENSE
|
38
|
+
// These includes do nothing, but keep IntelliSense happy.
|
39
|
+
#include <StaticString.h>
|
40
|
+
#include <ap_config.h>
|
41
|
+
#include "../ConfigGeneral/Common.h"
|
42
|
+
#endif
|
43
|
+
}
|
44
|
+
|
33
45
|
separator
|
34
46
|
|
35
47
|
comment %q{
|
@@ -47,6 +59,20 @@ def main
|
|
47
59
|
|
48
60
|
separator
|
49
61
|
|
62
|
+
add_code %Q[
|
63
|
+
namespace Passenger {
|
64
|
+
namespace Apache2Module {
|
65
|
+
]
|
66
|
+
|
67
|
+
separator
|
68
|
+
|
69
|
+
comment %Q{
|
70
|
+
Server-wide (global, not per-virtual host) configuration information (autogenerated part).
|
71
|
+
|
72
|
+
Use the getter methods to query information, because those will return
|
73
|
+
the default value if the value is not specified.
|
74
|
+
}
|
75
|
+
|
50
76
|
struct 'AutoGeneratedServerConfig' do
|
51
77
|
definitions.each do |definition|
|
52
78
|
separator
|
@@ -93,6 +119,15 @@ def main
|
|
93
119
|
end
|
94
120
|
end
|
95
121
|
end
|
122
|
+
|
123
|
+
separator
|
124
|
+
|
125
|
+
add_code %Q[
|
126
|
+
} // namespace Apache2Module
|
127
|
+
} // namespace Passenger
|
128
|
+
|
129
|
+
#endif /* _PASSENGER_APACHE2_MODULE_SERVER_CONFIG_AUTOGENERATED_STRUCT_H_ */
|
130
|
+
]
|
96
131
|
end
|
97
132
|
|
98
133
|
def filter_eligible_options(options)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
/*
|
2
2
|
* Phusion Passenger - https://www.phusionpassenger.com/
|
3
|
-
* Copyright (c) 2014-
|
3
|
+
* Copyright (c) 2014-2018 Phusion Holding B.V.
|
4
4
|
*
|
5
5
|
* "Passenger", "Phusion Passenger" and "Union Station" are registered
|
6
6
|
* trademarks of Phusion Holding B.V.
|
@@ -26,7 +26,7 @@
|
|
26
26
|
|
27
27
|
// Implementation is in its own file so that we can enable compiler optimizations for these functions only.
|
28
28
|
|
29
|
-
#include <
|
29
|
+
#include <Algorithms/Hasher.h>
|
30
30
|
|
31
31
|
namespace Passenger {
|
32
32
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
/*
|
2
2
|
* Phusion Passenger - https://www.phusionpassenger.com/
|
3
|
-
* Copyright (c) 2014-
|
3
|
+
* Copyright (c) 2014-2018 Phusion Holding B.V.
|
4
4
|
*
|
5
5
|
* "Passenger", "Phusion Passenger" and "Union Station" are registered
|
6
6
|
* trademarks of Phusion Holding B.V.
|
@@ -23,8 +23,8 @@
|
|
23
23
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
24
24
|
* THE SOFTWARE.
|
25
25
|
*/
|
26
|
-
#ifndef
|
27
|
-
#define
|
26
|
+
#ifndef _PASSENGER_ALGORITHMS_HASHER_H_
|
27
|
+
#define _PASSENGER_ALGORITHMS_HASHER_H_
|
28
28
|
|
29
29
|
#include <boost/cstdint.hpp>
|
30
30
|
|
@@ -56,4 +56,4 @@ typedef JenkinsHash Hasher;
|
|
56
56
|
|
57
57
|
} // namespace Passenger
|
58
58
|
|
59
|
-
#endif /*
|
59
|
+
#endif /* _PASSENGER_ALGORITHMS_HASHER_H_ */
|