1
0
mirror of https://github.com/PurpleI2P/i2pd.git synced 2025-01-22 04:04:16 +00:00

fix binary files

This commit is contained in:
chertov 2014-01-22 06:02:22 +04:00
parent 89a1310f11
commit 7d2281b477
3 changed files with 18 additions and 7 deletions

View File

@ -60,7 +60,7 @@ namespace i2p
bool RouterContext::Load () bool RouterContext::Load ()
{ {
std::ifstream fk (ROUTER_KEYS); std::ifstream fk (ROUTER_KEYS, std::ios::binary);
if (!fk.is_open ()) return false; if (!fk.is_open ()) return false;
fk.read ((char *)&m_Keys, sizeof (m_Keys)); fk.read ((char *)&m_Keys, sizeof (m_Keys));
@ -74,10 +74,10 @@ namespace i2p
void RouterContext::Save () void RouterContext::Save ()
{ {
std::ofstream fk (ROUTER_KEYS); std::ofstream fk (ROUTER_KEYS, std::ios::binary);
fk.write ((char *)&m_Keys, sizeof (m_Keys)); fk.write ((char *)&m_Keys, sizeof (m_Keys));
std::ofstream fi (ROUTER_INFO); std::ofstream fi(ROUTER_INFO, std::ios::binary);
fi.write ((char *)m_RouterInfo.GetBuffer (), m_RouterInfo.GetBufferLen ()); fi.write ((char *)m_RouterInfo.GetBuffer (), m_RouterInfo.GetBufferLen ());
} }
} }

View File

@ -41,7 +41,7 @@ namespace data
void RouterInfo::ReadFromFile (const char * filename) void RouterInfo::ReadFromFile (const char * filename)
{ {
std::ifstream s(filename); std::ifstream s(filename, std::ios::binary);
if (s.is_open ()) if (s.is_open ())
{ {
s.seekg (0,std::ios::end); s.seekg (0,std::ios::end);
@ -95,7 +95,7 @@ namespace data
size = be16toh (size); size = be16toh (size);
while (r < size) while (r < size)
{ {
char key[50], value[50]; char key[500], value[500];
r += ReadString (key, s); r += ReadString (key, s);
s.seekg (1, std::ios_base::cur); r++; // = s.seekg (1, std::ios_base::cur); r++; // =
r += ReadString (value, s); r += ReadString (value, s);
@ -117,7 +117,7 @@ namespace data
size = be16toh (size); size = be16toh (size);
while (r < size) while (r < size)
{ {
char key[50], value[50]; char key[500], value[500];
r += ReadString (key, s); r += ReadString (key, s);
s.seekg (1, std::ios_base::cur); r++; // = s.seekg (1, std::ios_base::cur); r++; // =
r += ReadString (value, s); r += ReadString (value, s);
@ -212,6 +212,16 @@ namespace data
{ {
uint8_t len; uint8_t len;
s.read ((char *)&len, 1); s.read ((char *)&len, 1);
//static int count_l = 0;
//count_l++;
//std::cout << count_l << " " << (int)len << std::endl;
//if (len > 40)
//{
// std::cout << (int)len << std::endl;
//}
s.read (str, len); s.read (str, len);
str[len] = 0; str[len] = 0;
return len+1; return len+1;

View File

@ -115,8 +115,9 @@ namespace tunnel
while (hop) while (hop)
{ {
delete hop; auto tmp = hop;
hop = hop->next; hop = hop->next;
delete tmp;
} }
} }