passenger 5.1.12 → 5.2.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of passenger might be problematic. Click here for more details.

Files changed (824) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +18 -1
  3. data/Rakefile +4 -1
  4. data/build/agent.rb +2 -2
  5. data/build/apache2.rb +17 -10
  6. data/build/basics.rb +18 -4
  7. data/build/common_library.rb +7 -3
  8. data/build/cxx_tests.rb +2 -7
  9. data/build/misc.rb +3 -1
  10. data/build/nginx.rb +11 -5
  11. data/build/oxt_tests.rb +0 -3
  12. data/build/packaging.rb +3 -2
  13. data/build/schema_printer.rb +103 -0
  14. data/build/support/cplusplus.rb +2 -2
  15. data/build/support/cxx_dependency_map.rb +2575 -868
  16. data/dev/ci/lib/functions.sh +1 -1
  17. data/dev/ci/lib/set-container-envvars.sh +1 -1
  18. data/dev/ci/lib/setup-container.sh +1 -1
  19. data/dev/ci/run-tests-natively +1 -1
  20. data/dev/ci/run-tests-with-docker +1 -1
  21. data/dev/ci/scripts/debug-console-wrapper.sh +1 -1
  22. data/dev/ci/scripts/docker-entrypoint-stage2.sh +1 -1
  23. data/dev/ci/scripts/docker-entrypoint.sh +1 -1
  24. data/dev/ci/scripts/inituidgid +1 -1
  25. data/dev/ci/scripts/run-tests-natively-stage2.sh +1 -1
  26. data/dev/ci/scripts/setup-host-natively.sh +1 -1
  27. data/dev/ci/setup-host +1 -1
  28. data/dev/ci/tests/apache2/run +1 -1
  29. data/dev/ci/tests/apache2/setup +1 -1
  30. data/dev/ci/tests/cxx/run +1 -1
  31. data/dev/ci/tests/cxx/setup +1 -1
  32. data/dev/ci/tests/debian/Jenkinsfile +0 -1
  33. data/dev/ci/tests/debian/run +1 -1
  34. data/dev/ci/tests/nginx-dynamic/run +1 -1
  35. data/dev/ci/tests/nginx-dynamic/setup +1 -1
  36. data/dev/ci/tests/nginx/run +1 -1
  37. data/dev/ci/tests/nginx/setup +1 -1
  38. data/dev/ci/tests/nodejs/run +1 -1
  39. data/dev/ci/tests/nodejs/setup +1 -1
  40. data/dev/ci/tests/rpm/run +1 -1
  41. data/dev/ci/tests/ruby/run +1 -1
  42. data/dev/ci/tests/ruby/setup +1 -1
  43. data/dev/ci/tests/source-packaging/run +1 -1
  44. data/dev/ci/tests/source-packaging/setup +1 -1
  45. data/dev/ci/tests/standalone/run +1 -1
  46. data/dev/ci/tests/standalone/setup +1 -1
  47. data/dev/configkit-schemas/index.json +1708 -0
  48. data/dev/configkit-schemas/update_schema_inline_comments.rb +118 -0
  49. data/dev/copy_boost_headers +13 -1
  50. data/dev/index_cxx_dependencies.rb +20 -7
  51. data/dev/vagrant/provision.sh +1 -1
  52. data/resources/mime.types +1 -0
  53. data/resources/templates/standalone/http.erb +1 -6
  54. data/src/agent/Core/AdminPanelConnector.h +550 -0
  55. data/src/agent/Core/ApiServer.h +159 -97
  56. data/src/agent/Core/ApplicationPool/Group.h +2 -0
  57. data/src/agent/Core/ApplicationPool/Group/InternalUtils.cpp +3 -2
  58. data/src/agent/Core/ApplicationPool/Group/StateInspection.cpp +109 -0
  59. data/src/agent/Core/ApplicationPool/Implementation.cpp +5 -3
  60. data/src/agent/Core/ApplicationPool/Options.h +5 -6
  61. data/src/agent/Core/ApplicationPool/Pool.h +59 -2
  62. data/src/agent/Core/ApplicationPool/Pool/GeneralUtils.cpp +3 -3
  63. data/src/agent/Core/ApplicationPool/Pool/InitializationAndShutdown.cpp +2 -2
  64. data/src/agent/Core/ApplicationPool/Pool/Miscellaneous.cpp +6 -0
  65. data/src/agent/Core/ApplicationPool/Pool/StateInspection.cpp +129 -0
  66. data/src/agent/Core/Config.h +475 -0
  67. data/src/agent/Core/ConfigChange.cpp +349 -0
  68. data/src/agent/Core/ConfigChange.h +54 -0
  69. data/src/agent/Core/Controller.h +35 -3
  70. data/src/agent/Core/Controller/CheckoutSession.cpp +1 -1
  71. data/src/agent/Core/Controller/Config.cpp +0 -2
  72. data/src/agent/Core/Controller/Config.h +168 -104
  73. data/src/agent/Core/Controller/ForwardResponse.cpp +1 -1
  74. data/src/agent/Core/Controller/InitRequest.cpp +14 -15
  75. data/src/agent/Core/Controller/InitializationAndShutdown.cpp +34 -44
  76. data/src/agent/Core/Controller/Request.h +0 -1
  77. data/src/agent/Core/CoreMain.cpp +236 -349
  78. data/src/agent/Core/OptionParser.h +75 -89
  79. data/src/agent/Core/SecurityUpdateChecker.h +263 -100
  80. data/src/agent/Core/SpawningKit/Config.h +6 -2
  81. data/src/agent/Core/SpawningKit/Spawner.h +0 -45
  82. data/src/agent/Core/SpawningKit/UserSwitchingRules.h +1 -0
  83. data/src/agent/Shared/ApiAccountUtils.h +318 -0
  84. data/src/agent/Shared/ApiServerUtils.h +3 -104
  85. data/src/agent/Shared/Fundamentals/Initialization.cpp +81 -44
  86. data/src/agent/Shared/Fundamentals/Initialization.h +12 -7
  87. data/src/agent/TempDirToucher/TempDirToucherMain.cpp +21 -0
  88. data/src/agent/Watchdog/AgentWatcher.cpp +1 -1
  89. data/src/agent/Watchdog/ApiServer.h +100 -14
  90. data/src/agent/Watchdog/Config.h +340 -0
  91. data/src/agent/Watchdog/CoreWatcher.cpp +27 -13
  92. data/src/agent/Watchdog/InstanceDirToucher.cpp +1 -1
  93. data/src/agent/Watchdog/WatchdogMain.cpp +190 -206
  94. data/src/apache2_module/Bucket.cpp +4 -0
  95. data/src/apache2_module/Bucket.h +7 -3
  96. data/src/apache2_module/CBindings.cpp +49 -0
  97. data/src/apache2_module/Config.cpp +242 -0
  98. data/src/apache2_module/Config.h +109 -0
  99. data/src/apache2_module/ConfigGeneral/AutoGeneratedDefinitions.cpp +485 -0
  100. data/src/apache2_module/{ConfigurationCommands.cpp.cxxcodebuilder → ConfigGeneral/AutoGeneratedDefinitions.cpp.cxxcodebuilder} +29 -15
  101. data/src/apache2_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.cpp +298 -0
  102. data/src/apache2_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.cpp.cxxcodebuilder +171 -0
  103. data/src/apache2_module/ConfigGeneral/AutoGeneratedSetterFuncs.cpp +854 -0
  104. data/src/apache2_module/ConfigGeneral/AutoGeneratedSetterFuncs.cpp.cxxcodebuilder +188 -0
  105. data/src/apache2_module/ConfigGeneral/ManifestGeneration.h +610 -0
  106. data/src/apache2_module/ConfigGeneral/SetterFuncs.h +65 -0
  107. data/src/apache2_module/DirConfig/AutoGeneratedCreateFunction.cpp +174 -0
  108. data/src/apache2_module/{MergeDirConfig.cpp.cxxcodebuilder → DirConfig/AutoGeneratedCreateFunction.cpp.cxxcodebuilder} +54 -32
  109. data/src/apache2_module/DirConfig/AutoGeneratedHeaderSerialization.cpp +113 -0
  110. data/src/apache2_module/{SetHeaders.cpp.cxxcodebuilder → DirConfig/AutoGeneratedHeaderSerialization.cpp.cxxcodebuilder} +34 -23
  111. data/src/apache2_module/DirConfig/AutoGeneratedManifestGeneration.cpp +426 -0
  112. data/src/apache2_module/DirConfig/AutoGeneratedManifestGeneration.cpp.cxxcodebuilder +165 -0
  113. data/src/apache2_module/DirConfig/AutoGeneratedMergeFunction.cpp +269 -0
  114. data/src/apache2_module/DirConfig/AutoGeneratedMergeFunction.cpp.cxxcodebuilder +148 -0
  115. data/src/apache2_module/DirConfig/AutoGeneratedStruct.h +534 -0
  116. data/src/apache2_module/DirConfig/AutoGeneratedStruct.h.cxxcodebuilder +230 -0
  117. data/src/apache2_module/DirectoryMapper.h +19 -16
  118. data/src/apache2_module/Hooks.cpp +124 -138
  119. data/src/apache2_module/Hooks.h +9 -14
  120. data/src/apache2_module/ServerConfig/AutoGeneratedManifestGeneration.cpp +263 -0
  121. data/src/apache2_module/ServerConfig/AutoGeneratedManifestGeneration.cpp.cxxcodebuilder +152 -0
  122. data/src/apache2_module/ServerConfig/AutoGeneratedStruct.h +299 -0
  123. data/src/apache2_module/{ConfigurationFields.hpp.cxxcodebuilder → ServerConfig/AutoGeneratedStruct.h.cxxcodebuilder} +105 -18
  124. data/src/apache2_module/Utils.h +215 -0
  125. data/src/apache2_module/mod_passenger.c +16 -8
  126. data/src/cxx_supportlib/AppTypes.h +2 -0
  127. data/src/cxx_supportlib/ConfigKit/ConfigKit.h +1 -1
  128. data/src/cxx_supportlib/ConfigKit/DummyTranslator.h +8 -8
  129. data/src/cxx_supportlib/ConfigKit/IN_PRACTICE.md +7 -41
  130. data/src/cxx_supportlib/ConfigKit/PrefixTranslator.h +12 -66
  131. data/src/cxx_supportlib/ConfigKit/Schema.h +62 -11
  132. data/src/cxx_supportlib/ConfigKit/{ValidationUtils.h → SchemaUtils.h} +12 -3
  133. data/src/cxx_supportlib/ConfigKit/Store.h +17 -9
  134. data/src/cxx_supportlib/ConfigKit/SubComponentUtils.h +2 -1
  135. data/src/cxx_supportlib/ConfigKit/TableTranslator.h +13 -70
  136. data/src/cxx_supportlib/ConfigKit/Translator.h +125 -0
  137. data/src/cxx_supportlib/Constants.h +1 -3
  138. data/src/cxx_supportlib/FileTools/FileManip.cpp +297 -0
  139. data/src/cxx_supportlib/FileTools/FileManip.h +162 -0
  140. data/src/cxx_supportlib/{Utils → FileTools}/LargeFiles.cpp +6 -3
  141. data/src/cxx_supportlib/{Utils → FileTools}/LargeFiles.h +7 -5
  142. data/src/cxx_supportlib/FileTools/PathManip.cpp +240 -0
  143. data/src/cxx_supportlib/FileTools/PathManip.h +91 -0
  144. data/src/cxx_supportlib/FileTools/PathManipCBindings.cpp +62 -0
  145. data/src/{apache2_module/Configuration.h → cxx_supportlib/FileTools/PathManipCBindings.h} +12 -19
  146. data/src/cxx_supportlib/Hooks.h +19 -16
  147. data/src/cxx_supportlib/InstanceDirectory.h +11 -0
  148. data/src/cxx_supportlib/JsonTools/Autocast.h +79 -0
  149. data/src/cxx_supportlib/JsonTools/CBindings.cpp +364 -0
  150. data/src/cxx_supportlib/JsonTools/CBindings.h +101 -0
  151. data/src/cxx_supportlib/LoggingKit/Config.h +13 -0
  152. data/src/cxx_supportlib/LoggingKit/Context.h +5 -2
  153. data/src/cxx_supportlib/LoggingKit/Forward.h +0 -1
  154. data/src/cxx_supportlib/LoggingKit/Implementation.cpp +12 -4
  155. data/src/cxx_supportlib/ResourceLocator.h +15 -0
  156. data/src/cxx_supportlib/ServerKit/Config.h +156 -0
  157. data/src/cxx_supportlib/ServerKit/Context.h +59 -38
  158. data/src/cxx_supportlib/ServerKit/FileBufferedChannel.h +3 -2
  159. data/src/cxx_supportlib/ServerKit/HttpHeaderParser.h +2 -2
  160. data/src/cxx_supportlib/ServerKit/HttpServer.h +16 -2
  161. data/src/cxx_supportlib/ServerKit/Server.h +32 -15
  162. data/src/cxx_supportlib/Utils.cpp +0 -441
  163. data/src/cxx_supportlib/Utils.h +0 -158
  164. data/src/cxx_supportlib/Utils/Curl.h +1 -0
  165. data/src/cxx_supportlib/Utils/ProcessMetricsCollector.h +1 -0
  166. data/src/cxx_supportlib/Utils/StrIntUtilsNoStrictAliasing.cpp +2 -0
  167. data/src/cxx_supportlib/Utils/VariantMap.h +31 -0
  168. data/src/cxx_supportlib/WatchdogLauncher.cpp +7 -79
  169. data/src/cxx_supportlib/WatchdogLauncher.h +50 -53
  170. data/src/cxx_supportlib/WebSocketCommandReverseServer.h +981 -0
  171. data/src/cxx_supportlib/oxt/macros.hpp +9 -0
  172. data/src/cxx_supportlib/vendor-copy/websocketpp/COPYING +145 -0
  173. data/src/cxx_supportlib/vendor-copy/websocketpp/changelog.md +342 -0
  174. data/src/cxx_supportlib/vendor-copy/websocketpp/readme.md +49 -0
  175. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/base64/base64.hpp +178 -0
  176. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/client.hpp +33 -0
  177. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/close.hpp +342 -0
  178. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/asio.hpp +131 -0
  179. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/asio_ssl.hpp +39 -0
  180. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/chrono.hpp +68 -0
  181. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/connection_hdl.hpp +52 -0
  182. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/cpp11.hpp +162 -0
  183. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/functional.hpp +105 -0
  184. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/md5.hpp +448 -0
  185. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/memory.hpp +89 -0
  186. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/network.hpp +106 -0
  187. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/platforms.hpp +46 -0
  188. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/random.hpp +82 -0
  189. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/regex.hpp +59 -0
  190. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/stdint.hpp +73 -0
  191. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/system_error.hpp +84 -0
  192. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/thread.hpp +84 -0
  193. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/time.hpp +56 -0
  194. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/type_traits.hpp +65 -0
  195. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/concurrency/basic.hpp +46 -0
  196. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/concurrency/none.hpp +80 -0
  197. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/config/asio.hpp +77 -0
  198. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/config/asio_client.hpp +77 -0
  199. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/config/asio_no_tls.hpp +73 -0
  200. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/config/asio_no_tls_client.hpp +73 -0
  201. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/config/boost_config.hpp +72 -0
  202. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/config/core.hpp +285 -0
  203. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/config/core_client.hpp +294 -0
  204. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/config/debug.hpp +286 -0
  205. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/config/debug_asio.hpp +77 -0
  206. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/config/debug_asio_no_tls.hpp +73 -0
  207. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/config/minimal_client.hpp +72 -0
  208. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/config/minimal_server.hpp +312 -0
  209. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/connection.hpp +1651 -0
  210. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/connection_base.hpp +38 -0
  211. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/endpoint.hpp +700 -0
  212. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/endpoint_base.hpp +38 -0
  213. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/error.hpp +277 -0
  214. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/extensions/extension.hpp +102 -0
  215. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/extensions/permessage_deflate/disabled.hpp +128 -0
  216. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/extensions/permessage_deflate/enabled.hpp +752 -0
  217. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/frame.hpp +861 -0
  218. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/http/constants.hpp +308 -0
  219. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/http/impl/parser.hpp +196 -0
  220. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/http/impl/request.hpp +191 -0
  221. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/http/impl/response.hpp +266 -0
  222. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/http/parser.hpp +619 -0
  223. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/http/request.hpp +124 -0
  224. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/http/response.hpp +188 -0
  225. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/impl/connection_impl.hpp +2372 -0
  226. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/impl/endpoint_impl.hpp +269 -0
  227. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/impl/utilities_impl.hpp +87 -0
  228. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/logger/basic.hpp +199 -0
  229. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/logger/levels.hpp +203 -0
  230. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/logger/stub.hpp +119 -0
  231. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/logger/syslog.hpp +146 -0
  232. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/message_buffer/alloc.hpp +105 -0
  233. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/message_buffer/message.hpp +340 -0
  234. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/message_buffer/pool.hpp +229 -0
  235. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/processors/base.hpp +299 -0
  236. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/processors/hybi00.hpp +462 -0
  237. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/processors/hybi07.hpp +78 -0
  238. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/processors/hybi08.hpp +83 -0
  239. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/processors/hybi13.hpp +1056 -0
  240. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/processors/processor.hpp +407 -0
  241. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/random/none.hpp +60 -0
  242. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/random/random_device.hpp +80 -0
  243. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/roles/client_endpoint.hpp +173 -0
  244. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/roles/server_endpoint.hpp +190 -0
  245. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/server.hpp +33 -0
  246. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/sha1/sha1.hpp +189 -0
  247. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/asio/base.hpp +232 -0
  248. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/asio/connection.hpp +1204 -0
  249. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/asio/endpoint.hpp +1147 -0
  250. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/asio/security/base.hpp +159 -0
  251. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/asio/security/none.hpp +370 -0
  252. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/asio/security/tls.hpp +484 -0
  253. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/base/connection.hpp +238 -0
  254. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/base/endpoint.hpp +77 -0
  255. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/debug/base.hpp +104 -0
  256. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/debug/connection.hpp +412 -0
  257. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/debug/endpoint.hpp +140 -0
  258. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/iostream/base.hpp +133 -0
  259. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/iostream/connection.hpp +714 -0
  260. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/iostream/endpoint.hpp +222 -0
  261. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/stub/base.hpp +95 -0
  262. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/stub/connection.hpp +286 -0
  263. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/stub/endpoint.hpp +140 -0
  264. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/uri.hpp +355 -0
  265. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/utf8_validator.hpp +154 -0
  266. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/utilities.hpp +182 -0
  267. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/version.hpp +61 -0
  268. data/src/cxx_supportlib/vendor-modified/boost/asio.hpp +121 -0
  269. data/src/cxx_supportlib/vendor-modified/boost/asio/async_result.hpp +96 -0
  270. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_datagram_socket.hpp +951 -0
  271. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_deadline_timer.hpp +520 -0
  272. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_io_object.hpp +258 -0
  273. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_raw_socket.hpp +942 -0
  274. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_seq_packet_socket.hpp +567 -0
  275. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_serial_port.hpp +697 -0
  276. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_signal_set.hpp +386 -0
  277. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket.hpp +1519 -0
  278. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_acceptor.hpp +1137 -0
  279. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_iostream.hpp +288 -0
  280. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_streambuf.hpp +569 -0
  281. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_socket.hpp +854 -0
  282. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_streambuf.hpp +371 -0
  283. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_streambuf_fwd.hpp +35 -0
  284. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_waitable_timer.hpp +521 -0
  285. data/src/cxx_supportlib/vendor-modified/boost/asio/buffer.hpp +2241 -0
  286. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_read_stream.hpp +246 -0
  287. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_read_stream_fwd.hpp +27 -0
  288. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_stream.hpp +260 -0
  289. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_stream_fwd.hpp +27 -0
  290. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_write_stream.hpp +238 -0
  291. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_write_stream_fwd.hpp +27 -0
  292. data/src/cxx_supportlib/vendor-modified/boost/asio/buffers_iterator.hpp +483 -0
  293. data/src/cxx_supportlib/vendor-modified/boost/asio/completion_condition.hpp +220 -0
  294. data/src/cxx_supportlib/vendor-modified/boost/asio/connect.hpp +825 -0
  295. data/src/cxx_supportlib/vendor-modified/boost/asio/coroutine.hpp +330 -0
  296. data/src/cxx_supportlib/vendor-modified/boost/asio/datagram_socket_service.hpp +438 -0
  297. data/src/cxx_supportlib/vendor-modified/boost/asio/deadline_timer.hpp +40 -0
  298. data/src/cxx_supportlib/vendor-modified/boost/asio/deadline_timer_service.hpp +173 -0
  299. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/addressof.hpp +40 -0
  300. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/array.hpp +40 -0
  301. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/array_fwd.hpp +34 -0
  302. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/assert.hpp +32 -0
  303. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/atomic_count.hpp +47 -0
  304. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/base_from_completion_cond.hpp +70 -0
  305. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/bind_handler.hpp +491 -0
  306. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffer_resize_guard.hpp +68 -0
  307. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffer_sequence_adapter.hpp +385 -0
  308. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffered_stream_storage.hpp +128 -0
  309. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/call_stack.hpp +127 -0
  310. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/chrono_time_traits.hpp +192 -0
  311. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/completion_handler.hpp +83 -0
  312. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/config.hpp +1050 -0
  313. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/consuming_buffers.hpp +294 -0
  314. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/cstdint.hpp +48 -0
  315. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/date_time_fwd.hpp +34 -0
  316. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/deadline_timer_service.hpp +229 -0
  317. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/dependent_type.hpp +38 -0
  318. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_ops.hpp +119 -0
  319. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_read_op.hpp +121 -0
  320. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_write_op.hpp +121 -0
  321. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/dev_poll_reactor.hpp +208 -0
  322. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/epoll_reactor.hpp +244 -0
  323. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/event.hpp +50 -0
  324. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/eventfd_select_interrupter.hpp +85 -0
  325. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/fd_set_adapter.hpp +41 -0
  326. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/fenced_block.hpp +82 -0
  327. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/function.hpp +40 -0
  328. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_arm_fenced_block.hpp +91 -0
  329. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_hppa_fenced_block.hpp +68 -0
  330. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_sync_fenced_block.hpp +65 -0
  331. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_x86_fenced_block.hpp +99 -0
  332. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_alloc_helpers.hpp +82 -0
  333. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_cont_helpers.hpp +45 -0
  334. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_invoke_helpers.hpp +57 -0
  335. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_tracking.hpp +161 -0
  336. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_type_requirements.hpp +480 -0
  337. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/hash_map.hpp +333 -0
  338. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/buffer_sequence_adapter.ipp +120 -0
  339. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/descriptor_ops.ipp +453 -0
  340. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.hpp +80 -0
  341. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.ipp +432 -0
  342. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.hpp +78 -0
  343. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.ipp +688 -0
  344. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/eventfd_select_interrupter.ipp +167 -0
  345. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/handler_tracking.ipp +307 -0
  346. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.hpp +82 -0
  347. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.ipp +498 -0
  348. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/pipe_select_interrupter.ipp +126 -0
  349. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_event.ipp +49 -0
  350. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_mutex.ipp +48 -0
  351. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_thread.ipp +76 -0
  352. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_tss_ptr.ipp +48 -0
  353. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_descriptor_service.ipp +210 -0
  354. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_serial_port_service.ipp +153 -0
  355. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_socket_service_base.ipp +269 -0
  356. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/resolver_service_base.ipp +132 -0
  357. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.hpp +89 -0
  358. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.ipp +315 -0
  359. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/service_registry.hpp +90 -0
  360. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/service_registry.ipp +190 -0
  361. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/signal_set_service.ipp +649 -0
  362. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_ops.ipp +3470 -0
  363. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_select_interrupter.ipp +178 -0
  364. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_service.hpp +120 -0
  365. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_service.ipp +178 -0
  366. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/task_io_service.hpp +80 -0
  367. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/task_io_service.ipp +476 -0
  368. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/throw_error.ipp +47 -0
  369. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/timer_queue_ptime.ipp +86 -0
  370. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/timer_queue_set.ipp +103 -0
  371. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_control.hpp +136 -0
  372. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/keyword_tss_ptr.hpp +72 -0
  373. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/kqueue_reactor.hpp +222 -0
  374. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/limits.hpp +26 -0
  375. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/local_free_on_block_exit.hpp +61 -0
  376. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/macos_fenced_block.hpp +63 -0
  377. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/memory.hpp +31 -0
  378. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/mutex.hpp +50 -0
  379. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/noncopyable.hpp +45 -0
  380. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_event.hpp +90 -0
  381. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_fenced_block.hpp +47 -0
  382. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_mutex.hpp +66 -0
  383. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_reactor.hpp +69 -0
  384. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_signal_blocker.hpp +71 -0
  385. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_socket_service.hpp +500 -0
  386. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_static_mutex.hpp +62 -0
  387. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_thread.hpp +63 -0
  388. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_tss_ptr.hpp +70 -0
  389. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/object_pool.hpp +148 -0
  390. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/old_win_sdk_compat.hpp +216 -0
  391. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/op_queue.hpp +158 -0
  392. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/operation.hpp +40 -0
  393. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/pipe_select_interrupter.hpp +91 -0
  394. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/pop_options.hpp +131 -0
  395. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_event.hpp +128 -0
  396. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_fd_set_adapter.hpp +120 -0
  397. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_mutex.hpp +78 -0
  398. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_signal_blocker.hpp +87 -0
  399. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_static_mutex.hpp +66 -0
  400. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_thread.hpp +107 -0
  401. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_tss_ptr.hpp +81 -0
  402. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/push_options.hpp +166 -0
  403. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_descriptor_service.hpp +324 -0
  404. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_null_buffers_op.hpp +90 -0
  405. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_serial_port_service.hpp +236 -0
  406. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_accept_op.hpp +138 -0
  407. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_connect_op.hpp +108 -0
  408. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recv_op.hpp +125 -0
  409. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recvfrom_op.hpp +135 -0
  410. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recvmsg_op.hpp +127 -0
  411. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_send_op.hpp +122 -0
  412. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_sendto_op.hpp +125 -0
  413. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service.hpp +460 -0
  414. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service_base.hpp +452 -0
  415. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor.hpp +32 -0
  416. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_fwd.hpp +42 -0
  417. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op.hpp +63 -0
  418. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op_queue.hpp +170 -0
  419. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/regex_fwd.hpp +35 -0
  420. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_endpoint_op.hpp +123 -0
  421. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_op.hpp +133 -0
  422. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolver_service.hpp +131 -0
  423. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolver_service_base.hpp +131 -0
  424. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scoped_lock.hpp +103 -0
  425. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scoped_ptr.hpp +81 -0
  426. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/select_interrupter.hpp +48 -0
  427. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/select_reactor.hpp +221 -0
  428. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/service_registry.hpp +146 -0
  429. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/shared_ptr.hpp +40 -0
  430. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_blocker.hpp +46 -0
  431. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_handler.hpp +84 -0
  432. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_init.hpp +49 -0
  433. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_op.hpp +51 -0
  434. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_set_service.hpp +218 -0
  435. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_holder.hpp +100 -0
  436. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_ops.hpp +336 -0
  437. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_option.hpp +318 -0
  438. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_select_interrupter.hpp +93 -0
  439. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_types.hpp +410 -0
  440. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/solaris_fenced_block.hpp +63 -0
  441. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/static_mutex.hpp +54 -0
  442. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_event.hpp +178 -0
  443. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_fenced_block.hpp +64 -0
  444. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_mutex.hpp +75 -0
  445. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_static_mutex.hpp +83 -0
  446. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_thread.hpp +67 -0
  447. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/strand_service.hpp +144 -0
  448. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/task_io_service.hpp +203 -0
  449. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/task_io_service_operation.hpp +78 -0
  450. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/task_io_service_thread_info.hpp +42 -0
  451. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread.hpp +58 -0
  452. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_info_base.hpp +93 -0
  453. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/throw_error.hpp +55 -0
  454. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/throw_exception.hpp +53 -0
  455. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue.hpp +333 -0
  456. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_base.hpp +70 -0
  457. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_ptime.hpp +95 -0
  458. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_set.hpp +68 -0
  459. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_scheduler.hpp +35 -0
  460. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_scheduler_fwd.hpp +42 -0
  461. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/tss_ptr.hpp +71 -0
  462. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/type_traits.hpp +60 -0
  463. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/variadic_templates.hpp +63 -0
  464. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wait_handler.hpp +85 -0
  465. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wait_op.hpp +47 -0
  466. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/weak_ptr.hpp +40 -0
  467. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/win_iocp_serial_port_service.hpp +230 -0
  468. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/winsock_init.hpp +130 -0
  469. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wrapped_handler.hpp +293 -0
  470. data/src/cxx_supportlib/vendor-modified/boost/asio/error.hpp +345 -0
  471. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/basic_endpoint.hpp +195 -0
  472. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/datagram_protocol.hpp +125 -0
  473. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/detail/endpoint.hpp +135 -0
  474. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/detail/impl/endpoint.ipp +111 -0
  475. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/raw_protocol.hpp +123 -0
  476. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/seq_packet_protocol.hpp +124 -0
  477. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/stream_protocol.hpp +129 -0
  478. data/src/cxx_supportlib/vendor-modified/boost/asio/handler_alloc_hook.hpp +83 -0
  479. data/src/cxx_supportlib/vendor-modified/boost/asio/handler_continuation_hook.hpp +56 -0
  480. data/src/cxx_supportlib/vendor-modified/boost/asio/handler_invoke_hook.hpp +87 -0
  481. data/src/cxx_supportlib/vendor-modified/boost/asio/handler_type.hpp +114 -0
  482. data/src/cxx_supportlib/vendor-modified/boost/asio/high_resolution_timer.hpp +65 -0
  483. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_read_stream.hpp +360 -0
  484. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_write_stream.hpp +340 -0
  485. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/connect.hpp +432 -0
  486. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/error.ipp +130 -0
  487. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/handler_alloc_hook.ipp +79 -0
  488. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_service.hpp +156 -0
  489. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_service.ipp +157 -0
  490. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read.hpp +755 -0
  491. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_at.hpp +812 -0
  492. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_until.hpp +1149 -0
  493. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/serial_port_base.hpp +61 -0
  494. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/serial_port_base.ipp +556 -0
  495. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/spawn.hpp +355 -0
  496. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/src.cpp +25 -0
  497. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/src.hpp +73 -0
  498. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/use_future.hpp +179 -0
  499. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write.hpp +767 -0
  500. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write_at.hpp +827 -0
  501. data/src/cxx_supportlib/vendor-modified/boost/asio/io_service.hpp +772 -0
  502. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address.hpp +202 -0
  503. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4.hpp +243 -0
  504. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6.hpp +248 -0
  505. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_endpoint.hpp +265 -0
  506. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver.hpp +270 -0
  507. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_entry.hpp +96 -0
  508. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_iterator.hpp +262 -0
  509. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_query.hpp +246 -0
  510. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/endpoint.hpp +141 -0
  511. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/impl/endpoint.ipp +206 -0
  512. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/socket_option.hpp +571 -0
  513. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/host_name.hpp +44 -0
  514. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/icmp.hpp +117 -0
  515. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address.hpp +55 -0
  516. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address.ipp +228 -0
  517. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v4.hpp +55 -0
  518. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v4.ipp +180 -0
  519. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v6.hpp +55 -0
  520. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v6.ipp +300 -0
  521. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/basic_endpoint.hpp +57 -0
  522. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/host_name.ipp +56 -0
  523. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/multicast.hpp +193 -0
  524. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/resolver_query_base.hpp +132 -0
  525. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/resolver_service.hpp +178 -0
  526. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/tcp.hpp +157 -0
  527. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/udp.hpp +113 -0
  528. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/unicast.hpp +72 -0
  529. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/v6_only.hpp +71 -0
  530. data/src/cxx_supportlib/vendor-modified/boost/asio/is_read_buffered.hpp +61 -0
  531. data/src/cxx_supportlib/vendor-modified/boost/asio/is_write_buffered.hpp +61 -0
  532. data/src/cxx_supportlib/vendor-modified/boost/asio/local/basic_endpoint.hpp +241 -0
  533. data/src/cxx_supportlib/vendor-modified/boost/asio/local/connect_pair.hpp +106 -0
  534. data/src/cxx_supportlib/vendor-modified/boost/asio/local/datagram_protocol.hpp +82 -0
  535. data/src/cxx_supportlib/vendor-modified/boost/asio/local/detail/endpoint.hpp +135 -0
  536. data/src/cxx_supportlib/vendor-modified/boost/asio/local/detail/impl/endpoint.ipp +130 -0
  537. data/src/cxx_supportlib/vendor-modified/boost/asio/local/stream_protocol.hpp +92 -0
  538. data/src/cxx_supportlib/vendor-modified/boost/asio/placeholders.hpp +125 -0
  539. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_descriptor.hpp +492 -0
  540. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_stream_descriptor.hpp +364 -0
  541. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/descriptor_base.hpp +99 -0
  542. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/stream_descriptor.hpp +39 -0
  543. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/stream_descriptor_service.hpp +262 -0
  544. data/src/cxx_supportlib/vendor-modified/boost/asio/raw_socket_service.hpp +438 -0
  545. data/src/cxx_supportlib/vendor-modified/boost/asio/read.hpp +633 -0
  546. data/src/cxx_supportlib/vendor-modified/boost/asio/read_at.hpp +666 -0
  547. data/src/cxx_supportlib/vendor-modified/boost/asio/read_until.hpp +925 -0
  548. data/src/cxx_supportlib/vendor-modified/boost/asio/seq_packet_socket_service.hpp +386 -0
  549. data/src/cxx_supportlib/vendor-modified/boost/asio/serial_port.hpp +38 -0
  550. data/src/cxx_supportlib/vendor-modified/boost/asio/serial_port_base.hpp +169 -0
  551. data/src/cxx_supportlib/vendor-modified/boost/asio/serial_port_service.hpp +255 -0
  552. data/src/cxx_supportlib/vendor-modified/boost/asio/signal_set.hpp +30 -0
  553. data/src/cxx_supportlib/vendor-modified/boost/asio/signal_set_service.hpp +136 -0
  554. data/src/cxx_supportlib/vendor-modified/boost/asio/socket_acceptor_service.hpp +308 -0
  555. data/src/cxx_supportlib/vendor-modified/boost/asio/socket_base.hpp +522 -0
  556. data/src/cxx_supportlib/vendor-modified/boost/asio/spawn.hpp +267 -0
  557. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl.hpp +30 -0
  558. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/basic_context.hpp +42 -0
  559. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context.hpp +789 -0
  560. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context_base.hpp +194 -0
  561. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context_service.hpp +42 -0
  562. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/buffered_handshake_op.hpp +112 -0
  563. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/engine.hpp +166 -0
  564. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/handshake_op.hpp +70 -0
  565. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/engine.ipp +327 -0
  566. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/openssl_init.ipp +166 -0
  567. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/io.hpp +351 -0
  568. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/openssl_init.hpp +103 -0
  569. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/openssl_types.hpp +30 -0
  570. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/password_callback.hpp +74 -0
  571. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/read_op.hpp +75 -0
  572. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/shutdown_op.hpp +62 -0
  573. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/stream_core.hpp +128 -0
  574. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/verify_callback.hpp +70 -0
  575. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/write_op.hpp +75 -0
  576. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/error.hpp +115 -0
  577. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.hpp +73 -0
  578. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.ipp +1177 -0
  579. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/error.ipp +102 -0
  580. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/rfc2818_verification.ipp +168 -0
  581. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/src.hpp +28 -0
  582. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/basic_context.hpp +436 -0
  583. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/context_service.hpp +176 -0
  584. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/detail/openssl_context_service.hpp +396 -0
  585. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/detail/openssl_operation.hpp +526 -0
  586. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/detail/openssl_stream_service.hpp +573 -0
  587. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/stream.hpp +503 -0
  588. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/stream_service.hpp +186 -0
  589. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/rfc2818_verification.hpp +102 -0
  590. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream.hpp +758 -0
  591. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream_base.hpp +54 -0
  592. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream_service.hpp +42 -0
  593. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/verify_context.hpp +75 -0
  594. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/verify_mode.hpp +65 -0
  595. data/src/cxx_supportlib/vendor-modified/boost/asio/steady_timer.hpp +63 -0
  596. data/src/cxx_supportlib/vendor-modified/boost/asio/strand.hpp +254 -0
  597. data/src/cxx_supportlib/vendor-modified/boost/asio/stream_socket_service.hpp +382 -0
  598. data/src/cxx_supportlib/vendor-modified/boost/asio/streambuf.hpp +35 -0
  599. data/src/cxx_supportlib/vendor-modified/boost/asio/system_timer.hpp +59 -0
  600. data/src/cxx_supportlib/vendor-modified/boost/asio/time_traits.hpp +88 -0
  601. data/src/cxx_supportlib/vendor-modified/boost/asio/unyield.hpp +21 -0
  602. data/src/cxx_supportlib/vendor-modified/boost/asio/use_future.hpp +94 -0
  603. data/src/cxx_supportlib/vendor-modified/boost/asio/version.hpp +23 -0
  604. data/src/cxx_supportlib/vendor-modified/boost/asio/wait_traits.hpp +43 -0
  605. data/src/cxx_supportlib/vendor-modified/boost/asio/waitable_timer_service.hpp +170 -0
  606. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_handle.hpp +283 -0
  607. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_object_handle.hpp +180 -0
  608. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_random_access_handle.hpp +378 -0
  609. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_stream_handle.hpp +361 -0
  610. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/object_handle.hpp +40 -0
  611. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/object_handle_service.hpp +179 -0
  612. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/overlapped_ptr.hpp +118 -0
  613. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/random_access_handle.hpp +39 -0
  614. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/random_access_handle_service.hpp +222 -0
  615. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/stream_handle.hpp +39 -0
  616. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/stream_handle_service.hpp +220 -0
  617. data/src/cxx_supportlib/vendor-modified/boost/asio/write.hpp +620 -0
  618. data/src/cxx_supportlib/vendor-modified/boost/asio/write_at.hpp +672 -0
  619. data/src/cxx_supportlib/vendor-modified/boost/asio/yield.hpp +23 -0
  620. data/src/cxx_supportlib/vendor-modified/boost/chrono.hpp +20 -0
  621. data/src/cxx_supportlib/vendor-modified/boost/chrono/chrono.hpp +15 -0
  622. data/src/cxx_supportlib/vendor-modified/boost/chrono/chrono_io.hpp +34 -0
  623. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/chrono.hpp +46 -0
  624. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/mac/chrono.hpp +242 -0
  625. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/mac/process_cpu_clocks.hpp +356 -0
  626. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/mac/thread_clock.hpp +92 -0
  627. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/posix/chrono.hpp +121 -0
  628. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/posix/process_cpu_clocks.hpp +354 -0
  629. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/posix/thread_clock.hpp +92 -0
  630. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/process_cpu_clocks.hpp +46 -0
  631. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/thread_clock.hpp +46 -0
  632. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/no_warning/signed_unsigned_cmp.hpp +54 -0
  633. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/scan_keyword.hpp +163 -0
  634. data/src/cxx_supportlib/vendor-modified/boost/chrono/floor.hpp +36 -0
  635. data/src/cxx_supportlib/vendor-modified/boost/chrono/include.hpp +23 -0
  636. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_get.hpp +593 -0
  637. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_io.hpp +295 -0
  638. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_put.hpp +317 -0
  639. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_style.hpp +35 -0
  640. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_units.hpp +1003 -0
  641. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/ios_base_state.hpp +152 -0
  642. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/time_point_get.hpp +330 -0
  643. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/time_point_io.hpp +1243 -0
  644. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/time_point_put.hpp +261 -0
  645. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/time_point_units.hpp +260 -0
  646. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/timezone.hpp +30 -0
  647. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/utility/ios_base_state_ptr.hpp +437 -0
  648. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/utility/manip_base.hpp +101 -0
  649. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/utility/to_string.hpp +50 -0
  650. data/src/cxx_supportlib/vendor-modified/boost/chrono/io_v1/chrono_io.hpp +637 -0
  651. data/src/cxx_supportlib/vendor-modified/boost/chrono/process_cpu_clocks.hpp +525 -0
  652. data/src/cxx_supportlib/vendor-modified/boost/chrono/round.hpp +59 -0
  653. data/src/cxx_supportlib/vendor-modified/boost/chrono/thread_clock.hpp +75 -0
  654. data/src/cxx_supportlib/vendor-modified/boost/chrono/typeof/boost/chrono/chrono.hpp +32 -0
  655. data/src/cxx_supportlib/vendor-modified/boost/chrono/typeof/boost/ratio.hpp +24 -0
  656. data/src/cxx_supportlib/vendor-modified/boost/detail/atomic_count.hpp +21 -0
  657. data/src/cxx_supportlib/vendor-modified/boost/integer/common_factor.hpp +16 -0
  658. data/src/cxx_supportlib/vendor-modified/boost/integer/common_factor_rt.hpp +460 -0
  659. data/src/cxx_supportlib/vendor-modified/boost/integer/integer_log2.hpp +112 -0
  660. data/src/cxx_supportlib/vendor-modified/boost/integer/integer_mask.hpp +126 -0
  661. data/src/cxx_supportlib/vendor-modified/boost/integer/static_min_max.hpp +51 -0
  662. data/src/cxx_supportlib/vendor-modified/boost/libs/chrono/src/chrono.cpp +15 -0
  663. data/src/cxx_supportlib/vendor-modified/boost/libs/chrono/src/process_cpu_clocks.cpp +18 -0
  664. data/src/cxx_supportlib/vendor-modified/boost/libs/chrono/src/thread_clock.cpp +19 -0
  665. data/src/cxx_supportlib/vendor-modified/boost/libs/random/src/random_device.cpp +250 -0
  666. data/src/cxx_supportlib/vendor-modified/boost/pointer_cast.hpp +121 -0
  667. data/src/cxx_supportlib/vendor-modified/boost/random.hpp +91 -0
  668. data/src/cxx_supportlib/vendor-modified/boost/random/additive_combine.hpp +283 -0
  669. data/src/cxx_supportlib/vendor-modified/boost/random/bernoulli_distribution.hpp +197 -0
  670. data/src/cxx_supportlib/vendor-modified/boost/random/beta_distribution.hpp +184 -0
  671. data/src/cxx_supportlib/vendor-modified/boost/random/binomial_distribution.hpp +434 -0
  672. data/src/cxx_supportlib/vendor-modified/boost/random/cauchy_distribution.hpp +214 -0
  673. data/src/cxx_supportlib/vendor-modified/boost/random/chi_squared_distribution.hpp +209 -0
  674. data/src/cxx_supportlib/vendor-modified/boost/random/detail/auto_link.hpp +40 -0
  675. data/src/cxx_supportlib/vendor-modified/boost/random/detail/config.hpp +18 -0
  676. data/src/cxx_supportlib/vendor-modified/boost/random/detail/const_mod.hpp +216 -0
  677. data/src/cxx_supportlib/vendor-modified/boost/random/detail/disable_warnings.hpp +29 -0
  678. data/src/cxx_supportlib/vendor-modified/boost/random/detail/enable_warnings.hpp +22 -0
  679. data/src/cxx_supportlib/vendor-modified/boost/random/detail/generator_bits.hpp +36 -0
  680. data/src/cxx_supportlib/vendor-modified/boost/random/detail/generator_seed_seq.hpp +40 -0
  681. data/src/cxx_supportlib/vendor-modified/boost/random/detail/int_float_pair.hpp +121 -0
  682. data/src/cxx_supportlib/vendor-modified/boost/random/detail/integer_log2.hpp +84 -0
  683. data/src/cxx_supportlib/vendor-modified/boost/random/detail/iterator_mixin.hpp +45 -0
  684. data/src/cxx_supportlib/vendor-modified/boost/random/detail/large_arithmetic.hpp +122 -0
  685. data/src/cxx_supportlib/vendor-modified/boost/random/detail/operators.hpp +84 -0
  686. data/src/cxx_supportlib/vendor-modified/boost/random/detail/polynomial.hpp +384 -0
  687. data/src/cxx_supportlib/vendor-modified/boost/random/detail/ptr_helper.hpp +67 -0
  688. data/src/cxx_supportlib/vendor-modified/boost/random/detail/seed.hpp +115 -0
  689. data/src/cxx_supportlib/vendor-modified/boost/random/detail/seed_impl.hpp +398 -0
  690. data/src/cxx_supportlib/vendor-modified/boost/random/detail/signed_unsigned_tools.hpp +89 -0
  691. data/src/cxx_supportlib/vendor-modified/boost/random/detail/uniform_int_float.hpp +76 -0
  692. data/src/cxx_supportlib/vendor-modified/boost/random/detail/vector_io.hpp +75 -0
  693. data/src/cxx_supportlib/vendor-modified/boost/random/discard_block.hpp +241 -0
  694. data/src/cxx_supportlib/vendor-modified/boost/random/discrete_distribution.hpp +636 -0
  695. data/src/cxx_supportlib/vendor-modified/boost/random/exponential_distribution.hpp +386 -0
  696. data/src/cxx_supportlib/vendor-modified/boost/random/extreme_value_distribution.hpp +177 -0
  697. data/src/cxx_supportlib/vendor-modified/boost/random/fisher_f_distribution.hpp +183 -0
  698. data/src/cxx_supportlib/vendor-modified/boost/random/gamma_distribution.hpp +292 -0
  699. data/src/cxx_supportlib/vendor-modified/boost/random/generate_canonical.hpp +96 -0
  700. data/src/cxx_supportlib/vendor-modified/boost/random/geometric_distribution.hpp +267 -0
  701. data/src/cxx_supportlib/vendor-modified/boost/random/hyperexponential_distribution.hpp +883 -0
  702. data/src/cxx_supportlib/vendor-modified/boost/random/independent_bits.hpp +271 -0
  703. data/src/cxx_supportlib/vendor-modified/boost/random/inversive_congruential.hpp +267 -0
  704. data/src/cxx_supportlib/vendor-modified/boost/random/lagged_fibonacci.hpp +537 -0
  705. data/src/cxx_supportlib/vendor-modified/boost/random/laplace_distribution.hpp +175 -0
  706. data/src/cxx_supportlib/vendor-modified/boost/random/linear_congruential.hpp +466 -0
  707. data/src/cxx_supportlib/vendor-modified/boost/random/linear_feedback_shift.hpp +217 -0
  708. data/src/cxx_supportlib/vendor-modified/boost/random/lognormal_distribution.hpp +254 -0
  709. data/src/cxx_supportlib/vendor-modified/boost/random/mersenne_twister.hpp +682 -0
  710. data/src/cxx_supportlib/vendor-modified/boost/random/negative_binomial_distribution.hpp +220 -0
  711. data/src/cxx_supportlib/vendor-modified/boost/random/non_central_chi_squared_distribution.hpp +221 -0
  712. data/src/cxx_supportlib/vendor-modified/boost/random/normal_distribution.hpp +374 -0
  713. data/src/cxx_supportlib/vendor-modified/boost/random/piecewise_constant_distribution.hpp +466 -0
  714. data/src/cxx_supportlib/vendor-modified/boost/random/piecewise_linear_distribution.hpp +531 -0
  715. data/src/cxx_supportlib/vendor-modified/boost/random/poisson_distribution.hpp +360 -0
  716. data/src/cxx_supportlib/vendor-modified/boost/random/random_device.hpp +143 -0
  717. data/src/cxx_supportlib/vendor-modified/boost/random/random_number_generator.hpp +73 -0
  718. data/src/cxx_supportlib/vendor-modified/boost/random/ranlux.hpp +99 -0
  719. data/src/cxx_supportlib/vendor-modified/boost/random/seed_seq.hpp +118 -0
  720. data/src/cxx_supportlib/vendor-modified/boost/random/shuffle_order.hpp +269 -0
  721. data/src/cxx_supportlib/vendor-modified/boost/random/shuffle_output.hpp +51 -0
  722. data/src/cxx_supportlib/vendor-modified/boost/random/student_t_distribution.hpp +180 -0
  723. data/src/cxx_supportlib/vendor-modified/boost/random/subtract_with_carry.hpp +613 -0
  724. data/src/cxx_supportlib/vendor-modified/boost/random/taus88.hpp +45 -0
  725. data/src/cxx_supportlib/vendor-modified/boost/random/traits.hpp +107 -0
  726. data/src/cxx_supportlib/vendor-modified/boost/random/triangle_distribution.hpp +232 -0
  727. data/src/cxx_supportlib/vendor-modified/boost/random/uniform_01.hpp +257 -0
  728. data/src/cxx_supportlib/vendor-modified/boost/random/uniform_int.hpp +99 -0
  729. data/src/cxx_supportlib/vendor-modified/boost/random/uniform_int_distribution.hpp +419 -0
  730. data/src/cxx_supportlib/vendor-modified/boost/random/uniform_on_sphere.hpp +284 -0
  731. data/src/cxx_supportlib/vendor-modified/boost/random/uniform_real.hpp +82 -0
  732. data/src/cxx_supportlib/vendor-modified/boost/random/uniform_real_distribution.hpp +241 -0
  733. data/src/cxx_supportlib/vendor-modified/boost/random/uniform_smallint.hpp +307 -0
  734. data/src/cxx_supportlib/vendor-modified/boost/random/variate_generator.hpp +122 -0
  735. data/src/cxx_supportlib/vendor-modified/boost/random/weibull_distribution.hpp +177 -0
  736. data/src/cxx_supportlib/vendor-modified/boost/random/xor_combine.hpp +208 -0
  737. data/src/cxx_supportlib/vendor-modified/boost/ratio.hpp +14 -0
  738. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/ratio_io.hpp +1342 -0
  739. data/src/cxx_supportlib/vendor-modified/boost/ratio/include.hpp +16 -0
  740. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/abs.hpp +30 -0
  741. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/arithmetic.hpp +22 -0
  742. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/comparison.hpp +19 -0
  743. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/divides.hpp +30 -0
  744. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/equal_to.hpp +30 -0
  745. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/gcd.hpp +30 -0
  746. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/greater.hpp +30 -0
  747. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/greater_equal.hpp +30 -0
  748. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/lcm.hpp +30 -0
  749. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/less.hpp +30 -0
  750. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/less_equal.hpp +30 -0
  751. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/minus.hpp +30 -0
  752. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/negate.hpp +30 -0
  753. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/not_equal_to.hpp +30 -0
  754. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/numeric_cast.hpp +31 -0
  755. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/plus.hpp +30 -0
  756. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/rational_c_tag.hpp +25 -0
  757. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/rational_constant.hpp +15 -0
  758. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/sign.hpp +30 -0
  759. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/times.hpp +30 -0
  760. data/src/cxx_supportlib/vendor-modified/boost/ratio/ratio_io.hpp +1076 -0
  761. data/src/cxx_supportlib/vendor-modified/boost/rational.hpp +1002 -0
  762. data/src/cxx_supportlib/vendor-modified/modp_b64.cpp +11 -0
  763. data/src/helper-scripts/rack-preloader.rb +1 -1
  764. data/src/nginx_module/{ConfigurationCommands.c → ConfigGeneral/AutoGeneratedDefinitions.c} +351 -134
  765. data/src/nginx_module/{ConfigurationCommands.c.cxxcodebuilder → ConfigGeneral/AutoGeneratedDefinitions.c.cxxcodebuilder} +14 -25
  766. data/src/nginx_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.c +396 -0
  767. data/src/nginx_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.c.cxxcodebuilder +160 -0
  768. data/src/nginx_module/ConfigGeneral/AutoGeneratedSetterFuncs.c +831 -0
  769. data/src/nginx_module/ConfigGeneral/AutoGeneratedSetterFuncs.c.cxxcodebuilder +168 -0
  770. data/src/nginx_module/ConfigGeneral/ManifestGeneration.c +887 -0
  771. data/src/nginx_module/ConfigGeneral/ManifestGeneration.h +100 -0
  772. data/src/nginx_module/Configuration.c +165 -621
  773. data/src/nginx_module/Configuration.h +43 -33
  774. data/src/nginx_module/ContentHandler.c +46 -40
  775. data/src/nginx_module/LocationConfig/AutoGeneratedCreateFunction.c +282 -0
  776. data/src/nginx_module/{CreateLocationConfig.c.cxxcodebuilder → LocationConfig/AutoGeneratedCreateFunction.c.cxxcodebuilder} +43 -17
  777. data/src/nginx_module/{CacheLocationConfig.c → LocationConfig/AutoGeneratedHeaderSerialization.c} +148 -180
  778. data/src/nginx_module/{CacheLocationConfig.c.cxxcodebuilder → LocationConfig/AutoGeneratedHeaderSerialization.c.cxxcodebuilder} +13 -11
  779. data/src/nginx_module/LocationConfig/AutoGeneratedManifestGeneration.c +595 -0
  780. data/src/nginx_module/LocationConfig/AutoGeneratedManifestGeneration.c.cxxcodebuilder +190 -0
  781. data/src/nginx_module/{MergeLocationConfig.c → LocationConfig/AutoGeneratedMergeFunction.c} +32 -42
  782. data/src/nginx_module/{MergeLocationConfig.c.cxxcodebuilder → LocationConfig/AutoGeneratedMergeFunction.c.cxxcodebuilder} +18 -11
  783. data/src/nginx_module/LocationConfig/AutoGeneratedStruct.h +220 -0
  784. data/src/nginx_module/{LocationConfig.h.cxxcodebuilder → LocationConfig/AutoGeneratedStruct.h.cxxcodebuilder} +70 -48
  785. data/src/nginx_module/MainConfig/AutoGeneratedCreateFunction.c +163 -0
  786. data/src/nginx_module/MainConfig/AutoGeneratedCreateFunction.c.cxxcodebuilder +125 -0
  787. data/src/nginx_module/MainConfig/AutoGeneratedManifestGeneration.c +303 -0
  788. data/src/nginx_module/MainConfig/AutoGeneratedManifestGeneration.c.cxxcodebuilder +173 -0
  789. data/src/nginx_module/MainConfig/AutoGeneratedStruct.h +133 -0
  790. data/src/nginx_module/MainConfig/AutoGeneratedStruct.h.cxxcodebuilder +154 -0
  791. data/src/nginx_module/config +13 -4
  792. data/src/nginx_module/ngx_http_passenger_module.c +154 -84
  793. data/src/ruby_supportlib/phusion_passenger.rb +2 -2
  794. data/src/ruby_supportlib/phusion_passenger/apache2/config_options.rb +613 -131
  795. data/src/ruby_supportlib/phusion_passenger/apache2/config_utils.rb +52 -0
  796. data/src/ruby_supportlib/phusion_passenger/common_library.rb +18 -4
  797. data/src/ruby_supportlib/phusion_passenger/config/main.rb +2 -0
  798. data/src/ruby_supportlib/phusion_passenger/config/system_properties_command.rb +104 -0
  799. data/src/ruby_supportlib/phusion_passenger/constants.rb +0 -2
  800. data/src/ruby_supportlib/phusion_passenger/nginx/config_options.rb +470 -138
  801. data/src/ruby_supportlib/phusion_passenger/packaging.rb +1 -0
  802. data/src/ruby_supportlib/phusion_passenger/platform_info.rb +17 -0
  803. data/src/ruby_supportlib/phusion_passenger/platform_info/apache.rb +11 -1
  804. data/src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb +7 -7
  805. data/src/ruby_supportlib/phusion_passenger/platform_info/networking.rb +293 -0
  806. data/src/ruby_supportlib/phusion_passenger/standalone/config_options_list.rb +8 -54
  807. data/src/ruby_supportlib/phusion_passenger/standalone/start_command.rb +1 -5
  808. data/src/ruby_supportlib/phusion_passenger/standalone/start_command/builtin_engine.rb +4 -7
  809. data/src/ruby_supportlib/phusion_passenger/vendor/daemon_controller.rb +1 -1
  810. data/src/schema_printer/SchemaPrinterMain.cpp +78 -0
  811. data/src/schema_printer/SchemaPrinterMain.cpp.cxxcodebuilder +116 -0
  812. metadata +671 -30
  813. data/src/apache2_module/Configuration.cpp +0 -737
  814. data/src/apache2_module/Configuration.hpp +0 -274
  815. data/src/apache2_module/ConfigurationCommands.cpp +0 -199
  816. data/src/apache2_module/ConfigurationFields.hpp +0 -187
  817. data/src/apache2_module/ConfigurationSetters.cpp +0 -436
  818. data/src/apache2_module/ConfigurationSetters.cpp.cxxcodebuilder +0 -144
  819. data/src/apache2_module/CreateDirConfig.cpp +0 -68
  820. data/src/apache2_module/CreateDirConfig.cpp.cxxcodebuilder +0 -81
  821. data/src/apache2_module/MergeDirConfig.cpp +0 -155
  822. data/src/apache2_module/SetHeaders.cpp +0 -111
  823. data/src/nginx_module/CreateLocationConfig.c +0 -100
  824. data/src/nginx_module/LocationConfig.h +0 -95
