continue;
}
s->refresh += 50;
- if (cache_service_is_host(s))
- continue;
dns_send_question(s->iface, s->entry, TYPE_PTR, 0);
}
nlen + 1 < rdlength && !strcmp(rdata_buffer + rdlength - nlen, name))
host_len = rdlength - nlen - 1;
- cache_service(iface, rdata_buffer, host_len, a->ttl);
+ if (name[0] == '_')
+ cache_service(iface, rdata_buffer, host_len, a->ttl);
dlen = strlen(rdata_buffer) + 1;
rdata = (uint8_t*)rdata_buffer;
break;
case TYPE_A:
- cache_service(iface, name, strlen(name), a->ttl);
if (a->rdlength != 4)
return;
dlen = 4;
break;
case TYPE_AAAA:
- cache_service(iface, name, strlen(name), a->ttl);
if (a->rdlength != 16)
return;
dlen = 16;
void cache_answer(struct interface *iface, uint8_t *base, int blen,
char *name, struct dns_answer *a, uint8_t *rdata, int flush);
int cache_host_is_known(char *record);
-static inline bool cache_service_is_host(struct cache_service *s) {
- return *((char *)s->avl.key) != '_';
-}
void cache_dump_records(struct blob_buf *buf, const char *name);
void cache_dump_recursive(struct blob_buf *b, const char *name, uint16_t type, struct interface *iface);
blob_buf_init(&b, 0);
avl_for_each_element(&services, s, avl) {
char *local;
- if (cache_service_is_host(s))
- continue;
+
snprintf(buffer, MAX_NAME_LEN, "%s", (const char *) s->avl.key);
local = strstr(buffer, ".local");
if (local)