summaryrefslogtreecommitdiff
path: root/src/dns
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2018-04-06 20:08:52 +0200
committerChristian Grothoff <christian@grothoff.org>2018-04-06 20:08:52 +0200
commite0d9869415af5a5752e3b27ea14b249a52ac9877 (patch)
tree140e99c88e4ea9eeb7146acfdea36e05c4b02323 /src/dns
parent4e2412d14731d4da085b0ce353d3d9d2eb2a0756 (diff)
downloadgnunet-e0d9869415af5a5752e3b27ea14b249a52ac9877.tar.gz
gnunet-e0d9869415af5a5752e3b27ea14b249a52ac9877.zip
do work on more record types
Diffstat (limited to 'src/dns')
-rw-r--r--src/dns/dnsparser.c5
-rw-r--r--src/dns/gnunet-zoneimport.c88
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",