passenger 5.3.4 → 6.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (283) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +69 -0
  3. data/CONTRIBUTORS +1 -0
  4. data/README.md +2 -1
  5. data/Rakefile +0 -5
  6. data/build/agent.rb +6 -3
  7. data/build/cxx_tests.rb +28 -19
  8. data/build/integration_tests.rb +6 -2
  9. data/build/misc.rb +2 -1
  10. data/build/packaging.rb +2 -0
  11. data/build/support/cplusplus.rb +2 -2
  12. data/build/support/cxx_dependency_map.rb +2651 -2189
  13. data/dev/colorize-logs +272 -0
  14. data/dev/show-latest-crashlog-dir +27 -0
  15. data/resources/templates/standalone/http.erb +2 -0
  16. data/resources/templates/standalone/server.erb +1 -0
  17. data/src/agent/AgentMain.cpp +4 -0
  18. data/src/agent/Core/AdminPanelConnector.h +6 -6
  19. data/src/agent/Core/ApiServer.h +4 -4
  20. data/src/agent/Core/ApplicationPool/BasicProcessInfo.h +2 -2
  21. data/src/agent/Core/ApplicationPool/Context.h +5 -1
  22. data/src/agent/Core/ApplicationPool/Group/InternalUtils.cpp +2 -2
  23. data/src/agent/Core/ApplicationPool/Group/LifetimeAndBasics.cpp +5 -0
  24. data/src/agent/Core/ApplicationPool/Group/Miscellaneous.cpp +2 -1
  25. data/src/agent/Core/ApplicationPool/Group/OutOfBandWork.cpp +3 -3
  26. data/src/agent/Core/ApplicationPool/Group/ProcessListManagement.cpp +1 -1
  27. data/src/agent/Core/ApplicationPool/Group/StateInspection.cpp +13 -20
  28. data/src/agent/Core/ApplicationPool/Group.h +4 -2
  29. data/src/agent/Core/ApplicationPool/Implementation.cpp +5 -5
  30. data/src/agent/Core/ApplicationPool/Options.h +42 -38
  31. data/src/agent/Core/ApplicationPool/Pool/GroupUtils.cpp +2 -1
  32. data/src/agent/Core/ApplicationPool/Pool.h +4 -4
  33. data/src/agent/Core/ApplicationPool/Process.h +13 -15
  34. data/src/agent/Core/ApplicationPool/Socket.h +5 -5
  35. data/src/agent/Core/ApplicationPool/TestSession.h +3 -3
  36. data/src/agent/Core/Config.h +50 -10
  37. data/src/agent/Core/ConfigChange.cpp +13 -1
  38. data/src/agent/Core/Controller/Config.h +41 -17
  39. data/src/agent/Core/Controller/ForwardResponse.cpp +4 -0
  40. data/src/agent/Core/Controller/InitRequest.cpp +14 -8
  41. data/src/agent/Core/Controller/InitializationAndShutdown.cpp +5 -0
  42. data/src/agent/Core/Controller/SendRequest.cpp +9 -9
  43. data/src/agent/Core/Controller/TurboCaching.h +2 -2
  44. data/src/agent/Core/Controller.h +7 -5
  45. data/src/agent/Core/CoreMain.cpp +204 -60
  46. data/src/agent/Core/OptionParser.h +20 -3
  47. data/src/agent/Core/ResponseCache.h +3 -3
  48. data/src/agent/Core/SecurityUpdateChecker.h +4 -2
  49. data/src/agent/Core/SpawningKit/Config/AutoGeneratedCode.h +1 -1
  50. data/src/agent/Core/SpawningKit/Config.h +3 -2
  51. data/src/agent/Core/SpawningKit/Context.h +8 -2
  52. data/src/agent/Core/SpawningKit/DirectSpawner.h +4 -4
  53. data/src/agent/Core/SpawningKit/DummySpawner.h +3 -3
  54. data/src/agent/Core/SpawningKit/ErrorRenderer.h +1 -1
  55. data/src/agent/Core/SpawningKit/Exceptions.h +21 -14
  56. data/src/agent/Core/SpawningKit/Factory.h +1 -1
  57. data/src/agent/Core/SpawningKit/Handshake/BackgroundIOCapturer.h +1 -1
  58. data/src/agent/Core/SpawningKit/Handshake/Perform.h +14 -2
  59. data/src/agent/Core/SpawningKit/Handshake/Prepare.h +3 -3
  60. data/src/agent/Core/SpawningKit/Handshake/WorkDir.h +1 -1
  61. data/src/agent/Core/SpawningKit/Journey.h +4 -5
  62. data/src/agent/Core/SpawningKit/PipeWatcher.h +1 -1
  63. data/src/agent/Core/SpawningKit/README.md +34 -17
  64. data/src/agent/Core/SpawningKit/Result/AutoGeneratedCode.h +1 -1
  65. data/src/agent/Core/SpawningKit/Result.h +20 -8
  66. data/src/agent/Core/SpawningKit/SmartSpawner.h +7 -7
  67. data/src/agent/Core/SpawningKit/Spawner.h +25 -8
  68. data/src/agent/Core/SpawningKit/UserSwitchingRules.h +17 -7
  69. data/src/agent/Core/TelemetryCollector.h +681 -0
  70. data/src/agent/ExecHelper/ExecHelperMain.cpp +1 -1
  71. data/src/agent/FileReadHelper/FileReadHelperMain.cpp +198 -0
  72. data/src/agent/README.md +1 -1
  73. data/src/agent/Shared/ApiAccountUtils.h +1 -1
  74. data/src/agent/Shared/ApiServerUtils.h +3 -3
  75. data/src/agent/Shared/ApplicationPoolApiKey.h +2 -2
  76. data/src/agent/Shared/Fundamentals/AbortHandler.cpp +324 -98
  77. data/src/agent/Shared/Fundamentals/AbortHandler.h +31 -4
  78. data/src/agent/Shared/Fundamentals/Initialization.cpp +4 -5
  79. data/src/agent/Shared/Fundamentals/Initialization.h +9 -1
  80. data/src/agent/SpawnEnvSetupper/SpawnEnvSetupperMain.cpp +1 -1
  81. data/src/agent/SystemMetrics/SystemMetricsMain.cpp +4 -3
  82. data/src/agent/TempDirToucher/TempDirToucherMain.cpp +3 -3
  83. data/src/agent/Watchdog/ApiServer.h +3 -3
  84. data/src/agent/Watchdog/Config.h +24 -5
  85. data/src/agent/Watchdog/CoreWatcher.cpp +2 -2
  86. data/src/agent/Watchdog/WatchdogMain.cpp +97 -28
  87. data/src/apache2_module/Config.cpp +14 -14
  88. data/src/apache2_module/Config.h +8 -16
  89. data/src/apache2_module/ConfigGeneral/AutoGeneratedDefinitions.cpp +510 -481
  90. data/src/apache2_module/ConfigGeneral/AutoGeneratedDefinitions.cpp.cxxcodebuilder +39 -17
  91. data/src/apache2_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.cpp +5 -0
  92. data/src/apache2_module/ConfigGeneral/AutoGeneratedSetterFuncs.cpp +69 -1
  93. data/src/apache2_module/ConfigGeneral/AutoGeneratedSetterFuncs.cpp.cxxcodebuilder +31 -1
  94. data/src/apache2_module/ConfigGeneral/Common.h +45 -0
  95. data/src/apache2_module/DirConfig/AutoGeneratedCreateFunction.cpp +17 -1
  96. data/src/apache2_module/DirConfig/AutoGeneratedCreateFunction.cpp.cxxcodebuilder +16 -1
  97. data/src/apache2_module/DirConfig/AutoGeneratedHeaderSerialization.cpp +19 -5
  98. data/src/apache2_module/DirConfig/AutoGeneratedHeaderSerialization.cpp.cxxcodebuilder +26 -9
  99. data/src/apache2_module/DirConfig/AutoGeneratedManifestGeneration.cpp +19 -1
  100. data/src/apache2_module/DirConfig/AutoGeneratedManifestGeneration.cpp.cxxcodebuilder +10 -1
  101. data/src/apache2_module/DirConfig/AutoGeneratedMergeFunction.cpp +14 -1
  102. data/src/apache2_module/DirConfig/AutoGeneratedMergeFunction.cpp.cxxcodebuilder +11 -1
  103. data/src/apache2_module/DirConfig/AutoGeneratedStruct.h +36 -1
  104. data/src/apache2_module/DirConfig/AutoGeneratedStruct.h.cxxcodebuilder +34 -1
  105. data/src/apache2_module/DirectoryMapper.h +36 -37
  106. data/src/apache2_module/Hooks.cpp +27 -8
  107. data/src/apache2_module/ServerConfig/AutoGeneratedManifestGeneration.cpp +20 -0
  108. data/src/apache2_module/ServerConfig/AutoGeneratedStruct.h +48 -1
  109. data/src/apache2_module/ServerConfig/AutoGeneratedStruct.h.cxxcodebuilder +36 -1
  110. data/src/cxx_supportlib/{Utils → Algorithms}/Hasher.cpp +2 -2
  111. data/src/cxx_supportlib/{Utils → Algorithms}/Hasher.h +4 -4
  112. data/src/cxx_supportlib/AppLocalConfigFileUtils.h +148 -0
  113. data/src/cxx_supportlib/AppTypeDetector/CBindings.cpp +147 -0
  114. data/src/cxx_supportlib/AppTypeDetector/CBindings.h +75 -0
  115. data/src/cxx_supportlib/{AppTypes.h → AppTypeDetector/Detector.h} +92 -131
  116. data/src/cxx_supportlib/ConfigKit/README.md +90 -2
  117. data/src/cxx_supportlib/ConfigKit/Schema.h +60 -15
  118. data/src/cxx_supportlib/ConfigKit/Store.h +129 -5
  119. data/src/cxx_supportlib/Constants.h +1 -1
  120. data/src/cxx_supportlib/{Utils → DataStructures}/HashMap.h +4 -4
  121. data/src/cxx_supportlib/DataStructures/HashedStaticString.h +5 -5
  122. data/src/cxx_supportlib/DataStructures/LString.h +3 -3
  123. data/src/cxx_supportlib/{Utils → DataStructures}/StringMap.h +36 -36
  124. data/src/cxx_supportlib/FileTools/FileManip.cpp +1 -1
  125. data/src/cxx_supportlib/FileTools/PathManip.cpp +2 -2
  126. data/src/cxx_supportlib/FileTools/PathSecurityCheck.cpp +1 -1
  127. data/src/cxx_supportlib/Hooks.h +2 -2
  128. data/src/cxx_supportlib/{Utils → IOTools}/BufferedIO.h +5 -5
  129. data/src/cxx_supportlib/{Utils → IOTools}/IOUtils.cpp +4 -3
  130. data/src/cxx_supportlib/{Utils → IOTools}/IOUtils.h +3 -3
  131. data/src/cxx_supportlib/{Utils → IOTools}/MessageIO.h +7 -7
  132. data/src/cxx_supportlib/{MessageReadersWriters.h → IOTools/MessageSerialization.h} +5 -5
  133. data/src/cxx_supportlib/InstanceDirectory.h +4 -4
  134. data/src/cxx_supportlib/Integrations/LibevJsonUtils.h +3 -3
  135. data/src/cxx_supportlib/{Utils → JsonTools}/JsonUtils.h +5 -5
  136. data/src/cxx_supportlib/LoggingKit/Context.h +2 -2
  137. data/src/cxx_supportlib/LoggingKit/Implementation.cpp +3 -3
  138. data/src/cxx_supportlib/MemoryKit/mbuf.cpp +2 -2
  139. data/src/cxx_supportlib/ProcessManagement/Ruby.cpp +3 -3
  140. data/src/cxx_supportlib/ProcessManagement/Ruby.h +7 -2
  141. data/src/cxx_supportlib/ProcessManagement/Spawn.cpp +19 -12
  142. data/src/cxx_supportlib/ProcessManagement/Spawn.h +21 -2
  143. data/src/cxx_supportlib/ProcessManagement/Utils.h +10 -0
  144. data/src/cxx_supportlib/RandomGenerator.h +2 -2
  145. data/src/cxx_supportlib/ResourceLocator.h +1 -1
  146. data/src/cxx_supportlib/{Crypto.cpp → SecurityKit/Crypto.cpp} +4 -4
  147. data/src/cxx_supportlib/{Crypto.h → SecurityKit/Crypto.h} +4 -4
  148. data/src/cxx_supportlib/{Utils → SecurityKit}/MemZeroGuard.h +0 -0
  149. data/src/cxx_supportlib/ServerKit/AcceptLoadBalancer.h +2 -2
  150. data/src/cxx_supportlib/ServerKit/Channel.h +1 -1
  151. data/src/cxx_supportlib/ServerKit/ClientRef.h +17 -7
  152. data/src/cxx_supportlib/ServerKit/Context.h +2 -2
  153. data/src/cxx_supportlib/ServerKit/FileBufferedChannel.h +1 -1
  154. data/src/cxx_supportlib/ServerKit/HttpHeaderParser.h +3 -3
  155. data/src/cxx_supportlib/ServerKit/HttpHeaderParserState.h +2 -2
  156. data/src/cxx_supportlib/ServerKit/HttpRequestRef.h +17 -7
  157. data/src/cxx_supportlib/ServerKit/HttpServer.h +16 -10
  158. data/src/cxx_supportlib/ServerKit/Server.h +3 -4
  159. data/src/cxx_supportlib/{Utils → StrIntTools}/DateParsing.h +5 -5
  160. data/src/cxx_supportlib/{Utils → StrIntTools}/StrIntUtils.cpp +3 -3
  161. data/src/cxx_supportlib/{Utils → StrIntTools}/StrIntUtils.h +0 -0
  162. data/src/cxx_supportlib/{Utils → StrIntTools}/StrIntUtilsNoStrictAliasing.cpp +12 -12
  163. data/src/cxx_supportlib/{Utils → StrIntTools}/StringScanning.h +5 -5
  164. data/src/cxx_supportlib/{Utils → StrIntTools}/Template.h +30 -5
  165. data/src/cxx_supportlib/SystemTools/ContainerHelpers.h +88 -0
  166. data/src/cxx_supportlib/{Utils → SystemTools}/ProcessMetricsCollector.h +15 -12
  167. data/src/cxx_supportlib/{Utils → SystemTools}/SystemMetricsCollector.h +3 -3
  168. data/src/cxx_supportlib/{Utils → SystemTools}/SystemTime.cpp +1 -1
  169. data/src/cxx_supportlib/{Utils → SystemTools}/SystemTime.h +0 -0
  170. data/src/cxx_supportlib/SystemTools/UserDatabase.h +1 -1
  171. data/src/cxx_supportlib/Utils/CachedFileStat.hpp +3 -3
  172. data/src/cxx_supportlib/Utils/Curl.h +2 -2
  173. data/src/cxx_supportlib/Utils/FileChangeChecker.h +2 -2
  174. data/src/cxx_supportlib/Utils/MessagePassing.h +1 -1
  175. data/src/cxx_supportlib/Utils/SpeedMeter.h +2 -2
  176. data/src/cxx_supportlib/Utils/Timer.h +2 -2
  177. data/src/cxx_supportlib/Utils/VariantMap.h +3 -3
  178. data/src/cxx_supportlib/Utils.cpp +2 -2
  179. data/src/cxx_supportlib/WatchdogLauncher.h +3 -3
  180. data/src/cxx_supportlib/WebSocketCommandReverseServer.h +1 -1
  181. data/src/cxx_supportlib/WrapperRegistry/CBindings.cpp +85 -0
  182. data/src/cxx_supportlib/{Utils/MemoryBarrier.h → WrapperRegistry/CBindings.h} +30 -27
  183. data/src/cxx_supportlib/WrapperRegistry/Entry.h +112 -0
  184. data/src/cxx_supportlib/WrapperRegistry/README.md +37 -0
  185. data/src/cxx_supportlib/WrapperRegistry/Registry.h +309 -0
  186. data/src/cxx_supportlib/vendor-modified/psg_sysqueue.h +3 -0
  187. data/src/helper-scripts/download_binaries/extconf.rb +6 -2
  188. data/src/nginx_module/ConfigGeneral/AutoGeneratedDefinitions.c +32 -0
  189. data/src/nginx_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.c +12 -0
  190. data/src/nginx_module/ConfigGeneral/AutoGeneratedSetterFuncs.c +36 -0
  191. data/src/nginx_module/Configuration.c +23 -3
  192. data/src/nginx_module/ContentHandler.c +331 -32
  193. data/src/nginx_module/ContentHandler.h +8 -3
  194. data/src/nginx_module/LocationConfig/AutoGeneratedCreateFunction.c +10 -0
  195. data/src/nginx_module/LocationConfig/AutoGeneratedManifestGeneration.c +27 -0
  196. data/src/nginx_module/LocationConfig/AutoGeneratedMergeFunction.c +3 -0
  197. data/src/nginx_module/LocationConfig/AutoGeneratedStruct.h +7 -0
  198. data/src/nginx_module/MainConfig/AutoGeneratedCreateFunction.c +11 -0
  199. data/src/nginx_module/MainConfig/AutoGeneratedManifestGeneration.c +23 -0
  200. data/src/nginx_module/MainConfig/AutoGeneratedStruct.h +8 -0
  201. data/src/nginx_module/config +2 -1
  202. data/src/nginx_module/ngx_http_passenger_module.c +9 -3
  203. data/src/nginx_module/ngx_http_passenger_module.h +10 -3
  204. data/src/ruby_supportlib/phusion_passenger/apache2/config_options.rb +19 -0
  205. data/src/ruby_supportlib/phusion_passenger/common_library.rb +19 -16
  206. data/src/ruby_supportlib/phusion_passenger/config/agent_compiler.rb +4 -4
  207. data/src/ruby_supportlib/phusion_passenger/config/download_agent_command.rb +6 -2
  208. data/src/ruby_supportlib/phusion_passenger/config/download_nginx_engine_command.rb +6 -2
  209. data/src/ruby_supportlib/phusion_passenger/config/nginx_engine_compiler.rb +1 -1
  210. data/src/ruby_supportlib/phusion_passenger/message_channel.rb +2 -2
  211. data/src/ruby_supportlib/phusion_passenger/native_support.rb +7 -3
  212. data/src/ruby_supportlib/phusion_passenger/nginx/config_options.rb +29 -0
  213. data/src/ruby_supportlib/phusion_passenger/packaging.rb +20 -19
  214. data/src/ruby_supportlib/phusion_passenger/platform_info/apache.rb +22 -4
  215. data/src/ruby_supportlib/phusion_passenger/platform_info/ruby.rb +33 -13
  216. data/src/ruby_supportlib/phusion_passenger/standalone/app_finder.rb +1 -0
  217. data/src/ruby_supportlib/phusion_passenger/standalone/config_options_list.rb +22 -2
  218. data/src/ruby_supportlib/phusion_passenger/standalone/start_command/builtin_engine.rb +4 -1
  219. data/src/ruby_supportlib/phusion_passenger.rb +7 -5
  220. data/src/schema_printer/SchemaPrinterMain.cpp +2 -0
  221. metadata +40 -89
  222. data/.editorconfig +0 -134
  223. data/CODE_OF_CONDUCT.md +0 -52
  224. data/dev/boost-patches/0001-Patch-boost-thread-so-that-oxt-thread-can-use-it.patch +0 -48
  225. data/dev/boost-patches/0002-Make-boost-thread_interrupted-derive-from-oxt-tracab.patch +0 -33
  226. data/dev/boost-patches/0003-Disable-a-Clang-pragma-to-prevent-warnings-on-OS-X.patch +0 -25
  227. data/dev/ci/README.md +0 -134
  228. data/dev/ci/lib/functions.sh +0 -129
  229. data/dev/ci/lib/set-container-envvars.sh +0 -53
  230. data/dev/ci/lib/setup-container.sh +0 -46
  231. data/dev/ci/run-tests-natively +0 -24
  232. data/dev/ci/run-tests-with-docker +0 -42
  233. data/dev/ci/scripts/debug-console-wrapper.sh +0 -29
  234. data/dev/ci/scripts/docker-entrypoint-stage2.sh +0 -17
  235. data/dev/ci/scripts/docker-entrypoint.sh +0 -17
  236. data/dev/ci/scripts/inituidgid +0 -17
  237. data/dev/ci/scripts/run-tests-natively-stage2.sh +0 -17
  238. data/dev/ci/scripts/setup-host-natively.sh +0 -11
  239. data/dev/ci/setup-host +0 -56
  240. data/dev/ci/tests/apache2/run +0 -6
  241. data/dev/ci/tests/apache2/setup +0 -4
  242. data/dev/ci/tests/binaries/Jenkinsfile +0 -105
  243. data/dev/ci/tests/binaries/build-linux +0 -38
  244. data/dev/ci/tests/binaries/build-macos +0 -40
  245. data/dev/ci/tests/binaries/prepare-macos +0 -38
  246. data/dev/ci/tests/binaries/test-linux +0 -45
  247. data/dev/ci/tests/binaries/test-macos +0 -38
  248. data/dev/ci/tests/cxx/run +0 -9
  249. data/dev/ci/tests/cxx/setup +0 -4
  250. data/dev/ci/tests/debian/Jenkinsfile +0 -89
  251. data/dev/ci/tests/debian/run +0 -60
  252. data/dev/ci/tests/nginx/run +0 -5
  253. data/dev/ci/tests/nginx/setup +0 -4
  254. data/dev/ci/tests/nginx-dynamic/run +0 -20
  255. data/dev/ci/tests/nginx-dynamic/setup +0 -4
  256. data/dev/ci/tests/nodejs/run +0 -4
  257. data/dev/ci/tests/nodejs/setup +0 -4
  258. data/dev/ci/tests/rpm/Jenkinsfile +0 -68
  259. data/dev/ci/tests/rpm/run +0 -63
  260. data/dev/ci/tests/ruby/run +0 -4
  261. data/dev/ci/tests/ruby/setup +0 -4
  262. data/dev/ci/tests/source-packaging/run +0 -4
  263. data/dev/ci/tests/source-packaging/setup +0 -4
  264. data/dev/ci/tests/standalone/run +0 -4
  265. data/dev/ci/tests/standalone/setup +0 -4
  266. data/dev/configkit-schemas/index.json +0 -1748
  267. data/dev/configkit-schemas/update_schema_inline_comments.rb +0 -118
  268. data/dev/rack.test/config.ru +0 -5
  269. data/dev/rack.test/public/asset.txt +0 -1
  270. data/dev/vagrant/apache_default_site.conf +0 -35
  271. data/dev/vagrant/apache_passenger.conf +0 -5
  272. data/dev/vagrant/apache_passenger.load +0 -1
  273. data/dev/vagrant/apache_ports.conf +0 -24
  274. data/dev/vagrant/apache_rack_test.conf +0 -9
  275. data/dev/vagrant/bashrc +0 -23
  276. data/dev/vagrant/nginx.conf +0 -39
  277. data/dev/vagrant/nginx_rakefile +0 -33
  278. data/dev/vagrant/nginx_start +0 -32
  279. data/dev/vagrant/provision.sh +0 -117
  280. data/dev/vagrant/sudoers.conf +0 -5
  281. data/resources/templates/error_renderer/.editorconfig +0 -19
  282. data/src/cxx_supportlib/AppTypes.cpp +0 -109
  283. 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-2017 Phusion Holding B.V.
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-2017 Phusion Holding B.V.
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-2017 Phusion Holding B.V.
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 <AppTypes.h>
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 &registry;
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
- PassengerAppType appType: 7;
84
- bool autoDetectionDone: 1;
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(cstat, cstatMutex, throttleRate);
150
- PassengerAppType appType;
151
+ AppTypeDetector::Detector detector(registry, cstat,
152
+ cstatMutex, throttleRate, configMutex);
153
+ AppTypeDetector::Detector::Result detectorResult;
151
154
  string appRoot;
