1
0
Fork 0
mirror of https://github.com/ton-blockchain/ton synced 2025-03-09 15:40:10 +00:00

Fix DNS resolve in liteclient and tonlib

This commit is contained in:
SpyCheese 2022-08-29 11:04:03 +03:00
parent d6e365c21f
commit b44e5403c8
3 changed files with 9 additions and 4 deletions

View file

@ -814,7 +814,7 @@ vmc_pushint$1111 value:int32 next:^VmCont = VmCont;
//
// DNS RECORDS
//
_ (HashmapE 256 DNSRecord) = DNS_RecordSet;
_ (HashmapE 256 ^DNSRecord) = DNS_RecordSet;
chunk_ref$_ {n:#} ref:^(TextChunks (n + 1)) = TextChunkRef (n + 1);
chunk_ref_empty$_ = TextChunkRef 0;

View file

@ -433,8 +433,12 @@ td::Result<std::vector<ManualDns::RawEntry>> ManualDns::resolve_raw_or_throw(td:
} else {
if (category.is_zero()) {
vm::Dictionary dict(std::move(data), 256);
dict.check_for_each([&](auto cs, td::ConstBitPtr key, int n) {
dict.check_for_each([&](td::Ref<vm::CellSlice> cs, td::ConstBitPtr key, int n) {
CHECK(n == 256);
if (cs.is_null() || cs->size_ext() != 0x10000) {
return true;
}
cs = vm::load_cell_slice_ref(cs->prefetch_ref());
vec.push_back({name.str(), td::Bits256(key), cs});
return true;
});