mirror of
https://github.com/zeek/zeek.git
synced 2025-10-11 02:58:20 +00:00
Make sure lookup_hostname_txt isn't checking lookup_hostname's cache for answers.
This commit is contained in:
parent
d9803a0d9d
commit
a1c0b853fe
1 changed files with 31 additions and 15 deletions
|
@ -1055,21 +1055,38 @@ void DNS_Mgr::AsyncLookupName(string name, LookupCallback* callback, bool is_txt
|
|||
}
|
||||
|
||||
AsyncRequest* req = 0;
|
||||
|
||||
// Have we already a request waiting for this host?
|
||||
AsyncRequestNameMap::iterator i = asyncs_names.find(name);
|
||||
if ( i != asyncs_names.end() )
|
||||
req = i->second;
|
||||
if ( is_txt )
|
||||
{
|
||||
// Have we already a request waiting for this host?
|
||||
AsyncRequestTextMap::iterator i = asyncs_texts.find(name);
|
||||
if ( i != asyncs_texts.end() )
|
||||
req = i->second;
|
||||
else
|
||||
{
|
||||
// A new one.
|
||||
req = new AsyncRequest;
|
||||
req->name = name;
|
||||
req->is_txt = is_txt;
|
||||
asyncs_queued.push_back(req);
|
||||
asyncs_texts.insert(AsyncRequestTextMap::value_type(name, req));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// A new one.
|
||||
req = new AsyncRequest;
|
||||
req->name = name;
|
||||
req->is_txt = is_txt;
|
||||
asyncs_queued.push_back(req);
|
||||
asyncs_names.insert(AsyncRequestNameMap::value_type(name, req));
|
||||
// Have we already a request waiting for this host?
|
||||
AsyncRequestNameMap::iterator i = asyncs_names.find(name);
|
||||
if ( i != asyncs_names.end() )
|
||||
req = i->second;
|
||||
else
|
||||
{
|
||||
// A new one.
|
||||
req = new AsyncRequest;
|
||||
req->name = name;
|
||||
req->is_txt = is_txt;
|
||||
asyncs_queued.push_back(req);
|
||||
asyncs_names.insert(AsyncRequestNameMap::value_type(name, req));
|
||||
}
|
||||
}
|
||||
|
||||
req->callbacks.push_back(callback);
|
||||
|
||||
IssueAsyncRequests();
|
||||
|
@ -1170,7 +1187,6 @@ void DNS_Mgr::CheckAsyncTextRequest(const char* host, bool timeout)
|
|||
// Note that this code is a mirror of that for CheckAsyncAddrRequest.
|
||||
|
||||
AsyncRequestTextMap::iterator i = asyncs_texts.find(host);
|
||||
|
||||
if ( i != asyncs_texts.end() )
|
||||
{
|
||||
const char* name = LookupTextInCache(host);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue