summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Swiften/IDN/PlatformIDNConverter.cpp10
-rw-r--r--Swiften/IDN/PlatformIDNConverter.h6
-rw-r--r--Swiften/Network/BoostNetworkFactories.cpp7
-rw-r--r--Swiften/Network/BoostNetworkFactories.h8
4 files changed, 17 insertions, 14 deletions
diff --git a/Swiften/IDN/PlatformIDNConverter.cpp b/Swiften/IDN/PlatformIDNConverter.cpp
index c6104fb..3564bb9 100644
--- a/Swiften/IDN/PlatformIDNConverter.cpp
+++ b/Swiften/IDN/PlatformIDNConverter.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (c) 2012-2018 Isode Limited. 2 * Copyright (c) 2012-2019 Isode Limited.
3 * All rights reserved. 3 * All rights reserved.
4 * See the COPYING file for more information. 4 * See the COPYING file for more information.
5 */ 5 */
@@ -13,16 +13,16 @@
13 13
14namespace Swift { 14namespace Swift {
15 15
16IDNConverter* PlatformIDNConverter::create() { 16std::unique_ptr<IDNConverter> PlatformIDNConverter::create() {
17#if defined(HAVE_LIBIDN) 17#if defined(HAVE_LIBIDN)
18 return new LibIDNConverter(); 18 return std::make_unique<LibIDNConverter>();
19#elif defined(HAVE_ICU) 19#elif defined(HAVE_ICU)
20 return new ICUConverter(); 20 return std::make_unique<ICUConverter>();
21#else 21#else
22#if defined(NEED_IDN) 22#if defined(NEED_IDN)
23#error "No IDN implementation" 23#error "No IDN implementation"
24#else 24#else
25 return nullptr; 25 return {};
26#endif 26#endif
27#endif 27#endif
28} 28}
diff --git a/Swiften/IDN/PlatformIDNConverter.h b/Swiften/IDN/PlatformIDNConverter.h
index 704f7a7..3b9a275 100644
--- a/Swiften/IDN/PlatformIDNConverter.h
+++ b/Swiften/IDN/PlatformIDNConverter.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (c) 2012 Isode Limited. 2 * Copyright (c) 2012-2019 Isode Limited.
3 * All rights reserved. 3 * All rights reserved.
4 * See the COPYING file for more information. 4 * See the COPYING file for more information.
5 */ 5 */
@@ -8,10 +8,12 @@
8 8
9#include <Swiften/Base/API.h> 9#include <Swiften/Base/API.h>
10 10
11#include <memory>
12
11namespace Swift { 13namespace Swift {
12 class IDNConverter; 14 class IDNConverter;
13 15
14 namespace PlatformIDNConverter { 16 namespace PlatformIDNConverter {
15 SWIFTEN_API IDNConverter* create(); 17 SWIFTEN_API std::unique_ptr<IDNConverter> create();
16 } 18 }
17} 19}
diff --git a/Swiften/Network/BoostNetworkFactories.cpp b/Swiften/Network/BoostNetworkFactories.cpp
index 9fef73c..13a7960 100644
--- a/Swiften/Network/BoostNetworkFactories.cpp
+++ b/Swiften/Network/BoostNetworkFactories.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (c) 2010-2016 Isode Limited. 2 * Copyright (c) 2010-2019 Isode Limited.
3 * All rights reserved. 3 * All rights reserved.
4 * See the COPYING file for more information. 4 * See the COPYING file for more information.
5 */ 5 */
@@ -44,9 +44,9 @@ BoostNetworkFactories::BoostNetworkFactories(EventLoop* eventLoop, std::shared_p
44 idnConverter = PlatformIDNConverter::create(); 44 idnConverter = PlatformIDNConverter::create();
45#ifdef USE_UNBOUND 45#ifdef USE_UNBOUND
46 // TODO: What to do about idnConverter. 46 // TODO: What to do about idnConverter.
47 domainNameResolver = new UnboundDomainNameResolver(idnConverter, ioServiceThread.getIOService(), eventLoop); 47 domainNameResolver = new UnboundDomainNameResolver(idnConverter.get(), ioServiceThread.getIOService(), eventLoop);
48#else 48#else
49 domainNameResolver = new PlatformDomainNameResolver(idnConverter, eventLoop); 49 domainNameResolver = new PlatformDomainNameResolver(idnConverter.get(), eventLoop);
50#endif 50#endif
51 cryptoProvider = PlatformCryptoProvider::create(); 51 cryptoProvider = PlatformCryptoProvider::create();
52} 52}
@@ -54,7 +54,6 @@ BoostNetworkFactories::BoostNetworkFactories(EventLoop* eventLoop, std::shared_p
54BoostNetworkFactories::~BoostNetworkFactories() { 54BoostNetworkFactories::~BoostNetworkFactories() {
55 delete cryptoProvider; 55 delete cryptoProvider;
56 delete domainNameResolver; 56 delete domainNameResolver;
57 delete idnConverter;
58 delete proxyProvider; 57 delete proxyProvider;
59 delete tlsFactories; 58 delete tlsFactories;
60 delete xmlParserFactory; 59 delete xmlParserFactory;
diff --git a/Swiften/Network/BoostNetworkFactories.h b/Swiften/Network/BoostNetworkFactories.h
index 2bf8d33..33a3584 100644
--- a/Swiften/Network/BoostNetworkFactories.h
+++ b/Swiften/Network/BoostNetworkFactories.h
@@ -1,11 +1,13 @@
1/* 1/*
2 * Copyright (c) 2010-2017 Isode Limited. 2 * Copyright (c) 2010-2019 Isode Limited.
3 * All rights reserved. 3 * All rights reserved.
4 * See the COPYING file for more information. 4 * See the COPYING file for more information.
5 */ 5 */
6 6
7#pragma once 7#pragma once
8 8
9#include <memory>
10
9#include <Swiften/Base/API.h> 11#include <Swiften/Base/API.h>
10#include <Swiften/Network/BoostIOServiceThread.h> 12#include <Swiften/Network/BoostIOServiceThread.h>
11#include <Swiften/Network/NetworkFactories.h> 13#include <Swiften/Network/NetworkFactories.h>
@@ -68,7 +70,7 @@ namespace Swift {
68 } 70 }
69 71
70 virtual IDNConverter* getIDNConverter() const override { 72 virtual IDNConverter* getIDNConverter() const override {
71 return idnConverter; 73 return idnConverter.get();
72 } 74 }
73 75
74 virtual CryptoProvider* getCryptoProvider() const override { 76 virtual CryptoProvider* getCryptoProvider() const override {
@@ -87,7 +89,7 @@ namespace Swift {
87 PlatformTLSFactories* tlsFactories; 89 PlatformTLSFactories* tlsFactories;
88 ProxyProvider* proxyProvider; 90 ProxyProvider* proxyProvider;
89 EventLoop* eventLoop; 91 EventLoop* eventLoop;
90 IDNConverter* idnConverter; 92 std::unique_ptr<IDNConverter> idnConverter;
91 CryptoProvider* cryptoProvider; 93 CryptoProvider* cryptoProvider;
92 }; 94 };
93} 95}