Skip to content

Commit

Permalink
Printing of NSAP-PTR, GPOS and HIP
Browse files Browse the repository at this point in the history
NSAP-PTR, GPOS and HIP had parsing implementation in simdzone, but could not
yet be printed. With these changes they do.

Furthermore, the text elements of RESINFO should be printed without quotes.
Ans simplification of the SPF definition to match that of TXT.
  • Loading branch information
wtoorop committed Nov 18, 2024
1 parent b9da224 commit c580a5f
Show file tree
Hide file tree
Showing 7 changed files with 230 additions and 45 deletions.
108 changes: 72 additions & 36 deletions dns.c
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,8 @@ static rrtype_descriptor_type rrtype_descriptors[(RRTYPE_DESCRIPTORS_LENGTH+2)]
{ RDATA_WF_BINARY },
{ RDATA_ZF_NSAP } },
/* 23 */
{ 23, NULL, 1, 1, { RDATA_WF_BINARY }, { RDATA_ZF_UNKNOWN } },
{ TYPE_NSAP_PTR, "NSAP-PTR", 1, 1,
{ RDATA_WF_UNCOMPRESSED_DNAME }, { RDATA_ZF_DNAME } },
/* 24 */
{ TYPE_SIG, "SIG", 9, 9,
{ RDATA_WF_SHORT, RDATA_WF_BYTE, RDATA_WF_BYTE, RDATA_WF_LONG,
Expand All @@ -135,7 +136,9 @@ static rrtype_descriptor_type rrtype_descriptors[(RRTYPE_DESCRIPTORS_LENGTH+2)]
RDATA_WF_UNCOMPRESSED_DNAME },
{ RDATA_ZF_SHORT, RDATA_ZF_DNAME, RDATA_ZF_DNAME } },
/* 27 */
{ 27, NULL, 1, 1, { RDATA_WF_BINARY }, { RDATA_ZF_UNKNOWN } },
{ TYPE_GPOS, "GPOS", 3, 3,
{ RDATA_WF_TEXT, RDATA_WF_TEXT, RDATA_WF_TEXT },
{ RDATA_ZF_UNQUOTED, RDATA_ZF_UNQUOTED, RDATA_ZF_UNQUOTED} },
/* 28 */
{ TYPE_AAAA, "AAAA", 1, 1,
{ RDATA_WF_AAAA },
Expand Down Expand Up @@ -285,7 +288,71 @@ static rrtype_descriptor_type rrtype_descriptors[(RRTYPE_DESCRIPTORS_LENGTH+2)]
/* 54 */
{ 54, NULL, 1, 1, { RDATA_WF_BINARY }, { RDATA_ZF_UNKNOWN } },
/* 55 - HIP [RFC 5205] */
{ 55, NULL, 1, 1, { RDATA_WF_BINARY }, { RDATA_ZF_UNKNOWN } },
{ TYPE_HIP, "HIP", 1, MAXRDATALEN,
{ RDATA_WF_HIP, RDATA_WF_LITERAL_DNAME, RDATA_WF_LITERAL_DNAME
, RDATA_WF_LITERAL_DNAME, RDATA_WF_LITERAL_DNAME
, RDATA_WF_LITERAL_DNAME, RDATA_WF_LITERAL_DNAME
, RDATA_WF_LITERAL_DNAME, RDATA_WF_LITERAL_DNAME
, RDATA_WF_LITERAL_DNAME, RDATA_WF_LITERAL_DNAME
, RDATA_WF_LITERAL_DNAME, RDATA_WF_LITERAL_DNAME
, RDATA_WF_LITERAL_DNAME, RDATA_WF_LITERAL_DNAME
, RDATA_WF_LITERAL_DNAME, RDATA_WF_LITERAL_DNAME
, RDATA_WF_LITERAL_DNAME, RDATA_WF_LITERAL_DNAME
, RDATA_WF_LITERAL_DNAME, RDATA_WF_LITERAL_DNAME
, RDATA_WF_LITERAL_DNAME, RDATA_WF_LITERAL_DNAME
, RDATA_WF_LITERAL_DNAME, RDATA_WF_LITERAL_DNAME
, RDATA_WF_LITERAL_DNAME, RDATA_WF_LITERAL_DNAME
, RDATA_WF_LITERAL_DNAME, RDATA_WF_LITERAL_DNAME
, RDATA_WF_LITERAL_DNAME, RDATA_WF_LITERAL_DNAME
, RDATA_WF_LITERAL_DNAME, RDATA_WF_LITERAL_DNAME
, RDATA_WF_LITERAL_DNAME, RDATA_WF_LITERAL_DNAME
, RDATA_WF_LITERAL_DNAME, RDATA_WF_LITERAL_DNAME
, RDATA_WF_LITERAL_DNAME, RDATA_WF_LITERAL_DNAME
, RDATA_WF_LITERAL_DNAME, RDATA_WF_LITERAL_DNAME
, RDATA_WF_LITERAL_DNAME, RDATA_WF_LITERAL_DNAME
, RDATA_WF_LITERAL_DNAME, RDATA_WF_LITERAL_DNAME
, RDATA_WF_LITERAL_DNAME, RDATA_WF_LITERAL_DNAME
, RDATA_WF_LITERAL_DNAME, RDATA_WF_LITERAL_DNAME
, RDATA_WF_LITERAL_DNAME, RDATA_WF_LITERAL_DNAME
, RDATA_WF_LITERAL_DNAME, RDATA_WF_LITERAL_DNAME
, RDATA_WF_LITERAL_DNAME, RDATA_WF_LITERAL_DNAME
, RDATA_WF_LITERAL_DNAME, RDATA_WF_LITERAL_DNAME
, RDATA_WF_LITERAL_DNAME, RDATA_WF_LITERAL_DNAME
, RDATA_WF_LITERAL_DNAME, RDATA_WF_LITERAL_DNAME
, RDATA_WF_LITERAL_DNAME, RDATA_WF_LITERAL_DNAME
, RDATA_WF_LITERAL_DNAME },
{ RDATA_ZF_HIP, RDATA_ZF_LITERAL_DNAME, RDATA_ZF_LITERAL_DNAME
, RDATA_ZF_LITERAL_DNAME, RDATA_ZF_LITERAL_DNAME
, RDATA_ZF_LITERAL_DNAME, RDATA_ZF_LITERAL_DNAME
, RDATA_ZF_LITERAL_DNAME, RDATA_ZF_LITERAL_DNAME
, RDATA_ZF_LITERAL_DNAME, RDATA_ZF_LITERAL_DNAME
, RDATA_ZF_LITERAL_DNAME, RDATA_ZF_LITERAL_DNAME
, RDATA_ZF_LITERAL_DNAME, RDATA_ZF_LITERAL_DNAME
, RDATA_ZF_LITERAL_DNAME, RDATA_ZF_LITERAL_DNAME
, RDATA_ZF_LITERAL_DNAME, RDATA_ZF_LITERAL_DNAME
, RDATA_ZF_LITERAL_DNAME, RDATA_ZF_LITERAL_DNAME
, RDATA_ZF_LITERAL_DNAME, RDATA_ZF_LITERAL_DNAME
, RDATA_ZF_LITERAL_DNAME, RDATA_ZF_LITERAL_DNAME
, RDATA_ZF_LITERAL_DNAME, RDATA_ZF_LITERAL_DNAME
, RDATA_ZF_LITERAL_DNAME, RDATA_ZF_LITERAL_DNAME
, RDATA_ZF_LITERAL_DNAME, RDATA_ZF_LITERAL_DNAME
, RDATA_ZF_LITERAL_DNAME, RDATA_ZF_LITERAL_DNAME
, RDATA_ZF_LITERAL_DNAME, RDATA_ZF_LITERAL_DNAME
, RDATA_ZF_LITERAL_DNAME, RDATA_ZF_LITERAL_DNAME
, RDATA_ZF_LITERAL_DNAME, RDATA_ZF_LITERAL_DNAME
, RDATA_ZF_LITERAL_DNAME, RDATA_ZF_LITERAL_DNAME
, RDATA_ZF_LITERAL_DNAME, RDATA_ZF_LITERAL_DNAME
, RDATA_ZF_LITERAL_DNAME, RDATA_ZF_LITERAL_DNAME
, RDATA_ZF_LITERAL_DNAME, RDATA_ZF_LITERAL_DNAME
, RDATA_ZF_LITERAL_DNAME, RDATA_ZF_LITERAL_DNAME
, RDATA_ZF_LITERAL_DNAME, RDATA_ZF_LITERAL_DNAME
, RDATA_ZF_LITERAL_DNAME, RDATA_ZF_LITERAL_DNAME
, RDATA_ZF_LITERAL_DNAME, RDATA_ZF_LITERAL_DNAME
, RDATA_ZF_LITERAL_DNAME, RDATA_ZF_LITERAL_DNAME
, RDATA_ZF_LITERAL_DNAME, RDATA_ZF_LITERAL_DNAME
, RDATA_ZF_LITERAL_DNAME, RDATA_ZF_LITERAL_DNAME
, RDATA_ZF_LITERAL_DNAME, RDATA_ZF_LITERAL_DNAME
, RDATA_ZF_LITERAL_DNAME } },
/* 56 - NINFO */
{ TYPE_NINFO, "NINFO", 1, 1,
{ RDATA_WF_TEXTS },
Expand Down Expand Up @@ -485,38 +552,7 @@ static rrtype_descriptor_type rrtype_descriptors[(RRTYPE_DESCRIPTORS_LENGTH+2)]
{ 98, NULL, 1, 1, { RDATA_WF_BINARY }, { RDATA_ZF_UNKNOWN } },
/* 99 */
{ TYPE_SPF, "SPF", 1, MAXRDATALEN,
{ RDATA_WF_TEXT, RDATA_WF_TEXT, RDATA_WF_TEXT, RDATA_WF_TEXT,
RDATA_WF_TEXT, RDATA_WF_TEXT, RDATA_WF_TEXT, RDATA_WF_TEXT,
RDATA_WF_TEXT, RDATA_WF_TEXT, RDATA_WF_TEXT, RDATA_WF_TEXT,
RDATA_WF_TEXT, RDATA_WF_TEXT, RDATA_WF_TEXT, RDATA_WF_TEXT,
RDATA_WF_TEXT, RDATA_WF_TEXT, RDATA_WF_TEXT, RDATA_WF_TEXT,
RDATA_WF_TEXT, RDATA_WF_TEXT, RDATA_WF_TEXT, RDATA_WF_TEXT,
RDATA_WF_TEXT, RDATA_WF_TEXT, RDATA_WF_TEXT, RDATA_WF_TEXT,
RDATA_WF_TEXT, RDATA_WF_TEXT, RDATA_WF_TEXT, RDATA_WF_TEXT,
RDATA_WF_TEXT, RDATA_WF_TEXT, RDATA_WF_TEXT, RDATA_WF_TEXT,
RDATA_WF_TEXT, RDATA_WF_TEXT, RDATA_WF_TEXT, RDATA_WF_TEXT,
RDATA_WF_TEXT, RDATA_WF_TEXT, RDATA_WF_TEXT, RDATA_WF_TEXT,
RDATA_WF_TEXT, RDATA_WF_TEXT, RDATA_WF_TEXT, RDATA_WF_TEXT,
RDATA_WF_TEXT, RDATA_WF_TEXT, RDATA_WF_TEXT, RDATA_WF_TEXT,
RDATA_WF_TEXT, RDATA_WF_TEXT, RDATA_WF_TEXT, RDATA_WF_TEXT,
RDATA_WF_TEXT, RDATA_WF_TEXT, RDATA_WF_TEXT, RDATA_WF_TEXT,
RDATA_WF_TEXT, RDATA_WF_TEXT, RDATA_WF_TEXT, RDATA_WF_TEXT },
{ RDATA_ZF_TEXT, RDATA_ZF_TEXT, RDATA_ZF_TEXT, RDATA_ZF_TEXT,
RDATA_ZF_TEXT, RDATA_ZF_TEXT, RDATA_ZF_TEXT, RDATA_ZF_TEXT,
RDATA_ZF_TEXT, RDATA_ZF_TEXT, RDATA_ZF_TEXT, RDATA_ZF_TEXT,
RDATA_ZF_TEXT, RDATA_ZF_TEXT, RDATA_ZF_TEXT, RDATA_ZF_TEXT,
RDATA_ZF_TEXT, RDATA_ZF_TEXT, RDATA_ZF_TEXT, RDATA_ZF_TEXT,
RDATA_ZF_TEXT, RDATA_ZF_TEXT, RDATA_ZF_TEXT, RDATA_ZF_TEXT,
RDATA_ZF_TEXT, RDATA_ZF_TEXT, RDATA_ZF_TEXT, RDATA_ZF_TEXT,
RDATA_ZF_TEXT, RDATA_ZF_TEXT, RDATA_ZF_TEXT, RDATA_ZF_TEXT,
RDATA_ZF_TEXT, RDATA_ZF_TEXT, RDATA_ZF_TEXT, RDATA_ZF_TEXT,
RDATA_ZF_TEXT, RDATA_ZF_TEXT, RDATA_ZF_TEXT, RDATA_ZF_TEXT,
RDATA_ZF_TEXT, RDATA_ZF_TEXT, RDATA_ZF_TEXT, RDATA_ZF_TEXT,
RDATA_ZF_TEXT, RDATA_ZF_TEXT, RDATA_ZF_TEXT, RDATA_ZF_TEXT,
RDATA_ZF_TEXT, RDATA_ZF_TEXT, RDATA_ZF_TEXT, RDATA_ZF_TEXT,
RDATA_ZF_TEXT, RDATA_ZF_TEXT, RDATA_ZF_TEXT, RDATA_ZF_TEXT,
RDATA_ZF_TEXT, RDATA_ZF_TEXT, RDATA_ZF_TEXT, RDATA_ZF_TEXT,
RDATA_ZF_TEXT, RDATA_ZF_TEXT, RDATA_ZF_TEXT, RDATA_ZF_TEXT } },
{ RDATA_WF_TEXTS }, { RDATA_ZF_TEXTS } },
/* 100 - UINFO */
{ 100, NULL, 1, 1, { RDATA_WF_BINARY }, { RDATA_ZF_UNKNOWN } },
/* 101 - UID */
Expand Down Expand Up @@ -856,7 +892,7 @@ static rrtype_descriptor_type rrtype_descriptors[(RRTYPE_DESCRIPTORS_LENGTH+2)]
/* 260 - AMTRELAY */
{ 260, NULL, 1, 1, { RDATA_WF_BINARY }, { RDATA_ZF_UNKNOWN } },
/* 261 - RESINFO */
{ TYPE_RESINFO, "RESINFO", 1, 1, { RDATA_WF_TEXTS }, { RDATA_ZF_TEXTS } },
{ TYPE_RESINFO, "RESINFO", 1, 1, { RDATA_WF_TEXTS }, { RDATA_ZF_UNQUOTEDS } },
/* 262 - WALLET */
{ TYPE_WALLET, "WALLET", 1, 1, { RDATA_WF_TEXTS }, { RDATA_ZF_TEXTS } },
/* 263 - CLA */
Expand Down
18 changes: 11 additions & 7 deletions dns.h
Original file line number Diff line number Diff line change
Expand Up @@ -103,12 +103,12 @@ typedef enum nsd_rc nsd_rc_type;
#define TYPE_X25 19 /* RFC1183 */
#define TYPE_ISDN 20 /* RFC1183 */
#define TYPE_RT 21 /* RFC1183 */
#define TYPE_NSAP 22 /* RFC1706 */

#define TYPE_NSAP 22 /* RFC1706 (deprecated by RFC9121) */
#define TYPE_NSAP_PTR 23 /* RFC1348 (deprecated by RFC9121)*/
#define TYPE_SIG 24 /* 2535typecode */
#define TYPE_KEY 25 /* 2535typecode */
#define TYPE_PX 26 /* RFC2163 */

#define TYPE_GPOS 27 /* RFC1712 */
#define TYPE_AAAA 28 /* ipv6 address */
#define TYPE_LOC 29 /* LOC record RFC1876 */
#define TYPE_NXT 30 /* 2535typecode */
Expand All @@ -134,7 +134,7 @@ typedef enum nsd_rc nsd_rc_type;
#define TYPE_NSEC3PARAM 51 /* NSEC3PARAM at zone apex nsec3 parameters */
#define TYPE_TLSA 52 /* RFC 6698 */
#define TYPE_SMIMEA 53 /* RFC 8162 */

#define TYPE_HIP 55 /* RFC 8005 */
#define TYPE_NINFO 56 /* NINFO/ninfo-completed-template */
#define TYPE_RKEY 57 /* RKEY/rkey-completed-template */

Expand Down Expand Up @@ -223,10 +223,11 @@ enum rdata_wireformat
RDATA_WF_APL, /* APL data. */
RDATA_WF_IPSECGATEWAY, /* IPSECKEY gateway ip4, ip6 or dname. */
RDATA_WF_ILNP64, /* 64-bit uncompressed IPv6 address. */
RDATA_WF_EUI48, /* 48-bit address. */
RDATA_WF_EUI48, /* 48-bit address. */
RDATA_WF_EUI64, /* 64-bit address. */
RDATA_WF_LONG_TEXT, /* Long (>255) text string. */
RDATA_WF_SVCPARAM /* SvcParam <key>[=<value>] */
RDATA_WF_SVCPARAM, /* SvcParam <key>[=<value>] */
RDATA_WF_HIP /* HIP rdata up to the Rendezvous Servers */
};
typedef enum rdata_wireformat rdata_wireformat_type;

