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() {