res_calendar: On reload, update all configuration

This changes the behavior of res_calendar to drop all existing calendars
and re-create them whenever a reload is done. The Calendar API provides
no way for configuration information to be pushed down to calendar
'techs' so updated settings would not take affect until a module
unload/load was done or Asterisk was restarted.

Asterisk 15+ already has a configuration option 'fetch_again_at_reload'
that performs a similar function.

Also fix a tiny memory leak in res_calendar_caldav while we're at it.

ASTERISK-25524 #close
Reported by: Jesper

Change-Id: Ib0f8057642e9d471960f1a79fd42e5a3ce587d3b
This commit is contained in:
Sean Bright
2017-09-13 15:14:25 -04:00
parent 14109355f3
commit 5075cc8eed
3 changed files with 29 additions and 56 deletions

View File

@@ -133,7 +133,7 @@ struct ast_calendar {
pthread_t thread; /*!< The thread that the calendar is loaded/updated in */
ast_cond_t unload;
int unloading:1;
int pending_deletion:1;
int pending_deletion:1; /*!< No longer used */
struct ao2_container *events; /*!< The events that are known at this time */
};