produce valid bencoded strings for undefined/uninitialized entry objects (#756)
This commit is contained in:
parent
98eabc63e9
commit
d0a870b3dd
|
@ -215,9 +215,12 @@ namespace libtorrent
|
||||||
ret += e.preformatted().size();
|
ret += e.preformatted().size();
|
||||||
break;
|
break;
|
||||||
case entry::undefined_t:
|
case entry::undefined_t:
|
||||||
// trying to encode a structure with uninitialized values!
|
|
||||||
// TORRENT_ASSERT_VAL(false, e.type());
|
// empty string
|
||||||
// do nothing
|
write_char(out, '0');
|
||||||
|
write_char(out, ':');
|
||||||
|
|
||||||
|
ret += 2;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
|
|
|
@ -121,6 +121,19 @@ TORRENT_TEST(preformatted_node)
|
||||||
TEST_EQUAL(encode(e), "d4:infofoobare");
|
TEST_EQUAL(encode(e), "d4:infofoobare");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TORRENT_TEST(undefined_node)
|
||||||
|
{
|
||||||
|
entry e(entry::undefined_t);
|
||||||
|
TEST_EQUAL(encode(e), "0:");
|
||||||
|
}
|
||||||
|
|
||||||
|
TORRENT_TEST(undefined_node2)
|
||||||
|
{
|
||||||
|
entry e(entry::dictionary_t);
|
||||||
|
e["info"] = entry(entry::undefined_t);
|
||||||
|
TEST_EQUAL(encode(e), "d4:info0:e");
|
||||||
|
}
|
||||||
|
|
||||||
#ifndef TORRENT_NO_DEPRECATE
|
#ifndef TORRENT_NO_DEPRECATE
|
||||||
TORRENT_TEST(lazy_entry)
|
TORRENT_TEST(lazy_entry)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue