flag = F_IPV6;
#endif
- for (intr = daemon->int_names; intr; intr = intr->next)
- if (hostname_isequal(name, intr->name))
- {
- struct addrlist *addrlist;
-
- addrlist = intr->addr4;
+ if (flag)
+ for (intr = daemon->int_names; intr; intr = intr->next)
+ if (hostname_isequal(name, intr->name))
+ {
+ struct addrlist *addrlist;
+
+ addrlist = intr->addr4;
#ifdef HAVE_IPV6
- if (qtype == T_AAAA)
- addrlist = intr->addr6;
+ if (qtype == T_AAAA)
+ addrlist = intr->addr6;
#endif
- nxdomain = 0;
-
- for (; addrlist; addrlist = addrlist->next)
- if (local_query || filter_constructed_dhcp(zone, flag, &addrlist->addr))
- {
- found = 1;
- log_query(F_FORWARD | F_CONFIG | flag, name, &addrlist->addr, NULL);
- if (add_resource_record(header, limit, &trunc, nameoffset, &ansp,
- daemon->auth_ttl, NULL, qtype, C_IN,
- qtype == T_A ? "4" : "6", &addrlist->addr))
- anscount++;
- }
- }
+ nxdomain = 0;
+
+ for (; addrlist; addrlist = addrlist->next)
+ if (local_query || filter_constructed_dhcp(zone, flag, &addrlist->addr))
+ {
+ found = 1;
+ log_query(F_FORWARD | F_CONFIG | flag, name, &addrlist->addr, NULL);
+ if (add_resource_record(header, limit, &trunc, nameoffset, &ansp,
+ daemon->auth_ttl, NULL, qtype, C_IN,
+ qtype == T_A ? "4" : "6", &addrlist->addr))
+ anscount++;
+ }
+ }
for (a = daemon->cnames; a; a = a->next)
if (hostname_isequal(name, a->alias) )
if (intr)
{
struct addrlist *addrlist;
+ int gotit = 0;
enumerate_interfaces(0);
- addrlist = intr->addr4;
+ for (intr = daemon->int_names; intr; intr = intr->next)
+ if (hostname_isequal(name, intr->name))
+ {
+ addrlist = intr->addr4;
#ifdef HAVE_IPV6
- if (type == T_AAAA)
- addrlist = intr->addr6;
+ if (type == T_AAAA)
+ addrlist = intr->addr6;
#endif
- ans = 1;
- if (!dryrun)
- {
- if (!addrlist)
- log_query(F_FORWARD | F_CONFIG | flag | F_NEG, name, NULL, NULL);
- else
- for (; addrlist; addrlist = addrlist->next)
+ ans = 1;
+ if (!dryrun)
{
- log_query(F_FORWARD | F_CONFIG | flag, name, &addrlist->addr, NULL);
- if (add_resource_record(header, limit, &trunc, nameoffset, &ansp,
- daemon->local_ttl, NULL, type, C_IN,
- type == T_A ? "4" : "6", &addrlist->addr))
- anscount++;
+ if (addrlist)
+ {
+ gotit = 1;
+ for (; addrlist; addrlist = addrlist->next)
+ {
+ log_query(F_FORWARD | F_CONFIG | flag, name, &addrlist->addr, NULL);
+ if (add_resource_record(header, limit, &trunc, nameoffset, &ansp,
+ daemon->local_ttl, NULL, type, C_IN,
+ type == T_A ? "4" : "6", &addrlist->addr))
+ anscount++;
+ }
+ }
}
- }
+ }
+
+ if (!dryrun && !gotit)
+ log_query(F_FORWARD | F_CONFIG | flag | F_NEG, name, NULL, NULL);
+
continue;
}