mirror of
https://github.com/monero-project/monero.git
synced 2025-08-19 07:48:02 -04:00
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
This commit is contained in:
parent
a0fe18f63a
commit
fee8424938
5 changed files with 43 additions and 1 deletions
|
@ -304,6 +304,19 @@ std::vector<std::string> 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;
|
||||
|
|
|
@ -100,6 +100,18 @@ public:
|
|||
// TODO: modify this to accomodate DNSSEC
|
||||
std::vector<std::string> get_txt_record(const std::string& url, bool& dnssec_available, bool& dnssec_valid);
|
||||
|
||||
/**
|
||||
* @brief Gets a DNS address from OpenAlias format
|
||||
*
|
||||
* If the address looks good, but contains one @ symbol, replace that with a .
|
||||
* e.g. donate@getmonero.org becomes donate.getmonero.org
|
||||
*
|
||||
* @param oa_addr OpenAlias address
|
||||
*
|
||||
* @return dns_addr DNS address
|
||||
*/
|
||||
std::string get_dns_format_from_oa_address(const std::string& oa_addr);
|
||||
|
||||
/**
|
||||
* @brief Gets the singleton instance of DNSResolver
|
||||
*
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue