passenger 6.0.11 → 6.0.14

Sign up to get free protection for your applications and to get access to all the features.
Files changed (359) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +83 -1
  3. data/CONTRIBUTORS +3 -0
  4. data/bin/passenger-install-nginx-module +1 -1
  5. data/bin/passenger-status +29 -4
  6. data/build/test_basics.rb +2 -2
  7. data/dev/copy_boost_headers +30 -15
  8. data/doc/templates/markdown.html.erb +2 -6
  9. data/package.json +19 -17
  10. data/resources/mime.types +1 -0
  11. data/resources/templates/error_renderer/with_details/dist/bundle.js +2 -33
  12. data/resources/templates/error_renderer/with_details/dist/styles.css +2 -2
  13. data/resources/templates/error_renderer/with_details/src/index.html.template +0 -2
  14. data/resources/templates/error_renderer/with_details/webpack.config.js +13 -16
  15. data/resources/templates/error_renderer/without_details/dist/bundle.js +0 -1
  16. data/resources/templates/error_renderer/without_details/dist/styles.css +1 -1
  17. data/resources/templates/error_renderer/without_details/webpack.config.js +13 -16
  18. data/resources/templates/standalone/server.erb +1 -0
  19. data/src/agent/Core/ApiServer.h +35 -0
  20. data/src/agent/Core/ApplicationPool/Group/StateInspection.cpp +1 -0
  21. data/src/agent/Core/ApplicationPool/Options.h +5 -0
  22. data/src/agent/Core/ApplicationPool/Pool.h +9 -1
  23. data/src/agent/Core/Config.h +2 -1
  24. data/src/agent/Core/Controller/CheckoutSession.cpp +24 -13
  25. data/src/agent/Core/Controller/Config.h +6 -2
  26. data/src/agent/Core/Controller/InitRequest.cpp +2 -0
  27. data/src/agent/Core/Controller/InternalUtils.cpp +32 -6
  28. data/src/agent/Core/Controller.h +4 -1
  29. data/src/agent/Core/OptionParser.h +4 -0
  30. data/src/agent/Core/SpawningKit/Config/AutoGeneratedCode.h +7 -0
  31. data/src/agent/Core/SpawningKit/Config.h +13 -0
  32. data/src/agent/Core/SpawningKit/Handshake/Prepare.h +4 -0
  33. data/src/agent/Core/SpawningKit/Spawner.h +1 -0
  34. data/src/agent/SpawnEnvSetupper/SpawnEnvSetupperMain.cpp +4 -0
  35. data/src/agent/Watchdog/Config.h +2 -1
  36. data/src/apache2_module/ConfigGeneral/AutoGeneratedDefinitions.cpp +5 -0
  37. data/src/apache2_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.cpp +5 -0
  38. data/src/apache2_module/ConfigGeneral/AutoGeneratedSetterFuncs.cpp +18 -0
  39. data/src/apache2_module/DirConfig/AutoGeneratedCreateFunction.cpp +3 -0
  40. data/src/apache2_module/DirConfig/AutoGeneratedHeaderSerialization.cpp +3 -0
  41. data/src/apache2_module/DirConfig/AutoGeneratedManifestGeneration.cpp +11 -0
  42. data/src/apache2_module/DirConfig/AutoGeneratedMergeFunction.cpp +7 -0
  43. data/src/apache2_module/DirConfig/AutoGeneratedStruct.h +17 -0
  44. data/src/apache2_module/Hooks.cpp +1 -0
  45. data/src/cxx_supportlib/Constants.h +1 -1
  46. data/src/cxx_supportlib/IOTools/IOUtils.cpp +4 -4
  47. data/src/cxx_supportlib/vendor-modified/boost/align/align.hpp +19 -0
  48. data/src/cxx_supportlib/vendor-modified/boost/align/aligned_alloc.hpp +47 -0
  49. data/src/cxx_supportlib/vendor-modified/boost/align/alignment_of.hpp +54 -0
  50. data/src/cxx_supportlib/vendor-modified/boost/align/alignment_of_forward.hpp +20 -0
  51. data/src/cxx_supportlib/vendor-modified/boost/align/detail/align_cxx11.hpp +21 -0
  52. data/src/cxx_supportlib/vendor-modified/boost/align/detail/aligned_alloc.hpp +52 -0
  53. data/src/cxx_supportlib/vendor-modified/boost/align/detail/aligned_alloc_posix.hpp +41 -0
  54. data/src/cxx_supportlib/vendor-modified/boost/align/detail/alignment_of.hpp +31 -0
  55. data/src/cxx_supportlib/vendor-modified/boost/align/detail/alignment_of_cxx11.hpp +23 -0
  56. data/src/cxx_supportlib/vendor-modified/boost/align/detail/element_type.hpp +91 -0
  57. data/src/cxx_supportlib/vendor-modified/boost/align/detail/integral_constant.hpp +53 -0
  58. data/src/cxx_supportlib/vendor-modified/boost/align/detail/is_alignment.hpp +28 -0
  59. data/src/cxx_supportlib/vendor-modified/boost/align/detail/min_size.hpp +26 -0
  60. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_allocator.hpp +53 -1
  61. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_cancellation_slot.hpp +179 -0
  62. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_executor.hpp +57 -1
  63. data/src/cxx_supportlib/vendor-modified/boost/asio/associator.hpp +37 -0
  64. data/src/cxx_supportlib/vendor-modified/boost/asio/async_result.hpp +789 -106
  65. data/src/cxx_supportlib/vendor-modified/boost/asio/awaitable.hpp +1 -1
  66. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_datagram_socket.hpp +80 -0
  67. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_deadline_timer.hpp +10 -0
  68. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_raw_socket.hpp +80 -0
  69. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_seq_packet_socket.hpp +30 -0
  70. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket.hpp +20 -0
  71. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_acceptor.hpp +90 -0
  72. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_socket.hpp +60 -0
  73. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_waitable_timer.hpp +10 -0
  74. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_cancellation_slot.hpp +723 -0
  75. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_executor.hpp +191 -12
  76. data/src/cxx_supportlib/vendor-modified/boost/asio/cancellation_signal.hpp +361 -0
  77. data/src/cxx_supportlib/vendor-modified/boost/asio/cancellation_state.hpp +237 -0
  78. data/src/cxx_supportlib/vendor-modified/boost/asio/cancellation_type.hpp +176 -0
  79. data/src/cxx_supportlib/vendor-modified/boost/asio/co_spawn.hpp +30 -2
  80. data/src/cxx_supportlib/vendor-modified/boost/asio/connect.hpp +60 -0
  81. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/base_from_cancellation_state.hpp +165 -0
  82. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/bind_handler.hpp +209 -76
  83. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/config.hpp +149 -60
  84. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/deadline_timer_service.hpp +40 -0
  85. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/dev_poll_reactor.hpp +8 -4
  86. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/epoll_reactor.hpp +14 -4
  87. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/functional.hpp +6 -0
  88. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_alloc_helpers.hpp +14 -10
  89. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_type_requirements.hpp +21 -18
  90. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_work.hpp +30 -19
  91. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.hpp +8 -0
  92. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.ipp +14 -0
  93. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.hpp +20 -0
  94. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.ipp +30 -0
  95. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.hpp +20 -0
  96. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.ipp +29 -0
  97. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.hpp +24 -0
  98. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.ipp +19 -0
  99. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_executor_service.hpp +3 -1
  100. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/timer_queue_ptime.ipp +6 -0
  101. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/kqueue_reactor.hpp +15 -5
  102. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/memory.hpp +60 -0
  103. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/pop_options.hpp +8 -0
  104. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/push_options.hpp +27 -0
  105. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_descriptor_service.hpp +93 -0
  106. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service.hpp +77 -0
  107. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service_base.hpp +111 -0
  108. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op.hpp +4 -0
  109. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op_queue.hpp +44 -0
  110. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/recycling_allocator.hpp +2 -1
  111. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_endpoint_op.hpp +2 -2
  112. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/select_reactor.hpp +14 -4
  113. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_info_base.hpp +90 -24
  114. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue.hpp +30 -1
  115. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_ptime.hpp +4 -0
  116. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wait_op.hpp +5 -1
  117. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/work_dispatcher.hpp +5 -2
  118. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/any_executor.hpp +12 -12
  119. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/bulk_execute.hpp +10 -8
  120. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/connect.hpp +8 -8
  121. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/execute.hpp +7 -7
  122. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/schedule.hpp +7 -7
  123. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_done.hpp +7 -7
  124. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_error.hpp +7 -7
  125. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_value.hpp +13 -13
  126. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/start.hpp +7 -7
  127. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/submit.hpp +8 -8
  128. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/append.hpp +73 -0
  129. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/as_tuple.hpp +133 -0
  130. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/awaitable_operators.hpp +538 -0
  131. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/cancellation_condition.hpp +157 -0
  132. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/coro.hpp +1057 -0
  133. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/deferred.hpp +607 -0
  134. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/completion_handler_erasure.hpp +160 -0
  135. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/coro_promise_allocator.hpp +120 -0
  136. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/coro_traits.hpp +185 -0
  137. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/partial_promise.hpp +181 -0
  138. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/append.hpp +219 -0
  139. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/as_single.hpp +14 -28
  140. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/as_tuple.hpp +248 -0
  141. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/deferred.hpp +106 -0
  142. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/parallel_group.hpp +434 -0
  143. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/prepend.hpp +219 -0
  144. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/promise.hpp +100 -0
  145. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/parallel_group.hpp +217 -0
  146. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/prepend.hpp +73 -0
  147. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/promise.hpp +608 -0
  148. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/use_coro.hpp +284 -0
  149. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/awaitable.hpp +344 -20
  150. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_read_stream.hpp +23 -54
  151. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_write_stream.hpp +23 -54
  152. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/co_spawn.hpp +66 -18
  153. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/compose.hpp +55 -5
  154. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/connect.hpp +68 -80
  155. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/defer.hpp +8 -4
  156. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/dispatch.hpp +8 -4
  157. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/handler_alloc_hook.ipp +3 -2
  158. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/post.hpp +8 -4
  159. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read.hpp +98 -113
  160. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_at.hpp +71 -82
  161. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_until.hpp +210 -266
  162. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/redirect_error.hpp +248 -30
  163. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/spawn.hpp +11 -21
  164. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/use_awaitable.hpp +15 -3
  165. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write.hpp +71 -87
  166. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write_at.hpp +46 -68
  167. data/src/cxx_supportlib/vendor-modified/boost/asio/io_context.hpp +4 -4
  168. data/src/cxx_supportlib/vendor-modified/boost/asio/local/detail/impl/endpoint.ipp +2 -7
  169. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_descriptor.hpp +10 -0
  170. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_stream_descriptor.hpp +23 -3
  171. data/src/cxx_supportlib/vendor-modified/boost/asio/prefer.hpp +21 -21
  172. data/src/cxx_supportlib/vendor-modified/boost/asio/query.hpp +9 -9
  173. data/src/cxx_supportlib/vendor-modified/boost/asio/read.hpp +88 -0
  174. data/src/cxx_supportlib/vendor-modified/boost/asio/read_at.hpp +44 -0
  175. data/src/cxx_supportlib/vendor-modified/boost/asio/read_until.hpp +132 -0
  176. data/src/cxx_supportlib/vendor-modified/boost/asio/require.hpp +21 -21
  177. data/src/cxx_supportlib/vendor-modified/boost/asio/require_concept.hpp +9 -9
  178. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/buffered_handshake_op.hpp +1 -1
  179. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/engine.hpp +5 -0
  180. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/handshake_op.hpp +1 -1
  181. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/engine.ipp +14 -0
  182. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/io.hpp +36 -27
  183. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/read_op.hpp +1 -1
  184. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/shutdown_op.hpp +2 -2
  185. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/stream_core.hpp +37 -0
  186. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/write_op.hpp +1 -1
  187. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.ipp +14 -7
  188. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream.hpp +73 -1
  189. data/src/cxx_supportlib/vendor-modified/boost/asio/system_executor.hpp +4 -4
  190. data/src/cxx_supportlib/vendor-modified/boost/asio/this_coro.hpp +235 -0
  191. data/src/cxx_supportlib/vendor-modified/boost/asio/thread_pool.hpp +4 -4
  192. data/src/cxx_supportlib/vendor-modified/boost/asio/use_awaitable.hpp +7 -10
  193. data/src/cxx_supportlib/vendor-modified/boost/asio/version.hpp +1 -1
  194. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_random_access_handle.hpp +20 -0
  195. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_stream_handle.hpp +20 -0
  196. data/src/cxx_supportlib/vendor-modified/boost/asio/write.hpp +88 -0
  197. data/src/cxx_supportlib/vendor-modified/boost/asio/write_at.hpp +44 -0
  198. data/src/cxx_supportlib/vendor-modified/boost/asio.hpp +6 -0
  199. data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic_ref.hpp +14 -1
  200. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/config.hpp +17 -13
  201. data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic_ref.hpp +14 -1
  202. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx03.hpp +2 -5
  203. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx11.hpp +2 -5
  204. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx14.hpp +2 -2
  205. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx17.hpp +2 -2
  206. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx20.hpp +56 -0
  207. data/src/cxx_supportlib/vendor-modified/boost/config/auto_link.hpp +1 -5
  208. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/common_edg.hpp +31 -11
  209. data/src/cxx_supportlib/vendor-modified/boost/config/detail/cxx_composite.hpp +20 -4
  210. data/src/cxx_supportlib/vendor-modified/boost/config/detail/select_platform_config.hpp +5 -0
  211. data/src/cxx_supportlib/vendor-modified/boost/config/detail/suffix.hpp +81 -0
  212. data/src/cxx_supportlib/vendor-modified/boost/config/platform/bsd.hpp +5 -8
  213. data/src/cxx_supportlib/vendor-modified/boost/config/platform/wasm.hpp +17 -0
  214. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/dinkumware.hpp +26 -0
  215. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcpp.hpp +49 -0
  216. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libstdcpp3.hpp +46 -4
  217. data/src/cxx_supportlib/vendor-modified/boost/container/adaptive_pool.hpp +2 -2
  218. data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +1 -1
  219. data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool.hpp +2 -2
  220. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool.hpp +2 -2
  221. data/src/cxx_supportlib/vendor-modified/boost/container/detail/std_fwd.hpp +3 -0
  222. data/src/cxx_supportlib/vendor-modified/boost/container/devector.hpp +2 -2
  223. data/src/cxx_supportlib/vendor-modified/boost/container/new_allocator.hpp +1 -1
  224. data/src/cxx_supportlib/vendor-modified/boost/container/node_allocator.hpp +1 -1
  225. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/polymorphic_allocator.hpp +6 -6
  226. data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +4 -4
  227. data/src/cxx_supportlib/vendor-modified/boost/container/throw_exception.hpp +45 -38
  228. data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +24 -0
  229. data/src/cxx_supportlib/vendor-modified/boost/core/ignore_unused.hpp +32 -2
  230. data/src/cxx_supportlib/vendor-modified/boost/core/uncaught_exceptions.hpp +7 -7
  231. data/src/cxx_supportlib/vendor-modified/boost/date_time/compiler_config.hpp +0 -24
  232. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/time_parsers.hpp +4 -0
  233. data/src/cxx_supportlib/vendor-modified/boost/intrusive/any_hook.hpp +4 -4
  234. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avl_set.hpp +83 -83
  235. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree.hpp +43 -43
  236. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree_algorithms.hpp +31 -31
  237. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bs_set.hpp +85 -85
  238. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree.hpp +68 -68
  239. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree_algorithms.hpp +72 -62
  240. data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_list_algorithms.hpp +19 -20
  241. data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_slist_algorithms.hpp +19 -19
  242. data/src/cxx_supportlib/vendor-modified/boost/intrusive/derivation_value_traits.hpp +4 -4
  243. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/any_node_and_algorithms.hpp +2 -2
  244. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/bstree_algorithms_base.hpp +3 -3
  245. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/common_slist_algorithms.hpp +5 -5
  246. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/config_begin.hpp +1 -0
  247. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/generic_hook.hpp +8 -8
  248. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hash_combine.hpp +2 -4
  249. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hashtable_node.hpp +1 -1
  250. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/math.hpp +2 -50
  251. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/node_cloner_disposer.hpp +1 -1
  252. data/src/cxx_supportlib/vendor-modified/boost/intrusive/hashtable.hpp +71 -70
  253. data/src/cxx_supportlib/vendor-modified/boost/intrusive/linear_slist_algorithms.hpp +15 -14
  254. data/src/cxx_supportlib/vendor-modified/boost/intrusive/list.hpp +84 -82
  255. data/src/cxx_supportlib/vendor-modified/boost/intrusive/list_hook.hpp +10 -10
  256. data/src/cxx_supportlib/vendor-modified/boost/intrusive/member_value_traits.hpp +4 -4
  257. data/src/cxx_supportlib/vendor-modified/boost/intrusive/parent_from_member.hpp +2 -2
  258. data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_plus_bits.hpp +4 -4
  259. data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_traits.hpp +18 -18
  260. data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree.hpp +43 -43
  261. data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree_algorithms.hpp +26 -26
  262. data/src/cxx_supportlib/vendor-modified/boost/intrusive/set.hpp +85 -85
  263. data/src/cxx_supportlib/vendor-modified/boost/intrusive/set_hook.hpp +12 -12
  264. data/src/cxx_supportlib/vendor-modified/boost/intrusive/sg_set.hpp +93 -93
  265. data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree.hpp +51 -51
  266. data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree_algorithms.hpp +24 -24
  267. data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist.hpp +104 -104
  268. data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist_hook.hpp +8 -6
  269. data/src/cxx_supportlib/vendor-modified/boost/intrusive/splay_set.hpp +91 -91
  270. data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree.hpp +46 -46
  271. data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree_algorithms.hpp +31 -31
  272. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap.hpp +51 -51
  273. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_algorithms.hpp +18 -18
  274. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_set.hpp +97 -97
  275. data/src/cxx_supportlib/vendor-modified/boost/intrusive/trivial_value_traits.hpp +6 -4
  276. data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set.hpp +63 -63
  277. data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set_hook.hpp +15 -15
  278. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_numeric.hpp +4 -1
  279. data/src/cxx_supportlib/vendor-modified/boost/move/detail/config_begin.hpp +1 -0
  280. data/src/cxx_supportlib/vendor-modified/boost/move/detail/iterator_traits.hpp +1 -0
  281. data/src/cxx_supportlib/vendor-modified/boost/move/detail/nsec_clock.hpp +1 -1
  282. data/src/cxx_supportlib/vendor-modified/boost/operators.hpp +2 -0
  283. data/src/cxx_supportlib/vendor-modified/boost/regex/concepts.hpp +1 -1
  284. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_parser.hpp +3 -0
  285. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/unicode_iterator.hpp +112 -31
  286. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/basic_regex_parser.hpp +3 -0
  287. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/mem_block_cache.hpp +4 -8
  288. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/unicode_iterator.hpp +0 -2
  289. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/w32_regex_traits.hpp +6 -2
  290. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/shared_count.hpp +1 -1
  291. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_impl.hpp +22 -2
  292. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_ptr.hpp +59 -1
  293. data/src/cxx_supportlib/vendor-modified/boost/system/detail/config.hpp +9 -11
  294. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_category.hpp +27 -21
  295. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_category_impl.hpp +34 -3
  296. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_code.hpp +378 -36
  297. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_condition.hpp +97 -21
  298. data/src/cxx_supportlib/vendor-modified/boost/system/detail/interop_category.hpp +107 -0
  299. data/src/cxx_supportlib/vendor-modified/boost/system/detail/is_same.hpp +33 -0
  300. data/src/cxx_supportlib/vendor-modified/boost/system/detail/snprintf.hpp +70 -0
  301. data/src/cxx_supportlib/vendor-modified/boost/system/detail/{to_std_category.hpp → std_category.hpp} +5 -55
  302. data/src/cxx_supportlib/vendor-modified/boost/system/detail/system_category_impl.hpp +2 -12
  303. data/src/cxx_supportlib/vendor-modified/boost/system/error_code.hpp +0 -33
  304. data/src/cxx_supportlib/vendor-modified/boost/utility/detail/result_of_variadic.hpp +190 -0
  305. data/src/cxx_supportlib/vendor-modified/boost/utility/result_of.hpp +20 -9
  306. data/src/cxx_supportlib/vendor-modified/boost/utility/string_view.hpp +3 -1
  307. data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
  308. data/src/nginx_module/ConfigGeneral/AutoGeneratedDefinitions.c +16 -0
  309. data/src/nginx_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.c +12 -0
  310. data/src/nginx_module/ConfigGeneral/AutoGeneratedSetterFuncs.c +24 -0
  311. data/src/nginx_module/LocationConfig/AutoGeneratedCreateFunction.c +10 -0
  312. data/src/nginx_module/LocationConfig/AutoGeneratedHeaderSerialization.c +39 -0
  313. data/src/nginx_module/LocationConfig/AutoGeneratedManifestGeneration.c +26 -0
  314. data/src/nginx_module/LocationConfig/AutoGeneratedMergeFunction.c +6 -0
  315. data/src/nginx_module/LocationConfig/AutoGeneratedStruct.h +8 -0
  316. data/src/nginx_module/ngx_http_passenger_module.c +1 -0
  317. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/common.js +50 -29
  318. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/config/cli-config.js +20 -20
  319. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/config/npm-config.js +11 -11
  320. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/config/syslog-config.js +3 -3
  321. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/config.js +8 -2
  322. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/container.js +2 -1
  323. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/logger.js +174 -146
  324. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/transports/console.js +4 -2
  325. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/transports/file.js +15 -5
  326. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/transports/http.js +14 -4
  327. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/transports.js +26 -24
  328. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston.js +5 -5
  329. data/src/nodejs_supportlib/vendor-copy/winston/node_modules/async/package.json +4 -13
  330. data/src/nodejs_supportlib/vendor-copy/winston/node_modules/colors/package.json +19 -33
  331. data/src/nodejs_supportlib/vendor-copy/winston/node_modules/cycle/package.json +11 -29
  332. data/src/nodejs_supportlib/vendor-copy/winston/node_modules/eyes/package.json +12 -40
  333. data/src/nodejs_supportlib/vendor-copy/winston/node_modules/isstream/package.json +3 -12
  334. data/src/nodejs_supportlib/vendor-copy/winston/node_modules/stack-trace/lib/stack-trace.js +49 -24
  335. data/src/nodejs_supportlib/vendor-copy/winston/node_modules/stack-trace/package.json +4 -16
  336. data/src/nodejs_supportlib/vendor-copy/winston/package.json +11 -55
  337. data/src/ruby_supportlib/phusion_passenger/admin_tools/instance_registry.rb +3 -2
  338. data/src/ruby_supportlib/phusion_passenger/apache2/config_options.rb +6 -0
  339. data/src/ruby_supportlib/phusion_passenger/config/restart_app_command.rb +16 -12
  340. data/src/ruby_supportlib/phusion_passenger/console_text_template.rb +7 -2
  341. data/src/ruby_supportlib/phusion_passenger/loader_shared_helpers.rb +8 -1
  342. data/src/ruby_supportlib/phusion_passenger/nginx/config_options.rb +12 -0
  343. data/src/ruby_supportlib/phusion_passenger/packaging.rb +2 -1
  344. data/src/ruby_supportlib/phusion_passenger/platform_info/linux.rb +2 -1
  345. data/src/ruby_supportlib/phusion_passenger/platform_info/openssl.rb +1 -1
  346. data/src/ruby_supportlib/phusion_passenger/platform_info/operating_system.rb +8 -0
  347. data/src/ruby_supportlib/phusion_passenger/request_handler/thread_handler.rb +18 -18
  348. data/src/ruby_supportlib/phusion_passenger/request_handler.rb +4 -1
  349. data/src/ruby_supportlib/phusion_passenger/standalone/config_options_list.rb +7 -1
  350. data/src/ruby_supportlib/phusion_passenger/standalone/start_command/builtin_engine.rb +1 -0
  351. data/src/ruby_supportlib/phusion_passenger/standalone/start_command/nginx_engine.rb +28 -17
  352. data/src/ruby_supportlib/phusion_passenger.rb +5 -5
  353. metadata +49 -9
  354. data/src/cxx_supportlib/vendor-modified/boost/system/detail/is_generic_value.hpp +0 -125
  355. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/transports/daily-rotate-file.js +0 -601
  356. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/transports/webhook.js +0 -146
  357. data/src/nodejs_supportlib/vendor-copy/winston/node_modules/pkginfo/LICENSE +0 -19
  358. data/src/nodejs_supportlib/vendor-copy/winston/node_modules/pkginfo/lib/pkginfo.js +0 -136
  359. data/src/nodejs_supportlib/vendor-copy/winston/node_modules/pkginfo/package.json +0 -56
@@ -1,125 +0,0 @@
1
- #ifndef BOOST_SYSTEM_DETAIL_IS_GENERIC_VALUE_HPP_INCLUDED
2
- #define BOOST_SYSTEM_DETAIL_IS_GENERIC_VALUE_HPP_INCLUDED
3
-
4
- // Copyright 2018 Peter Dimov
5
- //
6
- // Distributed under the Boost Software License, Version 1.0. (See accompanying
7
- // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
8
- //
9
- // See library home page at http://www.boost.org/libs/system
10
-
11
- #include <boost/system/detail/errc.hpp>
12
-
13
- namespace boost
14
- {
15
-
16
- namespace system
17
- {
18
-
19
- namespace detail
20
- {
21
-
22
- inline bool is_generic_value( int ev ) BOOST_NOEXCEPT
23
- {
24
- using namespace errc;
25
-
26
- static int const gen[] =
27
- {
28
- success,
29
- address_family_not_supported,
30
- address_in_use,
31
- address_not_available,
32
- already_connected,
33
- argument_list_too_long,
34
- argument_out_of_domain,
35
- bad_address,
36
- bad_file_descriptor,
37
- bad_message,
38
- broken_pipe,
39
- connection_aborted,
40
- connection_already_in_progress,
41
- connection_refused,
42
- connection_reset,
43
- cross_device_link,
44
- destination_address_required,
45
- device_or_resource_busy,
46
- directory_not_empty,
47
- executable_format_error,
48
- file_exists,
49
- file_too_large,
50
- filename_too_long,
51
- function_not_supported,
52
- host_unreachable,
53
- identifier_removed,
54
- illegal_byte_sequence,
55
- inappropriate_io_control_operation,
56
- interrupted,
57
- invalid_argument,
58
- invalid_seek,
59
- io_error,
60
- is_a_directory,
61
- message_size,
62
- network_down,
63
- network_reset,
64
- network_unreachable,
65
- no_buffer_space,
66
- no_child_process,
67
- no_link,
68
- no_lock_available,
69
- no_message_available,
70
- no_message,
71
- no_protocol_option,
72
- no_space_on_device,
73
- no_stream_resources,
74
- no_such_device_or_address,
75
- no_such_device,
76
- no_such_file_or_directory,
77
- no_such_process,
78
- not_a_directory,
79
- not_a_socket,
80
- not_a_stream,
81
- not_connected,
82
- not_enough_memory,
83
- not_supported,
84
- operation_canceled,
85
- operation_in_progress,
86
- operation_not_permitted,
87
- operation_not_supported,
88
- operation_would_block,
89
- owner_dead,
90
- permission_denied,
91
- protocol_error,
92
- protocol_not_supported,
93
- read_only_file_system,
94
- resource_deadlock_would_occur,
95
- resource_unavailable_try_again,
96
- result_out_of_range,
97
- state_not_recoverable,
98
- stream_timeout,
99
- text_file_busy,
100
- timed_out,
101
- too_many_files_open_in_system,
102
- too_many_files_open,
103
- too_many_links,
104
- too_many_symbolic_link_levels,
105
- value_too_large,
106
- wrong_protocol_type
107
- };
108
-
109
- int const n = sizeof( gen ) / sizeof( gen[0] );
110
-
111
- for( int i = 0; i < n; ++i )
112
- {
113
- if( ev == gen[ i ] ) return true;
114
- }
115
-
116
- return false;
117
- }
118
-
119
- } // namespace detail
120
-
121
- } // namespace system
122
-
123
- } // namespace boost
124
-
125
- #endif // #ifndef BOOST_SYSTEM_DETAIL_IS_GENERIC_VALUE_HPP_INCLUDED
@@ -1,601 +0,0 @@
1
- /*
2
- * daily-rotate-file.js: Transport for outputting to a local log file
3
- *
4
- * (C) 2010 Charlie Robbins
5
- * MIT LICENCE
6
- *
7
- */
8
-
9
- var events = require('events'),
10
- fs = require('fs'),
11
- path = require('path'),
12
- util = require('util'),
13
- common = require('../common'),
14
- Transport = require('./transport').Transport,
15
- Stream = require('stream').Stream,
16
- os = require('os');
17
-
18
- //
19
- // ### function DailyRotateFile (options)
20
- // #### @options {Object} Options for this instance.
21
- // Constructor function for the DailyRotateFile transport object responsible
22
- // for persisting log messages and metadata to one or more files.
23
- //
24
- var DailyRotateFile = exports.DailyRotateFile = function (options) {
25
- Transport.call(this, options);
26
-
27
- //
28
- // Helper function which throws an `Error` in the event
29
- // that any of the rest of the arguments is present in `options`.
30
- //
31
- function throwIf (target /*, illegal... */) {
32
- Array.prototype.slice.call(arguments, 1).forEach(function (name) {
33
- if (options[name]) {
34
- throw new Error('Cannot set ' + name + ' and ' + target + 'together');
35
- }
36
- });
37
- }
38
-
39
- if (options.filename || options.dirname) {
40
- throwIf('filename or dirname', 'stream');
41
- this._basename = this.filename = options.filename
42
- ? path.basename(options.filename)
43
- : 'winston.log';
44
-
45
- this.dirname = options.dirname || path.dirname(options.filename);
46
- this.options = options.options || { flags: 'a' };
47
-
48
- //
49
- // "24 bytes" is maybe a good value for logging lines.
50
- //
51
- this.options.highWaterMark = this.options.highWaterMark || 24;
52
- }
53
- else if (options.stream) {
54
- throwIf('stream', 'filename', 'maxsize');
55
- this._stream = options.stream;
56
- this._stream.on('error', function(error){
57
- self.emit('error', error);
58
- });
59
-
60
- //
61
- // We need to listen for drain events when
62
- // write() returns false. This can make node
63
- // mad at times.
64
- //
65
- this._stream.setMaxListeners(Infinity);
66
- }
67
- else {
68
- throw new Error('Cannot log to file without filename or stream.');
69
- }
70
-
71
- this.json = options.json !== false;
72
- this.colorize = options.colorize || false;
73
- this.maxsize = options.maxsize || null;
74
- this.maxFiles = options.maxFiles || null;
75
- this.label = options.label || null;
76
- this.prettyPrint = options.prettyPrint || false;
77
- this.showLevel = options.showLevel === undefined ? true : options.showLevel;
78
- this.timestamp = options.timestamp != null ? options.timestamp : true;
79
- this.datePattern = options.datePattern != null ? options.datePattern : '.yyyy-MM-dd';
80
- this.depth = options.depth || null;
81
- this.eol = options.eol || os.EOL;
82
- this.maxRetries = options.maxRetries || 2;
83
-
84
- if (this.json) {
85
- this.stringify = options.stringify;
86
- }
87
-
88
- //
89
- // Internal state variables representing the number
90
- // of files this instance has created and the current
91
- // size (in bytes) of the current logfile.
92
- //
93
- this._size = 0;
94
- this._created = 0;
95
- this._buffer = [];
96
- this._draining = false;
97
- this._failures = 0;
98
-
99
- var now = new Date();
100
- this._year = now.getFullYear();
101
- this._month = now.getMonth();
102
- this._date = now.getDate();
103
- this._hour = now.getHours();
104
- this._minute = now.getMinutes();
105
-
106
- var token = /d{1,4}|m{1,4}|yy(?:yy)?|([HhM])\1?/g,
107
- pad = function (val, len) {
108
- val = String(val);
109
- len = len || 2;
110
- while (val.length < len) val = "0" + val;
111
- return val;
112
- };
113
-
114
- this.getFormattedDate = function() {
115
- var flags = {
116
- yy: String(this._year).slice(2),
117
- yyyy: this._year,
118
- M: this._month + 1,
119
- MM: pad(this._month + 1),
120
- d: this._date,
121
- dd: pad(this._date),
122
- H: this._hour,
123
- HH: pad(this._hour),
124
- m: this._minute,
125
- mm: pad(this._minute)
126
- };
127
- return this.datePattern.replace(token, function ($0) {
128
- return $0 in flags ? flags[$0] : $0.slice(1, $0.length - 1);
129
- });
130
- };
131
- };
132
-
133
- //
134
- // Inherit from `winston.Transport`.
135
- //
136
- util.inherits(DailyRotateFile, Transport);
137
-
138
- //
139
- // Expose the name of this Transport on the prototype
140
- //
141
- DailyRotateFile.prototype.name = 'dailyRotateFile';
142
-
143
- //
144
- // ### function log (level, msg, [meta], callback)
145
- // #### @level {string} Level at which to log the message.
146
- // #### @msg {string} Message to log
147
- // #### @meta {Object} **Optional** Additional metadata to attach
148
- // #### @callback {function} Continuation to respond to when complete.
149
- // Core logging method exposed to Winston. Metadata is optional.
150
- //
151
- DailyRotateFile.prototype.log = function (level, msg, meta, callback) {
152
- if (this.silent) {
153
- return callback(null, true);
154
- }
155
-
156
- //
157
- // If failures exceeds maxRetries then we can't access the
158
- // stream. In this case we need to perform a noop and return
159
- // an error.
160
- //
161
- if (this._failures >= this.maxRetries) {
162
- return callback(new Error('Transport is in a failed state.'));
163
- }
164
-
165
- var self = this;
166
-
167
- var output = common.log({
168
- level: level,
169
- message: msg,
170
- meta: meta,
171
- json: this.json,
172
- colorize: this.colorize,
173
- prettyPrint: this.prettyPrint,
174
- timestamp: this.timestamp,
175
- label: this.label,
176
- stringify: this.stringify,
177
- showLevel: this.showLevel,
178
- depth: this.depth,
179
- formatter: this.formatter,
180
- humanReadableUnhandledException: this.humanReadableUnhandledException
181
- }) + this.eol;
182
-
183
- this._size += output.length;
184
-
185
- if (!this.filename) {
186
- //
187
- // If there is no `filename` on this instance then it was configured
188
- // with a raw `WriteableStream` instance and we should not perform any
189
- // size restrictions.
190
- //
191
- this._write(output, callback);
192
- this._lazyDrain();
193
- }
194
- else {
195
- this.open(function (err) {
196
- if (err) {
197
- //
198
- // If there was an error enqueue the message
199
- //
200
- return self._buffer.push([output, callback]);
201
- }
202
-
203
- self._write(output, callback);
204
- self._lazyDrain();
205
- });
206
- }
207
- };
208
-
209
- //
210
- // ### function _write (data, cb)
211
- // #### @data {String|Buffer} Data to write to the instance's stream.
212
- // #### @cb {function} Continuation to respond to when complete.
213
- // Write to the stream, ensure execution of a callback on completion.
214
- //
215
- DailyRotateFile.prototype._write = function(data, callback) {
216
- // If this is a file write stream, we could use the builtin
217
- // callback functionality, however, the stream is not guaranteed
218
- // to be an fs.WriteStream.
219
- var ret = this._stream.write(data);
220
- if (!callback) return;
221
- if (ret === false) {
222
- return this._stream.once('drain', function() {
223
- callback(null, true);
224
- });
225
- }
226
- callback(null, true);
227
- };
228
-
229
- //
230
- // ### function query (options, callback)
231
- // #### @options {Object} Loggly-like query options for this instance.
232
- // #### @callback {function} Continuation to respond to when complete.
233
- // Query the transport. Options object is optional.
234
- //
235
- DailyRotateFile.prototype.query = function (options, callback) {
236
- if (typeof options === 'function') {
237
- callback = options;
238
- options = {};
239
- }
240
-
241
- // TODO when maxfilesize rotate occurs
242
- var file = path.join(this.dirname, this._basename + this.getFormattedDate()),
243
- options = this.normalizeQuery(options),
244
- buff = '',
245
- results = [],
246
- row = 0;
247
-
248
- var stream = fs.createReadStream(file, {
249
- encoding: 'utf8'
250
- });
251
-
252
- stream.on('error', function (err) {
253
- if (stream.readable) {
254
- stream.destroy();
255
- }
256
- if (!callback) return;
257
- return err.code !== 'ENOENT'
258
- ? callback(err)
259
- : callback(null, results);
260
- });
261
-
262
- stream.on('data', function (data) {
263
- var data = (buff + data).split(/\n+/),
264
- l = data.length - 1,
265
- i = 0;
266
-
267
- for (; i < l; i++) {
268
- if (!options.start || row >= options.start) {
269
- add(data[i]);
270
- }
271
- row++;
272
- }
273
-
274
- buff = data[l];
275
- });
276
-
277
- stream.on('close', function () {
278
- if (buff) add(buff, true);
279
- if (options.order === 'desc') {
280
- results = results.reverse();
281
- }
282
- if (callback) callback(null, results);
283
- });
284
-
285
- function add(buff, attempt) {
286
- try {
287
- var log = JSON.parse(buff);
288
- if (check(log)) push(log);
289
- } catch (e) {
290
- if (!attempt) {
291
- stream.emit('error', e);
292
- }
293
- }
294
- }
295
-
296
- function push(log) {
297
- if (options.rows && results.length >= options.rows) {
298
- if (stream.readable) {
299
- stream.destroy();
300
- }
301
- return;
302
- }
303
-
304
- if (options.fields) {
305
- var obj = {};
306
- options.fields.forEach(function (key) {
307
- obj[key] = log[key];
308
- });
309
- log = obj;
310
- }
311
-
312
- results.push(log);
313
- }
314
-
315
- function check(log) {
316
- if (!log) return;
317
-
318
- if (typeof log !== 'object') return;
319
-
320
- var time = new Date(log.timestamp);
321
- if ((options.from && time < options.from)
322
- || (options.until && time > options.until)) {
323
- return;
324
- }
325
-
326
- return true;
327
- }
328
- };
329
-
330
- //
331
- // ### function stream (options)
332
- // #### @options {Object} Stream options for this instance.
333
- // Returns a log stream for this transport. Options object is optional.
334
- //
335
- DailyRotateFile.prototype.stream = function (options) {
336
- var file = path.join(this.dirname, this._basename + this.getFormattedDate()),
337
- options = options || {},
338
- stream = new Stream;
339
-
340
- var tail = {
341
- file: file,
342
- start: options.start
343
- };
344
-
345
- stream.destroy = common.tailFile(tail, function (err, line) {
346
-
347
- if(err){
348
- return stream.emit('error',err);
349
- }
350
-
351
- try {
352
- stream.emit('data', line);
353
- line = JSON.parse(line);
354
- stream.emit('log', line);
355
- } catch (e) {
356
- stream.emit('error', e);
357
- }
358
- });
359
-
360
- if(stream.resume){
361
- stream.resume();
362
- }
363
-
364
- return stream;
365
- };
366
-
367
- //
368
- // ### function open (callback)
369
- // #### @callback {function} Continuation to respond to when complete
370
- // Checks to see if a new file needs to be created based on the `maxsize`
371
- // (if any) and the current size of the file used.
372
- //
373
- DailyRotateFile.prototype.open = function (callback) {
374
- var now = new Date();
375
- if (this.opening) {
376
- //
377
- // If we are already attempting to open the next
378
- // available file then respond with a value indicating
379
- // that the message should be buffered.
380
- //
381
- return callback(true);
382
- }
383
- else if (!this._stream || (this.maxsize && this._size >= this.maxsize) ||
384
- (this._year < now.getFullYear() || this._month < now.getMonth() || this._date < now.getDate() || this._hour < now.getHours() || this._minute < now.getMinutes())) {
385
- //
386
- // If we dont have a stream or have exceeded our size, then create
387
- // the next stream and respond with a value indicating that
388
- // the message should be buffered.
389
- //
390
- callback(true);
391
- return this._createStream();
392
- }
393
-
394
- //
395
- // Otherwise we have a valid (and ready) stream.
396
- //
397
- callback();
398
- };
399
-
400
- //
401
- // ### function close ()
402
- // Closes the stream associated with this instance.
403
- //
404
- DailyRotateFile.prototype.close = function () {
405
- var self = this;
406
-
407
- if (this._stream) {
408
- this._stream.end();
409
- this._stream.destroySoon();
410
-
411
- this._stream.once('drain', function () {
412
- self.emit('flush');
413
- self.emit('closed');
414
- });
415
- }
416
- };
417
-
418
- //
419
- // ### function flush ()
420
- // Flushes any buffered messages to the current `stream`
421
- // used by this instance.
422
- //
423
- DailyRotateFile.prototype.flush = function () {
424
- var self = this;
425
-
426
- //
427
- // Iterate over the `_buffer` of enqueued messaged
428
- // and then write them to the newly created stream.
429
- //
430
- this._buffer.forEach(function (item) {
431
- var str = item[0],
432
- callback = item[1];
433
-
434
- process.nextTick(function () {
435
- self._write(str, callback);
436
- self._size += str.length;
437
- });
438
- });
439
-
440
- //
441
- // Quickly truncate the `_buffer` once the write operations
442
- // have been started
443
- //
444
- self._buffer.length = 0;
445
-
446
- //
447
- // When the stream has drained we have flushed
448
- // our buffer.
449
- //
450
- self._stream.once('drain', function () {
451
- self.emit('flush');
452
- self.emit('logged');
453
- });
454
- };
455
-
456
- //
457
- // ### @private function _createStream ()
458
- // Attempts to open the next appropriate file for this instance
459
- // based on the common state (such as `maxsize` and `_basename`).
460
- //
461
- DailyRotateFile.prototype._createStream = function () {
462
- var self = this;
463
- this.opening = true;
464
-
465
- (function checkFile (target) {
466
- var fullname = path.join(self.dirname, target);
467
-
468
- //
469
- // Creates the `WriteStream` and then flushes any
470
- // buffered messages.
471
- //
472
- function createAndFlush (size) {
473
- if (self._stream) {
474
- self._stream.end();
475
- self._stream.destroySoon();
476
- }
477
-
478
- self._size = size;
479
- self.filename = target;
480
- self._stream = fs.createWriteStream(fullname, self.options);
481
- self._stream.on('error', function(error){
482
- if (self._failures < self.maxRetries) {
483
- self._createStream();
484
- self._failures++;
485
- }
486
- else {
487
- self.emit('error', error);
488
- }
489
- });
490
-
491
- //
492
- // We need to listen for drain events when
493
- // write() returns false. This can make node
494
- // mad at times.
495
- //
496
- self._stream.setMaxListeners(Infinity);
497
-
498
- //
499
- // When the current stream has finished flushing
500
- // then we can be sure we have finished opening
501
- // and thus can emit the `open` event.
502
- //
503
- self.once('flush', function () {
504
- self.opening = false;
505
- self.emit('open', fullname);
506
- });
507
-
508
- //
509
- // Remark: It is possible that in the time it has taken to find the
510
- // next logfile to be written more data than `maxsize` has been buffered,
511
- // but for sensible limits (10s - 100s of MB) this seems unlikely in less
512
- // than one second.
513
- //
514
- self.flush();
515
- }
516
-
517
- fs.stat(fullname, function (err, stats) {
518
- if (err) {
519
- if (err.code !== 'ENOENT') {
520
- return self.emit('error', err);
521
- }
522
-
523
- return createAndFlush(0);
524
- }
525
-
526
- if (!stats || (self.maxsize && stats.size >= self.maxsize)) {
527
- //
528
- // If `stats.size` is greater than the `maxsize` for
529
- // this instance then try again
530
- //
531
- return checkFile(self._getFile(true));
532
- }
533
-
534
- var now = new Date();
535
- if (self._year < now.getFullYear() || self._month < now.getMonth() || self._date < now.getDate() || self._hour < now.getHours() || self._minute < now.getMinutes()) {
536
- self._year = now.getFullYear();
537
- self._month = now.getMonth();
538
- self._date = now.getDate();
539
- self._hour = now.getHours();
540
- self._minute = now.getMinutes();
541
- self._created = 0;
542
- return checkFile(self._getFile());
543
- }
544
-
545
- createAndFlush(stats.size);
546
- });
547
- })(this._getFile());
548
- };
549
-
550
- //
551
- // ### @private function _getFile ()
552
- // Gets the next filename to use for this instance
553
- // in the case that log filesizes are being capped.
554
- //
555
- DailyRotateFile.prototype._getFile = function (inc) {
556
- var self = this,
557
- filename = this._basename + this.getFormattedDate(),
558
- remaining;
559
-
560
- if (inc) {
561
- //
562
- // Increment the number of files created or
563
- // checked by this instance.
564
- //
565
- // Check for maxFiles option and delete file
566
- if (this.maxFiles && (this._created >= (this.maxFiles - 1))) {
567
- remaining = this._created - (this.maxFiles - 1);
568
- if (remaining === 0) {
569
- fs.unlinkSync(path.join(this.dirname, filename));
570
- }
571
- else {
572
- fs.unlinkSync(path.join(this.dirname, filename + '.' + remaining));
573
- }
574
- }
575
-
576
- this._created += 1;
577
- }
578
-
579
- return this._created
580
- ? filename + '.' + this._created
581
- : filename;
582
- };
583
-
584
- //
585
- // ### @private function _lazyDrain ()
586
- // Lazily attempts to emit the `logged` event when `this.stream` has
587
- // drained. This is really just a simple mutex that only works because
588
- // Node.js is single-threaded.
589
- //
590
- DailyRotateFile.prototype._lazyDrain = function () {
591
- var self = this;
592
-
593
- if (!this._draining && this._stream) {
594
- this._draining = true;
595
-
596
- this._stream.once('drain', function () {
597
- this._draining = false;
598
- self.emit('logged');
599
- });
600
- }
601
- };