Expand Down Expand Up @@ -264,8 +265,11 @@ enum rdata_zoneformat
RDATA_ZF_EUI48, /* EUI48 address. */
RDATA_ZF_EUI64, /* EUI64 address. */
RDATA_ZF_LONG_TEXT, /* Long (>255) text string. */
RDATA_ZF_TAG, /* Text string without quotes. */
RDATA_ZF_UNQUOTED, /* Unquoted text string. */
RDATA_ZF_UNQUOTEDS, /* A sequence of unquoted text strings. */
RDATA_ZF_TAG, /* A sequence of letters and numbers. */
RDATA_ZF_SVCPARAM, /* SvcParam <key>[=<value>] */
RDATA_ZF_HIP, /* HIP rdata up to the Rendezvous Servers */
RDATA_ZF_UNKNOWN /* Unknown data. */
};
typedef enum rdata_zoneformat rdata_zoneformat_type;
Expand Down
92 changes: 91 additions & 1 deletion rdata.c
Original file line number Diff line number Diff line change
Expand Up @@ -201,6 +201,57 @@ rdata_long_text_to_string(buffer_type *output, rdata_atom_type rdata,
return 1;
}

static int
rdata_unquoted_to_string(buffer_type *output, rdata_atom_type rdata,
rr_type* ATTR_UNUSED(rr))
{
const uint8_t *data = rdata_atom_data(rdata);
uint8_t length = data[0];
size_t i;

for (i = 1; i <= length; ++i) {
char ch = (char) data[i];
if (isprint((unsigned char)ch)) {
if (ch == '"' || ch == '\\'
|| isspace((unsigned char)ch)) {
buffer_printf(output, "\\");
}
buffer_printf(output, "%c", ch);
} else {
buffer_printf(output, "\\%03u", (unsigned) data[i]);
}
}
return 1;
}

