From fee8424938a6403bdd12d568037a3305cfcf5341 Mon Sep 17 00:00:00 2001 From: warptangent Date: Tue, 19 May 2015 02:33:30 -0700 Subject: Allow name@domain.tld for OpenAlias lookups Based on tewinget's update. Make OpenAlias address format independent of existing DNS functions. Add tests. Test: make debug-test cd build/debug/tests/unit_tests # test that regular DNS functions work, including IPv4 lookups. # also test function that converts OpenAlias address format make && ./unit_tests --gtest_filter=DNSResolver* # test that OpenAlias addresses like donate@getmonero.org work from # wallet tools make && ./unit_tests --gtest_filter=AddressFromURL.Success --- src/common/dns_utils.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'src/common/dns_utils.cpp') diff --git a/src/common/dns_utils.cpp b/src/common/dns_utils.cpp index ea7f1078b..98e3d0ea6 100644 --- a/src/common/dns_utils.cpp +++ b/src/common/dns_utils.cpp @@ -304,6 +304,19 @@ std::vector DNSResolver::get_txt_record(const std::string& url, boo return records; } +std::string DNSResolver::get_dns_format_from_oa_address(const std::string& oa_addr) +{ + std::string addr(oa_addr); + auto first_at = addr.find("@"); + if (first_at == std::string::npos) + return addr; + + // convert name@domain.tld to name.domain.tld + addr.replace(first_at, 1, "."); + + return addr; +} + DNSResolver& DNSResolver::instance() { static DNSResolver* staticInstance = NULL; -- cgit v1.2.3