From 5990344cb07858b4cd104eacb8d1b9bb38fa6ff7 Mon Sep 17 00:00:00 2001 From: moneromooo-monero Date: Thu, 27 Aug 2015 21:06:09 +0100 Subject: dns: make ctor private This ensures one can't instanciate a DNSResolver object by mistake, but uses the singleton. A separate create static function is added for cases where a new object is explicitely needed. --- src/common/dns_utils.cpp | 5 +++++ src/common/dns_utils.h | 11 ++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/common/dns_utils.cpp b/src/common/dns_utils.cpp index e442d3d81..8b7c9b4d9 100644 --- a/src/common/dns_utils.cpp +++ b/src/common/dns_utils.cpp @@ -334,6 +334,11 @@ DNSResolver& DNSResolver::instance() return *staticInstance; } +DNSResolver DNSResolver::create() +{ + return DNSResolver(); +} + bool DNSResolver::check_address_syntax(const char *addr) { // if string doesn't contain a dot, we won't consider it a url for now. diff --git a/src/common/dns_utils.h b/src/common/dns_utils.h index 1e726c80c..50e8001f1 100644 --- a/src/common/dns_utils.h +++ b/src/common/dns_utils.h @@ -49,7 +49,7 @@ struct DNSResolverData; */ class DNSResolver { -public: +private: /** * @brief Constructs an instance of DNSResolver @@ -58,6 +58,8 @@ public: */ DNSResolver(); +public: + /** * @brief takes care of freeing C pointers and such */ @@ -119,6 +121,13 @@ public: */ static DNSResolver& instance(); + /** + * @brief Gets a new instance of DNSResolver + * + * @return returns a pointer to the new object + */ + static DNSResolver create(); + private: /** -- cgit v1.2.3