@@ -80,11 +80,17 @@ func newMockDNS() *mockDNS {
80
80
"dnslink=/ipns/dns1.example.com" ,
81
81
"masked dnslink=/ipns/example.invalid" ,
82
82
},
83
- "_dnslink.multivalid .example.com." : {
83
+ "_dnslink.multi-invalid .example.com." : {
84
84
"some stuff" ,
85
- "dnslink=/ipns/dns1.example.com" ,
85
+ "dnslink=/ipns/dns1.example.com" , // we must error when >1 value with /ipns or /ipfs exists
86
86
"dnslink=/ipfs/QmY3hE8xgFCjGcz6PHgnvJz5HZi1BaKRfPkn1ghZUcYMjD" ,
87
- "masked dnslink=/ipns/example.invalid" ,
87
+ "broken dnslink=/ipns/example.invalid" ,
88
+ },
89
+ "_dnslink.multi-valid.example.com." : {
90
+ "some stuff" ,
91
+ "dnslink=/foo/bar" , // duplicate dnslink= is fine as long it is not /ipfs or /ipns, which must be unique
92
+ "dnslink=/ipfs/QmY3hE8xgFCjGcz6PHgnvJz5HZi1BaKRfPkn1ghZUcYMjD" ,
93
+ "broken dnslink=/ipns/example.invalid" ,
88
94
},
89
95
"_dnslink.equals.example.com." : {
90
96
"dnslink=/ipfs/QmY3hE8xgFCjGcz6PHgnvJz5HZi1BaKRfPkn1ghZUcYMjD/=equals" ,
@@ -165,7 +171,8 @@ func TestDNSResolution(t *testing.T) {
165
171
{"/ipns/multi.example.com" , DefaultDepthLimit , "/ipfs/QmY3hE8xgFCjGcz6PHgnvJz5HZi1BaKRfPkn1ghZUcYMjD" , nil },
166
172
{"/ipns/multi.example.com" , 1 , "/ipns/dns1.example.com" , ErrResolveRecursion },
167
173
{"/ipns/multi.example.com" , 2 , "/ipns/ipfs.example.com" , ErrResolveRecursion },
168
- {"/ipns/multivalid.example.com" , 2 , "" , ErrMultipleDNSLinkRecords },
174
+ {"/ipns/multi-invalid.example.com" , 2 , "" , ErrMultipleDNSLinkRecords },
175
+ {"/ipns/multi-valid.example.com" , DefaultDepthLimit , "/ipfs/QmY3hE8xgFCjGcz6PHgnvJz5HZi1BaKRfPkn1ghZUcYMjD" , nil },
169
176
{"/ipns/equals.example.com" , DefaultDepthLimit , "/ipfs/QmY3hE8xgFCjGcz6PHgnvJz5HZi1BaKRfPkn1ghZUcYMjD/=equals" , nil },
170
177
{"/ipns/loop1.example.com" , 1 , "/ipns/loop2.example.com" , ErrResolveRecursion },
171
178
{"/ipns/loop1.example.com" , 2 , "/ipns/loop1.example.com" , ErrResolveRecursion },
0 commit comments