static int
rdata_unquoteds_to_string(buffer_type *output, rdata_atom_type rdata,
rr_type* ATTR_UNUSED(rr))
{
uint16_t pos = 0;
const uint8_t *data = rdata_atom_data(rdata);
uint16_t length = rdata_atom_size(rdata);
size_t i;

while (pos < length && pos + data[pos] < length) {
for (i = 1; i <= data[pos]; ++i) {
char ch = (char) data[pos + i];
if (isprint((unsigned char)ch)) {
if (ch == '"' || ch == '\\'
|| isspace((unsigned char)ch)) {
buffer_printf(output, "\\");
}
buffer_printf(output, "%c", ch);
} else {
buffer_printf(output, "\\%03u", (unsigned) data[pos+i]);
}
}
pos += data[pos]+1;
buffer_printf(output, pos < length?" ":"");
}
return 1;
}

static int
rdata_tag_to_string(buffer_type *output, rdata_atom_type rdata,
rr_type* ATTR_UNUSED(rr))
Expand Down Expand Up @@ -895,6 +946,34 @@ rdata_svcparam_to_string(buffer_type *output, rdata_atom_type rdata,
return 1;
}

static int
rdata_hip_to_string(buffer_type *output, rdata_atom_type rdata,
rr_type* ATTR_UNUSED(rr))
{
uint16_t size = rdata_atom_size(rdata);
uint8_t hit_length;
uint16_t pk_length;
int length = 0;

if(size < 4)
return 0;
hit_length = rdata_atom_data(rdata)[0];
pk_length = read_uint16(rdata_atom_data(rdata) + 2);
length = 4 + hit_length + pk_length;
if(hit_length == 0 || pk_length == 0 || size < length)
return 0;
buffer_printf(output, "%u ", (unsigned)rdata_atom_data(rdata)[1]);
hex_to_string(output, rdata_atom_data(rdata) + 4, hit_length);
buffer_printf(output, " ");
buffer_reserve(output, pk_length * 2 + 1);
length = b64_ntop(rdata_atom_data(rdata) + 4 + hit_length, pk_length,
(char *) buffer_current(output), pk_length * 2);
if (length > 0) {
buffer_skip(output, length);
}
return length != -1;
}

