From 0dae31d468b1a0e22d98921f7b0dbd92fd217167 Mon Sep 17 00:00:00 2001 From: Zbigniew Jędrzejewski-Szmek Date: Thu, 31 Jul 2014 04:19:43 -0400 Subject: resolved: LOC records LOC records have a version field. So far only version 0 has been published, but if a record with a different version was encountered, our only recourse is to treat it as an unknown type. This is implemented with the 'unparseable' flag, which causes the serialization/deserialization and printing function to cause the record as a blob. The flag can be used if other packet types cannot be parsed for whatever reason. --- src/resolve/resolved-dns-rr.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src/resolve/resolved-dns-rr.h') diff --git a/src/resolve/resolved-dns-rr.h b/src/resolve/resolved-dns-rr.h index afd623a382..8fb463946b 100644 --- a/src/resolve/resolved-dns-rr.h +++ b/src/resolve/resolved-dns-rr.h @@ -51,6 +51,7 @@ enum { DNS_TYPE_MX = 0x0F, DNS_TYPE_TXT = 0x10, DNS_TYPE_AAAA = 0x1C, + DNS_TYPE_LOC = 0x1D, DNS_TYPE_SRV = 0x21, DNS_TYPE_DNAME = 0x27, DNS_TYPE_SSHFP = 0x2C, @@ -78,6 +79,7 @@ struct DnsResourceRecord { unsigned n_ref; DnsResourceKey *key; uint32_t ttl; + bool unparseable; union { struct { void *data; @@ -126,6 +128,16 @@ struct DnsResourceRecord { uint16_t priority; char *exchange; } mx; + + struct { + uint8_t version; + uint8_t size; + uint8_t horiz_pre; + uint8_t vert_pre; + uint32_t latitude; + uint32_t longitude; + uint32_t altitude; + } loc; }; }; -- cgit v1.2.3-54-g00ecf