diff options
Diffstat (limited to 'src/dns')
-rw-r--r-- | src/dns/dnsparser.c | 5 | ||||
-rw-r--r-- | src/dns/gnunet-zoneimport.c | 88 |
2 files changed, 92 insertions, 1 deletions
diff --git a/src/dns/dnsparser.c b/src/dns/dnsparser.c index 1fe6f595f..ab833f7c5 100644 --- a/src/dns/dnsparser.c +++ b/src/dns/dnsparser.c | |||
@@ -615,6 +615,7 @@ GNUNET_DNSPARSER_parse_record (const char *udp_payload, | |||
615 | { | 615 | { |
616 | case GNUNET_DNSPARSER_TYPE_NS: | 616 | case GNUNET_DNSPARSER_TYPE_NS: |
617 | case GNUNET_DNSPARSER_TYPE_CNAME: | 617 | case GNUNET_DNSPARSER_TYPE_CNAME: |
618 | case GNUNET_DNSPARSER_TYPE_DNAME: | ||
618 | case GNUNET_DNSPARSER_TYPE_PTR: | 619 | case GNUNET_DNSPARSER_TYPE_PTR: |
619 | r->data.hostname = GNUNET_DNSPARSER_parse_name (udp_payload, | 620 | r->data.hostname = GNUNET_DNSPARSER_parse_name (udp_payload, |
620 | udp_payload_length, | 621 | udp_payload_length, |
@@ -659,7 +660,9 @@ GNUNET_DNSPARSER_parse_record (const char *udp_payload, | |||
659 | default: | 660 | default: |
660 | r->data.raw.data = GNUNET_malloc (data_len); | 661 | r->data.raw.data = GNUNET_malloc (data_len); |
661 | r->data.raw.data_len = data_len; | 662 | r->data.raw.data_len = data_len; |
662 | GNUNET_memcpy (r->data.raw.data, &udp_payload[*off], data_len); | 663 | GNUNET_memcpy (r->data.raw.data, |
664 | &udp_payload[*off], | ||
665 | data_len); | ||
663 | break; | 666 | break; |
664 | } | 667 | } |
665 | (*off) += data_len; | 668 | (*off) += data_len; |
diff --git a/src/dns/gnunet-zoneimport.c b/src/dns/gnunet-zoneimport.c index c1897d6e6..914868af4 100644 --- a/src/dns/gnunet-zoneimport.c +++ b/src/dns/gnunet-zoneimport.c | |||
@@ -189,6 +189,94 @@ process_record (struct Request *req, | |||
189 | (unsigned int) rec->data.mx->preference, | 189 | (unsigned int) rec->data.mx->preference, |
190 | rec->data.mx->mxhost); | 190 | rec->data.mx->mxhost); |
191 | break; | 191 | break; |
192 | case GNUNET_DNSPARSER_TYPE_SOA: | ||
193 | fprintf (stdout, | ||
194 | "%s SOA %s %s %u %u %u %u %u\n", | ||
195 | req->hostname, | ||
196 | rec->data.soa->mname, | ||
197 | rec->data.soa->rname, | ||
198 | (unsigned int) rec->data.soa->serial, | ||
199 | (unsigned int) rec->data.soa->refresh, | ||
200 | (unsigned int) rec->data.soa->retry, | ||
201 | (unsigned int) rec->data.soa->expire, | ||
202 | (unsigned int) rec->data.soa->minimum_ttl); | ||
203 | break; | ||
204 | case GNUNET_DNSPARSER_TYPE_SRV: | ||
205 | fprintf (stdout, | ||
206 | "%s SRV %s %u %u %u\n", | ||
207 | req->hostname, | ||
208 | rec->data.srv->target, | ||
209 | rec->data.srv->priority, | ||
210 | rec->data.srv->weight, | ||
211 | rec->data.srv->port); | ||
212 | break; | ||
213 | case GNUNET_DNSPARSER_TYPE_PTR: | ||
214 | fprintf (stdout, | ||
215 | "%s PTR %s\n", | ||
216 | req->hostname, | ||
217 | rec->data.hostname); | ||
218 | break; | ||
219 | case GNUNET_DNSPARSER_TYPE_TXT: | ||
220 | fprintf (stdout, | ||
221 | "%s TXT %.*s\n", | ||
222 | req->hostname, | ||
223 | (int) rec->data.raw.data_len, | ||
224 | (char *) rec->data.raw.data); | ||
225 | break; | ||
226 | case GNUNET_DNSPARSER_TYPE_DNAME: | ||
227 | fprintf (stdout, | ||
228 | "%s DNAME %s\n", | ||
229 | req->hostname, | ||
230 | rec->data.hostname); | ||
231 | break; | ||
232 | |||
233 | /* obscure records */ | ||
234 | case GNUNET_DNSPARSER_TYPE_AFSDB: | ||
235 | case GNUNET_DNSPARSER_TYPE_NAPTR: | ||
236 | case GNUNET_DNSPARSER_TYPE_APL: | ||
237 | case GNUNET_DNSPARSER_TYPE_DHCID: | ||
238 | case GNUNET_DNSPARSER_TYPE_HIP: | ||
239 | case GNUNET_DNSPARSER_TYPE_LOC: | ||
240 | case GNUNET_DNSPARSER_TYPE_RP: | ||
241 | case GNUNET_DNSPARSER_TYPE_TKEY: | ||
242 | case GNUNET_DNSPARSER_TYPE_TSIG: | ||
243 | case GNUNET_DNSPARSER_TYPE_URI: | ||
244 | case GNUNET_DNSPARSER_TYPE_TA: | ||
245 | |||
246 | /* DNSSEC */ | ||
247 | case GNUNET_DNSPARSER_TYPE_DS: | ||
248 | case GNUNET_DNSPARSER_TYPE_RRSIG: | ||
249 | case GNUNET_DNSPARSER_TYPE_NSEC: | ||
250 | case GNUNET_DNSPARSER_TYPE_DNSKEY: | ||
251 | case GNUNET_DNSPARSER_TYPE_NSEC3: | ||
252 | case GNUNET_DNSPARSER_TYPE_NSEC3PARAM: | ||
253 | case GNUNET_DNSPARSER_TYPE_CDS: | ||
254 | case GNUNET_DNSPARSER_TYPE_CDNSKEY: | ||
255 | |||
256 | /* DNSSEC payload */ | ||
257 | case GNUNET_DNSPARSER_TYPE_CERT: | ||
258 | case GNUNET_DNSPARSER_TYPE_SSHFP: | ||
259 | case GNUNET_DNSPARSER_TYPE_IPSECKEY: | ||
260 | case GNUNET_DNSPARSER_TYPE_TLSA: | ||
261 | case GNUNET_DNSPARSER_TYPE_OPENPGPKEY: | ||
262 | |||
263 | /* obsolete records */ | ||
264 | case GNUNET_DNSPARSER_TYPE_SIG: | ||
265 | case GNUNET_DNSPARSER_TYPE_KEY: | ||
266 | case GNUNET_DNSPARSER_TYPE_KX: | ||
267 | { | ||
268 | char *base32; | ||
269 | |||
270 | base32 = GNUNET_STRINGS_data_to_string_alloc (rec->data.raw.data, | ||
271 | rec->data.raw.data_len); | ||
272 | fprintf (stdout, | ||
273 | "%s (%u) %s\n", | ||
274 | req->hostname, | ||
275 | rec->type, | ||
276 | base32); | ||
277 | GNUNET_free (base32); | ||
278 | } | ||
279 | break; | ||
192 | default: | 280 | default: |
193 | fprintf (stderr, | 281 | fprintf (stderr, |
194 | "Unsupported type %u\n", | 282 | "Unsupported type %u\n", |