diff --git a/WORKSPACE b/WORKSPACE index 117ba62d9f..773ea431ad 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -39,6 +39,4 @@ envoy_mobile_toolchains() # Note: proguard is failing for API 30+ android_sdk_repository(name = "androidsdk", api_level = 29) - -# Fixing to API 24. Need to lower to API 21: https://github.com/lyft/envoy-mobile/issues/936 -android_ndk_repository(name = "androidndk", api_level = 24) +android_ndk_repository(name = "androidndk", api_level = 21) diff --git a/envoy b/envoy index ff40a02a83..14bc8b53cd 160000 --- a/envoy +++ b/envoy @@ -1 +1 @@ -Subproject commit ff40a02a838d123f4bf018858c61c983e1c5cce9 +Subproject commit 14bc8b53cdc07f92d1f1f6198bbc59b37771f87e diff --git a/envoy_build_config/BUILD b/envoy_build_config/BUILD index 7f661540a8..124c19724e 100644 --- a/envoy_build_config/BUILD +++ b/envoy_build_config/BUILD @@ -22,5 +22,6 @@ envoy_cc_library( "@envoy//source/extensions/filters/network/http_connection_manager:config", "@envoy//source/extensions/stat_sinks/metrics_service:config", "@envoy//source/extensions/transport_sockets/tls:config", + "@envoy//source/extensions/upstreams/http/generic:config", ], ) diff --git a/envoy_build_config/extension_registry.cc b/envoy_build_config/extension_registry.cc index 686ae8e545..522ddddfa3 100644 --- a/envoy_build_config/extension_registry.cc +++ b/envoy_build_config/extension_registry.cc @@ -15,6 +15,7 @@ void ExtensionRegistry::registerFactories() { forceRegisterHttpConnectionManagerFilterConfigFactory(); Envoy::Extensions::StatSinks::MetricsService::forceRegisterMetricsServiceSinkFactory(); Envoy::Extensions::TransportSockets::Tls::forceRegisterUpstreamSslSocketFactory(); + Envoy::Extensions::Upstreams::Http::Generic::forceRegisterGenericGenericConnPoolFactory(); Envoy::Upstream::forceRegisterLogicalDnsClusterFactory(); // TODO: add a "force initialize" function to the upstream code, or clean up the upstream code diff --git a/envoy_build_config/extension_registry.h b/envoy_build_config/extension_registry.h index a6bd42ecaa..9397bee1fd 100644 --- a/envoy_build_config/extension_registry.h +++ b/envoy_build_config/extension_registry.h @@ -10,6 +10,7 @@ #include "extensions/filters/network/http_connection_manager/config.h" #include "extensions/stat_sinks/metrics_service/config.h" #include "extensions/transport_sockets/tls/config.h" +#include "extensions/upstreams/http/generic/config.h" namespace Envoy { class ExtensionRegistry { diff --git a/envoy_build_config/extensions_build_config.bzl b/envoy_build_config/extensions_build_config.bzl index 064759939f..95e6f59388 100644 --- a/envoy_build_config/extensions_build_config.bzl +++ b/envoy_build_config/extensions_build_config.bzl @@ -1,9 +1,10 @@ EXTENSIONS = { - "envoy.clusters.dynamic_forward_proxy": "//source/extensions/clusters/dynamic_forward_proxy:cluster", - "envoy.filters.http.dynamic_forward_proxy": "//source/extensions/filters/http/dynamic_forward_proxy:config", - "envoy.filters.http.router": "//source/extensions/filters/http/router:config", - "envoy.filters.network.http_connection_manager": "//source/extensions/filters/network/http_connection_manager:config", - "envoy.stat_sinks.metrics_service": "//source/extensions/stat_sinks/metrics_service:config", - "envoy.transport_sockets.tls": "//source/extensions/transport_sockets/tls:config", + "envoy.clusters.dynamic_forward_proxy": "//source/extensions/clusters/dynamic_forward_proxy:cluster", + "envoy.filters.connection_pools.http.generic": "//source/extensions/upstreams/http/generic:config", + "envoy.filters.http.dynamic_forward_proxy": "//source/extensions/filters/http/dynamic_forward_proxy:config", + "envoy.filters.http.router": "//source/extensions/filters/http/router:config", + "envoy.filters.network.http_connection_manager": "//source/extensions/filters/network/http_connection_manager:config", + "envoy.stat_sinks.metrics_service": "//source/extensions/stat_sinks/metrics_service:config", + "envoy.transport_sockets.tls": "//source/extensions/transport_sockets/tls:config", } WINDOWS_EXTENSIONS = {} diff --git a/library/common/BUILD b/library/common/BUILD index 0b8c39347f..5a6efe378b 100644 --- a/library/common/BUILD +++ b/library/common/BUILD @@ -33,6 +33,7 @@ envoy_cc_library( hdrs = ["envoy_mobile_main_common.h"], repository = "@envoy", deps = [ + "@envoy//source/common/common:random_generator_lib", "@envoy//source/common/runtime:runtime_lib", "@envoy//source/exe:envoy_common_lib", "@envoy//source/exe:envoy_main_common_lib", diff --git a/library/common/envoy_mobile_main_common.cc b/library/common/envoy_mobile_main_common.cc index 55b8233de2..2cc5520665 100644 --- a/library/common/envoy_mobile_main_common.cc +++ b/library/common/envoy_mobile_main_common.cc @@ -1,5 +1,6 @@ #include "library/common/envoy_mobile_main_common.h" +#include "common/common/random_generator.h" #include "common/runtime/runtime_impl.h" namespace Envoy { @@ -7,7 +8,7 @@ namespace Envoy { MobileMainCommon::MobileMainCommon(int argc, const char* const* argv) : options_(argc, argv, &MainCommon::hotRestartVersion, spdlog::level::info), base_(options_, real_time_system_, default_listener_hooks_, prod_component_factory_, - std::make_unique(), platform_impl_.threadFactory(), + std::make_unique(), platform_impl_.threadFactory(), platform_impl_.fileSystem(), nullptr) { // Disabling signal handling in the options makes it so that the server's event dispatcher _does // not_ listen for termination signals such as SIGTERM, SIGINT, etc diff --git a/library/common/http/dispatcher.h b/library/common/http/dispatcher.h index 31aba23116..cb9c758e0b 100644 --- a/library/common/http/dispatcher.h +++ b/library/common/http/dispatcher.h @@ -168,6 +168,8 @@ class Dispatcher : public Logger::Loggable { // TODO: https://github.com/lyft/envoy-mobile/issues/825 void readDisable(bool /*disable*/) override {} uint32_t bufferLimit() override { return 65000; } + // Not applicable + void setFlushTimeout(std::chrono::milliseconds) override {} void closeLocal(bool end_stream); diff --git a/library/common/http/header_utility.cc b/library/common/http/header_utility.cc index 262c18c739..32e284876e 100644 --- a/library/common/http/header_utility.cc +++ b/library/common/http/header_utility.cc @@ -11,7 +11,7 @@ std::string convertToString(envoy_data s) { } RequestHeaderMapPtr toRequestHeaders(envoy_headers headers) { - RequestHeaderMapPtr transformed_headers = std::make_unique(); + RequestHeaderMapPtr transformed_headers = RequestHeaderMapImpl::create(); for (envoy_header_size_t i = 0; i < headers.length; i++) { transformed_headers->addCopy(LowerCaseString(convertToString(headers.headers[i].key)), convertToString(headers.headers[i].value)); @@ -22,7 +22,7 @@ RequestHeaderMapPtr toRequestHeaders(envoy_headers headers) { } RequestTrailerMapPtr toRequestTrailers(envoy_headers trailers) { - RequestTrailerMapPtr transformed_trailers = std::make_unique(); + RequestTrailerMapPtr transformed_trailers = RequestTrailerMapImpl::create(); for (envoy_header_size_t i = 0; i < trailers.length; i++) { transformed_trailers->addCopy(LowerCaseString(convertToString(trailers.headers[i].key)), convertToString(trailers.headers[i].value));