mirror of https://github.com/oxen-io/lokinet
Replace bencode_write_version_entry with a more general-purpose function for writing bencoded dictionary entries
This commit is contained in:
parent
fd02e3e149
commit
1666498405
|
@ -55,7 +55,7 @@ namespace llarp
|
|||
return false;
|
||||
|
||||
// protocol version
|
||||
if(!bencode_write_version_entry(buf))
|
||||
if(!bencode_write_uint64_entry(buf, "v", 1, LLARP_PROTO_VERSION))
|
||||
return false;
|
||||
|
||||
return bencode_end(buf);
|
||||
|
|
|
@ -87,7 +87,7 @@ namespace llarp
|
|||
if(!rc.BEncode(buf))
|
||||
return false;
|
||||
|
||||
if(!bencode_write_version_entry(buf))
|
||||
if(!bencode_write_uint64_entry(buf, "v", 1, LLARP_PROTO_VERSION))
|
||||
return false;
|
||||
|
||||
if(!bencode_write_bytestring(buf, "z", 1))
|
||||
|
|
|
@ -52,7 +52,7 @@ namespace llarp
|
|||
if(!BEncodeWriteDictArray("c", frames, buf))
|
||||
return false;
|
||||
// version
|
||||
if(!bencode_write_version_entry(buf))
|
||||
if(!bencode_write_uint64_entry(buf, "v", 1, LLARP_PROTO_VERSION))
|
||||
return false;
|
||||
|
||||
return bencode_end(buf);
|
||||
|
@ -101,7 +101,7 @@ namespace llarp
|
|||
if(!BEncodeWriteDictEntry("u", *nextRC, buf))
|
||||
return false;
|
||||
}
|
||||
if(!bencode_write_version_entry(buf))
|
||||
if(!bencode_write_uint64_entry(buf, "v", 1, LLARP_PROTO_VERSION))
|
||||
return false;
|
||||
if(work && !BEncodeWriteDictEntry("w", *work, buf))
|
||||
return false;
|
||||
|
|
|
@ -111,7 +111,7 @@ namespace llarp
|
|||
if(!BEncodeWriteDictInt("s", status, buf))
|
||||
return false;
|
||||
// version
|
||||
if(!bencode_write_version_entry(buf))
|
||||
if(!bencode_write_uint64_entry(buf, "v", 1, LLARP_PROTO_VERSION))
|
||||
return false;
|
||||
|
||||
return bencode_end(buf);
|
||||
|
@ -248,7 +248,8 @@ namespace llarp
|
|||
LR_StatusRecord::BEncode(llarp_buffer_t* buf) const
|
||||
{
|
||||
return bencode_start_dict(buf) && BEncodeWriteDictInt("s", status, buf)
|
||||
&& bencode_write_version_entry(buf) && bencode_end(buf);
|
||||
&& bencode_write_uint64_entry(buf, "v", 1, LLARP_PROTO_VERSION)
|
||||
&& bencode_end(buf);
|
||||
}
|
||||
|
||||
bool
|
||||
|
|
|
@ -142,7 +142,7 @@ namespace llarp
|
|||
return false;
|
||||
|
||||
/** version */
|
||||
if(!bencode_write_version_entry(buff))
|
||||
if(!bencode_write_uint64_entry(buff, "v", 1, LLARP_PROTO_VERSION))
|
||||
return false;
|
||||
/** end */
|
||||
return bencode_end(buff);
|
||||
|
|
|
@ -132,8 +132,8 @@ namespace llarp
|
|||
if(!bencode_write_uint64(buf, last_updated))
|
||||
return false;
|
||||
|
||||
/* write version */
|
||||
if(!bencode_write_version_entry(buf))
|
||||
/* write versions */
|
||||
if(!bencode_write_uint64_entry(buf, "v", 1, version))
|
||||
return false;
|
||||
|
||||
/* write xi if they exist */
|
||||
|
|
|
@ -139,9 +139,12 @@ bencode_discard(llarp_buffer_t* buf)
|
|||
}
|
||||
|
||||
bool
|
||||
bencode_write_version_entry(llarp_buffer_t* buff)
|
||||
bencode_write_uint64_entry(llarp_buffer_t* buff, const void* name, size_t sz, uint64_t i)
|
||||
{
|
||||
return buff->writef("1:vi%de", LLARP_PROTO_VERSION);
|
||||
if (! bencode_write_bytestring(buff, name, sz))
|
||||
return false;
|
||||
|
||||
return bencode_write_uint64(buff, i);
|
||||
}
|
||||
|
||||
bool
|
||||
|
|
|
@ -29,8 +29,9 @@ bencode_write_bytestring(llarp_buffer_t* buff, const void* data, size_t sz);
|
|||
bool
|
||||
bencode_write_uint64(llarp_buffer_t* buff, uint64_t i);
|
||||
|
||||
/// Write a dictionary entry with a uint64_t value
|
||||
bool
|
||||
bencode_write_version_entry(llarp_buffer_t* buff);
|
||||
bencode_write_uint64_entry(llarp_buffer_t* buff, const void* name, size_t sz, uint64_t i);
|
||||
|
||||
bool
|
||||
bencode_start_list(llarp_buffer_t* buff);
|
||||
|
|
|
@ -231,22 +231,22 @@ INSTANTIATE_TEST_CASE_P(
|
|||
std::numeric_limits< uint64_t >::max() / 2,
|
||||
std::numeric_limits< uint64_t >::max() / 3), );
|
||||
|
||||
TEST(TestBencode, good_version)
|
||||
TEST(TestBencode, good_uint64_entry)
|
||||
{
|
||||
std::vector< byte_t > backingBuffer(100, 0);
|
||||
llarp_buffer_t buffer(backingBuffer);
|
||||
|
||||
ASSERT_TRUE(bencode_write_version_entry(&buffer));
|
||||
ASSERT_TRUE(bencode_write_uint64_entry(&buffer, "v", 1, 0));
|
||||
|
||||
ASSERT_EQ(std::string(buffer.base, buffer.cur), "1:vi0e");
|
||||
}
|
||||
|
||||
TEST(TestBencode, bad_version)
|
||||
TEST(TestBencode, bad_uint64_entry)
|
||||
{
|
||||
std::vector< byte_t > otherBuffer(1, 0);
|
||||
llarp_buffer_t buffer(otherBuffer);
|
||||
|
||||
ASSERT_FALSE(bencode_write_version_entry(&buffer));
|
||||
ASSERT_FALSE(bencode_write_uint64_entry(&buffer, "v", 1, 0));
|
||||
}
|
||||
|
||||
struct ValueData
|
||||
|
|
Loading…
Reference in New Issue