{
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);
}
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);
}
/* 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)
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);
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",
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);
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) {
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;
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;
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;
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++) {
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);
}
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 */
struct mgcp_endpoint *p = sub->parent;
time(&t);
- localtime_r(&t,&tm);
+ ast_localtime(&t, &tm, NULL);
n = callername;
l = callernum;
if (!n)
int start;
time(&UtcTime);
- localtime_r(&UtcTime,&tm);
+ ast_localtime(&UtcTime, &tm, NULL);
memset(&cid, 0, sizeof(PHONE_CID));
if(&tm != NULL) {
#include <netdb.h>
#include <limits.h>
#include <string.h>
+#include <time.h> /* we want to override localtime_r */
#include "asterisk/lock.h"
#include "asterisk/time.h"
#include "asterisk/logger.h"
#include "asterisk/compiler.h"
+#include "asterisk/localtime.h"
/*!
\note \verbatim
#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);
#if defined(HAVE_SYSINFO)
ast_cli(fd, " Min Free Memory: %ld MB\n", option_minmemfree);
#endif
- if (localtime_r(&ast_startuptime, &tm)) {
+ if (ast_localtime(&ast_startuptime, &tm, NULL)) {
strftime(buf, sizeof(buf), "%H:%M:%S", &tm);
ast_cli(fd, " Startup time: %s\n", buf);
}
- if (localtime_r(&ast_lastreloadtime, &tm)) {
+ if (ast_localtime(&ast_lastreloadtime, &tm, NULL)) {
strftime(buf, sizeof(buf), "%H:%M:%S", &tm);
ast_cli(fd, " Last reload time: %s\n", buf);
}
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;
case 'h': /* hostname */
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;
case '#': /* process console or remote? */
/* Get the time */
time(&t);
- localtime_r(&t,&tm);
+ ast_localtime(&t, &tm, NULL);
ptr = msg;
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);
}
}
/* Create our date/time */
time(&t);
- localtime_r(&t, &tm);
+ ast_localtime(&t, &tm, NULL);
strftime(logmsg->date, sizeof(logmsg->date), dateformat, &tm);
/* Copy over data */
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);
if (!ast_strlen_zero(actionid))
snprintf(idText, sizeof(idText), "ActionID: %s\r\n", actionid);
- localtime_r(&ast_startuptime, &tm);
+ ast_localtime(&ast_startuptime, &tm, NULL);
strftime(startuptime, sizeof(startuptime), "%H:%M:%S", &tm);
- localtime_r(&ast_lastreloadtime, &tm);
+ ast_localtime(&ast_lastreloadtime, &tm, NULL);
strftime(reloadtime, sizeof(reloadtime), "%H:%M:%S", &tm);
astman_append(s, "Response: Success\r\n"
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)))
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);
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;
{
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)
{
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)
{
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)
{
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)
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");
{
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) {
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;
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);
{
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);
{
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);
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);
{
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);
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);
{
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);
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) {
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 */
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 */
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 */
int res = 0;
int hour, pm=0;
- localtime_r(&t,&tm);
+ ast_localtime(&t, &tm, NULL);
hour = tm.tm_hour;
if (!hour)
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 */
{
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) {
{
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);
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 */
char *buf;
{
struct tm tm;
- return asctime_r(localtime_r(timep, &tm), buf);
+ return asctime_r(ast_localtime(timep, &tm, NULL), buf);
}
/*