static fqdncache_entry *fqdncacheCreateEntry(const char *name);
static void fqdncacheCallback(fqdncache_entry *, int wait);
static fqdncache_entry *fqdncache_get(const char *);
-static FQDNH dummy_handler;
static int fqdncacheExpiredEntry(const fqdncache_entry *);
static void fqdncacheLockEntry(fqdncache_entry * f);
static void fqdncacheUnlockEntry(fqdncache_entry * f);
fqdncache_entry *f = NULL;
char name[MAX_IPSTRLEN];
generic_cbdata *c;
- assert(handler);
addr.NtoA(name,MAX_IPSTRLEN);
debugs(35, 4, "fqdncache_nbgethostbyaddr: Name '" << name << "'.");
FqdncacheStats.requests++;
if (name[0] == '\0') {
debugs(35, 4, "fqdncache_nbgethostbyaddr: Invalid name!");
const DnsLookupDetails details("Invalid hostname", -1); // error, no lookup
- handler(NULL, details, handlerData);
+ if (handler)
+ handler(NULL, details, handlerData);
return;
}
FqdncacheStats.misses++;
if (flags & FQDN_LOOKUP_IF_MISS) {
- fqdncache_nbgethostbyaddr(addr, dummy_handler, NULL);
+ fqdncache_nbgethostbyaddr(addr, NULL, NULL);
}
return NULL;
}
}
-/// \ingroup FQDNCacheInternal
-static void
-dummy_handler(const char *, const DnsLookupDetails &, void *)
-{
- return;
-}
-
/// \ingroup FQDNCacheAPI
const char *
fqdnFromAddr(const Ip::Address &addr)
ipcache_entry *i = NULL;
const ipcache_addrs *addrs = NULL;
generic_cbdata *c;
- assert(handler != NULL);
debugs(14, 4, "ipcache_nbgethostbyname: Name '" << name << "'.");
IpcacheStats.requests++;
debugs(14, 4, "ipcache_nbgethostbyname: Invalid name!");
IpcacheStats.invalid++;
const DnsLookupDetails details("Invalid hostname", -1); // error, no lookup
- handler(NULL, details, handlerData);
+ if (handler)
+ handler(NULL, details, handlerData);
return;
}
debugs(14, 4, "ipcache_nbgethostbyname: BYPASS for '" << name << "' (already numeric)");
IpcacheStats.numeric_hits++;
const DnsLookupDetails details(NULL, -1); // no error, no lookup
- handler(addrs, details, handlerData);
+ if (handler)
+ handler(addrs, details, handlerData);
return;
}