forked from TrueCloudLab/frostfs-contract
[#139] nns: allow to resolve FQDN
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
This commit is contained in:
parent
05d372e882
commit
63673a5e54
2 changed files with 37 additions and 0 deletions
|
@ -870,6 +870,12 @@ func resolve(ctx storage.Context, res []string, name string, typ RecordType, red
|
||||||
if redirect < 0 {
|
if redirect < 0 {
|
||||||
panic("invalid redirect")
|
panic("invalid redirect")
|
||||||
}
|
}
|
||||||
|
if len(name) == 0 {
|
||||||
|
panic("invalid name")
|
||||||
|
}
|
||||||
|
if name[len(name)-1] == '.' {
|
||||||
|
name = name[:len(name)-1]
|
||||||
|
}
|
||||||
records := getAllRecords(ctx, name)
|
records := getAllRecords(ctx, name)
|
||||||
cname := ""
|
cname := ""
|
||||||
for iterator.Next(records) {
|
for iterator.Next(records) {
|
||||||
|
|
|
@ -315,3 +315,34 @@ func TestNNSRenew(t *testing.T) {
|
||||||
{stackitem.Make("expiration"), stackitem.Make(b.Timestamp + 2*uint64(msPerYear))},
|
{stackitem.Make("expiration"), stackitem.Make(b.Timestamp + 2*uint64(msPerYear))},
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestNNSResolve(t *testing.T) {
|
||||||
|
bc := NewChain(t)
|
||||||
|
h := DeployContract(t, bc, nnsPath, nil)
|
||||||
|
|
||||||
|
refresh, retry, expire, ttl := int64(101), int64(102), int64(103), int64(104)
|
||||||
|
tx := PrepareInvoke(t, bc, CommitteeAcc, h, "register",
|
||||||
|
"com", CommitteeAcc.Contract.ScriptHash(),
|
||||||
|
"myemail@nspcc.ru", refresh, retry, expire, ttl)
|
||||||
|
AddBlockCheckHalt(t, bc, tx)
|
||||||
|
|
||||||
|
tx = PrepareInvoke(t, bc, CommitteeAcc, h, "register",
|
||||||
|
"test.com", CommitteeAcc.Contract.ScriptHash(),
|
||||||
|
"myemail@nspcc.ru", refresh, retry, expire, ttl)
|
||||||
|
AddBlockCheckHalt(t, bc, tx)
|
||||||
|
|
||||||
|
tx = PrepareInvoke(t, bc, CommitteeAcc, h, "addRecord",
|
||||||
|
"test.com", int64(nns.TXT), "expected result")
|
||||||
|
AddBlockCheckHalt(t, bc, tx)
|
||||||
|
|
||||||
|
records := stackitem.NewArray([]stackitem.Item{stackitem.Make("expected result")})
|
||||||
|
tx = PrepareInvoke(t, bc, CommitteeAcc, h, "resolve", "test.com", int64(nns.TXT))
|
||||||
|
CheckTestInvoke(t, bc, tx, records)
|
||||||
|
|
||||||
|
tx = PrepareInvoke(t, bc, CommitteeAcc, h, "resolve", "test.com.", int64(nns.TXT))
|
||||||
|
CheckTestInvoke(t, bc, tx, records)
|
||||||
|
|
||||||
|
tx = PrepareInvoke(t, bc, CommitteeAcc, h, "resolve", "test.com..", int64(nns.TXT))
|
||||||
|
AddBlock(t, bc, tx)
|
||||||
|
CheckFault(t, bc, tx.Hash(), "invalid domain name format")
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue