Skip to content

Commit

Permalink
moved save to file to RI
Browse files Browse the repository at this point in the history
  • Loading branch information
orignal committed Jul 10, 2014
1 parent 4de9ed8 commit ad65e52
Show file tree
Hide file tree
Showing 5 changed files with 17 additions and 10 deletions.
2 changes: 1 addition & 1 deletion I2NPProtocol.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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 ();
Expand Down
3 changes: 1 addition & 2 deletions NetDb.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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++;
}
Expand Down
3 changes: 1 addition & 2 deletions RouterContext.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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));
}
}
10 changes: 8 additions & 2 deletions RouterInfo.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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;
Expand Down Expand Up @@ -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)
{
Expand Down
9 changes: 6 additions & 3 deletions RouterInfo.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ namespace i2p
{
namespace data
{
const int MAX_RI_BUFFER_SIZE = 2048;
class RouterInfo: public RoutingDestination
{
public:
Expand Down Expand Up @@ -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; };
Expand All @@ -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;
Expand Down

0 comments on commit ad65e52

Please sign in to comment.