summaryrefslogtreecommitdiff
path: root/main/stdtime
diff options
context:
space:
mode:
Diffstat (limited to 'main/stdtime')
-rw-r--r--main/stdtime/localtime.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/main/stdtime/localtime.c b/main/stdtime/localtime.c
index 36559f151..f7b4bd005 100644
--- a/main/stdtime/localtime.c
+++ b/main/stdtime/localtime.c
@@ -71,6 +71,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
#include "private.h"
#include "tzfile.h"
+#include "asterisk/_private.h"
#include "asterisk/lock.h"
#include "asterisk/localtime.h"
#include "asterisk/strings.h"
@@ -444,7 +445,7 @@ static void *kqueue_daemon(void *data)
closedir(sp->dir);
}
#endif
- free(sp);
+ ast_free(sp);
/* Just in case the signal was sent late */
AST_LIST_LOCK(&zonelist);
@@ -1436,6 +1437,17 @@ static int gmtload(struct state *sp)
return -1;
}
+void clean_time_zones(void)
+{
+ struct state *sp;
+
+ AST_LIST_LOCK(&zonelist);
+ while ((sp = AST_LIST_REMOVE_HEAD(&zonelist, list))) {
+ ast_free(sp);
+ }
+ AST_LIST_UNLOCK(&zonelist);
+}
+
static const struct state *ast_tzset(const char *zone)
{
struct state *sp;