summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzhengchao <[email protected]>2019-02-26 19:45:31 +0600
committerzhengchao <[email protected]>2019-02-26 19:45:31 +0600
commit05c550e46b08c7718d0bc83d23000baade042451 (patch)
treeaeb7f11c56338d7341426191a4ad57b62ae3ec07
parentdf025b3d9fa539eb09456a3d70f317ff697bf1a4 (diff)
修复log master key的注释中,使用MESA handle logger代码引入的时间固定为东8区的bug。
-rw-r--r--common/src/tfe_utils.cpp42
1 files changed, 7 insertions, 35 deletions
diff --git a/common/src/tfe_utils.cpp b/common/src/tfe_utils.cpp
index 10ff3ff..0497726 100644
--- a/common/src/tfe_utils.cpp
+++ b/common/src/tfe_utils.cpp
@@ -31,46 +31,18 @@ char* tfe_strdup(const char* s)
}
char *tfe_thread_safe_ctime(const time_t *tp, char *buf, int len)
{
- unsigned int year, month, day, weekday, hour, min, sec;
- unsigned int year_days = 365;
- unsigned int month_days[12] =
- {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
+ struct tm local_time;
+ time_t now;
static unsigned char weekday_str[7][4] =
{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
static unsigned char month_str[12][4] = {"Jan", "Feb", "Mar", "Apr",
"May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
};
- sec = * tp;
- min = sec / 60; sec = sec % 60;
- hour = min / 60; min = min % 60; hour += 8;
- day = hour / 24; hour = hour % 24;
- weekday = day % 7; weekday = (weekday + 4) % 7;
-
- for(year = 1970; day >= year_days;)
- {
- day -= year_days;
- year ++;
-
- if(0 == year % 4 && (0 != year % 100 || 0 == year % 400))
- year_days = 366;
- else year_days = 365;
- }
-
- if(366 == year_days) month_days[1] = 29;
-
- //bug fix by yw 20120808
- for(month = 0; day >= month_days[month];)
- {
- day -= month_days[month];
- month ++;
- }
-
- /*
- snprintf(buf, len, "%02d:%02d:%02d, %04d/%02d/%02d, %s",
- hour, min, sec, year, month, day, weekday_str[week_day]);
- */
- snprintf(buf, len, "%s %s %d %02d:%02d:%02d %d", weekday_str[weekday],
- month_str[month], day + 1, hour, min, sec, year);
+ time(&now);
+ if(NULL == (localtime_r(&now, &local_time)))
+ return NULL;
+ len = snprintf(buf, len, "%s %s %d %02d:%02d:%02d %d", weekday_str[local_time.tm_wday],
+ month_str[local_time.tm_mon], local_time.tm_mday, local_time.tm_hour, local_time.tm_min, local_time.tm_sec, local_time.tm_year+1900);
return buf;
}
//replacement of glibc scandir, to adapt dictator malloc wrap