diff options
-rw-r--r-- | apps/app_voicemail.c | 6 | ||||
-rw-r--r-- | cdr/cdr_csv.c | 2 | ||||
-rw-r--r-- | cdr/cdr_manager.c | 6 | ||||
-rw-r--r-- | cdr/cdr_odbc.c | 2 | ||||
-rw-r--r-- | cdr/cdr_pgsql.c | 2 | ||||
-rw-r--r-- | cdr/cdr_radius.c | 6 | ||||
-rw-r--r-- | cdr/cdr_sqlite.c | 6 | ||||
-rw-r--r-- | cdr/cdr_tds.c | 2 | ||||
-rw-r--r-- | channels/chan_iax2.c | 3 | ||||
-rw-r--r-- | channels/chan_mgcp.c | 2 | ||||
-rw-r--r-- | channels/chan_phone.c | 2 | ||||
-rw-r--r-- | include/asterisk/utils.h | 7 | ||||
-rw-r--r-- | main/asterisk.c | 4 | ||||
-rw-r--r-- | main/callerid.c | 2 | ||||
-rw-r--r-- | main/cdr.c | 3 | ||||
-rw-r--r-- | main/logger.c | 4 | ||||
-rw-r--r-- | main/pbx.c | 2 | ||||
-rw-r--r-- | main/say.c | 73 |
18 files changed, 80 insertions, 54 deletions
diff --git a/apps/app_voicemail.c b/apps/app_voicemail.c index 01dbbfb99..c585c2e5a 100644 --- a/apps/app_voicemail.c +++ b/apps/app_voicemail.c @@ -2111,7 +2111,7 @@ static int get_date(char *s, int len) struct tm tm; time_t t; t = time(0); - localtime_r(&t,&tm); + ast_localtime(&t, &tm, NULL); return strftime(s, len, "%a %b %e %r %Z %Y", &tm); } @@ -4223,10 +4223,10 @@ static int play_message_datetime(struct ast_channel *chan, struct ast_vm_user *v /* No internal variable parsing for now, so we'll comment it out for the time being */ #if 0 /* Set the DIFF_* variables */ - localtime_r(&t, &time_now); + ast_localtime(&t, &time_now, NULL); tv_now = ast_tvnow(); tnow = tv_now.tv_sec; - localtime_r(&tnow,&time_then); + ast_localtime(&tnow, &time_then, NULL); /* Day difference */ if (time_now.tm_year == time_then.tm_year) diff --git a/cdr/cdr_csv.c b/cdr/cdr_csv.c index 350620315..5475398ac 100644 --- a/cdr/cdr_csv.c +++ b/cdr/cdr_csv.c @@ -199,7 +199,7 @@ static int append_date(char *buf, struct timeval tv, size_t bufsize) if (usegmtime) { gmtime_r(&t,&tm); } else { - localtime_r(&t,&tm); + ast_localtime(&t, &tm, NULL); } strftime(tmp, sizeof(tmp), DATE_FORMAT, &tm); return append_string(buf, tmp, bufsize); diff --git a/cdr/cdr_manager.c b/cdr/cdr_manager.c index bd6ef6709..352d7d400 100644 --- a/cdr/cdr_manager.c +++ b/cdr/cdr_manager.c @@ -95,17 +95,17 @@ static int manager_log(struct ast_cdr *cdr) return 0; t = cdr->start.tv_sec; - localtime_r(&t, &timeresult); + ast_localtime(&t, &timeresult, NULL); strftime(strStartTime, sizeof(strStartTime), DATE_FORMAT, &timeresult); if (cdr->answer.tv_sec) { t = cdr->answer.tv_sec; - localtime_r(&t, &timeresult); + ast_localtime(&t, &timeresult, NULL); strftime(strAnswerTime, sizeof(strAnswerTime), DATE_FORMAT, &timeresult); } t = cdr->end.tv_sec; - localtime_r(&t, &timeresult); + ast_localtime(&t, &timeresult, NULL); strftime(strEndTime, sizeof(strEndTime), DATE_FORMAT, &timeresult); manager_event(EVENT_FLAG_CALL, "Cdr", diff --git a/cdr/cdr_odbc.c b/cdr/cdr_odbc.c index db93eac55..4afda0e8e 100644 --- a/cdr/cdr_odbc.c +++ b/cdr/cdr_odbc.c @@ -99,7 +99,7 @@ static int odbc_log(struct ast_cdr *cdr) if (usegmtime) gmtime_r(&cdr->start.tv_sec,&tm); else - localtime_r(&cdr->start.tv_sec,&tm); + ast_localtime(&cdr->start.tv_sec, &tm, NULL); ast_mutex_lock(&odbc_lock); strftime(timestr, sizeof(timestr), DATE_FORMAT, &tm); diff --git a/cdr/cdr_pgsql.c b/cdr/cdr_pgsql.c index dd43b45ba..7788cf037 100644 --- a/cdr/cdr_pgsql.c +++ b/cdr/cdr_pgsql.c @@ -77,7 +77,7 @@ static int pgsql_log(struct ast_cdr *cdr) ast_mutex_lock(&pgsql_lock); - localtime_r(&cdr->start.tv_sec,&tm); + ast_localtime(&cdr->start.tv_sec, &tm, NULL); strftime(timestr, sizeof(timestr), DATE_FORMAT, &tm); if ((!connected) && pghostname && pgdbuser && pgpassword && pgdbname) { diff --git a/cdr/cdr_radius.c b/cdr/cdr_radius.c index 9f9a4470a..6d890e764 100644 --- a/cdr/cdr_radius.c +++ b/cdr/cdr_radius.c @@ -145,7 +145,7 @@ static int build_radius_record(VALUE_PAIR **send, struct ast_cdr *cdr) if (ast_test_flag(&global_flags, RADIUS_FLAG_USEGMTIME)) gmtime_r(&(cdr->start.tv_sec), &tm); else - localtime_r(&(cdr->start.tv_sec), &tm); + ast_localtime(&(cdr->start.tv_sec), &tm, NULL); strftime(timestr, sizeof(timestr), DATE_FORMAT, &tm); if (!rc_avpair_add(rh, send, PW_AST_START_TIME, timestr, strlen(timestr), VENDOR_CODE)) return -1; @@ -154,7 +154,7 @@ static int build_radius_record(VALUE_PAIR **send, struct ast_cdr *cdr) if (ast_test_flag(&global_flags, RADIUS_FLAG_USEGMTIME)) gmtime_r(&(cdr->answer.tv_sec), &tm); else - localtime_r(&(cdr->answer.tv_sec), &tm); + ast_localtime(&(cdr->answer.tv_sec), &tm, NULL); strftime(timestr, sizeof(timestr), DATE_FORMAT, &tm); if (!rc_avpair_add(rh, send, PW_AST_ANSWER_TIME, timestr, strlen(timestr), VENDOR_CODE)) return -1; @@ -163,7 +163,7 @@ static int build_radius_record(VALUE_PAIR **send, struct ast_cdr *cdr) if (ast_test_flag(&global_flags, RADIUS_FLAG_USEGMTIME)) gmtime_r(&(cdr->end.tv_sec), &tm); else - localtime_r(&(cdr->end.tv_sec), &tm); + ast_localtime(&(cdr->end.tv_sec), &tm, NULL); strftime(timestr, sizeof(timestr), DATE_FORMAT, &tm); if (!rc_avpair_add(rh, send, PW_AST_END_TIME, timestr, strlen(timestr), VENDOR_CODE)) return -1; diff --git a/cdr/cdr_sqlite.c b/cdr/cdr_sqlite.c index 146f7a209..5aa8a5154 100644 --- a/cdr/cdr_sqlite.c +++ b/cdr/cdr_sqlite.c @@ -101,15 +101,15 @@ static int sqlite_log(struct ast_cdr *cdr) ast_mutex_lock(&sqlite_lock); t = cdr->start.tv_sec; - localtime_r(&t, &tm); + ast_localtime(&t, &tm, NULL); strftime(startstr, sizeof(startstr), DATE_FORMAT, &tm); t = cdr->answer.tv_sec; - localtime_r(&t, &tm); + ast_localtime(&t, &tm, NULL); strftime(answerstr, sizeof(answerstr), DATE_FORMAT, &tm); t = cdr->end.tv_sec; - localtime_r(&t, &tm); + ast_localtime(&t, &tm, NULL); strftime(endstr, sizeof(endstr), DATE_FORMAT, &tm); for(count=0; count<5; count++) { diff --git a/cdr/cdr_tds.c b/cdr/cdr_tds.c index 2ac8481a8..444751d1a 100644 --- a/cdr/cdr_tds.c +++ b/cdr/cdr_tds.c @@ -286,7 +286,7 @@ static void get_date(char *dateField, struct timeval tv) if (!ast_tvzero(tv)) { t = tv.tv_sec; - localtime_r(&t, &tm); + ast_localtime(&t, &tm, NULL); strftime(buf, 80, DATE_FORMAT, &tm); sprintf(dateField, "'%s'", buf); } diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c index 64a43df98..d3e0a7e70 100644 --- a/channels/chan_iax2.c +++ b/channels/chan_iax2.c @@ -2761,9 +2761,10 @@ static unsigned int iax2_datetime(const char *tz) struct tm tm; unsigned int tmp; time(&t); - localtime_r(&t, &tm); if (!ast_strlen_zero(tz)) ast_localtime(&t, &tm, tz); + else + ast_localtime(&t, &tm, NULL); tmp = (tm.tm_sec >> 1) & 0x1f; /* 5 bits of seconds */ tmp |= (tm.tm_min & 0x3f) << 5; /* 6 bits of minutes */ tmp |= (tm.tm_hour & 0x1f) << 11; /* 5 bits of hours */ diff --git a/channels/chan_mgcp.c b/channels/chan_mgcp.c index 079c6b56e..bda08d7a3 100644 --- a/channels/chan_mgcp.c +++ b/channels/chan_mgcp.c @@ -2214,7 +2214,7 @@ static int transmit_notify_request_with_callerid(struct mgcp_subchannel *sub, ch struct mgcp_endpoint *p = sub->parent; time(&t); - localtime_r(&t,&tm); + ast_localtime(&t, &tm, NULL); n = callername; l = callernum; if (!n) diff --git a/channels/chan_phone.c b/channels/chan_phone.c index 961ec78b3..d5b4500a9 100644 --- a/channels/chan_phone.c +++ b/channels/chan_phone.c @@ -295,7 +295,7 @@ static int phone_call(struct ast_channel *ast, char *dest, int timeout) int start; time(&UtcTime); - localtime_r(&UtcTime,&tm); + ast_localtime(&UtcTime, &tm, NULL); memset(&cid, 0, sizeof(PHONE_CID)); if(&tm != NULL) { diff --git a/include/asterisk/utils.h b/include/asterisk/utils.h index 1183876e9..1e5203671 100644 --- a/include/asterisk/utils.h +++ b/include/asterisk/utils.h @@ -32,12 +32,14 @@ #include <arpa/inet.h> /* we want to override inet_ntoa */ #include <netdb.h> #include <limits.h> +#include <time.h> /* we want to override localtime_r */ #include "asterisk/lock.h" #include "asterisk/time.h" #include "asterisk/strings.h" #include "asterisk/logger.h" #include "asterisk/compiler.h" +#include "asterisk/localtime.h" /*! \note \verbatim @@ -235,6 +237,11 @@ const char *ast_inet_ntoa(struct in_addr ia); #endif #define inet_ntoa __dont__use__inet_ntoa__use__ast_inet_ntoa__instead__ +#ifdef localtime_r +#undef localtime_r +#endif +#define localtime_r __dont_use_localtime_r_use_ast_localtime_instead__ + int ast_utils_init(void); int ast_wait_for_input(int fd, int ms); diff --git a/main/asterisk.c b/main/asterisk.c index 7eccefdbf..0c36fda6a 100644 --- a/main/asterisk.c +++ b/main/asterisk.c @@ -1828,7 +1828,7 @@ static char *cli_prompt(EditLine *el) case 'd': /* date */ memset(&tm, 0, sizeof(tm)); time(&ts); - if (localtime_r(&ts, &tm)) { + if (ast_localtime(&ts, &tm, NULL)) { strftime(p, sizeof(prompt) - strlen(prompt), "%Y-%m-%d", &tm); } break; @@ -1888,7 +1888,7 @@ static char *cli_prompt(EditLine *el) case 't': /* time */ memset(&tm, 0, sizeof(tm)); time(&ts); - if (localtime_r(&ts, &tm)) { + if (ast_localtime(&ts, &tm, NULL)) { strftime(p, sizeof(prompt) - strlen(prompt), "%H:%M:%S", &tm); } break; diff --git a/main/callerid.c b/main/callerid.c index 901137348..dfb43c77b 100644 --- a/main/callerid.c +++ b/main/callerid.c @@ -720,7 +720,7 @@ static int callerid_genmsg(char *msg, int size, const char *number, const char * int i,x; /* Get the time */ time(&t); - localtime_r(&t,&tm); + ast_localtime(&t, &tm, NULL); ptr = msg; diff --git a/main/cdr.c b/main/cdr.c index ee0fb789e..baa1165f8 100644 --- a/main/cdr.c +++ b/main/cdr.c @@ -208,7 +208,8 @@ static void cdr_get_tv(struct timeval tv, const char *fmt, char *buf, int bufsiz time_t t = tv.tv_sec; if (t) { struct tm tm; - localtime_r(&t, &tm); + + ast_localtime(&t, &tm, NULL); strftime(buf, bufsize, fmt, &tm); } } diff --git a/main/logger.c b/main/logger.c index cacedee44..e2291d966 100644 --- a/main/logger.c +++ b/main/logger.c @@ -726,7 +726,7 @@ void ast_log(int level, const char *file, int line, const char *function, const return; time(&t); - localtime_r(&t, &tm); + ast_localtime(&t, &tm, NULL); strftime(date, sizeof(date), dateformat, &tm); AST_LIST_LOCK(&logchannels); @@ -860,7 +860,7 @@ void ast_verbose(const char *fmt, ...) char *datefmt; time(&t); - localtime_r(&t, &tm); + ast_localtime(&t, &tm, NULL); strftime(date, sizeof(date), dateformat, &tm); datefmt = alloca(strlen(date) + 3 + strlen(fmt) + 1); sprintf(datefmt, "[%s] %s", date, fmt); diff --git a/main/pbx.c b/main/pbx.c index 56e291175..73c80ee05 100644 --- a/main/pbx.c +++ b/main/pbx.c @@ -4232,7 +4232,7 @@ int ast_check_timing(const struct ast_timing *i) struct tm tm; time_t t = time(NULL); - localtime_r(&t,&tm); + ast_localtime(&t, &tm, NULL); /* If it's not the right month, return */ if (!(i->monthmask & (1 << tm.tm_mon))) diff --git a/main/say.c b/main/say.c index 4d05848d0..2c3937c76 100644 --- a/main/say.c +++ b/main/say.c @@ -2924,8 +2924,8 @@ int ast_say_date_pt(struct ast_channel *chan, time_t t, const char *ints, const struct tm tm; char fn[256]; int res = 0; - ast_localtime(&t,&tm,NULL); - localtime_r(&t,&tm); + + ast_localtime(&t, &tm, NULL); snprintf(fn, sizeof(fn), "digits/day-%d", tm.tm_wday); if (!res) res = wait_file(chan, ints, fn, lang); @@ -5480,7 +5480,8 @@ int ast_say_time_en(struct ast_channel *chan, time_t t, const char *ints, const struct tm tm; int res = 0; int hour, pm=0; - localtime_r(&t,&tm); + + ast_localtime(&t, &tm, NULL); hour = tm.tm_hour; if (!hour) hour = 12; @@ -5526,7 +5527,8 @@ int ast_say_time_de(struct ast_channel *chan, time_t t, const char *ints, const { struct tm tm; int res = 0; - localtime_r(&t,&tm); + + ast_localtime(&t, &tm, NULL); if (!res) res = ast_say_number(chan, tm.tm_hour, ints, lang, "n"); if (!res) @@ -5544,7 +5546,8 @@ int ast_say_time_fr(struct ast_channel *chan, time_t t, const char *ints, const { struct tm tm; int res = 0; - localtime_r(&t,&tm); + + ast_localtime(&t, &tm, NULL); res = ast_say_number(chan, tm.tm_hour, ints, lang, "f"); if (!res) @@ -5561,7 +5564,8 @@ int ast_say_time_nl(struct ast_channel *chan, time_t t, const char *ints, const { struct tm tm; int res = 0; - localtime_r(&t,&tm); + + ast_localtime(&t, &tm, NULL); if (!res) res = ast_say_number(chan, tm.tm_hour, ints, lang, (char *) NULL); if (!res) @@ -5580,7 +5584,8 @@ int ast_say_time_pt(struct ast_channel *chan, time_t t, const char *ints, const struct tm tm; int res = 0; int hour; - localtime_r(&t,&tm); + + ast_localtime(&t, &tm, NULL); hour = tm.tm_hour; if (!res) res = ast_say_number(chan, hour, ints, lang, "f"); @@ -5606,7 +5611,8 @@ int ast_say_time_pt_BR(struct ast_channel *chan, time_t t, const char *ints, con { struct tm tm; int res = 0; - localtime_r(&t,&tm); + + ast_localtime(&t, &tm, NULL); res = ast_say_number(chan, tm.tm_hour, ints, lang, "f"); if (!res) { @@ -5635,7 +5641,8 @@ int ast_say_time_tw(struct ast_channel *chan, time_t t, const char *ints, const struct tm tm; int res = 0; int hour, pm=0; - localtime_r(&t,&tm); + + ast_localtime(&t, &tm, NULL); hour = tm.tm_hour; if (!hour) hour = 12; @@ -5702,7 +5709,8 @@ int ast_say_datetime_en(struct ast_channel *chan, time_t t, const char *ints, co char fn[256]; int res = 0; int hour, pm=0; - localtime_r(&t,&tm); + + ast_localtime(&t, &tm, NULL); if (!res) { snprintf(fn, sizeof(fn), "digits/day-%d", tm.tm_wday); res = ast_streamfile(chan, fn, lang); @@ -5765,7 +5773,8 @@ int ast_say_datetime_de(struct ast_channel *chan, time_t t, const char *ints, co { struct tm tm; int res = 0; - localtime_r(&t,&tm); + + ast_localtime(&t, &tm, NULL); res = ast_say_date(chan, t, ints, lang); if (!res) ast_say_time(chan, t, ints, lang); @@ -5779,7 +5788,8 @@ int ast_say_datetime_fr(struct ast_channel *chan, time_t t, const char *ints, co struct tm tm; char fn[256]; int res = 0; - localtime_r(&t,&tm); + + ast_localtime(&t, &tm, NULL); if (!res) res = ast_say_number(chan, tm.tm_mday, ints, lang, (char *) NULL); @@ -5817,7 +5827,8 @@ int ast_say_datetime_nl(struct ast_channel *chan, time_t t, const char *ints, co { struct tm tm; int res = 0; - localtime_r(&t,&tm); + + ast_localtime(&t, &tm, NULL); res = ast_say_date(chan, t, ints, lang); if (!res) { res = ast_streamfile(chan, "digits/nl-om", lang); @@ -5836,7 +5847,8 @@ int ast_say_datetime_pt(struct ast_channel *chan, time_t t, const char *ints, co char fn[256]; int res = 0; int hour, pm=0; - localtime_r(&t,&tm); + + ast_localtime(&t, &tm, NULL); if (!res) { snprintf(fn, sizeof(fn), "digits/day-%d", tm.tm_wday); res = ast_streamfile(chan, fn, lang); @@ -5899,7 +5911,8 @@ int ast_say_datetime_pt_BR(struct ast_channel *chan, time_t t, const char *ints, { struct tm tm; int res = 0; - localtime_r(&t,&tm); + + ast_localtime(&t, &tm, NULL); res = ast_say_date(chan, t, ints, lang); if (!res) res = ast_say_time(chan, t, ints, lang); @@ -5913,7 +5926,8 @@ int ast_say_datetime_tw(struct ast_channel *chan, time_t t, const char *ints, co char fn[256]; int res = 0; int hour, pm=0; - localtime_r(&t,&tm); + + ast_localtime(&t, &tm, NULL); if (!res) res = ast_say_number(chan, tm.tm_year + 1900, ints, lang, (char *) NULL); if (!res) { @@ -5992,8 +6006,8 @@ int ast_say_datetime_from_now_en(struct ast_channel *chan, time_t t, const char time(&nowt); - localtime_r(&t,&tm); - localtime_r(&nowt,&now); + ast_localtime(&t, &tm, NULL); + ast_localtime(&nowt,&now, NULL); daydiff = now.tm_yday - tm.tm_yday; if ((daydiff < 0) || (daydiff > 6)) { /* Day of month and month */ @@ -6032,8 +6046,8 @@ int ast_say_datetime_from_now_fr(struct ast_channel *chan, time_t t, const char time(&nowt); - localtime_r(&t,&tm); - localtime_r(&nowt,&now); + ast_localtime(&t, &tm, NULL); + ast_localtime(&nowt, &now, NULL); daydiff = now.tm_yday - tm.tm_yday; if ((daydiff < 0) || (daydiff > 6)) { /* Day of month and month */ @@ -6072,8 +6086,8 @@ int ast_say_datetime_from_now_pt(struct ast_channel *chan, time_t t, const char time(&nowt); - localtime_r(&t,&tm); - localtime_r(&nowt,&now); + ast_localtime(&t, &tm, NULL); + ast_localtime(&nowt, &now, NULL); daydiff = now.tm_yday - tm.tm_yday; if ((daydiff < 0) || (daydiff > 6)) { /* Day of month and month */ @@ -6296,7 +6310,7 @@ static int ast_say_time_gr(struct ast_channel *chan, time_t t, const char *ints, int res = 0; int hour, pm=0; - localtime_r(&t,&tm); + ast_localtime(&t, &tm, NULL); hour = tm.tm_hour; if (!hour) @@ -6341,7 +6355,8 @@ static int ast_say_datetime_gr(struct ast_channel *chan, time_t t, const char *i struct tm tm; char fn[256]; int res = 0; - localtime_r(&t,&tm); + + ast_localtime(&t, &tm, NULL); /* W E E K - D A Y */ @@ -6829,7 +6844,8 @@ static int ast_say_time_ge(struct ast_channel *chan, time_t t, const char *ints, { struct tm tm; int res = 0; - localtime_r(&t,&tm); + + ast_localtime(&t, &tm, NULL); res = ast_say_number(chan, tm.tm_hour, ints, lang, (char*)NULL); if (!res) { @@ -6859,7 +6875,8 @@ static int ast_say_datetime_ge(struct ast_channel *chan, time_t t, const char *i { struct tm tm; int res = 0; - localtime_r(&t,&tm); + + ast_localtime(&t, &tm, NULL); res = ast_say_date(chan, t, ints, lang); if (!res) ast_say_time(chan, t, ints, lang); @@ -6882,8 +6899,8 @@ static int ast_say_datetime_from_now_ge(struct ast_channel *chan, time_t t, cons time(&nowt); - localtime_r(&t,&tm); - localtime_r(&nowt,&now); + ast_localtime(&t, &tm, NULL); + ast_localtime(&nowt, &now, NULL); daydiff = now.tm_yday - tm.tm_yday; if ((daydiff < 0) || (daydiff > 6)) { /* Day of month and month */ |