From: Steven Barth Date: Tue, 28 Oct 2014 10:57:09 +0000 (+0100) Subject: cache: cache rdata of SRV-records as well X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=1dbd18dff89ff60d7bb9bfac6825eba33f043992;p=oweals%2Fmdnsd.git cache: cache rdata of SRV-records as well Signed-off-by: Steven Barth --- diff --git a/cache.c b/cache.c index 11d359d..7c7a8fb 100644 --- a/cache.c +++ b/cache.c @@ -268,6 +268,14 @@ cache_answer(struct interface *iface, uint8_t *base, int blen, char *name, struc return; port = be16_to_cpu(dsd->port); + memcpy(rdata_buffer, dsd, sizeof(*dsd)); + if (dn_expand(base, base + blen, (const uint8_t*)&dsd[1], + &rdata_buffer[sizeof(*dsd)], MAX_DATA_LEN - sizeof(*dsd)) < 0) { + perror("process_answer/dn_expand"); + return; + } + dlen = sizeof(*dsd) + strlen(&rdata_buffer[sizeof(*dsd)]) + 1; + rdata = (uint8_t*)rdata_buffer; break; case TYPE_TXT: