mirror of
https://github.com/PurpleI2P/i2pd.git
synced 2025-01-22 13:27:17 +01:00
moved save to file to RI
This commit is contained in:
parent
4de9ed80af
commit
ad65e52ce0
|
@ -200,7 +200,7 @@ namespace i2p
|
|||
msg->replyToken = 0;
|
||||
|
||||
CryptoPP::Gzip compressor;
|
||||
compressor.Put ((uint8_t *)context.GetRouterInfo ().GetBuffer (), context.GetRouterInfo ().GetBufferLen ());
|
||||
compressor.Put (context.GetRouterInfo ().GetBuffer (), context.GetRouterInfo ().GetBufferLen ());
|
||||
compressor.MessageEnd();
|
||||
// WARNING!!! MaxRetrievable() return uint64_t. Åñòü ïîäîçðåíèå, ÷òî ÷òî-òî íå òàê
|
||||
int size = compressor.MaxRetrievable ();
|
||||
|
|
|
@ -307,8 +307,7 @@ namespace data
|
|||
{
|
||||
if (it.second->IsUpdated ())
|
||||
{
|
||||
std::ofstream r (GetFilePath(fullDirectory, it.second), std::ofstream::binary);
|
||||
r.write ((char *)it.second->GetBuffer (), it.second->GetBufferLen ());
|
||||
it.second->SaveToFile (GetFilePath(fullDirectory, it.second));
|
||||
it.second->SetUpdated (false);
|
||||
count++;
|
||||
}
|
||||
|
|
|
@ -92,7 +92,6 @@ namespace i2p
|
|||
fk.write ((char *)&m_Keys, sizeof (m_Keys));
|
||||
}
|
||||
|
||||
std::ofstream fi (i2p::util::filesystem::GetFullPath (ROUTER_INFO).c_str (), std::ofstream::binary | std::ofstream::out);
|
||||
fi.write ((char *)m_RouterInfo.GetBuffer (), m_RouterInfo.GetBufferLen ());
|
||||
m_RouterInfo.SaveToFile (i2p::util::filesystem::GetFullPath (ROUTER_INFO));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -53,7 +53,7 @@ namespace data
|
|||
return;
|
||||
}
|
||||
s.seekg(0, std::ios::beg);
|
||||
s.read(m_Buffer,m_BufferLen);
|
||||
s.read((char *)m_Buffer, m_BufferLen);
|
||||
ReadFromBuffer ();
|
||||
}
|
||||
else
|
||||
|
@ -62,7 +62,7 @@ namespace data
|
|||
|
||||
void RouterInfo::ReadFromBuffer ()
|
||||
{
|
||||
std::stringstream str (std::string (m_Buffer, m_BufferLen));
|
||||
std::stringstream str (std::string ((char *)m_Buffer, m_BufferLen));
|
||||
ReadFromStream (str);
|
||||
// verify signature
|
||||
CryptoPP::DSA::PublicKey pubKey;
|
||||
|
@ -322,6 +322,12 @@ namespace data
|
|||
i2p::context.Sign ((uint8_t *)m_Buffer, m_BufferLen, (uint8_t *)m_Buffer + m_BufferLen);
|
||||
m_BufferLen += 40;
|
||||
}
|
||||
|
||||
void RouterInfo::SaveToFile (const std::string& fullPath)
|
||||
{
|
||||
std::ofstream f (fullPath, std::ofstream::binary | std::ofstream::out);
|
||||
f.write ((char *)m_Buffer, m_BufferLen);
|
||||
}
|
||||
|
||||
size_t RouterInfo::ReadString (char * str, std::istream& s)
|
||||
{
|
||||
|
|
|
@ -13,6 +13,7 @@ namespace i2p
|
|||
{
|
||||
namespace data
|
||||
{
|
||||
const int MAX_RI_BUFFER_SIZE = 2048;
|
||||
class RouterInfo: public RoutingDestination
|
||||
{
|
||||
public:
|
||||
|
@ -95,14 +96,16 @@ namespace data
|
|||
|
||||
void SetUnreachable (bool unreachable) { m_IsUnreachable = unreachable; };
|
||||
bool IsUnreachable () const { return m_IsUnreachable; };
|
||||
|
||||
const uint8_t * GetBuffer () const { return m_Buffer; };
|
||||
int GetBufferLen () const { return m_BufferLen; };
|
||||
|
||||
void CreateBuffer ();
|
||||
void UpdateRoutingKey ();
|
||||
const char * GetBuffer () const { return m_Buffer; };
|
||||
int GetBufferLen () const { return m_BufferLen; };
|
||||
|
||||
bool IsUpdated () const { return m_IsUpdated; };
|
||||
void SetUpdated (bool updated) { m_IsUpdated = updated; };
|
||||
void SaveToFile (const std::string& fullPath);
|
||||
|
||||
// implements RoutingDestination
|
||||
const IdentHash& GetIdentHash () const { return m_IdentHash; };
|
||||
|
@ -127,7 +130,7 @@ namespace data
|
|||
IdentHash m_IdentHash;
|
||||
RoutingKey m_RoutingKey;
|
||||
char m_IdentHashBase64[48], m_IdentHashAbbreviation[5];
|
||||
char m_Buffer[2048];
|
||||
uint8_t m_Buffer[MAX_RI_BUFFER_SIZE];
|
||||
int m_BufferLen;
|
||||
uint64_t m_Timestamp;
|
||||
std::vector<Address> m_Addresses;
|
||||
|
|
Loading…
Reference in a new issue