From dfe7f0e1b426695813ca658e93dd443385cf22e3 Mon Sep 17 00:00:00 2001 From: JimmyCYJ Date: Mon, 14 Jan 2019 16:31:23 -0800 Subject: [PATCH 1/3] Replace this with members in capture list. --- src/envoy/tcp/mixer/control_factory.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/envoy/tcp/mixer/control_factory.h b/src/envoy/tcp/mixer/control_factory.h index a33c08151c6..6733f67b7cb 100644 --- a/src/envoy/tcp/mixer/control_factory.h +++ b/src/envoy/tcp/mixer/control_factory.h @@ -41,11 +41,11 @@ class ControlFactory : public Logger::Loggable { Stats::Scope& scope = context.scope(); const LocalInfo::LocalInfo& local_info = context.localInfo(); - tls_->set([this, &random, &scope, + tls_->set([config=this->config_, &cm=this->cm_, uuid=this->uuid_, &stats=this->stats_, &random, &scope, &local_info](Event::Dispatcher& dispatcher) -> ThreadLocal::ThreadLocalObjectSharedPtr { return ThreadLocal::ThreadLocalObjectSharedPtr(new Control( - *config_, cm_, dispatcher, random, scope, stats_, uuid_, local_info)); + *config, cm, dispatcher, random, scope, stats, uuid, local_info)); }); } @@ -60,7 +60,7 @@ class ControlFactory : public Logger::Loggable { } // The config object - std::unique_ptr config_; + std::shared_ptr config_; // The cluster manager Upstream::ClusterManager& cm_; // the thread local slots From 0c3c65ee8be99ed10259fb476f55ef392e77723e Mon Sep 17 00:00:00 2001 From: JimmyCYJ Date: Mon, 14 Jan 2019 22:04:42 -0800 Subject: [PATCH 2/3] update --- src/envoy/http/jwt_auth/auth_store.h | 11 ++++++----- src/envoy/http/mixer/control_factory.h | 8 ++++---- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/envoy/http/jwt_auth/auth_store.h b/src/envoy/http/jwt_auth/auth_store.h index 2410929e4eb..b1e6056abe7 100644 --- a/src/envoy/http/jwt_auth/auth_store.h +++ b/src/envoy/http/jwt_auth/auth_store.h @@ -66,13 +66,14 @@ class JwtAuthStoreFactory : public Logger::Loggable { JwtAuthStoreFactory(const ::istio::envoy::config::filter::http::jwt_auth:: v2alpha1::JwtAuthentication& config, Server::Configuration::FactoryContext& context) - : config_(config), tls_(context.threadLocal().allocateSlot()) { + : config_(std::make_shared<::istio::envoy::config::filter::http::jwt_auth::v2alpha1::JwtAuthentication>(config)), + tls_(context.threadLocal().allocateSlot()) { tls_->set( - [this](Event::Dispatcher&) -> ThreadLocal::ThreadLocalObjectSharedPtr { - return std::make_shared(config_); + [config=this->config_](Event::Dispatcher&) -> ThreadLocal::ThreadLocalObjectSharedPtr { + return std::make_shared(*config); }); ENVOY_LOG(debug, "Loaded JwtAuthConfig: {}", - MessageUtil::getJsonStringFromMessage(config_, true)); + MessageUtil::getJsonStringFromMessage(*config_, true)); } // Get per-thread auth store object. @@ -80,7 +81,7 @@ class JwtAuthStoreFactory : public Logger::Loggable { private: // The auth config. - ::istio::envoy::config::filter::http::jwt_auth::v2alpha1::JwtAuthentication + std::shared_ptr<::istio::envoy::config::filter::http::jwt_auth::v2alpha1::JwtAuthentication> config_; // Thread local slot to store per-thread auth store ThreadLocal::SlotPtr tls_; diff --git a/src/envoy/http/mixer/control_factory.h b/src/envoy/http/mixer/control_factory.h index 83ff0e84ee9..c82dae45afe 100644 --- a/src/envoy/http/mixer/control_factory.h +++ b/src/envoy/http/mixer/control_factory.h @@ -46,10 +46,10 @@ class ControlFactory : public Logger::Loggable { const LocalInfo::LocalInfo& local_info = context.localInfo(); tls_->set( - [this, &cm, &random, &scope, &local_info](Event::Dispatcher& dispatcher) + [config=this->config_, &stats=this->stats_, &cm, &random, &scope, &local_info](Event::Dispatcher& dispatcher) -> ThreadLocal::ThreadLocalObjectSharedPtr { - return std::make_shared(*config_, cm, dispatcher, random, - scope, stats_, local_info); + return std::make_shared(*config, cm, dispatcher, random, + scope, stats, local_info); }); } @@ -57,7 +57,7 @@ class ControlFactory : public Logger::Loggable { private: // Own the config object. - std::unique_ptr config_; + std::shared_ptr config_; // Thread local slot. ThreadLocal::SlotPtr tls_; // This stats object. From f8f75637f3821b85d5a8b37b986693522ed9ae71 Mon Sep 17 00:00:00 2001 From: JimmyCYJ Date: Mon, 14 Jan 2019 22:06:28 -0800 Subject: [PATCH 3/3] fix format --- src/envoy/http/jwt_auth/auth_store.h | 17 ++++++++++------- src/envoy/http/mixer/control_factory.h | 12 ++++++------ src/envoy/tcp/mixer/control_factory.h | 3 ++- 3 files changed, 18 insertions(+), 14 deletions(-) diff --git a/src/envoy/http/jwt_auth/auth_store.h b/src/envoy/http/jwt_auth/auth_store.h index b1e6056abe7..3bb66315882 100644 --- a/src/envoy/http/jwt_auth/auth_store.h +++ b/src/envoy/http/jwt_auth/auth_store.h @@ -66,12 +66,14 @@ class JwtAuthStoreFactory : public Logger::Loggable { JwtAuthStoreFactory(const ::istio::envoy::config::filter::http::jwt_auth:: v2alpha1::JwtAuthentication& config, Server::Configuration::FactoryContext& context) - : config_(std::make_shared<::istio::envoy::config::filter::http::jwt_auth::v2alpha1::JwtAuthentication>(config)), - tls_(context.threadLocal().allocateSlot()) { - tls_->set( - [config=this->config_](Event::Dispatcher&) -> ThreadLocal::ThreadLocalObjectSharedPtr { - return std::make_shared(*config); - }); + : config_( + std::make_shared<::istio::envoy::config::filter::http::jwt_auth:: + v2alpha1::JwtAuthentication>(config)), + tls_(context.threadLocal().allocateSlot()) { + tls_->set([config = this->config_](Event::Dispatcher&) + -> ThreadLocal::ThreadLocalObjectSharedPtr { + return std::make_shared(*config); + }); ENVOY_LOG(debug, "Loaded JwtAuthConfig: {}", MessageUtil::getJsonStringFromMessage(*config_, true)); } @@ -81,7 +83,8 @@ class JwtAuthStoreFactory : public Logger::Loggable { private: // The auth config. - std::shared_ptr<::istio::envoy::config::filter::http::jwt_auth::v2alpha1::JwtAuthentication> + std::shared_ptr<::istio::envoy::config::filter::http::jwt_auth::v2alpha1:: + JwtAuthentication> config_; // Thread local slot to store per-thread auth store ThreadLocal::SlotPtr tls_; diff --git a/src/envoy/http/mixer/control_factory.h b/src/envoy/http/mixer/control_factory.h index c82dae45afe..04b3e3d09ec 100644 --- a/src/envoy/http/mixer/control_factory.h +++ b/src/envoy/http/mixer/control_factory.h @@ -45,12 +45,12 @@ class ControlFactory : public Logger::Loggable { Stats::Scope& scope = context.scope(); const LocalInfo::LocalInfo& local_info = context.localInfo(); - tls_->set( - [config=this->config_, &stats=this->stats_, &cm, &random, &scope, &local_info](Event::Dispatcher& dispatcher) - -> ThreadLocal::ThreadLocalObjectSharedPtr { - return std::make_shared(*config, cm, dispatcher, random, - scope, stats, local_info); - }); + tls_->set([config = this->config_, &stats = this->stats_, &cm, &random, + &scope, &local_info](Event::Dispatcher& dispatcher) + -> ThreadLocal::ThreadLocalObjectSharedPtr { + return std::make_shared(*config, cm, dispatcher, random, scope, + stats, local_info); + }); } Control& control() { return tls_->getTyped(); } diff --git a/src/envoy/tcp/mixer/control_factory.h b/src/envoy/tcp/mixer/control_factory.h index 6733f67b7cb..f5ba66dfec3 100644 --- a/src/envoy/tcp/mixer/control_factory.h +++ b/src/envoy/tcp/mixer/control_factory.h @@ -41,7 +41,8 @@ class ControlFactory : public Logger::Loggable { Stats::Scope& scope = context.scope(); const LocalInfo::LocalInfo& local_info = context.localInfo(); - tls_->set([config=this->config_, &cm=this->cm_, uuid=this->uuid_, &stats=this->stats_, &random, &scope, + tls_->set([config = this->config_, &cm = this->cm_, uuid = this->uuid_, + &stats = this->stats_, &random, &scope, &local_info](Event::Dispatcher& dispatcher) -> ThreadLocal::ThreadLocalObjectSharedPtr { return ThreadLocal::ThreadLocalObjectSharedPtr(new Control(