152
- if (config->getAppType().empty()) {
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
- appType = detector.checkDocumentRoot(publicDir,
163
+ detectorResult = detector.checkDocumentRoot(publicDir,
155
164
  baseURI != NULL,
156
165
  &appRoot);
157
166
  } else {
158
167
  appRoot = config->getAppRoot();
159
- appType = detector.checkAppRoot(appRoot);
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 = &registry.lookup(
176
+ config->getAppType());
168
177
  }
169
178
 
170
179
  this->appRoot = appRoot;
171
180
  this->baseURI = baseURI;
172
- this->appType = appType;
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, CachedFileStat *cstat,
188
- boost::mutex *cstatMutex, unsigned int throttleRate) {
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 type that's associated with the HTTP request.
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
- const char *getApplicationTypeName() {
266
+ AppTypeDetector::Detector::Result getDetectorResult() {
268
267
  autoDetect();
269
- return getAppTypeName(appType);
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-2017 Phusion Holding B.V.
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 <Utils/IOUtils.h>
67
- #include <Utils/StrIntUtils.h>
68
- #include <Utils/SystemTime.h>
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, &cstat, &cstatMutex, serverConfig.statThrottleRate);
449
+ DirectoryMapper mapper(r, config, wrapperRegistry, &cstat,
450
+ &cstatMutex, serverConfig.statThrottleRate, &configMutex);
447
451
  try {
448
- if (mapper.getApplicationType() == PAT_NONE) {
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"), mapper.getAppRoot());
987
- addHeader(result, P_STATIC_STRING("!~PASSENGER_APP_TYPE"), mapper.getApplicationTypeName());
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-2017 Phusion Holding B.V.
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 <Utils/Hasher.h>
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-2017 Phusion Holding B.V.
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 _PASSENGER_HASHER_H_
27
- #define _PASSENGER_HASHER_H_
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 /* _PASSENGER_HASHER_H_ */
59
+ #endif /* _PASSENGER_ALGORITHMS_HASHER_H_ */