|
|
@ -508,22 +508,29 @@ bool get_dns_txt_records_base(const std::string& host, Callback<void, const char
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef _WIN32
|
|
|
|
#ifdef _WIN32
|
|
|
|
PDNS_RECORD pQueryResults;
|
|
|
|
try {
|
|
|
|
if (DnsQuery(host.c_str(), DNS_TYPE_TEXT, DNS_QUERY_STANDARD, NULL, &pQueryResults, NULL) != 0) {
|
|
|
|
PDNS_RECORD pQueryResults;
|
|
|
|
return false;
|
|
|
|
if (DnsQuery(host.c_str(), DNS_TYPE_TEXT, DNS_QUERY_STANDARD, NULL, &pQueryResults, NULL) != 0) {
|
|
|
|
}
|
|
|
|
return false;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
for (PDNS_RECORD p = pQueryResults; p; p = p->pNext) {
|
|
|
|
for (PDNS_RECORD p = pQueryResults; p; p = p->pNext) {
|
|
|
|
for (size_t j = 0; j < p->Data.TXT.dwStringCount; ++j) {
|
|
|
|
for (size_t j = 0; j < p->Data.TXT.dwStringCount; ++j) {
|
|
|
|
const char* s = p->Data.TXT.pStringArray[j];
|
|
|
|
const char* s = p->Data.TXT.pStringArray[j];
|
|
|
|
const size_t n = strlen(s);
|
|
|
|
if (s) {
|
|
|
|
if (n > 0) {
|
|
|
|
const size_t n = strlen(s);
|
|
|
|
callback(s, n);
|
|
|
|
if (n > 0) {
|
|
|
|
|
|
|
|
callback(s, n);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DnsRecordListFree(pQueryResults, DnsFreeRecordList);
|
|
|
|
DnsRecordListFree(pQueryResults, DnsFreeRecordList);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
catch (...) {
|
|
|
|
|
|
|
|
return false;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return true;
|
|
|
|
return true;
|
|
|
|
#elif defined(HAVE_RES_QUERY)
|
|
|
|
#elif defined(HAVE_RES_QUERY)
|
|
|
|