Fix FileLog and removed Mem leak in RemoteLog
This commit is contained in:
parent
bb1fba37a6
commit
7897f8f645
3 changed files with 8 additions and 3 deletions
|
@ -38,6 +38,7 @@ NetworkState::NetworkState() :
|
||||||
failures(0),
|
failures(0),
|
||||||
rejected(0),
|
rejected(0),
|
||||||
total(0),
|
total(0),
|
||||||
|
powVariant(POW_AUTODETECT),
|
||||||
m_active(false)
|
m_active(false)
|
||||||
{
|
{
|
||||||
memset(pool, 0, sizeof(pool));
|
memset(pool, 0, sizeof(pool));
|
||||||
|
|
|
@ -56,7 +56,7 @@ void FileLog::message(int level, const char* fmt, va_list args)
|
||||||
localtime_r(&now, &stime);
|
localtime_r(&now, &stime);
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
char *buf = new char[512];
|
auto *buf = new char[512];
|
||||||
int size = snprintf(buf, 23, "[%d-%02d-%02d %02d:%02d:%02d] ",
|
int size = snprintf(buf, 23, "[%d-%02d-%02d %02d:%02d:%02d] ",
|
||||||
stime.tm_year + 1900,
|
stime.tm_year + 1900,
|
||||||
stime.tm_mon + 1,
|
stime.tm_mon + 1,
|
||||||
|
@ -70,7 +70,9 @@ void FileLog::message(int level, const char* fmt, va_list args)
|
||||||
|
|
||||||
std::string row = std::regex_replace(std::string(buf, size+1), std::regex("\x1B\\[[0-9;]*[a-zA-Z]"), "");
|
std::string row = std::regex_replace(std::string(buf, size+1), std::regex("\x1B\\[[0-9;]*[a-zA-Z]"), "");
|
||||||
|
|
||||||
write(const_cast<char*>(row.c_str()), size + 1);
|
memcpy(buf, row.c_str(), row.length());
|
||||||
|
|
||||||
|
write(buf, row.length());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -44,7 +44,7 @@ void RemoteLog::message(int level, const char* fmt, va_list args)
|
||||||
localtime_r(&now, &stime);
|
localtime_r(&now, &stime);
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
char *buf = new char[512];
|
auto *buf = new char[512];
|
||||||
int size = snprintf(buf, 23, "[%d-%02d-%02d %02d:%02d:%02d] ",
|
int size = snprintf(buf, 23, "[%d-%02d-%02d %02d:%02d:%02d] ",
|
||||||
stime.tm_year + 1900,
|
stime.tm_year + 1900,
|
||||||
stime.tm_mon + 1,
|
stime.tm_mon + 1,
|
||||||
|
@ -63,6 +63,8 @@ void RemoteLog::message(int level, const char* fmt, va_list args)
|
||||||
std::string row = std::regex_replace(std::string(buf, size+1), std::regex("\x1B\\[[0-9;]*[a-zA-Z]"), "");
|
std::string row = std::regex_replace(std::string(buf, size+1), std::regex("\x1B\\[[0-9;]*[a-zA-Z]"), "");
|
||||||
|
|
||||||
rows_.push_back(row);
|
rows_.push_back(row);
|
||||||
|
|
||||||
|
delete[](buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue