epee: fallback to a counter if gmtime fails when rotating logs

This commit is contained in:
moneromooo-monero 2018-05-26 23:38:08 +01:00
parent 25e7a7d96f
commit 87665281ea
No known key found for this signature in database
GPG Key ID: 686F07454D6CEFC3

View File

@ -47,6 +47,7 @@ using namespace epee;
static std::string generate_log_filename(const char *base) static std::string generate_log_filename(const char *base)
{ {
std::string filename(base); std::string filename(base);
static unsigned int fallback_counter = 0;
char tmp[200]; char tmp[200];
struct tm tm; struct tm tm;
time_t now = time(NULL); time_t now = time(NULL);
@ -56,7 +57,7 @@ static std::string generate_log_filename(const char *base)
#else #else
(!gmtime_r(&now, &tm)) (!gmtime_r(&now, &tm))
#endif #endif
strcpy(tmp, "unknown"); snprintf(tmp, sizeof(tmp), "part-%u", ++fallback_counter);
else else
strftime(tmp, sizeof(tmp), "%Y-%m-%d-%H-%M-%S", &tm); strftime(tmp, sizeof(tmp), "%Y-%m-%d-%H-%M-%S", &tm);
tmp[sizeof(tmp) - 1] = 0; tmp[sizeof(tmp) - 1] = 0;