passenger 5.3.4 → 5.3.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (91) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +13 -0
  3. data/CODE_OF_CONDUCT.md +1 -1
  4. data/build/cxx_tests.rb +12 -1
  5. data/build/misc.rb +2 -1
  6. data/build/packaging.rb +2 -0
  7. data/build/support/cplusplus.rb +2 -2
  8. data/build/support/cxx_dependency_map.rb +653 -383
  9. data/dev/configkit-schemas/index.json +105 -3
  10. data/dev/show-latest-crashlog-dir +27 -0
  11. data/resources/templates/standalone/http.erb +2 -0
  12. data/src/agent/Core/AdminPanelConnector.h +2 -2
  13. data/src/agent/Core/ApplicationPool/Context.h +5 -1
  14. data/src/agent/Core/ApplicationPool/Group.h +2 -0
  15. data/src/agent/Core/ApplicationPool/Group/LifetimeAndBasics.cpp +5 -0
  16. data/src/agent/Core/ApplicationPool/Group/Miscellaneous.cpp +2 -1
  17. data/src/agent/Core/ApplicationPool/Group/ProcessListManagement.cpp +1 -1
  18. data/src/agent/Core/ApplicationPool/Group/StateInspection.cpp +12 -19
  19. data/src/agent/Core/ApplicationPool/Options.h +35 -31
  20. data/src/agent/Core/ApplicationPool/Pool/GroupUtils.cpp +2 -1
  21. data/src/agent/Core/ApplicationPool/Socket.h +1 -1
  22. data/src/agent/Core/Config.h +38 -7
  23. data/src/agent/Core/ConfigChange.cpp +13 -1
  24. data/src/agent/Core/Controller.h +3 -1
  25. data/src/agent/Core/Controller/Config.h +14 -11
  26. data/src/agent/Core/Controller/InitRequest.cpp +6 -5
  27. data/src/agent/Core/Controller/InitializationAndShutdown.cpp +3 -0
  28. data/src/agent/Core/CoreMain.cpp +149 -34
  29. data/src/agent/Core/OptionParser.h +12 -1
  30. data/src/agent/Core/SpawningKit/Config.h +1 -1
  31. data/src/agent/Core/SpawningKit/Context.h +7 -1
  32. data/src/agent/Core/SpawningKit/Exceptions.h +15 -12
  33. data/src/agent/Core/SpawningKit/README.md +34 -17
  34. data/src/agent/Core/SpawningKit/Spawner.h +5 -3
  35. data/src/agent/Core/SpawningKit/UserSwitchingRules.h +5 -2
  36. data/src/agent/Core/TelemetryCollector.h +674 -0
  37. data/src/agent/Shared/Fundamentals/AbortHandler.cpp +309 -83
  38. data/src/agent/Shared/Fundamentals/AbortHandler.h +18 -3
  39. data/src/agent/Watchdog/Config.h +21 -4
  40. data/src/agent/Watchdog/WatchdogMain.cpp +4 -1
  41. data/src/apache2_module/ConfigGeneral/AutoGeneratedDefinitions.cpp +10 -0
  42. data/src/apache2_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.cpp +5 -0
  43. data/src/apache2_module/ConfigGeneral/AutoGeneratedSetterFuncs.cpp +30 -0
  44. data/src/apache2_module/DirectoryMapper.h +24 -36
  45. data/src/apache2_module/Hooks.cpp +13 -5
  46. data/src/apache2_module/ServerConfig/AutoGeneratedManifestGeneration.cpp +20 -0
  47. data/src/apache2_module/ServerConfig/AutoGeneratedStruct.h +24 -0
  48. data/src/cxx_supportlib/AppTypeDetector/CBindings.cpp +136 -0
  49. data/src/cxx_supportlib/AppTypeDetector/CBindings.h +73 -0
  50. data/src/cxx_supportlib/{AppTypes.h → AppTypeDetector/Detector.h} +59 -132
  51. data/src/cxx_supportlib/ConfigKit/README.md +90 -2
  52. data/src/cxx_supportlib/ConfigKit/Schema.h +58 -13
  53. data/src/cxx_supportlib/ConfigKit/Store.h +128 -4
  54. data/src/cxx_supportlib/Constants.h +1 -1
  55. data/src/cxx_supportlib/ProcessManagement/Ruby.cpp +3 -3
  56. data/src/cxx_supportlib/ProcessManagement/Ruby.h +7 -2
  57. data/src/cxx_supportlib/ProcessManagement/Spawn.cpp +14 -7
  58. data/src/cxx_supportlib/ProcessManagement/Spawn.h +21 -2
  59. data/src/cxx_supportlib/ResourceLocator.h +1 -1
  60. data/src/cxx_supportlib/ServerKit/ClientRef.h +17 -7
  61. data/src/cxx_supportlib/ServerKit/HttpRequestRef.h +17 -7
  62. data/src/cxx_supportlib/Utils/IOUtils.cpp +2 -1
  63. data/src/cxx_supportlib/Utils/ProcessMetricsCollector.h +9 -6
  64. data/src/cxx_supportlib/WrapperRegistry/CBindings.cpp +85 -0
  65. data/src/cxx_supportlib/WrapperRegistry/CBindings.h +56 -0
  66. data/src/cxx_supportlib/WrapperRegistry/Entry.h +112 -0
  67. data/src/cxx_supportlib/WrapperRegistry/README.md +37 -0
  68. data/src/cxx_supportlib/WrapperRegistry/Registry.h +309 -0
  69. data/src/helper-scripts/download_binaries/extconf.rb +6 -2
  70. data/src/nginx_module/ConfigGeneral/AutoGeneratedDefinitions.c +16 -0
  71. data/src/nginx_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.c +6 -0
  72. data/src/nginx_module/ConfigGeneral/AutoGeneratedSetterFuncs.c +24 -0
  73. data/src/nginx_module/ContentHandler.c +34 -13
  74. data/src/nginx_module/ContentHandler.h +3 -3
  75. data/src/nginx_module/MainConfig/AutoGeneratedCreateFunction.c +11 -0
  76. data/src/nginx_module/MainConfig/AutoGeneratedManifestGeneration.c +23 -0
  77. data/src/nginx_module/MainConfig/AutoGeneratedStruct.h +8 -0
  78. data/src/nginx_module/config +2 -1
  79. data/src/nginx_module/ngx_http_passenger_module.c +9 -3
  80. data/src/nginx_module/ngx_http_passenger_module.h +4 -2
  81. data/src/ruby_supportlib/phusion_passenger.rb +2 -1
  82. data/src/ruby_supportlib/phusion_passenger/apache2/config_options.rb +13 -0
  83. data/src/ruby_supportlib/phusion_passenger/common_library.rb +8 -5
  84. data/src/ruby_supportlib/phusion_passenger/config/download_agent_command.rb +6 -2
  85. data/src/ruby_supportlib/phusion_passenger/config/download_nginx_engine_command.rb +6 -2
  86. data/src/ruby_supportlib/phusion_passenger/native_support.rb +7 -3
  87. data/src/ruby_supportlib/phusion_passenger/nginx/config_options.rb +15 -0
  88. data/src/ruby_supportlib/phusion_passenger/standalone/config_options_list.rb +11 -1
  89. data/src/ruby_supportlib/phusion_passenger/standalone/start_command/builtin_engine.rb +3 -1
  90. metadata +12 -4
  91. data/src/cxx_supportlib/AppTypes.cpp +0 -109
@@ -30,7 +30,7 @@
30
30
 
31
31
  #include <ngx_core.h>
32
32
  #include <ngx_http.h>
33
- #include "cxx_supportlib/AppTypes.h"
33
+ #include "cxx_supportlib/AppTypeDetector/CBindings.h"
34
34
 
35
35
 
36
36
  typedef struct {
@@ -46,8 +46,8 @@ typedef struct {
46
46
  /** The application's base URI. Points to an empty string if none. */
47
47
  ngx_str_t base_uri;
48
48
 
49
- /** The application's type. */
50
- PassengerAppType app_type;
49
+ /** Detected information about the app. */
50
+ PsgAppTypeDetectorResult *detector_result;
51
51
  } passenger_context_t;
52
52
 
53
53
 
@@ -58,6 +58,9 @@ passenger_create_autogenerated_main_conf(passenger_autogenerated_main_conf_t *co
58
58
  conf->disable_security_update_check = NGX_CONF_UNSET;
59
59
  conf->security_update_check_proxy.data = NULL;
60
60
  conf->security_update_check_proxy.len = 0;
61
+ conf->disable_anonymous_telemetry = NGX_CONF_UNSET;
62
+ conf->anonymous_telemetry_proxy.data = NULL;
63
+ conf->anonymous_telemetry_proxy.len = 0;
61
64
  conf->prestart_uris = NGX_CONF_UNSET_PTR;
62
65
  conf->instance_registry_dir.data = NULL;
63
66
  conf->instance_registry_dir.len = 0;
@@ -131,6 +134,14 @@ passenger_create_autogenerated_main_conf(passenger_autogenerated_main_conf_t *co
131
134
  conf->security_update_check_proxy_source_file.len = 0;
132
135
  conf->security_update_check_proxy_source_line = 0;
133
136
  conf->security_update_check_proxy_explicitly_set = 0;
137
+ conf->disable_anonymous_telemetry_source_file.data = NULL;
138
+ conf->disable_anonymous_telemetry_source_file.len = 0;
139
+ conf->disable_anonymous_telemetry_source_line = 0;
140
+ conf->disable_anonymous_telemetry_explicitly_set = 0;
141
+ conf->anonymous_telemetry_proxy_source_file.data = NULL;
142
+ conf->anonymous_telemetry_proxy_source_file.len = 0;
143
+ conf->anonymous_telemetry_proxy_source_line = 0;
144
+ conf->anonymous_telemetry_proxy_explicitly_set = 0;
134
145
  conf->prestart_uris_source_file.data = NULL;
135
146
  conf->prestart_uris_source_file.len = 0;
136
147
  conf->prestart_uris_source_line = 0;
@@ -182,6 +182,29 @@ generate_config_manifest_for_autogenerated_main_conf(manifest_gen_ctx_t *ctx, pa
182
182
  (const char *) conf->autogenerated.security_update_check_proxy.data,
183
183
  conf->autogenerated.security_update_check_proxy.len);
184
184
  }
185
+ if (conf->autogenerated.disable_anonymous_telemetry_explicitly_set) {
186
+ option_container = find_or_create_manifest_option_container(ctx,
187
+ ctx->global_config_container,
188
+ "passenger_disable_anonymous_telemetry",
189
+ sizeof("passenger_disable_anonymous_telemetry") - 1);
190
+ hierarchy_member = add_manifest_option_container_hierarchy_member(option_container,
191
+ &conf->autogenerated.disable_anonymous_telemetry_source_file,
192
+ conf->autogenerated.disable_anonymous_telemetry_source_line);
193
+ psg_json_value_set_bool(hierarchy_member, "value",
194
+ conf->autogenerated.disable_anonymous_telemetry);
195
+ }
196
+ if (conf->autogenerated.anonymous_telemetry_proxy_explicitly_set) {
197
+ option_container = find_or_create_manifest_option_container(ctx,
198
+ ctx->global_config_container,
199
+ "passenger_anonymous_telemetry_proxy",
200
+ sizeof("passenger_anonymous_telemetry_proxy") - 1);
201
+ hierarchy_member = add_manifest_option_container_hierarchy_member(option_container,
202
+ &conf->autogenerated.anonymous_telemetry_proxy_source_file,
203
+ conf->autogenerated.anonymous_telemetry_proxy_source_line);
204
+ psg_json_value_set_str(hierarchy_member, "value",
205
+ (const char *) conf->autogenerated.anonymous_telemetry_proxy.data,
206
+ conf->autogenerated.anonymous_telemetry_proxy.len);
207
+ }
185
208
  if (conf->autogenerated.prestart_uris_explicitly_set) {
186
209
  option_container = find_or_create_manifest_option_container(ctx,
187
210
  ctx->global_config_container,
@@ -43,6 +43,7 @@ typedef struct {
43
43
  ngx_uint_t app_file_descriptor_ulimit;
44
44
  ngx_uint_t core_file_descriptor_ulimit;
45
45
  ngx_array_t *ctl;
46
+ ngx_flag_t disable_anonymous_telemetry;
46
47
  ngx_flag_t disable_security_update_check;
47
48
  ngx_uint_t log_level;
48
49
  ngx_uint_t max_instances_per_app;
@@ -59,6 +60,7 @@ typedef struct {
59
60
  ngx_str_t admin_panel_password;
60
61
  ngx_str_t admin_panel_url;
61
62
  ngx_str_t admin_panel_username;
63
+ ngx_str_t anonymous_telemetry_proxy;
62
64
  ngx_str_t data_buffer_dir;
63
65
  ngx_str_t default_group;
64
66
  ngx_str_t default_user;
@@ -74,12 +76,14 @@ typedef struct {
74
76
  ngx_str_t admin_panel_password_source_file;
75
77
  ngx_str_t admin_panel_url_source_file;
76
78
  ngx_str_t admin_panel_username_source_file;
79
+ ngx_str_t anonymous_telemetry_proxy_source_file;
77
80
  ngx_str_t app_file_descriptor_ulimit_source_file;
78
81
  ngx_str_t core_file_descriptor_ulimit_source_file;
79
82
  ngx_str_t ctl_source_file;
80
83
  ngx_str_t data_buffer_dir_source_file;
81
84
  ngx_str_t default_group_source_file;
82
85
  ngx_str_t default_user_source_file;
86
+ ngx_str_t disable_anonymous_telemetry_source_file;
83
87
  ngx_str_t disable_security_update_check_source_file;
84
88
  ngx_str_t dump_config_manifest_source_file;
85
89
  ngx_str_t file_descriptor_log_file_source_file;
@@ -104,12 +108,14 @@ typedef struct {
104
108
  ngx_uint_t admin_panel_password_source_line;
105
109
  ngx_uint_t admin_panel_url_source_line;
106
110
  ngx_uint_t admin_panel_username_source_line;
111
+ ngx_uint_t anonymous_telemetry_proxy_source_line;
107
112
  ngx_uint_t app_file_descriptor_ulimit_source_line;
108
113
  ngx_uint_t core_file_descriptor_ulimit_source_line;
109
114
  ngx_uint_t ctl_source_line;
110
115
  ngx_uint_t data_buffer_dir_source_line;
111
116
  ngx_uint_t default_group_source_line;
112
117
  ngx_uint_t default_user_source_line;
118
+ ngx_uint_t disable_anonymous_telemetry_source_line;
113
119
  ngx_uint_t disable_security_update_check_source_line;
114
120
  ngx_uint_t dump_config_manifest_source_line;
115
121
  ngx_uint_t file_descriptor_log_file_source_line;
@@ -134,12 +140,14 @@ typedef struct {
134
140
  ngx_int_t admin_panel_password_explicitly_set;
135
141
  ngx_int_t admin_panel_url_explicitly_set;
136
142
  ngx_int_t admin_panel_username_explicitly_set;
143
+ ngx_int_t anonymous_telemetry_proxy_explicitly_set;
137
144
  ngx_int_t app_file_descriptor_ulimit_explicitly_set;
138
145
  ngx_int_t core_file_descriptor_ulimit_explicitly_set;
139
146
  ngx_int_t ctl_explicitly_set;
140
147
  ngx_int_t data_buffer_dir_explicitly_set;
141
148
  ngx_int_t default_group_explicitly_set;
142
149
  ngx_int_t default_user_explicitly_set;
150
+ ngx_int_t disable_anonymous_telemetry_explicitly_set;
143
151
  ngx_int_t disable_security_update_check_explicitly_set;
144
152
  ngx_int_t dump_config_manifest_explicitly_set;
145
153
  ngx_int_t file_descriptor_log_file_explicitly_set;
@@ -75,7 +75,8 @@ PASSENGER_MODULE_DEPS="${ngx_addon_dir}/Configuration.h \
75
75
  ${ngx_addon_dir}/ngx_http_passenger_module.h \
76
76
  ${PASSENGER_INCLUDEDIR}/cxx_supportlib/Constants.h \
77
77
  ${PASSENGER_INCLUDEDIR}/cxx_supportlib/WatchdogLauncher.h \
78
- ${PASSENGER_INCLUDEDIR}/cxx_supportlib/AppTypes.h"
78
+ ${PASSENGER_INCLUDEDIR}/cxx_supportlib/AppTypeDetector/CBindings.h \
79
+ ${PASSENGER_INCLUDEDIR}/cxx_supportlib/WrapperRegistry/CBindings.h"
79
80
  PASSENGER_MODULE_SRCS="${ngx_addon_dir}/ngx_http_passenger_module.c \
80
81
  ${ngx_addon_dir}/Configuration.c \
81
82
  ${ngx_addon_dir}/ContentHandler.c \
@@ -60,7 +60,8 @@ static int first_start = 1;
60
60
  ngx_str_t pp_schema_string;
61
61
  ngx_str_t pp_placeholder_upstream_address;
62
62
  PP_CachedFileStat *pp_stat_cache;
63
- PP_AppTypeDetector *pp_app_type_detector;
63
+ PsgWrapperRegistry *psg_wrapper_registry;
64
+ PsgAppTypeDetector *psg_app_type_detector;
64
65
  PsgWatchdogLauncher *psg_watchdog_launcher = NULL;
65
66
  ngx_cycle_t *pp_current_cycle;
66
67
 
@@ -348,7 +349,7 @@ start_watchdog(ngx_cycle_t *cycle) {
348
349
  }
349
350
 
350
351
  if (autogenerated_main_conf->stat_throttle_rate != NGX_CONF_UNSET_UINT) {
351
- pp_app_type_detector_set_throttle_rate(pp_app_type_detector,
352
+ psg_app_type_detector_set_throttle_rate(psg_app_type_detector,
352
353
  autogenerated_main_conf->stat_throttle_rate);
353
354
  }
354
355
 
@@ -367,6 +368,8 @@ start_watchdog(ngx_cycle_t *cycle) {
367
368
  psg_json_value_set_ngx_str_ne(w_config, "instance_registry_dir", &autogenerated_main_conf->instance_registry_dir);
368
369
  psg_json_value_set_ngx_flag (w_config, "security_update_checker_disabled", autogenerated_main_conf->disable_security_update_check);
369
370
  psg_json_value_set_ngx_str_ne(w_config, "security_update_checker_proxy_url", &autogenerated_main_conf->security_update_check_proxy);
371
+ psg_json_value_set_ngx_flag (w_config, "telemetry_collector_disabled", autogenerated_main_conf->disable_anonymous_telemetry);
372
+ psg_json_value_set_ngx_str_ne(w_config, "telemetry_collector_proxy_url", &autogenerated_main_conf->anonymous_telemetry_proxy);
370
373
  psg_json_value_set_ngx_flag (w_config, "user_switching", autogenerated_main_conf->user_switching);
371
374
  psg_json_value_set_ngx_flag (w_config, "show_version_in_header", autogenerated_main_conf->show_version_in_header);
372
375
  psg_json_value_set_ngx_flag (w_config, "turbocaching", autogenerated_main_conf->turbocaching);
@@ -511,7 +514,10 @@ pre_config_init(ngx_conf_t *cf)
511
514
  pp_placeholder_upstream_address.data = (u_char *) "unix:/passenger_core";
512
515
  pp_placeholder_upstream_address.len = sizeof("unix:/passenger_core") - 1;
513
516
  pp_stat_cache = pp_cached_file_stat_new(1024);
514
- pp_app_type_detector = pp_app_type_detector_new(DEFAULT_STAT_THROTTLE_RATE);
517
+ psg_wrapper_registry = psg_wrapper_registry_new();
518
+ psg_wrapper_registry_finalize(psg_wrapper_registry);
519
+ psg_app_type_detector = psg_app_type_detector_new(psg_wrapper_registry,
520
+ DEFAULT_STAT_THROTTLE_RATE);
515
521
  psg_watchdog_launcher = psg_watchdog_launcher_new(IM_NGINX, &error_message);
516
522
 
517
523
  if (psg_watchdog_launcher == NULL) {
@@ -31,7 +31,7 @@
31
31
  #include <ngx_config.h>
32
32
  #include <ngx_core.h>
33
33
  #include "cxx_supportlib/WatchdogLauncher.h"
34
- #include "cxx_supportlib/AppTypes.h"
34
+ #include "cxx_supportlib/AppTypeDetector/CBindings.h"
35
35
  #include "cxx_supportlib/Utils/CachedFileStat.h"
36
36
 
37
37
  /**
@@ -55,7 +55,9 @@ extern ngx_str_t pp_placeholder_upstream_address;
55
55
  /** A CachedFileStat object used for caching stat() calls. */
56
56
  extern PP_CachedFileStat *pp_stat_cache;
57
57
 
58
- extern PP_AppTypeDetector *pp_app_type_detector;
58
+ extern PsgWrapperRegistry *psg_wrapper_registry;
59
+
60
+ extern PsgAppTypeDetector *psg_app_type_detector;
59
61
 
60
62
  extern PsgWatchdogLauncher *psg_watchdog_launcher;
61
63
 
@@ -31,7 +31,7 @@ module PhusionPassenger
31
31
 
32
32
  PACKAGE_NAME = 'passenger'
33
33
  # Run 'rake src/cxx_supportlib/Constants.h configkit_schemas_inline_comments' after changing this number.
34
- VERSION_STRING = '5.3.4'
34
+ VERSION_STRING = '5.3.5'
35
35
 
36
36
  PREFERRED_NGINX_VERSION = '1.14.0'
37
37
  NGINX_SHA256_CHECKSUM = '5d15becbf69aba1fe33f8d416d97edd95ea8919ea9ac519eff9bafebb6022cb5'
@@ -219,6 +219,7 @@ module PhusionPassenger
219
219
 
220
220
  def self.binaries_sites
221
221
  [
222
+ { :url => "https://github.com/phusion/passenger/releases/download/release-{{VERSION}}".freeze },
222
223
  { :url => "https://oss-binaries.phusionpassenger.com/binaries/passenger/by_release".freeze },
223
224
  { :url => "https://s3.amazonaws.com/phusion-passenger/binaries/passenger/by_release".freeze }
224
225
  ]
@@ -228,6 +228,19 @@ APACHE2_CONFIGURATION_OPTIONS = [
228
228
  :context => :global,
229
229
  :desc => "Use specified HTTP/SOCKS proxy for the #{PROGRAM_NAME} security update check."
230
230
  },
231
+ {
232
+ :name => 'PassengerDisableAnonymousTelemetry',
233
+ :type => :flag,
234
+ :context => :global,
235
+ :default => false,
236
+ :desc => "Whether to disable #{PROGRAM_NAME} anonymous telemetry."
237
+ },
238
+ {
239
+ :name => 'PassengerAnonymousTelemetryProxy',
240
+ :type => :string,
241
+ :context => :global,
242
+ :desc => "Use specified HTTP/SOCKS proxy for #{PROGRAM_NAME} anonymous telemetry collection."
243
+ },
231
244
  {
232
245
  :name => 'PassengerStatThrottleRate',
233
246
  :type => :integer,
@@ -1,5 +1,5 @@
1
1
  # Phusion Passenger - https://www.phusionpassenger.com/
2
- # Copyright (c) 2012-2017 Phusion Holding B.V.
2
+ # Copyright (c) 2012-2018 Phusion Holding B.V.
3
3
  #
4
4
  # "Passenger", "Phusion Passenger" and "Union Station" are registered
5
5
  # trademarks of Phusion Holding B.V.
@@ -350,8 +350,11 @@ COMMON_LIBRARY = CommonLibraryBuilder.new do
350
350
  define_component 'DataStructures/LString.o',
351
351
  :source => 'DataStructures/LString.cpp',
352
352
  :category => :other
353
- define_component 'AppTypes.o',
354
- :source => 'AppTypes.cpp',
353
+ define_component 'AppTypeDetector/CBindings.o',
354
+ :source => 'AppTypeDetector/CBindings.cpp',
355
+ :category => :other
356
+ define_component 'WrapperRegistry/CBindings.o',
357
+ :source => 'WrapperRegistry/CBindings.cpp',
355
358
  :category => :other
356
359
 
357
360
  define_component 'vendor-modified/modp_b64.o',
@@ -380,6 +383,6 @@ end
380
383
 
381
384
  # A subset of the objects are linked to the Nginx binary. This defines
382
385
  # what those objects are.
383
- NGINX_LIBS_SELECTOR = [:base, 'WatchdogLauncher.o', 'AppTypes.o',
384
- 'Utils/CachedFileStat.o', 'JsonTools/CBindings.o',
386
+ NGINX_LIBS_SELECTOR = [:base, 'WatchdogLauncher.o', 'AppTypeDetector/CBindings.o',
387
+ 'WrapperRegistry/CBindings.o', 'Utils/CachedFileStat.o', 'JsonTools/CBindings.o',
385
388
  'FileTools/PathManipCBindings.o']
@@ -1,5 +1,5 @@
1
1
  # Phusion Passenger - https://www.phusionpassenger.com/
2
- # Copyright (c) 2014-2017 Phusion Holding B.V.
2
+ # Copyright (c) 2014-2018 Phusion Holding B.V.
3
3
  #
4
4
  # "Passenger", "Phusion Passenger" and "Union Station" are registered
5
5
  # trademarks of Phusion Holding B.V.
@@ -256,7 +256,11 @@ module PhusionPassenger
256
256
  end
257
257
 
258
258
  def real_download_support_file(site, name, output)
259
- url = "#{site[:url]}/#{VERSION_STRING}/#{name}"
259
+ if site[:url].include?('{{VERSION}}')
260
+ url = site[:url].gsub('{{VERSION}}', VERSION_STRING) + "/#{name}"
261
+ else
262
+ url = "#{site[:url]}/#{VERSION_STRING}/#{name}"
263
+ end
260
264
  options = {
261
265
  :cacert => site[:cacert],
262
266
  :logger => @logger,
@@ -1,5 +1,5 @@
1
1
  # Phusion Passenger - https://www.phusionpassenger.com/
2
- # Copyright (c) 2014-2017 Phusion Holding B.V.
2
+ # Copyright (c) 2014-2018 Phusion Holding B.V.
3
3
  #
4
4
  # "Passenger", "Phusion Passenger" and "Union Station" are registered
5
5
  # trademarks of Phusion Holding B.V.
@@ -260,7 +260,11 @@ module PhusionPassenger
260
260
  end
261
261
 
262
262
  def real_download_support_file(site, name, output)
263
- url = "#{site[:url]}/#{VERSION_STRING}/#{name}"
263
+ if site[:url].include?('{{VERSION}}')
264
+ url = site[:url].gsub('{{VERSION}}', VERSION_STRING) + "/#{name}"
265
+ else
266
+ url = "#{site[:url]}/#{VERSION_STRING}/#{name}"
267
+ end
264
268
  options = {
265
269
  :cacert => site[:cacert],
266
270
  :logger => @logger,
@@ -1,5 +1,5 @@
1
1
  # Phusion Passenger - https://www.phusionpassenger.com/
2
- # Copyright (c) 2010-2017 Phusion Holding B.V.
2
+ # Copyright (c) 2010-2018 Phusion Holding B.V.
3
3
  #
4
4
  # "Passenger", "Phusion Passenger" and "Union Station" are registered
5
5
  # trademarks of Phusion Holding B.V.
@@ -225,7 +225,7 @@ module PhusionPassenger
225
225
  end
226
226
 
227
227
  # Name of the user under which we are executing, or the id as fallback
228
- # N.B. loader_shared_helpers.rb has the same method
228
+ # N.B. loader_shared_helpers.rb has the same method
229
229
  def current_user_name_or_id
230
230
  require 'etc' if !defined?(Etc)
231
231
  begin
@@ -271,7 +271,11 @@ module PhusionPassenger
271
271
  end
272
272
 
273
273
  def real_download(site, name, output_dir, logger, options)
274
- url = "#{site[:url]}/#{VERSION_STRING}/#{name}"
274
+ if site[:url].include?('{{VERSION}}')
275
+ url = site[:url].gsub('{{VERSION}}', VERSION_STRING) + "/#{name}"
276
+ else
277
+ url = "#{site[:url]}/#{VERSION_STRING}/#{name}"
278
+ end
275
279
  filename = "#{output_dir}/#{name}"
276
280
  real_options = options.merge(
277
281
  :cacert => site[:cacert],
@@ -200,6 +200,21 @@ NGINX_CONFIGURATION_OPTIONS = [
200
200
  :context => [:main],
201
201
  :struct => 'NGX_HTTP_MAIN_CONF_OFFSET'
202
202
  },
203
+ {
204
+ :name => 'passenger_disable_anonymous_telemetry',
205
+ :scope => :global,
206
+ :type => :flag,
207
+ :default => false,
208
+ :context => [:main],
209
+ :struct => 'NGX_HTTP_MAIN_CONF_OFFSET'
210
+ },
211
+ {
212
+ :name => 'passenger_anonymous_telemetry_proxy',
213
+ :scope => :global,
214
+ :type => :string,
215
+ :context => [:main],
216
+ :struct => 'NGX_HTTP_MAIN_CONF_OFFSET'
217
+ },
203
218
  {
204
219
  :name => 'passenger_pre_start',
205
220
  :scope => :global,
@@ -522,7 +522,17 @@ module PhusionPassenger
522
522
  {
523
523
  :name => :security_update_check_proxy,
524
524
  :type_desc => 'NAME',
525
- :desc => "Use http/SOCKS proxy for the security update check"
525
+ :desc => "Use HTTP/SOCKS proxy for the security update check"
526
+ },
527
+ {
528
+ :name => :disable_anonymous_telemetry,
529
+ :type => :boolean,
530
+ :desc => "Disable anonymous telemetry collection"
531
+ },
532
+ {
533
+ :name => :anonymous_telemetry_proxy,
534
+ :type_desc => 'NAME',
535
+ :desc => "Use HTTP/SOCKS proxy for anonymous telemetry collection"
526
536
  },
527
537
  {
528
538
  :name => :engine,
@@ -1,6 +1,6 @@
1
1
  # encoding: utf-8
2
2
  # Phusion Passenger - https://www.phusionpassenger.com/
3
- # Copyright (c) 2014-2017 Phusion Holding B.V.
3
+ # Copyright (c) 2014-2018 Phusion Holding B.V.
4
4
  #
5
5
  # "Passenger", "Phusion Passenger" and "Union Station" are registered
6
6
  # trademarks of Phusion Holding B.V.
@@ -180,6 +180,8 @@ module PhusionPassenger
180
180
  add_param(command, :app_file_descriptor_ulimit, "--app-file-descriptor-ulimit")
181
181
  add_flag_param(command, :disable_security_update_check, "--disable-security-update-check")
182
182
  add_param(command, :security_update_check_proxy, "--security-update-check-proxy")
183
+ add_flag_param(command, :disable_anonymous_telemetry, "--disable-anonymous-telemetry")
184
+ add_param(command, :anonymous_telemetry_proxy, "--anonymous-telemetry-proxy")
183
185
 
184
186
  command << " #{Shellwords.escape(@apps[0][:root])}"
185
187
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: passenger
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.3.4
4
+ version: 5.3.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Phusion - http://www.phusion.nl/
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-07-30 00:00:00.000000000 Z
11
+ date: 2018-09-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -157,6 +157,7 @@ files:
157
157
  - dev/rack.test/public/asset.txt
158
158
  - dev/ruby_server.rb
159
159
  - dev/runner
160
+ - dev/show-latest-crashlog-dir
160
161
  - dev/vagrant/apache_default_site.conf
161
162
  - dev/vagrant/apache_passenger.conf
162
163
  - dev/vagrant/apache_passenger.load
@@ -357,6 +358,7 @@ files:
357
358
  - src/agent/Core/SpawningKit/SmartSpawner.h
358
359
  - src/agent/Core/SpawningKit/Spawner.h
359
360
  - src/agent/Core/SpawningKit/UserSwitchingRules.h
361
+ - src/agent/Core/TelemetryCollector.h
360
362
  - src/agent/ExecHelper/ExecHelperMain.cpp
361
363
  - src/agent/README.md
362
364
  - src/agent/Shared/ApiAccountUtils.h
@@ -412,8 +414,9 @@ files:
412
414
  - src/apache2_module/Utils.h
413
415
  - src/apache2_module/mod_passenger.c
414
416
  - src/cxx_supportlib/Algorithms/MovingAverage.h
415
- - src/cxx_supportlib/AppTypes.cpp
416
- - src/cxx_supportlib/AppTypes.h
417
+ - src/cxx_supportlib/AppTypeDetector/CBindings.cpp
418
+ - src/cxx_supportlib/AppTypeDetector/CBindings.h
419
+ - src/cxx_supportlib/AppTypeDetector/Detector.h
417
420
  - src/cxx_supportlib/BackgroundEventLoop.cpp
418
421
  - src/cxx_supportlib/BackgroundEventLoop.h
419
422
  - src/cxx_supportlib/ConfigKit/AsyncUtils.h
@@ -556,6 +559,11 @@ files:
556
559
  - src/cxx_supportlib/WatchdogLauncher.cpp
557
560
  - src/cxx_supportlib/WatchdogLauncher.h
558
561
  - src/cxx_supportlib/WebSocketCommandReverseServer.h
562
+ - src/cxx_supportlib/WrapperRegistry/CBindings.cpp
563
+ - src/cxx_supportlib/WrapperRegistry/CBindings.h
564
+ - src/cxx_supportlib/WrapperRegistry/Entry.h
565
+ - src/cxx_supportlib/WrapperRegistry/README.md
566
+ - src/cxx_supportlib/WrapperRegistry/Registry.h
559
567
  - src/cxx_supportlib/oxt/Readme.txt
560
568
  - src/cxx_supportlib/oxt/backtrace.hpp
561
569
  - src/cxx_supportlib/oxt/detail/backtrace_disabled.hpp