From ab700c23613c8f1df85fe17134a93782d2bd42a2 Mon Sep 17 00:00:00 2001 From: Martin Schanzenbach Date: Mon, 19 Mar 2012 12:20:30 +0000 Subject: -fix mx records postprocessing --- src/gns/gnunet-service-gns_interceptor.c | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) (limited to 'src/gns/gnunet-service-gns_interceptor.c') diff --git a/src/gns/gnunet-service-gns_interceptor.c b/src/gns/gnunet-service-gns_interceptor.c index 25cad7ead..4160893ad 100644 --- a/src/gns/gnunet-service-gns_interceptor.c +++ b/src/gns/gnunet-service-gns_interceptor.c @@ -114,8 +114,25 @@ reply_to_dns(void* cls, uint32_t rd_count, { answer_records[i].name = ilh->query->name; answer_records[i].type = rd[i].record_type; - answer_records[i].data.raw.data_len = rd[i].data_size; - answer_records[i].data.raw.data = (char*)rd[i].data; + switch(rd[i].record_type) + { + case GNUNET_GNS_RECORD_TYPE_NS: + case GNUNET_GNS_RECORD_TYPE_CNAME: + case GNUNET_GNS_RECORD_TYPE_PTR: + answer_records[i].data.hostname = (char*)rd[i].data; + break; + case GNUNET_GNS_RECORD_TYPE_SOA: + answer_records[i].data.soa = + (struct GNUNET_DNSPARSER_SoaRecord *)rd[i].data; + break; + case GNUNET_GNS_RECORD_MX: + answer_records[i].data.mx = + (struct GNUNET_DNSPARSER_MxRecord *)rd[i].data; + break; + default: + answer_records[i].data.raw.data_len = rd[i].data_size; + answer_records[i].data.raw.data = (char*)rd[i].data; + } answer_records[i].expiration_time = rd[i].expiration; answer_records[i].class = GNUNET_DNSPARSER_CLASS_INTERNET;//hmmn } -- cgit v1.2.3