@@ -0,0 +1,100 @@
1
+ #ifndef _PASSENGER_NGINX_MODULE_CONFIG_GENERAL_MANIFEST_GENERATION_H_
2
+ #define _PASSENGER_NGINX_MODULE_CONFIG_GENERAL_MANIFEST_GENERATION_H_
3
+
4
+ #include <ngx_config.h>
5
+ #include <ngx_core.h>
6
+ #include <ngx_http.h>
7
+ #include "cxx_supportlib/JsonTools/CBindings.h"
8
+
9
+ #ifndef _PASSENGER_NGINX_MODULE_CONF_STRUCT_TYPEDEFS_H_
10
+ #define _PASSENGER_NGINX_MODULE_CONF_STRUCT_TYPEDEFS_H_
11
+ struct passenger_main_conf_s;
12
+ struct passenger_loc_conf_s;
13
+ typedef struct passenger_main_conf_s passenger_main_conf_t;
14
+ typedef struct passenger_loc_conf_s passenger_loc_conf_t;
15
+ #endif /* _PASSENGER_NGINX_MODULE_CONF_STRUCT_TYPEDEFS_H_ */
16
+
17
+ typedef struct {
18
+ ngx_conf_t *cf;
19
+
20
+ PsgJsonValue *manifest;
21
+ PsgJsonValue *global_config_container;
22
+ PsgJsonValue *default_app_config_container;
23
+ PsgJsonValue *default_loc_config_container;
24
+ PsgJsonValue *app_configs_container;
25
+
26
+ PsgJsonValue *empty_object, *empty_array;
27
+
28
+ PsgJsonValueIterator *it, *end;
29
+ PsgJsonValueIterator *it2, *end2;
30
+ PsgJsonValueIterator *it3, *end3;
31
+ PsgJsonValueIterator *it4, *end4;
32
+ } manifest_gen_ctx_t;
33
+
34
+ static PsgJsonValue *generate_config_manifest(ngx_conf_t *cf, passenger_loc_conf_t *toplevel_plcf);
35
+
36
+ static void init_config_manifest_generation(ngx_conf_t *cf, manifest_gen_ctx_t *ctx);
37
+ static void deinit_config_manifest_generation(manifest_gen_ctx_t *ctx);
38
+
39
+ static void recursively_generate_config_manifest_for_loc_conf(manifest_gen_ctx_t *ctx,
40
+ passenger_loc_conf_t *plcf);
41
+ static int infer_loc_conf_app_group_name(manifest_gen_ctx_t *ctx,
42
+ passenger_loc_conf_t *plcf, ngx_http_core_loc_conf_t *clcf, ngx_str_t *result);
43
+ static void generate_config_manifest_for_loc_conf(manifest_gen_ctx_t *ctx,
44
+ passenger_loc_conf_t *plcf, ngx_http_core_srv_conf_t *cscf,
45
+ ngx_http_core_loc_conf_t *clcf);
46
+ static void find_or_create_manifest_app_and_loc_options_containers(manifest_gen_ctx_t *ctx,
47
+ passenger_loc_conf_t *plcf, ngx_http_core_srv_conf_t *cscf,
48
+ ngx_http_core_loc_conf_t *clcf, PsgJsonValue **app_options_container,
49
+ PsgJsonValue **loc_options_container);
50
+ static PsgJsonValue *find_manifest_loc_config_container(manifest_gen_ctx_t *ctx,
51
+ PsgJsonValue *loc_configs_container, ngx_http_core_srv_conf_t *cscf,
52
+ ngx_http_core_loc_conf_t *clcf);
53
+ static PsgJsonValue *create_manifest_loc_config_container(manifest_gen_ctx_t *ctx,
54
+ PsgJsonValue *loc_configs_container, ngx_http_core_srv_conf_t *cscf,
55
+ ngx_http_core_loc_conf_t *clcf);
56
+ static void init_manifest_option_container(manifest_gen_ctx_t *ctx, PsgJsonValue *doc);
57
+ static PsgJsonValue *find_or_create_manifest_option_container(manifest_gen_ctx_t *ctx,
58
+ PsgJsonValue *options_container, const char *option_name,
59
+ size_t option_name_len);
60
+ static PsgJsonValue *add_manifest_option_container_hierarchy_member(
61
+ PsgJsonValue *option_container, ngx_str_t *source_file, ngx_uint_t source_line);
62
+
63
+ static void generate_config_manifest_for_autogenerated_main_conf(manifest_gen_ctx_t *ctx,
64
+ passenger_main_conf_t *conf);
65
+ static void generate_config_manifest_for_autogenerated_loc_conf(manifest_gen_ctx_t *ctx,
66
+ passenger_loc_conf_t *plcf, ngx_http_core_srv_conf_t *cscf,
67
+ ngx_http_core_loc_conf_t *clcf);
68
+
69
+ static void reverse_manifest_value_hierarchies(manifest_gen_ctx_t *ctx);
70
+ static void reverse_value_hierarchies_in_options_container(PsgJsonValue *options_container,
71
+ PsgJsonValueIterator *it, PsgJsonValueIterator *end);
72
+
73
+ static void add_manifest_options_container_dynamic_default(manifest_gen_ctx_t *ctx,
74
+ PsgJsonValue *options_container, const char *option_name, size_t option_name_len,
75
+ const char *desc, size_t desc_len);
76
+ static void add_manifest_options_container_static_default_str(manifest_gen_ctx_t *ctx,
77
+ PsgJsonValue *options_container, const char *option_name, size_t option_name_len,
78
+ const char *value, size_t value_len);
79
+ static void add_manifest_options_container_static_default_int(manifest_gen_ctx_t *ctx,
80
+ PsgJsonValue *options_container, const char *option_name, size_t option_name_len,
81
+ int value);
82
+ static void add_manifest_options_container_static_default_uint(manifest_gen_ctx_t *ctx,
83
+ PsgJsonValue *options_container, const char *option_name, size_t option_name_len,
84
+ unsigned int value);
85
+ static void add_manifest_options_container_static_default_bool(manifest_gen_ctx_t *ctx,
86
+ PsgJsonValue *options_container, const char *option_name, size_t option_name_len,
87
+ int value);
88
+
89
+ static void manifest_inherit_application_value_hierarchies(manifest_gen_ctx_t *ctx);
90
+ static void manifest_inherit_location_value_hierarchies(manifest_gen_ctx_t *ctx);
91
+ static void maybe_inherit_string_array_hierarchy_values(PsgJsonValue *value_hierarchy_doc,
92
+ PsgJsonValueIterator *it, PsgJsonValueIterator *end);
93
+ static void maybe_inherit_string_keyval_hierarchy_values(PsgJsonValue *value_hierarchy_doc,
94
+ PsgJsonValueIterator *it, PsgJsonValueIterator *end);
95
+
96
+ static void psg_json_value_append_vals(PsgJsonValue *doc, PsgJsonValue *doc2,
97
+ PsgJsonValueIterator *it, PsgJsonValueIterator *end);
98
+ static int json_array_contains(PsgJsonValue *doc, PsgJsonValue *elem);
99
+
100
+ #endif /* _PASSENGER_NGINX_MODULE_CONFIG_GENERAL_MANIFEST_GENERATION_H_ */
@@ -37,8 +37,14 @@
37
37
  #include "ngx_http_passenger_module.h"
