passenger 5.3.5 → 5.3.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (211) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +13 -0
  3. data/README.md +2 -1
  4. data/Rakefile +0 -5
  5. data/build/agent.rb +2 -1
  6. data/build/cxx_tests.rb +18 -20
  7. data/build/integration_tests.rb +6 -2
  8. data/build/support/cxx_dependency_map.rb +2019 -1966
  9. data/dev/colorize-logs +272 -0
  10. data/src/agent/Core/AdminPanelConnector.h +3 -3
  11. data/src/agent/Core/ApiServer.h +4 -4
  12. data/src/agent/Core/ApplicationPool/BasicProcessInfo.h +2 -2
  13. data/src/agent/Core/ApplicationPool/Group/OutOfBandWork.cpp +2 -2
  14. data/src/agent/Core/ApplicationPool/Implementation.cpp +5 -5
  15. data/src/agent/Core/ApplicationPool/Pool.h +4 -4
  16. data/src/agent/Core/ApplicationPool/Process.h +10 -15
  17. data/src/agent/Core/ApplicationPool/Socket.h +2 -2
  18. data/src/agent/Core/ApplicationPool/TestSession.h +3 -3
  19. data/src/agent/Core/Config.h +4 -2
  20. data/src/agent/Core/Controller.h +4 -4
  21. data/src/agent/Core/Controller/Config.h +1 -1
  22. data/src/agent/Core/Controller/SendRequest.cpp +2 -2
  23. data/src/agent/Core/Controller/TurboCaching.h +2 -2
  24. data/src/agent/Core/CoreMain.cpp +2 -2
  25. data/src/agent/Core/OptionParser.h +2 -2
  26. data/src/agent/Core/ResponseCache.h +3 -3
  27. data/src/agent/Core/SecurityUpdateChecker.h +2 -2
  28. data/src/agent/Core/SpawningKit/Config.h +2 -1
  29. data/src/agent/Core/SpawningKit/Config/AutoGeneratedCode.h +1 -1
  30. data/src/agent/Core/SpawningKit/Context.h +1 -1
  31. data/src/agent/Core/SpawningKit/DirectSpawner.h +3 -3
  32. data/src/agent/Core/SpawningKit/DummySpawner.h +3 -3
  33. data/src/agent/Core/SpawningKit/ErrorRenderer.h +1 -1
  34. data/src/agent/Core/SpawningKit/Exceptions.h +2 -2
  35. data/src/agent/Core/SpawningKit/Factory.h +1 -1
  36. data/src/agent/Core/SpawningKit/Handshake/BackgroundIOCapturer.h +1 -1
  37. data/src/agent/Core/SpawningKit/Handshake/Perform.h +13 -2
  38. data/src/agent/Core/SpawningKit/Handshake/Prepare.h +3 -3
  39. data/src/agent/Core/SpawningKit/Handshake/WorkDir.h +1 -1
  40. data/src/agent/Core/SpawningKit/Journey.h +4 -5
  41. data/src/agent/Core/SpawningKit/PipeWatcher.h +1 -1
  42. data/src/agent/Core/SpawningKit/Result.h +20 -8
  43. data/src/agent/Core/SpawningKit/Result/AutoGeneratedCode.h +1 -1
  44. data/src/agent/Core/SpawningKit/SmartSpawner.h +6 -6
  45. data/src/agent/Core/SpawningKit/Spawner.h +2 -2
  46. data/src/agent/Core/TelemetryCollector.h +13 -7
  47. data/src/agent/ExecHelper/ExecHelperMain.cpp +1 -1
  48. data/src/agent/README.md +1 -1
  49. data/src/agent/Shared/ApiAccountUtils.h +1 -1
  50. data/src/agent/Shared/ApiServerUtils.h +3 -3
  51. data/src/agent/Shared/ApplicationPoolApiKey.h +2 -2
  52. data/src/agent/Shared/Fundamentals/Initialization.cpp +4 -4
  53. data/src/agent/SpawnEnvSetupper/SpawnEnvSetupperMain.cpp +1 -1
  54. data/src/agent/SystemMetrics/SystemMetricsMain.cpp +4 -3
  55. data/src/agent/Watchdog/ApiServer.h +3 -3
  56. data/src/agent/Watchdog/Config.h +3 -2
  57. data/src/agent/Watchdog/CoreWatcher.cpp +2 -2
  58. data/src/agent/Watchdog/WatchdogMain.cpp +93 -27
  59. data/src/apache2_module/Config.cpp +14 -14
  60. data/src/apache2_module/Config.h +8 -16
  61. data/src/apache2_module/ConfigGeneral/AutoGeneratedDefinitions.cpp +505 -491
  62. data/src/apache2_module/ConfigGeneral/AutoGeneratedDefinitions.cpp.cxxcodebuilder +39 -17
  63. data/src/apache2_module/ConfigGeneral/AutoGeneratedSetterFuncs.cpp +24 -1
  64. data/src/apache2_module/ConfigGeneral/AutoGeneratedSetterFuncs.cpp.cxxcodebuilder +31 -1
  65. data/src/{cxx_supportlib/Utils/MemoryBarrier.h → apache2_module/ConfigGeneral/Common.h} +17 -25
  66. data/src/apache2_module/DirConfig/AutoGeneratedCreateFunction.cpp +12 -1
  67. data/src/apache2_module/DirConfig/AutoGeneratedCreateFunction.cpp.cxxcodebuilder +16 -1
  68. data/src/apache2_module/DirConfig/AutoGeneratedHeaderSerialization.cpp +19 -5
  69. data/src/apache2_module/DirConfig/AutoGeneratedHeaderSerialization.cpp.cxxcodebuilder +26 -9
  70. data/src/apache2_module/DirConfig/AutoGeneratedManifestGeneration.cpp +6 -1
  71. data/src/apache2_module/DirConfig/AutoGeneratedManifestGeneration.cpp.cxxcodebuilder +10 -1
  72. data/src/apache2_module/DirConfig/AutoGeneratedMergeFunction.cpp +7 -1
  73. data/src/apache2_module/DirConfig/AutoGeneratedMergeFunction.cpp.cxxcodebuilder +11 -1
  74. data/src/apache2_module/DirConfig/AutoGeneratedStruct.h +23 -1
  75. data/src/apache2_module/DirConfig/AutoGeneratedStruct.h.cxxcodebuilder +34 -1
  76. data/src/apache2_module/Hooks.cpp +3 -3
  77. data/src/apache2_module/ServerConfig/AutoGeneratedStruct.h +24 -1
  78. data/src/apache2_module/ServerConfig/AutoGeneratedStruct.h.cxxcodebuilder +36 -1
  79. data/src/cxx_supportlib/{Utils → Algorithms}/Hasher.cpp +2 -2
  80. data/src/cxx_supportlib/{Utils → Algorithms}/Hasher.h +4 -4
  81. data/src/cxx_supportlib/AppTypeDetector/Detector.h +1 -1
  82. data/src/cxx_supportlib/ConfigKit/Schema.h +2 -2
  83. data/src/cxx_supportlib/ConfigKit/Store.h +1 -1
  84. data/src/cxx_supportlib/Constants.h +1 -1
  85. data/src/cxx_supportlib/{Utils → DataStructures}/HashMap.h +4 -4
  86. data/src/cxx_supportlib/DataStructures/HashedStaticString.h +5 -5
  87. data/src/cxx_supportlib/DataStructures/LString.h +3 -3
  88. data/src/cxx_supportlib/{Utils → DataStructures}/StringMap.h +36 -36
  89. data/src/cxx_supportlib/FileTools/FileManip.cpp +1 -1
  90. data/src/cxx_supportlib/FileTools/PathManip.cpp +2 -2
  91. data/src/cxx_supportlib/FileTools/PathSecurityCheck.cpp +1 -1
  92. data/src/cxx_supportlib/Hooks.h +2 -2
  93. data/src/cxx_supportlib/{Utils → IOTools}/BufferedIO.h +5 -5
  94. data/src/cxx_supportlib/{Utils → IOTools}/IOUtils.cpp +2 -2
  95. data/src/cxx_supportlib/{Utils → IOTools}/IOUtils.h +3 -3
  96. data/src/cxx_supportlib/{Utils → IOTools}/MessageIO.h +7 -7
  97. data/src/cxx_supportlib/{MessageReadersWriters.h → IOTools/MessageSerialization.h} +5 -5
  98. data/src/cxx_supportlib/InstanceDirectory.h +4 -4
  99. data/src/cxx_supportlib/Integrations/LibevJsonUtils.h +3 -3
  100. data/src/cxx_supportlib/{Utils → JsonTools}/JsonUtils.h +5 -5
  101. data/src/cxx_supportlib/LoggingKit/Context.h +2 -2
  102. data/src/cxx_supportlib/LoggingKit/Implementation.cpp +3 -3
  103. data/src/cxx_supportlib/MemoryKit/mbuf.cpp +2 -2
  104. data/src/cxx_supportlib/ProcessManagement/Spawn.cpp +5 -5
  105. data/src/cxx_supportlib/ProcessManagement/Utils.h +10 -0
  106. data/src/cxx_supportlib/RandomGenerator.h +2 -2
  107. data/src/cxx_supportlib/{Crypto.cpp → SecurityKit/Crypto.cpp} +4 -4
  108. data/src/cxx_supportlib/{Crypto.h → SecurityKit/Crypto.h} +4 -4
  109. data/src/cxx_supportlib/{Utils → SecurityKit}/MemZeroGuard.h +0 -0
  110. data/src/cxx_supportlib/ServerKit/AcceptLoadBalancer.h +2 -2
  111. data/src/cxx_supportlib/ServerKit/Channel.h +1 -1
  112. data/src/cxx_supportlib/ServerKit/Context.h +2 -2
  113. data/src/cxx_supportlib/ServerKit/FileBufferedChannel.h +1 -1
  114. data/src/cxx_supportlib/ServerKit/HttpHeaderParser.h +3 -3
  115. data/src/cxx_supportlib/ServerKit/HttpHeaderParserState.h +2 -2
  116. data/src/cxx_supportlib/ServerKit/HttpServer.h +16 -10
  117. data/src/cxx_supportlib/ServerKit/Server.h +3 -3
  118. data/src/cxx_supportlib/{Utils → StrIntTools}/DateParsing.h +5 -5
  119. data/src/cxx_supportlib/{Utils → StrIntTools}/StrIntUtils.cpp +3 -3
  120. data/src/cxx_supportlib/{Utils → StrIntTools}/StrIntUtils.h +0 -0
  121. data/src/cxx_supportlib/{Utils → StrIntTools}/StrIntUtilsNoStrictAliasing.cpp +2 -2
  122. data/src/cxx_supportlib/{Utils → StrIntTools}/StringScanning.h +5 -5
  123. data/src/cxx_supportlib/{Utils → StrIntTools}/Template.h +30 -5
  124. data/src/cxx_supportlib/SystemTools/ContainerHelpers.h +34 -0
  125. data/src/cxx_supportlib/{Utils → SystemTools}/ProcessMetricsCollector.h +6 -6
  126. data/src/cxx_supportlib/{Utils → SystemTools}/SystemMetricsCollector.h +3 -3
  127. data/src/cxx_supportlib/{Utils → SystemTools}/SystemTime.cpp +1 -1
  128. data/src/cxx_supportlib/{Utils → SystemTools}/SystemTime.h +0 -0
  129. data/src/cxx_supportlib/SystemTools/UserDatabase.h +1 -1
  130. data/src/cxx_supportlib/Utils.cpp +2 -2
  131. data/src/cxx_supportlib/Utils/CachedFileStat.hpp +3 -3
  132. data/src/cxx_supportlib/Utils/Curl.h +2 -2
  133. data/src/cxx_supportlib/Utils/FileChangeChecker.h +2 -2
  134. data/src/cxx_supportlib/Utils/MessagePassing.h +1 -1
  135. data/src/cxx_supportlib/Utils/SpeedMeter.h +2 -2
  136. data/src/cxx_supportlib/Utils/Timer.h +2 -2
  137. data/src/cxx_supportlib/Utils/VariantMap.h +3 -3
  138. data/src/cxx_supportlib/WatchdogLauncher.h +3 -3
  139. data/src/cxx_supportlib/WebSocketCommandReverseServer.h +1 -1
  140. data/src/cxx_supportlib/WrapperRegistry/Registry.h +1 -1
  141. data/src/cxx_supportlib/vendor-modified/psg_sysqueue.h +3 -0
  142. data/src/ruby_supportlib/phusion_passenger.rb +1 -1
  143. data/src/ruby_supportlib/phusion_passenger/common_library.rb +11 -11
  144. data/src/ruby_supportlib/phusion_passenger/config/agent_compiler.rb +4 -4
  145. data/src/ruby_supportlib/phusion_passenger/config/nginx_engine_compiler.rb +1 -1
  146. data/src/ruby_supportlib/phusion_passenger/message_channel.rb +2 -2
  147. data/src/ruby_supportlib/phusion_passenger/packaging.rb +20 -19
  148. data/src/ruby_supportlib/phusion_passenger/platform_info/apache.rb +22 -4
  149. data/src/ruby_supportlib/phusion_passenger/platform_info/ruby.rb +33 -13
  150. data/src/schema_printer/SchemaPrinterMain.cpp +2 -0
  151. metadata +28 -86
  152. data/.editorconfig +0 -134
  153. data/CODE_OF_CONDUCT.md +0 -52
  154. data/dev/boost-patches/0001-Patch-boost-thread-so-that-oxt-thread-can-use-it.patch +0 -48
  155. data/dev/boost-patches/0002-Make-boost-thread_interrupted-derive-from-oxt-tracab.patch +0 -33
  156. data/dev/boost-patches/0003-Disable-a-Clang-pragma-to-prevent-warnings-on-OS-X.patch +0 -25
  157. data/dev/ci/README.md +0 -134
  158. data/dev/ci/lib/functions.sh +0 -129
  159. data/dev/ci/lib/set-container-envvars.sh +0 -53
  160. data/dev/ci/lib/setup-container.sh +0 -46
  161. data/dev/ci/run-tests-natively +0 -24
  162. data/dev/ci/run-tests-with-docker +0 -42
  163. data/dev/ci/scripts/debug-console-wrapper.sh +0 -29
  164. data/dev/ci/scripts/docker-entrypoint-stage2.sh +0 -17
  165. data/dev/ci/scripts/docker-entrypoint.sh +0 -17
  166. data/dev/ci/scripts/inituidgid +0 -17
  167. data/dev/ci/scripts/run-tests-natively-stage2.sh +0 -17
  168. data/dev/ci/scripts/setup-host-natively.sh +0 -11
  169. data/dev/ci/setup-host +0 -56
  170. data/dev/ci/tests/apache2/run +0 -6
  171. data/dev/ci/tests/apache2/setup +0 -4
  172. data/dev/ci/tests/binaries/Jenkinsfile +0 -105
  173. data/dev/ci/tests/binaries/build-linux +0 -38
  174. data/dev/ci/tests/binaries/build-macos +0 -40
  175. data/dev/ci/tests/binaries/prepare-macos +0 -38
  176. data/dev/ci/tests/binaries/test-linux +0 -45
  177. data/dev/ci/tests/binaries/test-macos +0 -38
  178. data/dev/ci/tests/cxx/run +0 -9
  179. data/dev/ci/tests/cxx/setup +0 -4
  180. data/dev/ci/tests/debian/Jenkinsfile +0 -89
  181. data/dev/ci/tests/debian/run +0 -60
  182. data/dev/ci/tests/nginx-dynamic/run +0 -20
  183. data/dev/ci/tests/nginx-dynamic/setup +0 -4
  184. data/dev/ci/tests/nginx/run +0 -5
  185. data/dev/ci/tests/nginx/setup +0 -4
  186. data/dev/ci/tests/nodejs/run +0 -4
  187. data/dev/ci/tests/nodejs/setup +0 -4
  188. data/dev/ci/tests/rpm/Jenkinsfile +0 -68
  189. data/dev/ci/tests/rpm/run +0 -63
  190. data/dev/ci/tests/ruby/run +0 -4
  191. data/dev/ci/tests/ruby/setup +0 -4
  192. data/dev/ci/tests/source-packaging/run +0 -4
  193. data/dev/ci/tests/source-packaging/setup +0 -4
  194. data/dev/ci/tests/standalone/run +0 -4
  195. data/dev/ci/tests/standalone/setup +0 -4
  196. data/dev/configkit-schemas/index.json +0 -1850
  197. data/dev/configkit-schemas/update_schema_inline_comments.rb +0 -118
  198. data/dev/rack.test/config.ru +0 -5
  199. data/dev/rack.test/public/asset.txt +0 -1
  200. data/dev/vagrant/apache_default_site.conf +0 -35
  201. data/dev/vagrant/apache_passenger.conf +0 -5
  202. data/dev/vagrant/apache_passenger.load +0 -1
  203. data/dev/vagrant/apache_ports.conf +0 -24
  204. data/dev/vagrant/apache_rack_test.conf +0 -9
  205. data/dev/vagrant/bashrc +0 -23
  206. data/dev/vagrant/nginx.conf +0 -39
  207. data/dev/vagrant/nginx_rakefile +0 -33
  208. data/dev/vagrant/nginx_start +0 -32
  209. data/dev/vagrant/provision.sh +0 -117
  210. data/dev/vagrant/sudoers.conf +0 -5
  211. data/resources/templates/error_renderer/.editorconfig +0 -19