static int
rdata_unknown_to_string(buffer_type *output, rdata_atom_type rdata,
rr_type* ATTR_UNUSED(rr))
Expand Down Expand Up @@ -935,8 +1014,11 @@ static rdata_to_string_type rdata_to_string_table[RDATA_ZF_UNKNOWN + 1] = {
rdata_eui48_to_string,
rdata_eui64_to_string,
rdata_long_text_to_string,
rdata_unquoted_to_string,
rdata_unquoteds_to_string,
rdata_tag_to_string,
rdata_svcparam_to_string,
rdata_hip_to_string,
rdata_unknown_to_string
};

Expand Down Expand Up @@ -1063,8 +1145,16 @@ rdata_wireformat_to_rdata_atoms(region_type *region,
read_uint16(buffer_current(packet) + 2);
}
break;
case RDATA_WF_HIP:
/* Length is stored in the first byte (HIT length)
* plus the third and fourth byte (PK length) */
length = 4;
if (buffer_position(packet) + length <= end) {
length += buffer_current(packet)[0];
length += read_uint16(buffer_current(packet) + 2);
}
break;
}

if (is_domain) {
const dname_type *dname;

Expand Down
11 changes: 10 additions & 1 deletion tpkg/rr-test.tdir/rr-test.cmp_zone

Large diffs are not rendered by default.

22 changes: 22 additions & 0 deletions tpkg/rr-test.tdir/rr-test.nsap.int.zone
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
$ORIGIN 3.3.1.e.1.0.0.0.0.0.0.0.0.0.a.5.0.0.0.8.5.0.0.0.7.4.NSAP.INT.

@ IN SOA emu.ncsl.nist.gov. root.emu.ncsl.nist.gov. (
1994041800 ; Serial - date
1800 ; Refresh - 30 minutes
300 ; Retry - 5 minutes
604800 ; Expire - 7 days
3600 ) ; Minimum - 1 hour
IN NS emu.ncsl.nist.gov.
IN NS tuba.nsap.lanl.gov.
0.0.1.6.1.0.0.0.f.f.f.f.f.f IN PTR bsdi1.nsap.nist.gov.
;
0.0.2.6.1.0.0.0.f.f.f.f.f.f IN PTR bsdi2.nsap.nist.gov.
;
0.0.1.7.1.0.0.0.f.f.f.f.f.f IN PTR cursive.nsap.nist.gov.
;
0.0.4.6.1.0.0.0.f.f.f.f.f.f IN PTR infidel.nsap.nist.gov.
;
0.0.1.5.1.0.0.0.a.a.a.a.a.a IN PTR cisco1.nsap.nist.gov.
;
0.0.1.1.1.0.0.0.a.a.a.a.a.a IN PTR 3com1.nsap.nist.gov.

6 changes: 6 additions & 0 deletions tpkg/rr-test.tdir/rr-test.test
Original file line number Diff line number Diff line change
Expand Up @@ -125,4 +125,10 @@ else
fi
echo ""

## simdzone allow NSAP-PTR only in the nsap.int. domain
if ! ../../nsd-checkzone 3.3.1.e.1.0.0.0.0.0.0.0.0.0.a.5.0.0.0.8.5.0.0.0.7.4.nsap.int. rr-test.nsap.int.zone
then
echo "Could not parse NSAP-PTR provisioned zone"
fi

exit 0
18 changes: 18 additions & 0 deletions tpkg/rr-test.tdir/rr-test.zone
Original file line number Diff line number Diff line change
Expand Up @@ -143,3 +143,21 @@ wallet IN WALLET BTC 1H6WkSHdqVahBKczJrs9bBfFYhUHrP5R2F
cla IN CLA CP-V4-V6 TCP-V6-V7
ta IN TA 56039 13 2 4104805B43928FC573F0704A2C1B5A10BAA2878DE26B8535DDE77517 C154CE9F
dlv IN DLV 56039 13 2 4104805B43928FC573F0704A2C1B5A10BAA2878DE26B8535DDE77517C154CE9F

; GPOS examples from RFC1712
marsh.gpos IN GPOS -32.6882 116.8652 10.0
lillee.gpos IN GPOS -32.6882 116.8652 10.0
hinault.gpos IN GPOS -22.6882 116.8652 250.0
ambrose.gpos IN GPOS -32.6882 116.8652 10.0

hip1 IN HIP ( 2 200100107B1A74DF365639CC39F1D578
AwEAAbdxyhNuSutc5EMzxTs9LBPCIkOFH8cIvM4p9+LrV4e19WzK00+CI6zBCQTdtWsuxKbWIy87UOoJTwkUs7lBu+Upr1gsNrut79ryra+bSRGQb1slImA8YVJyuIDsj7kwzG7jnERNqnWxZ48AWkskmdHaVDP4BcelrTI3rMXdXF5D )
hip2 IN HIP ( 2 200100107B1A74DF365639CC39F1D578
AwEAAbdxyhNuSutc5EMzxTs9LBPCIkOFH8cIvM4p9+LrV4e19WzK00+CI6zBCQTdtWsuxKbWIy87UOoJTwkUs7lBu+Upr1gsNrut79ryra+bSRGQb1slImA8YVJyuIDsj7kwzG7jnERNqnWxZ48AWkskmdHaVDP4BcelrTI3rMXdXF5D
rvs.example.com. )

hip3 IN HIP ( 2 200100107B1A74DF365639CC39F1D578
AwEAAbdxyhNuSutc5EMzxTs9LBPCIkOFH8cIvM4p9+LrV4e19WzK00+CI6zBCQTdtWsuxKbWIy87UOoJTwkUs7lBu+Upr1gsNrut79ryra+bSRGQb1slImA8YVJyuIDsj7kwzG7jnERNqnWxZ48AWkskmdHaVDP4BcelrTI3rMXdXF5D
rvs1.example.com.
rvs2.example.com. )

0 comments on commit c580a5f

Please sign in to comment.