From 7faa96b809f498b1e5465c3a5ce55e935a6a743e Mon Sep 17 00:00:00 2001 From: Sergey Abramchuk Date: Thu, 26 Sep 2019 13:17:06 +0300 Subject: [PATCH] OpenVPNClient should be responsible for copying of config --- Sources/OpenVPNAdapter/OpenVPNAdapter.mm | 3 +-- Sources/OpenVPNAdapter/OpenVPNClient.h | 2 +- Sources/OpenVPNAdapter/OpenVPNClient.mm | 6 +++--- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/Sources/OpenVPNAdapter/OpenVPNAdapter.mm b/Sources/OpenVPNAdapter/OpenVPNAdapter.mm index e49cdd8..83fd534 100644 --- a/Sources/OpenVPNAdapter/OpenVPNAdapter.mm +++ b/Sources/OpenVPNAdapter/OpenVPNAdapter.mm @@ -48,8 +48,7 @@ #pragma mark - OpenVPNClient Lifecycle - (OpenVPNProperties *)applyConfiguration:(OpenVPNConfiguration *)configuration error:(NSError * __autoreleasing *)error { - ClientAPI::Config *config = new ClientAPI::Config(configuration.config); - ClientAPI::EvalConfig eval = self.vpnClient->apply_config(config); + ClientAPI::EvalConfig eval = self.vpnClient->apply_config(configuration.config); if (eval.error) { if (error) { diff --git a/Sources/OpenVPNAdapter/OpenVPNClient.h b/Sources/OpenVPNAdapter/OpenVPNClient.h index 999b38f..7f539ab 100644 --- a/Sources/OpenVPNAdapter/OpenVPNClient.h +++ b/Sources/OpenVPNAdapter/OpenVPNClient.h @@ -63,7 +63,7 @@ public: OpenVPNClient(id _Nonnull delegate); ~OpenVPNClient(); - ClientAPI::EvalConfig apply_config(ClientAPI::Config* _Nonnull config); + ClientAPI::EvalConfig apply_config(const ClientAPI::Config& config); bool tun_builder_new() override; diff --git a/Sources/OpenVPNAdapter/OpenVPNClient.mm b/Sources/OpenVPNAdapter/OpenVPNClient.mm index 8843bdc..11b35c3 100644 --- a/Sources/OpenVPNAdapter/OpenVPNClient.mm +++ b/Sources/OpenVPNAdapter/OpenVPNClient.mm @@ -24,11 +24,11 @@ OpenVPNClient::~OpenVPNClient() { if (this->config != nullptr) { delete this->config; } } -ClientAPI::EvalConfig OpenVPNClient::apply_config(ClientAPI::Config* _Nonnull config) { +ClientAPI::EvalConfig OpenVPNClient::apply_config(const ClientAPI::Config& config) { if (this->config != nullptr) { delete this->config; } - this->config = config; + this->config = new ClientAPI::Config(config); - return eval_config(*config); + return eval_config(config); } bool OpenVPNClient::tun_builder_new() {