@@ -37,7 +37,7 @@
37
37
  #include <ServerKit/Hooks.h>
38
38
  #include <MemoryKit/mbuf.h>
39
39
  #include <LoggingKit/LoggingKit.h>
40
- #include <Utils/StrIntUtils.h>
40
+ #include <StrIntTools/StrIntUtils.h>
41
41
 
42
42
  namespace Passenger {
43
43
  namespace ServerKit {
@@ -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.
@@ -36,7 +36,7 @@
36
36
  #include <SafeLibev.h>
37
37
  #include <Exceptions.h>
38
38
  #include <Utils.h>
39
- #include <Utils/JsonUtils.h>
39
+ #include <JsonTools/JsonUtils.h>
40
40
 
41
41
  extern "C" {
42
42
  struct uv_loop_s;
@@ -46,7 +46,7 @@
46
46
  #include <ServerKit/Config.h>
47
47
  #include <ServerKit/Errors.h>
48
48
  #include <ServerKit/Channel.h>
49
- #include <Utils/JsonUtils.h>
49
+ #include <JsonTools/JsonUtils.h>
50
50
 
51
51
  namespace Passenger {
52
52
  namespace ServerKit {
@@ -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.
@@ -38,8 +38,8 @@
38
38
  #include <DataStructures/LString.h>
39
39
  #include <DataStructures/HashedStaticString.h>
40
40
  #include <LoggingKit/LoggingKit.h>
41
- #include <Utils/StrIntUtils.h>
42
- #include <Utils/Hasher.h>
41
+ #include <StrIntTools/StrIntUtils.h>
42
+ #include <Algorithms/Hasher.h>
43
43
 
44
44
  namespace Passenger {
45
45
  namespace ServerKit {
@@ -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.
@@ -27,7 +27,7 @@
27
27
  #define _PASSENGER_SERVER_KIT_HTTP_HEADER_PARSER_STATE_H_
28
28
 
29
29
  #include <DataStructures/LString.h>
30
- #include <Utils/Hasher.h>
30
+ #include <Algorithms/Hasher.h>
31
31
 
32
32
  namespace Passenger {
33
33
  namespace ServerKit {
@@ -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.
@@ -44,11 +44,11 @@
44
44
  #include <ServerKit/HttpChunkedBodyParser.h>
45
45
  #include <Algorithms/MovingAverage.h>
46
46
  #include <Integrations/LibevJsonUtils.h>
47
- #include <Utils/SystemTime.h>
48
- #include <Utils/StrIntUtils.h>
47
+ #include <SystemTools/SystemTime.h>
48
+ #include <StrIntTools/StrIntUtils.h>
49
49
  #include <Utils/HttpConstants.h>
50
- #include <Utils/Hasher.h>
51
- #include <Utils/SystemTime.h>
50
+ #include <Algorithms/Hasher.h>
51
+ #include <SystemTools/SystemTime.h>
52
52
 
53
53
  namespace Passenger {
54
54
  namespace ServerKit {
@@ -329,10 +329,8 @@ private:
329
329
  SKC_TRACE(client, 3, "Parsing " << buffer.size() <<
330
330
  " bytes of HTTP header: \"" << cEscapeString(StaticString(
331
331
  buffer.start, buffer.size())) << "\"");
332
- {
333
- ret = createRequestHeaderParser(this->getContext(), req).
334
- feed(buffer);
335
- }
332
+ ret = createRequestHeaderParser(this->getContext(), req).
333
+ feed(buffer);
336
334
  if (req->httpState == Request::PARSING_HEADERS) {
337
335
  // Not yet done parsing.
338
336
  return Channel::Result(buffer.size(), false);
@@ -417,6 +415,9 @@ private:
417
415
  assert(maxRemaining > 0);
418
416
  remaining = std::min<boost::uint64_t>(buffer.size(), maxRemaining);
419
417
  req->bodyAlreadyRead += remaining;
418
+ SKC_TRACE(client, 3, "Event comes with " << buffer.size() <<
419
+ " bytes of fixed-length HTTP request body: \"" << cEscapeString(StaticString(
420
+ buffer.start, buffer.size())) << "\"");
420
421
  SKC_TRACE(client, 3, "Request body: " <<
421
422
  req->bodyAlreadyRead << " of " <<
422
423
  req->aux.bodyInfo.contentLength << " bytes already read");
@@ -474,6 +475,9 @@ private:
474
475
  }
475
476
  }
476
477
 
478
+ SKC_TRACE(client, 3, "Event comes with " << buffer.size() <<
479
+ " bytes of chunked HTTP request body: \"" << cEscapeString(StaticString(
480
+ buffer.start, buffer.size())) << "\"");
477
481
  HttpChunkedEvent event(createChunkedBodyParser(req).feed(buffer));
478
482
  req->bodyAlreadyRead += event.consumed;
479
483
 
@@ -512,7 +516,6 @@ private:
512
516
  return Channel::Result(event.consumed, false);
513
517
  case HttpChunkedEvent::ERROR:
514
518
  assert(event.end);
515
- P_ASSERT_EQ(event.consumed, 0);
516
519
  client->input.stop();
517
520
  req->wantKeepAlive = false;
518
521
  req->bodyChannel.feedError(event.errcode);
@@ -553,6 +556,9 @@ private:
553
556
  }
554
557
  }
555
558
 
559
+ SKC_TRACE(client, 3, "Event comes with " << buffer.size() <<
560
+ " bytes of upgraded HTTP request body: \"" << cEscapeString(StaticString(
561
+ buffer.start, buffer.size())) << "\"");
556
562
  req->bodyAlreadyRead += buffer.size();
557
563
  req->bodyChannel.feed(buffer);
558
564
  if (!req->ended()) {
@@ -68,9 +68,9 @@
68
68
  #include <Algorithms/MovingAverage.h>
69
69
  #include <Utils.h>
70
70
  #include <Utils/ScopeGuard.h>
71
- #include <Utils/StrIntUtils.h>
72
- #include <Utils/IOUtils.h>
73
- #include <Utils/SystemTime.h>
71
+ #include <StrIntTools/StrIntUtils.h>
72
+ #include <IOTools/IOUtils.h>
73
+ #include <SystemTools/SystemTime.h>
74
74
 
75
75
  namespace Passenger {
76
76
  namespace ServerKit {
@@ -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,15 +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_UTILS_DATE_PARSING_H_
27
- #define _PASSENGER_UTILS_DATE_PARSING_H_
26
+ #ifndef _PASSENGER_STRINTTOOLS_DATE_PARSING_H_
27
+ #define _PASSENGER_STRINTTOOLS_DATE_PARSING_H_
28
28
 
29
29
  #include <algorithm>
30
30
  #include <time.h>
31
31
  #include <cassert>
32
32
  #include <cstring>
33
33
  #include <StaticString.h>
34
- #include <Utils/StrIntUtils.h>
34
+ #include <StrIntTools/StrIntUtils.h>
35
35
 
36
36
  namespace Passenger {
37
37
 
@@ -404,4 +404,4 @@ parseImfFixdate_zone(const char **pos, const char *end, int &zone) {
404
404
 
405
405
  } // namespace Passenger
406
406
 
407
- #endif /* _PASSENGER_UTILS_DATE_PARSING_H_ */
407
+ #endif /* _PASSENGER_STRINTTOOLS_DATE_PARSING_H_ */
@@ -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,8 +33,8 @@
33
33
  #include <utf8.h>
34
34
  #include <algorithm>
35
35
  #include <Exceptions.h>
36
- #include <Utils/SystemTime.h>
37
- #include <Utils/StrIntUtils.h>
36
+ #include <SystemTools/SystemTime.h>
37
+ #include <StrIntTools/StrIntUtils.h>
38
38
 
39
39
  namespace Passenger {
40
40
 
@@ -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.
@@ -27,7 +27,7 @@
27
27
  #include <boost/cstdint.hpp>
28
28
  #include <cstddef>
29
29
  #include <oxt/macros.hpp>
30
- #include <Utils/StrIntUtils.h>
30
+ #include <StrIntTools/StrIntUtils.h>
31
31
 
32
32
  namespace Passenger {
33
33
 
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * Phusion Passenger - https://www.phusionpassenger.com/
3
- * Copyright (c) 2013-2017 Phusion Holding B.V.
3
+ * Copyright (c) 2013-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,14 +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_STRING_SCANNING_H_
27
- #define _PASSENGER_STRING_SCANNING_H_
26
+ #ifndef _PASSENGER_STR_INT_TOOLS_STRING_SCANNING_H_
27
+ #define _PASSENGER_STR_INT_TOOLS_STRING_SCANNING_H_
28
28
 
29
29
  #include <cstring>
30
30
  #include <cstdlib>
31
31
  #include <string>
32
32
  #include <StaticString.h>
33
- #include <Utils/StrIntUtils.h>
33
+ #include <StrIntTools/StrIntUtils.h>
34
34
 
35
35
 
36
36
  /**
@@ -269,4 +269,4 @@ readNextSentence(const char **data, char terminator) {
269
269
 
270
270
  } // namespace Passenger
271
271
 
272
- #endif /* _PASSENGER_STRING_SCANNING_H_ */
272
+ #endif /* _PASSENGER_STR_INT_TOOLS_TEMPLATE_H_ */
@@ -1,12 +1,37 @@
1
- #ifndef _PASSENGER_TEMPLATE_H_
2
- #define _PASSENGER_TEMPLATE_H_
1
+ /*
2
+ * Phusion Passenger - https://www.phusionpassenger.com/
3
+ * Copyright (c) 2013-2018 Phusion Holding B.V.
4
+ *
5
+ * "Passenger", "Phusion Passenger" and "Union Station" are registered
6
+ * trademarks of Phusion Holding B.V.
7
+ *
8
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
9
+ * of this software and associated documentation files (the "Software"), to deal
10
+ * in the Software without restriction, including without limitation the rights
11
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12
+ * copies of the Software, and to permit persons to whom the Software is
13
+ * furnished to do so, subject to the following conditions:
14
+ *
15
+ * The above copyright notice and this permission notice shall be included in
16
+ * all copies or substantial portions of the Software.
17
+ *
18
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
24
+ * THE SOFTWARE.
25
+ */
26
+ #ifndef _PASSENGER_STR_INT_TOOLS_TEMPLATE_H_
27
+ #define _PASSENGER_STR_INT_TOOLS_TEMPLATE_H_
3
28
 
4
29
  #include <string>
5
30
  #include <cstring>
6
31
  #include <cstdio>
7
32
  #include <StaticString.h>
8
- #include <Utils/StrIntUtils.h>
9
- #include <Utils/StringMap.h>
33
+ #include <StrIntTools/StrIntUtils.h>
34
+ #include <DataStructures/StringMap.h>
10
35
 
11
36
  namespace Passenger {
12
37
 
@@ -209,4 +234,4 @@ public:
209
234
 
210
235
  } // namespace Passenger
211
236
 
212
- #endif /* _PASSENGER_TEMPLATE_H_ */
237
+ #endif /* _PASSENGER_STR_INT_TOOLS_TEMPLATE_H_ */
@@ -0,0 +1,34 @@
1
+ /*
2
+ * Phusion Passenger - https://www.phusionpassenger.com/
3
+ * Copyright (c) 2018 Phusion Holding B.V.
4
+ *
5
+ * "Passenger", "Phusion Passenger" and "Union Station" are registered
6
+ * trademarks of Phusion Holding B.V.
7
+ *
8
+ * See LICENSE file for license information.
9
+ */
10
+ #ifndef _PASSENGER_SYSTEM_TOOLS_CONTAINER_HELPERS_H_
11
+ #define _PASSENGER_SYSTEM_TOOLS_CONTAINER_HELPERS_H_
12
+
13
+ #include <boost/predef.h>
14
+ #include <FileTools/FileManip.h>
15
+
16
+ namespace Passenger {
17
+
18
+ using namespace std;
19
+
20
+
21
+ inline bool
22
+ autoDetectInContainer() {
23
+ #if BOOST_OS_LINUX
24
+ // https://github.com/moby/moby/issues/26102#issuecomment-253621560
25
+ return fileExists("/.dockerenv");
26
+ #else
27
+ return false;
28
+ #endif
29
+ }
30
+
31
+
32
+ } // namespace Passenger
33
+
34
+ #endif /* _PASSENGER_SYSTEM_TOOLS_CONTAINER_HELPERS_H_ */
@@ -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,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_PROCESS_METRICS_COLLECTOR_H_
27
- #define _PASSENGER_PROCESS_METRICS_COLLECTOR_H_
26
+ #ifndef _PASSENGER_SYSTEM_TOOLS_PROCESS_METRICS_COLLECTOR_H_
27
+ #define _PASSENGER_SYSTEM_TOOLS_PROCESS_METRICS_COLLECTOR_H_
28
28
 
29
29
  #include <boost/cstdint.hpp>
30
30
  #include <boost/thread.hpp>
@@ -63,8 +63,8 @@
63
63
  #include <ProcessManagement/Spawn.h>
64
64
  #include <FileTools/FileManip.h>
65
65
  #include <Utils/ScopeGuard.h>
66
- #include <Utils/IOUtils.h>
67
- #include <Utils/StringScanning.h>
66
+ #include <IOTools/IOUtils.h>
67
+ #include <StrIntTools/StringScanning.h>
68
68
 
69
69
  namespace Passenger {
70
70
 
@@ -505,4 +505,4 @@ public:
505
505
 
506
506
  } // namespace Passenger
507
507
 
508
- #endif /* _PASSENGER_PROCESS_METRICS_COLLECTOR_H_ */
508
+ #endif /* _PASSENGER_SYSTEM_TOOLS_PROCESS_METRICS_COLLECTOR_H_ */
@@ -46,7 +46,7 @@
46
46
  #include <sys/sysinfo.h>
47
47
  #include <Exceptions.h>
48
48
  #include <FileTools/FileManip.h>
49
- #include <Utils/StringScanning.h>
49
+ #include <StrIntTools/StringScanning.h>
50
50
  #endif
51
51
  #ifdef __APPLE__
52
52
  #include <mach/mach.h>
@@ -65,8 +65,8 @@
65
65
  #include <Constants.h>
66
66
  #include <StaticString.h>
67
67
  #include <Utils.h>
68
- #include <Utils/StrIntUtils.h>
69
- #include <Utils/SystemTime.h>
68
+ #include <StrIntTools/StrIntUtils.h>
69
+ #include <SystemTools/SystemTime.h>
70
70
  #include <Utils/AnsiColorConstants.h>
71
71
  #include <Utils/SpeedMeter.h>
72
72
 
@@ -24,7 +24,7 @@
24
24
  * THE SOFTWARE.
25
25
  */
26
26
 
27
- #include <Utils/SystemTime.h>
27
+ #include <SystemTools/SystemTime.h>
28
28
 
29
29
  namespace Passenger {
30
30
  namespace SystemTimeData {
@@ -50,7 +50,7 @@
50
50
  #include <boost/core/noncopyable.hpp>
51
51
 
52
52
  #include <StaticString.h>
53
- #include <Utils/StrIntUtils.h>
53
+ #include <StrIntTools/StrIntUtils.h>
54
54
 
55
55
 
56
56
  namespace Passenger {
@@ -57,8 +57,8 @@
57
57
  #include <ProcessManagement/Spawn.h>
58
58
  #include <ProcessManagement/Utils.h>
59
59
  #include <Utils.h>
60
- #include <Utils/StrIntUtils.h>
61
- #include <Utils/IOUtils.h>
60
+ #include <StrIntTools/StrIntUtils.h>
61
+ #include <IOTools/IOUtils.h>
62
62
 
63
63
  #ifndef HOST_NAME_MAX
64
64
  #if defined(_POSIX_HOST_NAME_MAX)
@@ -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.
@@ -39,8 +39,8 @@
39
39
  #include <oxt/system_calls.hpp>
40
40
 
41
41
  #include <StaticString.h>
42
- #include <Utils/SystemTime.h>
43
- #include <Utils/StringMap.h>
42
+ #include <SystemTools/SystemTime.h>
43
+ #include <DataStructures/StringMap.h>
44
44
 
45
45
  namespace Passenger {
46
46