38
38
  #include "Configuration.h"
39
39
  #include "ContentHandler.h"
40
+ #include "ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.c"
41
+ #include "ConfigGeneral/AutoGeneratedSetterFuncs.c"
42
+ #include "ConfigGeneral/ManifestGeneration.c"
43
+ #include "MainConfig/AutoGeneratedCreateFunction.c"
44
+ #include "MainConfig/AutoGeneratedManifestGeneration.c"
45
+ #include "LocationConfig/AutoGeneratedCreateFunction.c"
46
+ #include "LocationConfig/AutoGeneratedManifestGeneration.c"
40
47
  #include "cxx_supportlib/Constants.h"
41
- #include "cxx_supportlib/UnionStationFilterSupport.h"
42
48
  #include "cxx_supportlib/vendor-modified/modp_b64.h"
43
49
 
44
50
 
@@ -55,31 +61,11 @@ static ngx_str_t headers_to_hide[] = {
55
61
 
56
62
  passenger_main_conf_t passenger_main_conf;
57
63
 
58
- typedef struct postprocess_ctx_s postprocess_ctx_t;
59
-
60
64
  static ngx_path_init_t ngx_http_proxy_temp_path = {
61
65
  ngx_string(NGX_HTTP_PROXY_TEMP_PATH), { 1, 2, 0 }
62
66
  };
63
67
 
64
- static ngx_int_t postprocess_location_conf(ngx_conf_t *cf,
65
- ngx_http_core_srv_conf_t *server_conf,
66
- ngx_http_core_loc_conf_t *location_conf,
67
- int is_toplevel,
68
- postprocess_ctx_t *ctx);
69
- static ngx_int_t traverse_location_confs_nested_in_server_conf(ngx_conf_t *cf,
70
- ngx_http_core_srv_conf_t *server_conf,
71
- ngx_http_core_loc_conf_t *location_conf,
72
- postprocess_ctx_t *ctx);
73
- static ngx_int_t traverse_static_location_tree(ngx_conf_t *cf,
74
- ngx_http_core_srv_conf_t *server_conf,
75
- ngx_http_location_tree_node_t *node,
76
- postprocess_ctx_t *ctx);
77
- #ifdef NGX_PCRE
78
- static ngx_int_t traverse_regex_locations(ngx_conf_t *cf,
79
- ngx_http_core_srv_conf_t *server_conf,
80
- ngx_http_core_loc_conf_t **regex_locations,
81
- postprocess_ctx_t *ctx);
82
- #endif
68
+
83
69
  static ngx_int_t merge_headers(ngx_conf_t *cf, passenger_loc_conf_t *conf,
84
70
  passenger_loc_conf_t *prev);
85
71
  static ngx_int_t merge_string_array(ngx_conf_t *cf, ngx_array_t **prev,
@@ -88,6 +74,10 @@ static ngx_int_t merge_string_keyval_table(ngx_conf_t *cf, ngx_array_t **prev,
88
74
  ngx_array_t **conf);
89
75
 
90
76
 
77
+ #include "LocationConfig/AutoGeneratedMergeFunction.c"
78
+ #include "LocationConfig/AutoGeneratedHeaderSerialization.c"
79
+
80
+
91
81
  void *
92
82
  passenger_create_main_conf(ngx_conf_t *cf)
93
83
  {
@@ -98,55 +88,10 @@ passenger_create_main_conf(ngx_conf_t *cf)
98
88
  return NGX_CONF_ERROR;
99
89
  }
100
90
 
101
- conf->ctl = ngx_array_create(cf->pool, 1, sizeof(ngx_keyval_t));
102
- if (conf->ctl == NULL) {
103
- return NGX_CONF_ERROR;
104
- }
105
91
  conf->default_ruby.data = NULL;
106
92
  conf->default_ruby.len = 0;
107
- conf->log_level = (ngx_int_t) NGX_CONF_UNSET;
108
- conf->log_file.data = NULL;
109
- conf->log_file.len = 0;
110
- conf->socket_backlog = NGX_CONF_UNSET_UINT;
111
- conf->file_descriptor_log_file.data = NULL;
112
- conf->file_descriptor_log_file.len = 0;
113
- conf->data_buffer_dir.data = NULL;
114
- conf->data_buffer_dir.len = 0;
115
- conf->instance_registry_dir.data = NULL;
116
- conf->instance_registry_dir.len = 0;
117
- conf->disable_security_update_check = NGX_CONF_UNSET;
118
- conf->security_update_check_proxy.data = NULL;
119
- conf->security_update_check_proxy.len = 0;
120
- conf->abort_on_startup_error = NGX_CONF_UNSET;
121
- conf->max_pool_size = NGX_CONF_UNSET_UINT;
122
- conf->pool_idle_time = NGX_CONF_UNSET_UINT;
123
- conf->response_buffer_high_watermark = NGX_CONF_UNSET_UINT;
124
- conf->stat_throttle_rate = NGX_CONF_UNSET_UINT;
125
- conf->core_file_descriptor_ulimit = NGX_CONF_UNSET_UINT;
126
- conf->user_switching = NGX_CONF_UNSET;
127
- conf->show_version_in_header = NGX_CONF_UNSET;
128
- conf->turbocaching = NGX_CONF_UNSET;
129
- conf->default_user.data = NULL;
130
- conf->default_user.len = 0;
131
- conf->default_group.data = NULL;
132
- conf->default_group.len = 0;
133
- conf->analytics_log_user.data = NULL;
134
- conf->analytics_log_user.len = 0;
135
- conf->analytics_log_group.data = NULL;
136
- conf->analytics_log_group.len = 0;
137
- conf->union_station_support = 0;
138
- conf->union_station_gateway_address.data = NULL;
139
- conf->union_station_gateway_address.len = 0;
140
- conf->union_station_gateway_port = (ngx_uint_t) NGX_CONF_UNSET;
141
- conf->union_station_gateway_cert.data = NULL;
142
- conf->union_station_gateway_cert.len = 0;
143
- conf->union_station_proxy_address.data = NULL;
144
- conf->union_station_proxy_address.len = 0;
145
-
146
- conf->prestart_uris = ngx_array_create(cf->pool, 1, sizeof(ngx_str_t));
147
- if (conf->prestart_uris == NULL) {
148
- return NGX_CONF_ERROR;
149
- }
93
+
94
+ passenger_create_autogenerated_main_conf(&conf->autogenerated);
150
95
 
151
96
  return conf;
152
97
  }
@@ -162,133 +107,43 @@ passenger_init_main_conf(ngx_conf_t *cf, void *conf_pointer)
162
107
  conf = &passenger_main_conf;
163
108
  *conf = *((passenger_main_conf_t *) conf_pointer);
164
109
 
165
- if (conf->default_ruby.len == 0) {
166
- conf->default_ruby.data = (u_char *) DEFAULT_RUBY;
167
- conf->default_ruby.len = strlen(DEFAULT_RUBY);
168
- }
169
-
170
- if (conf->log_level == (ngx_int_t) NGX_CONF_UNSET) {
171
- conf->log_level = DEFAULT_LOG_LEVEL;
172
- }
173
-
174
- if (conf->log_file.len == 0) {
175
- conf->log_file.data = (u_char *) "";
176
- }
177
-
178
- if (conf->file_descriptor_log_file.len == 0) {
179
- conf->file_descriptor_log_file.data = (u_char *) "";
180
- }
181
-
182
- if (conf->socket_backlog == NGX_CONF_UNSET_UINT) {
183
- conf->socket_backlog = DEFAULT_SOCKET_BACKLOG;
184
- }
185
-
186
- if (conf->data_buffer_dir.len == 0) {
187
- conf->data_buffer_dir.data = (u_char *) "";
110
+ if (conf->autogenerated.abort_on_startup_error == NGX_CONF_UNSET) {
111
+ conf->autogenerated.abort_on_startup_error = 0;
188
112
  }
189
113
 
190
- if (conf->instance_registry_dir.len == 0) {
191
- conf->instance_registry_dir.data = (u_char *) "";
114
+ if (conf->autogenerated.show_version_in_header == NGX_CONF_UNSET) {
115
+ conf->autogenerated.show_version_in_header = 1;
192
116
  }
193
117
 
194
- if (conf->disable_security_update_check == NGX_CONF_UNSET) {
195
- conf->disable_security_update_check = 0;
196
- }
197
-
198
- if (conf->security_update_check_proxy.len == 0) {
199
- conf->security_update_check_proxy.data = (u_char *) "";
200
- }
201
-
202
- if (conf->abort_on_startup_error == NGX_CONF_UNSET) {
203
- conf->abort_on_startup_error = 0;
204
- }
205
-
206
- if (conf->max_pool_size == NGX_CONF_UNSET_UINT) {
207
- conf->max_pool_size = DEFAULT_MAX_POOL_SIZE;
208
- }
209
-
210
- if (conf->pool_idle_time == NGX_CONF_UNSET_UINT) {
211
- conf->pool_idle_time = DEFAULT_POOL_IDLE_TIME;
212
- }
213
-
214
- if (conf->response_buffer_high_watermark == NGX_CONF_UNSET_UINT) {
215
- conf->response_buffer_high_watermark = DEFAULT_RESPONSE_BUFFER_HIGH_WATERMARK;
216
- }
217
-
218
- if (conf->stat_throttle_rate == NGX_CONF_UNSET_UINT) {
219
- conf->stat_throttle_rate = DEFAULT_STAT_THROTTLE_RATE;
118
+ if (conf->autogenerated.default_user.len == 0) {
119
+ conf->autogenerated.default_user.len = sizeof(DEFAULT_WEB_APP_USER) - 1;
120
+ conf->autogenerated.default_user.data = (u_char *) DEFAULT_WEB_APP_USER;
220
121
  }
221
-
222
- if (conf->user_switching == NGX_CONF_UNSET) {
223
- conf->user_switching = 1;
224
- }
225
-
226
- if (conf->show_version_in_header == NGX_CONF_UNSET) {
227
- conf->show_version_in_header = 1;
228
- }
229
-
230
- if (conf->turbocaching == NGX_CONF_UNSET) {
231
- conf->turbocaching = 1;
122
+ if (conf->autogenerated.default_user.len > sizeof(buf) - 1) {
123
+ return "Value for 'passenger_default_user' is too long.";
232
124
  }
233
-
234
- if (conf->default_user.len == 0) {
235
- conf->default_user.len = sizeof(DEFAULT_WEB_APP_USER) - 1;
236
- conf->default_user.data = (u_char *) DEFAULT_WEB_APP_USER;
237
- }
238
- if (conf->default_user.len > sizeof(buf) - 1) {
239
- return "Value for 'default_user' is too long.";
240
- }
241
- memcpy(buf, conf->default_user.data, conf->default_user.len);
242
- buf[conf->default_user.len] = '\0';
125
+ memcpy(buf, conf->autogenerated.default_user.data, conf->autogenerated.default_user.len);
126
+ buf[conf->autogenerated.default_user.len] = '\0';
243
127
  user_entry = getpwnam(buf);
244
128
  if (user_entry == NULL) {
245
- return "The user specified by the 'default_user' option does not exist.";
129
+ return "The user specified by the 'passenger_default_user' option does not exist.";
246
130
  }
247
131
 
248
- if (conf->default_group.len > 0) {
249
- if (conf->default_group.len > sizeof(buf) - 1) {
250
- return "Value for 'default_group' is too long.";
132
+ if (conf->autogenerated.default_group.len > 0) {
133
+ if (conf->autogenerated.default_group.len > sizeof(buf) - 1) {
134
+ return "Value for 'passenger_default_group' is too long.";
251
135
  }
252
- memcpy(buf, conf->default_group.data, conf->default_group.len);
253
- buf[conf->default_group.len] = '\0';
136
+ memcpy(buf, conf->autogenerated.default_group.data, conf->autogenerated.default_group.len);
137
+ buf[conf->autogenerated.default_group.len] = '\0';
254
138
  group_entry = getgrnam(buf);
255
139
  if (group_entry == NULL) {
256
- return "The group specified by the 'default_group' option does not exist.";
140
+ return "The group specified by the 'passenger_default_group' option does not exist.";
257
141
  }
258
142
  }
259
143
 
260
- if (conf->analytics_log_user.len == 0) {
261
- conf->analytics_log_user.len = sizeof(DEFAULT_ANALYTICS_LOG_USER) - 1;
262
- conf->analytics_log_user.data = (u_char *) DEFAULT_ANALYTICS_LOG_USER;
263
- }
264
-
265
- if (conf->analytics_log_group.len == 0) {
266
- conf->analytics_log_group.len = sizeof(DEFAULT_ANALYTICS_LOG_GROUP) - 1;
267
- conf->analytics_log_group.data = (u_char *) DEFAULT_ANALYTICS_LOG_GROUP;
268
- }
269
-
270
- if (conf->union_station_gateway_address.len == 0) {
271
- conf->union_station_gateway_address.len = sizeof(DEFAULT_UNION_STATION_GATEWAY_ADDRESS) - 1;
272
- conf->union_station_gateway_address.data = (u_char *) DEFAULT_UNION_STATION_GATEWAY_ADDRESS;
273
- }
274
-
275
- if (conf->union_station_gateway_port == (ngx_uint_t) NGX_CONF_UNSET) {
276
- conf->union_station_gateway_port = DEFAULT_UNION_STATION_GATEWAY_PORT;
277
- }
278
-
279
- if (conf->union_station_gateway_cert.len == 0) {
280
- conf->union_station_gateway_cert.data = (u_char *) "";
281
- }
282
-
283
- if (conf->union_station_proxy_address.len == 0) {
284
- conf->union_station_proxy_address.data = (u_char *) "";
285
- }
286
-
287
144
  return NGX_CONF_OK;
288
145
  }
289
146
 
290
- #include "CreateLocationConfig.c"
291
-
292
147
  void *
293
148
  passenger_create_loc_conf(ngx_conf_t *cf)
294
149
  {
@@ -314,7 +169,31 @@ passenger_create_loc_conf(ngx_conf_t *cf)
314
169
  * conf->upstream_config.store_values = NULL;
315
170
  */
316
171
 
317
- generated_set_conf_part(conf);
172
+ conf->parent = NULL;
173
+ if (ngx_array_init(&conf->children, cf->pool, 8,
174
+ sizeof(passenger_loc_conf_t *))
175
+ != NGX_OK)
176
+ {
177
+ return NGX_CONF_ERROR;
178
+ }
179
+
180
+ if (cf->conf_file == NULL) {
181
+ conf->context_source_file.data = (u_char *) NULL;
182
+ conf->context_source_file.len = 0;
183
+ conf->context_source_line = 0;
184
+ } else if (cf->conf_file->file.fd == NGX_INVALID_FILE) {
185
+ conf->context_source_file.data = (u_char *) "(command line)";
186
+ conf->context_source_file.len = sizeof("(command line)") - 1;
187
+ conf->context_source_line = 0;
188
+ } else {
189
+ conf->context_source_file = cf->conf_file->file.name;
190
+ conf->context_source_line = cf->conf_file->line;
191
+ }
192
+
193
+ conf->cscf = NULL;
194
+ conf->clcf = NULL;
195
+
196
+ passenger_create_autogenerated_loc_conf(&conf->autogenerated);
318
197
 
319
198
  /******************************/
320
199
  /******************************/
@@ -390,21 +269,19 @@ passenger_create_loc_conf(ngx_conf_t *cf)
390
269
  return conf;
391
270
  }
392
271
 
393
- #include "CacheLocationConfig.c"
394
-
395
272
  static ngx_int_t
396
- cache_loc_conf_options(ngx_conf_t *cf, passenger_loc_conf_t *conf)
273
+ serialize_loc_conf_to_headers(ngx_conf_t *cf, passenger_loc_conf_t *conf)
397
274
  {
398
275
  ngx_uint_t i;
399
276
  ngx_keyval_t *env_vars;
400
277
  size_t unencoded_len;
401
278
  u_char *unencoded_buf;
402
279
 
403
- if (generated_cache_location_part(cf, conf) == 0) {
280
+ if (passenger_serialize_autogenerated_loc_conf_to_headers(cf, conf) == 0) {
404
281
  return NGX_ERROR;
405
282
  }
406
283
 
407
- if (conf->env_vars != NULL) {
284
+ if (conf->autogenerated.env_vars != NULL) {
408
285
  size_t len = 0;
409
286
  u_char *buf;
410
287
  u_char *pos;
@@ -414,9 +291,9 @@ cache_loc_conf_options(ngx_conf_t *cf, passenger_loc_conf_t *conf)
414
291
  */
415
292
 
416
293
  unencoded_len = 0;
417
- env_vars = (ngx_keyval_t *) conf->env_vars->elts;
294
+ env_vars = (ngx_keyval_t *) conf->autogenerated.env_vars->elts;
418
295
 
419
- for (i = 0; i < conf->env_vars->nelts; i++) {
296
+ for (i = 0; i < conf->autogenerated.env_vars->nelts; i++) {
420
297
  unencoded_len += env_vars[i].key.len + 1 + env_vars[i].value.len + 1;
421
298
  }
422
299
 
@@ -430,7 +307,7 @@ cache_loc_conf_options(ngx_conf_t *cf, passenger_loc_conf_t *conf)
430
307
  return NGX_ERROR;
431
308
  }
432
309
 
433
- for (i = 0; i < conf->env_vars->nelts; i++) {
310
+ for (i = 0; i < conf->autogenerated.env_vars->nelts; i++) {
434
311
  pos = ngx_copy(pos, env_vars[i].key.data, env_vars[i].key.len);
435
312
  *pos = '\0';
436
313
  pos++;
@@ -467,28 +344,44 @@ cache_loc_conf_options(ngx_conf_t *cf, passenger_loc_conf_t *conf)
467
344
  return NGX_OK;
468
345
  }
469
346
 
470
- #include "MergeLocationConfig.c"
471
-
472
347
  char *
473
348
  passenger_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child)
474
349
  {
475
350
  passenger_loc_conf_t *prev = parent;
476
351
  passenger_loc_conf_t *conf = child;
352
+ passenger_loc_conf_t **children_elem;
477
353
  ngx_http_core_loc_conf_t *clcf;
478
354
 
479
355
  size_t size;
480
356
  ngx_hash_init_t hash;
481
357
 
482
358
  clcf = ngx_http_conf_get_module_loc_conf(cf, ngx_http_core_module);
359
+ /* The following works for all contexts within the http{} block, but does
360
+ * not work for the http{} block itself. To obtain the ngx_http_core_(loc|srv)_conf_t
361
+ * associated with the http{} block itself, we also set conf->(cscf|clcf)
362
+ * from record_loc_conf_source_location(), which is called from the various
363
+ * configuration setter functions.
364
+ */
365
+ conf->cscf = ngx_http_conf_get_module_srv_conf(cf, ngx_http_core_module);
366
+ conf->clcf = clcf;
367
+
368
+ if (passenger_merge_autogenerated_loc_conf(&conf->autogenerated, &prev->autogenerated, cf) == 0) {
369
+ return NGX_CONF_ERROR;
370
+ }
483
371
 
484
- if (generated_merge_part(conf, prev, cf) == 0) {
372
+ conf->parent = prev;
373
+ children_elem = ngx_array_push(&prev->children);
374
+ if (children_elem == NULL) {
375
+ ngx_conf_log_error(NGX_LOG_EMERG, cf, ngx_errno,
376
+ "cannot allocate memory");
485
377
  return NGX_CONF_ERROR;
486
378
  }
379
+ *children_elem = conf;
487
380
 
488
381
  if (prev->options_cache.data == NULL) {
489
- if (cache_loc_conf_options(cf, prev) != NGX_OK) {
382
+ if (serialize_loc_conf_to_headers(cf, prev) != NGX_OK) {
490
383
  ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
491
- "cannot create " PROGRAM_NAME " configuration cache");
384
+ "cannot create " PROGRAM_NAME " configuration serialization cache");
492
385
  return NGX_CONF_ERROR;
493
386
  }
494
387
  }
@@ -805,26 +698,27 @@ passenger_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child)
805
698
  conf->upstream_config.upstream = prev->upstream_config.upstream;
806
699
  }
807
700
 
808
- if (conf->enabled == 1 /* and not NGX_CONF_UNSET */
809
- && passenger_main_conf.root_dir.len != 0
701
+ if (conf->autogenerated.enabled == 1 /* and not NGX_CONF_UNSET */
702
+ && passenger_main_conf.autogenerated.root_dir.len != 0
810
703
  && clcf->handler == NULL /* no handler set by other modules */)
811
704
  {
812
705
  clcf->handler = passenger_content_handler;
813
706
  }
814
707
 
815
- conf->headers_hash_bucket_size = ngx_align(conf->headers_hash_bucket_size,
816
- ngx_cacheline_size);
817
- hash.max_size = conf->headers_hash_max_size;
818
- hash.bucket_size = conf->headers_hash_bucket_size;
708
+ conf->autogenerated.headers_hash_bucket_size = ngx_align(
709
+ conf->autogenerated.headers_hash_bucket_size,
710
+ ngx_cacheline_size);
711
+ hash.max_size = conf->autogenerated.headers_hash_max_size;
712
+ hash.bucket_size = conf->autogenerated.headers_hash_bucket_size;
819
713
  hash.name = "passenger_headers_hash";
820
714
 
821
715
  if (merge_headers(cf, conf, prev) != NGX_OK) {
822
716
  return NGX_CONF_ERROR;
823
717
  }
824
718
 
825
- if (cache_loc_conf_options(cf, conf) != NGX_OK) {
719
+ if (serialize_loc_conf_to_headers(cf, conf) != NGX_OK) {
826
720
  ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
827
- "cannot create " PROGRAM_NAME " configuration cache");
721
+ "cannot create " PROGRAM_NAME " configuration serialization cache");
828
722
  return NGX_CONF_ERROR;
829
723
  }
830
724
 
@@ -845,12 +739,12 @@ merge_headers(ngx_conf_t *cf, passenger_loc_conf_t *conf, passenger_loc_conf_t *
845
739
  ngx_http_script_compile_t sc;
846
740
  ngx_http_script_copy_code_t *copy;
847
741
 
848
- if (conf->headers_source == NULL) {
742
+ if (conf->autogenerated.headers_source == NULL) {
849
743
  conf->flushes = prev->flushes;
850
744
  conf->headers_set_len = prev->headers_set_len;
851
745
  conf->headers_set = prev->headers_set;
852
746
  conf->headers_set_hash = prev->headers_set_hash;
853
- conf->headers_source = prev->headers_source;
747
+ conf->autogenerated.headers_source = prev->autogenerated.headers_source;
854
748
  }
855
749
 
856
750
  if (conf->headers_set_hash.buckets
@@ -879,10 +773,10 @@ merge_headers(ngx_conf_t *cf, passenger_loc_conf_t *conf, passenger_loc_conf_t *
879
773
  return NGX_ERROR;
880
774
  }
881
775
 
882
- if (conf->headers_source == NULL) {
883
- conf->headers_source = ngx_array_create(cf->pool, 4,
776
+ if (conf->autogenerated.headers_source == NULL) {
777
+ conf->autogenerated.headers_source = ngx_array_create(cf->pool, 4,
884
778
  sizeof(ngx_keyval_t));
885
- if (conf->headers_source == NULL) {
779
+ if (conf->autogenerated.headers_source == NULL) {
886
780
  return NGX_ERROR;
887
781
  }
888
782
  }
@@ -898,8 +792,8 @@ merge_headers(ngx_conf_t *cf, passenger_loc_conf_t *conf, passenger_loc_conf_t *
898
792
  }
899
793
 
900
794
 
901
- src = conf->headers_source->elts;
902
- for (i = 0; i < conf->headers_source->nelts; i++) {
795
+ src = conf->autogenerated.headers_source->elts;
796
+ for (i = 0; i < conf->autogenerated.headers_source->nelts; i++) {
903
797
 
904
798
  s = ngx_array_push(&headers_merged);
905
799
  if (s == NULL) {
@@ -1055,8 +949,8 @@ merge_headers(ngx_conf_t *cf, passenger_loc_conf_t *conf, passenger_loc_conf_t *
1055
949
 
1056
950
  hash.hash = &conf->headers_set_hash;
1057
951
  hash.key = ngx_hash_key_lc;
1058
- hash.max_size = conf->headers_hash_max_size;
1059
- hash.bucket_size = conf->headers_hash_bucket_size;
952
+ hash.max_size = conf->autogenerated.headers_hash_max_size;
953
+ hash.bucket_size = conf->autogenerated.headers_hash_bucket_size;
1060
954
  hash.name = "passenger_headers_hash";
1061
955
  hash.pool = cf->pool;
1062
956
  hash.temp_pool = NULL;
@@ -1091,142 +985,29 @@ merge_string_array(ngx_conf_t *cf, ngx_array_t **prev, ngx_array_t **conf)
1091
985
  return NGX_OK;
1092
986
  }
1093
987
 
1094
- struct postprocess_ctx_s {
1095
- /* Reserved for future use */
1096
- };
1097
-
1098
988
  ngx_int_t
1099
989
  passenger_postprocess_config(ngx_conf_t *cf)
1100
990
  {
1101
- ngx_http_core_main_conf_t *cmcf;
1102
- ngx_http_core_srv_conf_t **server_confs, *server_conf;
1103
- ngx_http_core_loc_conf_t *base_location_conf;
1104
- ngx_uint_t i;
1105
- ngx_int_t result;
1106
- postprocess_ctx_t ctx;
1107
-
1108
- cmcf = ngx_http_conf_get_module_main_conf(cf, ngx_http_core_module);
1109
- server_confs = (ngx_http_core_srv_conf_t **) cmcf->servers.elts;
1110
-
1111
- ngx_memzero(&ctx, sizeof(ctx));
991
+ ngx_http_conf_ctx_t *http_ctx;
992
+ passenger_loc_conf_t *toplevel_plcf;
993
+ ngx_pool_cleanup_t *manifest_cleanup;
1112
994
 
1113
- for (i = 0; i < cmcf->servers.nelts; i++) {
1114
- server_conf = server_confs[i];
1115
- base_location_conf = server_conf->ctx->loc_conf[ngx_http_core_module.ctx_index];
995
+ http_ctx = cf->ctx;
996
+ toplevel_plcf = http_ctx->loc_conf[ngx_http_passenger_module.ctx_index];
1116
997
 
1117
- result = postprocess_location_conf(cf, server_conf, base_location_conf, 1, &ctx);
1118
- if (result != NGX_OK) {
1119
- return result;
1120
- }
1121
- }
1122
-
1123
- return NGX_OK;
1124
- }
1125
-
1126
- static ngx_int_t
1127
- postprocess_location_conf(ngx_conf_t *cf,
1128
- ngx_http_core_srv_conf_t *server_conf,
1129
- ngx_http_core_loc_conf_t *location_conf,
1130
- int is_toplevel,
1131
- postprocess_ctx_t *ctx)
1132
- {
1133
- passenger_loc_conf_t *plconf = server_conf->ctx->loc_conf[
1134
- ngx_http_passenger_module.ctx_index];
1135
-
1136
- if (plconf->union_station_support != NGX_CONF_UNSET && plconf->union_station_support) {
1137
- passenger_main_conf.union_station_support = 1;
998
+ passenger_main_conf.default_ruby = toplevel_plcf->autogenerated.ruby;
999
+ if (passenger_main_conf.default_ruby.len == 0) {
1000
+ passenger_main_conf.default_ruby.data = (u_char *) DEFAULT_RUBY;
1001
+ passenger_main_conf.default_ruby.len = strlen(DEFAULT_RUBY);
1138
1002
  }
1139
1003
 
1140
- return traverse_location_confs_nested_in_server_conf(cf, server_conf, location_conf, ctx);
1141
- }
1142
-
1143
- static ngx_int_t
1144
- traverse_location_confs_nested_in_server_conf(ngx_conf_t *cf,
1145
- ngx_http_core_srv_conf_t *server_conf,
1146
- ngx_http_core_loc_conf_t *location_conf,
1147
- postprocess_ctx_t *ctx)
1148
- {
1149
- ngx_int_t result;
1150
-
1151
- result = traverse_static_location_tree(cf, server_conf,
1152
- location_conf->static_locations, ctx);
1153
- if (result != NGX_OK) {
1154
- return result;
1155
- }
1156
-
1157
- #ifdef NGX_PCRE
1158
- return traverse_regex_locations(cf, server_conf,
1159
- location_conf->regex_locations, ctx);
1160
- #else
1161
- return result;
1162
- #endif
1163
- }
1164
-
1165
- static ngx_int_t
1166
- traverse_static_location_tree(ngx_conf_t *cf,
1167
- ngx_http_core_srv_conf_t *server_conf,
1168
- ngx_http_location_tree_node_t *node,
1169
- postprocess_ctx_t *ctx)
1170
- {
1171
- ngx_int_t result;
1172
-
1173
- if (node == NULL) {
1174
- return NGX_OK;
1175
- }
1176
-
1177
- if (node->left != NULL) {
1178
- result = traverse_static_location_tree(cf, server_conf, node->left, ctx);
1179
- if (result != NGX_OK) {
1180
- return result;
1181
- }
1182
- }
1183
-
1184
- if (node->right != NULL) {
1185
- result = traverse_static_location_tree(cf, server_conf, node->right, ctx);
1186
- if (result != NGX_OK) {
1187
- return result;
1188
- }
1189
- }
1190
-
1191
- if (node->exact != NULL) {
1192
- result = postprocess_location_conf(cf, server_conf,
1193
- node->exact, 0, ctx);
1194
- } else {
1195
- result = postprocess_location_conf(cf, server_conf,
1196
- node->inclusive, 0, ctx);
1197
- }
1198
- if (result != NGX_OK) {
1199
- return result;
1200
- }
1201
-
1202
- return NGX_OK;
1203
- }
1204
-
1205
- #ifdef NGX_PCRE
1206
- static ngx_int_t
1207
- traverse_regex_locations(ngx_conf_t *cf,
1208
- ngx_http_core_srv_conf_t *server_conf,
1209
- ngx_http_core_loc_conf_t **regex_locations,
1210
- postprocess_ctx_t *ctx)
1211
- {
1212
- ngx_uint_t i;
1213
- ngx_int_t result;
1214
-
1215
- if (regex_locations == NULL) {
1216
- return NGX_OK;
1217
- }
1218
-
1219
- for (i = 0; regex_locations[i] != NULL; i++) {
1220
- result = postprocess_location_conf(cf, server_conf,
1221
- regex_locations[i], 0, ctx);
1222
- if (result != NGX_OK) {
1223
- return result;
1224
- }
1225
- }
1004
+ passenger_main_conf.manifest = generate_config_manifest(cf, toplevel_plcf);
1005
+ manifest_cleanup = ngx_pool_cleanup_add(cf->pool, 0);
1006
+ manifest_cleanup->handler = (ngx_pool_cleanup_pt) psg_json_value_free;
1007
+ manifest_cleanup->data = passenger_main_conf.manifest;
1226
1008
 
1227
1009
  return NGX_OK;
1228
1010
  }
1229
- #endif
1230
1011
 
1231
1012
  static int
1232
1013
  string_keyval_has_key(ngx_array_t *table, ngx_str_t *key)
@@ -1292,9 +1073,14 @@ passenger_enabled(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
1292
1073
  ngx_str_t *value;
1293
1074
  ngx_url_t upstream_url;
1294
1075
 
1076
+ passenger_conf->autogenerated.enabled_explicitly_set = 1;
1077
+ record_loc_conf_source_location(cf, passenger_conf,
1078
+ &passenger_conf->autogenerated.enabled_source_file,
1079
+ &passenger_conf->autogenerated.enabled_source_line);
1080
+
1295
1081
  value = cf->args->elts;
1296
1082
  if (ngx_strcasecmp(value[1].data, (u_char *) "on") == 0) {
1297
- passenger_conf->enabled = 1;
1083
+ passenger_conf->autogenerated.enabled = 1;
1298
1084
 
1299
1085
  /* Register a placeholder value as upstream address. The real upstream
1300
1086
  * address (the Passenger core socket filename) will be set while processing
@@ -1317,7 +1103,7 @@ passenger_enabled(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
1317
1103
  clcf->auto_redirect = 1;
1318
1104
  }
1319
1105
  } else if (ngx_strcasecmp(value[1].data, (u_char *) "off") == 0) {
1320
- passenger_conf->enabled = 0;
1106
+ passenger_conf->autogenerated.enabled = 0;
1321
1107
  } else {
1322
1108
  ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
1323
1109
  "\"passenger_enabled\" must be either set to \"on\" "
@@ -1329,51 +1115,6 @@ passenger_enabled(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
1329
1115
  return NGX_CONF_OK;
1330
1116
  }
1331
1117
 
1332
- char *
1333
- union_station_filter(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
1334
- {
1335
- char *p = conf;
1336
-
1337
- ngx_str_t *value, *s;
1338
- ngx_array_t **a;
1339
- ngx_conf_post_t *post;
1340
- char *message;
1341
-
1342
- a = (ngx_array_t **) (p + cmd->offset);
1343
-
1344
- if (*a == NGX_CONF_UNSET_PTR) {
1345
- *a = ngx_array_create(cf->pool, 4, sizeof(ngx_str_t));
1346
- if (*a == NULL) {
1347
- return NGX_CONF_ERROR;
1348
- }
1349
- }
1350
-
1351
- s = ngx_array_push(*a);
1352
- if (s == NULL) {
1353
- return NGX_CONF_ERROR;
1354
- }
1355
-
1356
- value = cf->args->elts;
1357
-
1358
- *s = value[1];
1359
-
1360
- if (cmd->post) {
1361
- post = cmd->post;
1362
- return post->post_handler(cf, post, s);
1363
- }
1364
-
1365
- message = passenger_filter_validate((const char *) value[1].data, value[1].len);
1366
- if (message != NULL) {
1367
- ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
1368
- "Union Station filter syntax error: %s; ",
1369
- message);
1370
- free(message);
1371
- return NGX_CONF_ERROR;
1372
- }
1373
-
1374
- return NGX_CONF_OK;
1375
- }
1376
-
1377
1118
  static char *
1378
1119
  rails_framework_spawner_idle_time(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
1379
1120
  {
@@ -1392,263 +1133,66 @@ passenger_use_global_queue(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
1392
1133
  }
1393
1134
 
1394
1135
  static char *
1395
- set_null_terminated_keyval_slot(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
1136
+ passenger_obsolete_directive(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
1396
1137
  {
1397
- char *p = conf;
1138
+ ngx_conf_log_error(NGX_LOG_ALERT, cf, 0, "The '%V' directive is obsolete "
1139
+ "and doesn't do anything anymore.", &cmd->name);
1140
+ return NGX_CONF_OK;
1141
+ }
1398
1142
 
1399
- ngx_str_t *value;
1400
- ngx_array_t **a;
1401
- ngx_keyval_t *kv;
1402
- ngx_conf_post_t *post;
1403
- u_char *last;
1404
1143
 
1405
- a = (ngx_array_t **) (p + cmd->offset);
1144
+ PsgJsonValue *
1145
+ psg_json_value_set_str_array(PsgJsonValue *doc, const char *name, ngx_array_t *ary) {
1146
+ PsgJsonValue *subdoc = psg_json_value_new_with_type(PSG_JSON_VALUE_TYPE_ARRAY);
1147
+ PsgJsonValue *elem, *result;
1148
+ ngx_str_t *values;
1149
+ ngx_uint_t i;
1406
1150
 
1407
- if (*a == NULL) {
1408
- *a = ngx_array_create(cf->pool, 4, sizeof(ngx_keyval_t));
1409
- if (*a == NULL) {
1410
- return NGX_CONF_ERROR;
1151
+ if (ary != NULL) {
1152
+ values = (ngx_str_t *) ary->elts;
1153
+ for (i = 0; i < ary->nelts; i++) {
1154
+ elem = psg_json_value_new_str(
1155
+ (const char *) values[i].data, values[i].len);
1156
+ psg_json_value_append_val(subdoc, elem);
1157
+ psg_json_value_free(elem);
1411
1158
  }
1412
1159
  }
1413
1160
 
1414
- kv = ngx_array_push(*a);
1415
- if (kv == NULL) {
1416
- return NGX_CONF_ERROR;
1417
- }
1161
+ result = psg_json_value_set_value(doc, name, -1, subdoc);
1162
+ psg_json_value_free(subdoc);
1418
1163
 
1419
- value = cf->args->elts;
1420
-
1421
- kv->key.data = ngx_palloc(cf->pool, value[1].len + 1);
1422
- kv->key.len = value[1].len + 1;
1423
- last = ngx_copy(kv->key.data, value[1].data, value[1].len);
1424
- *last = '\0';
1164
+ return result;
1165
+ }
1425
1166
 
1426
- kv->value.data = ngx_palloc(cf->pool, value[2].len + 1);
1427
- kv->value.len = value[2].len + 1;
1428
- last = ngx_copy(kv->value.data, value[2].data, value[2].len);
1429
- *last = '\0';
1167
+ PsgJsonValue *
1168
+ psg_json_value_set_str_keyval(PsgJsonValue *doc, const char *name, ngx_array_t *ary) {
1169
+ PsgJsonValue *subdoc = psg_json_value_new_with_type(PSG_JSON_VALUE_TYPE_OBJECT);
1170
+ PsgJsonValue *elem, *result;
1171
+ ngx_keyval_t *values;
1172
+ ngx_uint_t i;
1430
1173
 
1431
- if (cmd->post) {
1432
- post = cmd->post;
1433
- return post->post_handler(cf, post, kv);
1174
+ if (ary != NULL) {
1175
+ values = (ngx_keyval_t *) ary->elts;
1176
+ for (i = 0; i < ary->nelts; i++) {
1177
+ elem = psg_json_value_new_str(
1178
+ (const char *) values[i].value.data, values[i].value.len);
1179
+ psg_json_value_set_value(subdoc,
1180
+ (const char *) values[i].key.data, values[i].key.len,
1181
+ elem);
1182
+ psg_json_value_free(elem);
1183
+ }
1434
1184
  }
1435
1185
 
1436
- return NGX_CONF_OK;
1186
+ result = psg_json_value_set_value(doc, name, -1, subdoc);
1187
+ psg_json_value_free(subdoc);
1188
+
1189
+ return result;
1437
1190
  }
1438
1191
 
1439
1192
 
1440
1193
  const ngx_command_t passenger_commands[] = {
1441
1194
 
1442
- /******** Main config ********/
1443
-
1444
- { ngx_string("passenger_root"),
1445
- NGX_HTTP_MAIN_CONF | NGX_CONF_TAKE1,
1446
- ngx_conf_set_str_slot,
1447
- NGX_HTTP_MAIN_CONF_OFFSET,
1448
- offsetof(passenger_main_conf_t, root_dir),
1449
- NULL },
1450
-
1451
- { ngx_string("passenger_ctl"),
1452
- NGX_HTTP_MAIN_CONF | NGX_CONF_TAKE2,
1453
- set_null_terminated_keyval_slot,
1454
- NGX_HTTP_MAIN_CONF_OFFSET,
1455
- offsetof(passenger_main_conf_t, ctl),
1456
- NULL },
1457
-
1458
- { ngx_string("passenger_ruby"),
1459
- NGX_HTTP_MAIN_CONF | NGX_CONF_TAKE1,
1460
- ngx_conf_set_str_slot,
1461
- NGX_HTTP_MAIN_CONF_OFFSET,
1462
- offsetof(passenger_main_conf_t, default_ruby),
1463
- NULL },
1464
-
1465
- { ngx_string("passenger_log_level"),
1466
- NGX_HTTP_MAIN_CONF | NGX_CONF_TAKE1,
1467
- ngx_conf_set_num_slot,
1468
- NGX_HTTP_MAIN_CONF_OFFSET,
1469
- offsetof(passenger_main_conf_t, log_level),
1470
- NULL },
1471
-
1472
- { ngx_string("passenger_log_file"),
1473
- NGX_HTTP_MAIN_CONF | NGX_CONF_TAKE1,
1474
- ngx_conf_set_str_slot,
1475
- NGX_HTTP_MAIN_CONF_OFFSET,
1476
- offsetof(passenger_main_conf_t, log_file),
1477
- NULL },
1478
-
1479
- { ngx_string("passenger_file_descriptor_log_file"),
1480
- NGX_HTTP_MAIN_CONF | NGX_CONF_TAKE1,
1481
- ngx_conf_set_str_slot,
1482
- NGX_HTTP_MAIN_CONF_OFFSET,
1483
- offsetof(passenger_main_conf_t, file_descriptor_log_file),
1484
- NULL },
1485
-
1486
- { ngx_string("passenger_data_buffer_dir"),
1487
- NGX_HTTP_MAIN_CONF | NGX_CONF_TAKE1,
1488
- ngx_conf_set_str_slot,
1489
- NGX_HTTP_MAIN_CONF_OFFSET,
1490
- offsetof(passenger_main_conf_t, data_buffer_dir),
1491
- NULL },
1492
-
1493
- { ngx_string("passenger_instance_registry_dir"),
1494
- NGX_HTTP_MAIN_CONF | NGX_CONF_TAKE1,
1495
- ngx_conf_set_str_slot,
1496
- NGX_HTTP_MAIN_CONF_OFFSET,
1497
- offsetof(passenger_main_conf_t, instance_registry_dir),
1498
- NULL },
1499
-
1500
- { ngx_string("passenger_pre_start"),
1501
- NGX_HTTP_MAIN_CONF | NGX_CONF_TAKE1,
1502
- ngx_conf_set_str_array_slot,
1503
- NGX_HTTP_MAIN_CONF_OFFSET,
1504
- offsetof(passenger_main_conf_t, prestart_uris),
1505
- NULL },
1506
-
1507
- { ngx_string("passenger_disable_security_update_check"),
1508
- NGX_HTTP_MAIN_CONF | NGX_CONF_FLAG,
1509
- ngx_conf_set_flag_slot,
1510
- NGX_HTTP_MAIN_CONF_OFFSET,
1511
- offsetof(passenger_main_conf_t, disable_security_update_check),
1512
- NULL },
1513
-
1514
- { ngx_string("passenger_security_update_check_proxy"),
1515
- NGX_HTTP_MAIN_CONF | NGX_CONF_TAKE1,
1516
- ngx_conf_set_str_slot,
1517
- NGX_HTTP_MAIN_CONF_OFFSET,
1518
- offsetof(passenger_main_conf_t, security_update_check_proxy),
1519
- NULL },
1520
-
1521
- { ngx_string("passenger_abort_on_startup_error"),
1522
- NGX_HTTP_MAIN_CONF | NGX_CONF_FLAG,
1523
- ngx_conf_set_flag_slot,
1524
- NGX_HTTP_MAIN_CONF_OFFSET,
1525
- offsetof(passenger_main_conf_t, abort_on_startup_error),
1526
- NULL },
1527
-
1528
- { ngx_string("passenger_max_pool_size"),
1529
- NGX_HTTP_MAIN_CONF | NGX_CONF_TAKE1,
1530
- ngx_conf_set_num_slot,
1531
- NGX_HTTP_MAIN_CONF_OFFSET,
1532
- offsetof(passenger_main_conf_t, max_pool_size),
1533
- NULL },
1534
-
1535
- { ngx_string("passenger_pool_idle_time"),
1536
- NGX_HTTP_MAIN_CONF | NGX_CONF_TAKE1,
1537
- ngx_conf_set_num_slot,
1538
- NGX_HTTP_MAIN_CONF_OFFSET,
1539
- offsetof(passenger_main_conf_t, pool_idle_time),
1540
- NULL },
1541
-
1542
- { ngx_string("passenger_response_buffer_high_watermark"),
1543
- NGX_HTTP_MAIN_CONF | NGX_CONF_TAKE1,
1544
- ngx_conf_set_num_slot,
1545
- NGX_HTTP_MAIN_CONF_OFFSET,
1546
- offsetof(passenger_main_conf_t, response_buffer_high_watermark),
1547
- NULL },
1548
-
1549
- { ngx_string("passenger_stat_throttle_rate"),
1550
- NGX_HTTP_MAIN_CONF | NGX_CONF_TAKE1,
1551
- ngx_conf_set_num_slot,
1552
- NGX_HTTP_MAIN_CONF_OFFSET,
1553
- offsetof(passenger_main_conf_t, stat_throttle_rate),
1554
- NULL },
1555
-
1556
- { ngx_string("passenger_show_version_in_header"),
1557
- NGX_HTTP_MAIN_CONF | NGX_CONF_FLAG,
1558
- ngx_conf_set_flag_slot,
1559
- NGX_HTTP_MAIN_CONF_OFFSET,
1560
- offsetof(passenger_main_conf_t, show_version_in_header),
1561
- NULL },
1562
-
1563
- { ngx_string("passenger_turbocaching"),
1564
- NGX_HTTP_MAIN_CONF | NGX_CONF_FLAG,
1565
- ngx_conf_set_flag_slot,
1566
- NGX_HTTP_MAIN_CONF_OFFSET,
1567
- offsetof(passenger_main_conf_t, turbocaching),
1568
- NULL },
1569
-
1570
- { ngx_string("passenger_user_switching"),
1571
- NGX_HTTP_MAIN_CONF | NGX_CONF_FLAG,
1572
- ngx_conf_set_flag_slot,
1573
- NGX_HTTP_MAIN_CONF_OFFSET,
1574
- offsetof(passenger_main_conf_t, user_switching),
1575
- NULL },
1576
-
1577
- { ngx_string("passenger_default_user"),
1578
- NGX_HTTP_MAIN_CONF | NGX_CONF_TAKE1,
1579
- ngx_conf_set_str_slot,
1580
- NGX_HTTP_MAIN_CONF_OFFSET,
1581
- offsetof(passenger_main_conf_t, default_user),
1582
- NULL },
1583
-
1584
- { ngx_string("passenger_default_group"),
1585
- NGX_HTTP_MAIN_CONF | NGX_CONF_TAKE1,
1586
- ngx_conf_set_str_slot,
1587
- NGX_HTTP_MAIN_CONF_OFFSET,
1588
- offsetof(passenger_main_conf_t, default_group),
1589
- NULL },
1590
-
1591
- { ngx_string("passenger_analytics_log_user"),
1592
- NGX_HTTP_MAIN_CONF | NGX_CONF_TAKE1,
1593
- ngx_conf_set_str_slot,
1594
- NGX_HTTP_MAIN_CONF_OFFSET,
1595
- offsetof(passenger_main_conf_t, analytics_log_user),
1596
- NULL },
1597
-
1598
- { ngx_string("passenger_analytics_log_group"),
1599
- NGX_HTTP_MAIN_CONF | NGX_CONF_TAKE1,
1600
- ngx_conf_set_str_slot,
1601
- NGX_HTTP_MAIN_CONF_OFFSET,
1602
- offsetof(passenger_main_conf_t, analytics_log_group),
1603
- NULL },
1604
-
1605
- { ngx_string("passenger_read_timeout"),
1606
- NGX_HTTP_MAIN_CONF | NGX_HTTP_SRV_CONF | NGX_HTTP_LOC_CONF | NGX_CONF_TAKE1,
1607
- ngx_conf_set_msec_slot,
1608
- NGX_HTTP_LOC_CONF_OFFSET,
1609
- offsetof(passenger_loc_conf_t, upstream_config.read_timeout),
1610
- NULL },
1611
-
1612
- { ngx_string("union_station_gateway_address"),
1613
- NGX_HTTP_MAIN_CONF | NGX_CONF_TAKE1,
1614
- ngx_conf_set_str_slot,
1615
- NGX_HTTP_MAIN_CONF_OFFSET,
1616
- offsetof(passenger_main_conf_t, union_station_gateway_address),
1617
- NULL },
1618
-
1619
- { ngx_string("union_station_gateway_port"),
1620
- NGX_HTTP_MAIN_CONF | NGX_CONF_TAKE1,
1621
- ngx_conf_set_num_slot,
1622
- NGX_HTTP_MAIN_CONF_OFFSET,
1623
- offsetof(passenger_main_conf_t, union_station_gateway_port),
1624
- NULL },
1625
-
1626
- { ngx_string("union_station_gateway_cert"),
1627
- NGX_HTTP_MAIN_CONF | NGX_CONF_TAKE1,
1628
- ngx_conf_set_str_slot,
1629
- NGX_HTTP_MAIN_CONF_OFFSET,
1630
- offsetof(passenger_main_conf_t, union_station_gateway_cert),
1631
- NULL },
1632
-
1633
- { ngx_string("union_station_proxy_address"),
1634
- NGX_HTTP_MAIN_CONF | NGX_CONF_TAKE1,
1635
- ngx_conf_set_str_slot,
1636
- NGX_HTTP_MAIN_CONF_OFFSET,
1637
- offsetof(passenger_main_conf_t, union_station_proxy_address),
1638
- NULL },
1639
-
1640
- /******** Per-location config ********/
1641
-
1642
- #include "ConfigurationCommands.c"
1643
-
1644
- /******** Backward compatibility ********/
1645
-
1646
- { ngx_string("passenger_debug_log_file"),
1647
- NGX_HTTP_MAIN_CONF | NGX_CONF_TAKE1,
1648
- ngx_conf_set_str_slot,
1649
- NGX_HTTP_MAIN_CONF_OFFSET,
1650
- offsetof(passenger_main_conf_t, log_file),
1651
- NULL },
1195
+ #include "ConfigGeneral/AutoGeneratedDefinitions.c"
1652
1196
 
1653
1197
  ngx_null_command
1654
1198
  };