diff --git a/res/res_calendar_caldav.c b/res/res_calendar_caldav.c index e0d8c483e64e8aefeaef49e8914c2145bc47e6c3..dd150afd6ca808efb6c9257762e84d5cb7ff38f3 100644 --- a/res/res_calendar_caldav.c +++ b/res/res_calendar_caldav.c @@ -34,6 +34,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") #include <ne_uri.h> #include <ne_request.h> #include <ne_auth.h> +#include <ne_redirect.h> #include <libxml/xmlmemory.h> #include <libxml/parser.h> @@ -643,6 +644,7 @@ static void *caldav_load_calendar(void *void_data) } pvt->session = ne_session_create(pvt->uri.scheme, pvt->uri.host, pvt->uri.port); + ne_redirect_register(pvt->session); ne_set_server_auth(pvt->session, auth_credentials, pvt); if (!strcasecmp(pvt->uri.scheme, "https")) { ne_ssl_trust_default_ca(pvt->session); diff --git a/res/res_calendar_ews.c b/res/res_calendar_ews.c index 504d156f75091af729999adbdf490fe7a5a582f3..31df353121d36d434290c784eee034bc6b8945b2 100644 --- a/res/res_calendar_ews.c +++ b/res/res_calendar_ews.c @@ -35,6 +35,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") #include <ne_xml.h> #include <ne_xmlreq.h> #include <ne_utils.h> +#include <ne_redirect.h> #include "asterisk/module.h" #include "asterisk/calendar.h" @@ -197,10 +198,11 @@ static int startelm(void *userdata, int parent, const char *nspace, const char * return NE_XML_ABORT; } - ast_debug(3, "EWS: %d calendar items to load\n", items); + ast_debug(3, "EWS: %u calendar items to load\n", items); ctx->pvt->items = items; if (items < 1) { /* Stop processing XML if there are no events */ + ast_calendar_merge_events(ctx->pvt->owner, ctx->pvt->events); return NE_XML_DECLINE; } return 1; @@ -527,7 +529,6 @@ static int send_ews_request_and_parse(struct ast_str *request, struct xml_contex if (ret != NE_OK) { /* Error handling */ ast_log(LOG_WARNING, "Unable to communicate with Exchange Web Service at '%s': %s\n", ctx->pvt->url, ne_get_error(ctx->pvt->session)); ne_request_destroy(req); - ast_free(request); ne_xml_destroy(parser); return -1; } @@ -838,6 +839,7 @@ static void *ewscal_load_calendar(void *void_data) ast_debug(3, "secret = %s\n", pvt->secret); pvt->session = ne_session_create(pvt->uri.scheme, pvt->uri.host, pvt->uri.port); + ne_redirect_register(pvt->session); ne_set_server_auth(pvt->session, auth_credentials, pvt); ne_set_useragent(pvt->session, "Asterisk"); diff --git a/res/res_calendar_exchange.c b/res/res_calendar_exchange.c index b1707c5e2ad914f21ad9bc51d8f8fdfbc7a25d24..8f3989c5df7b514fb1020cabaa4e240389b8cf82 100644 --- a/res/res_calendar_exchange.c +++ b/res/res_calendar_exchange.c @@ -34,6 +34,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") #include <ne_uri.h> #include <ne_request.h> #include <ne_auth.h> +#include <ne_redirect.h> #include <iksemel.h> #include "asterisk/module.h" @@ -693,6 +694,7 @@ static void *exchangecal_load_calendar(void *void_data) } pvt->session = ne_session_create(pvt->uri.scheme, pvt->uri.host, pvt->uri.port); + ne_redirect_register(pvt->session); ne_set_server_auth(pvt->session, auth_credentials, pvt); if (!strcasecmp(pvt->uri.scheme, "https")) { ne_ssl_trust_default_ca(pvt->session); diff --git a/res/res_calendar_icalendar.c b/res/res_calendar_icalendar.c index 300da2ac9b3af7b9d15b0c3c3e0e0a13aa7987a3..d91cd0fe09c00e2dccfa600642c9bc7f54f0276a 100644 --- a/res/res_calendar_icalendar.c +++ b/res/res_calendar_icalendar.c @@ -33,6 +33,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") #include <ne_uri.h> #include <ne_request.h> #include <ne_auth.h> +#include <ne_redirect.h> #include "asterisk/module.h" #include "asterisk/calendar.h" @@ -420,6 +421,7 @@ static void *ical_load_calendar(void *void_data) } pvt->session = ne_session_create(pvt->uri.scheme, pvt->uri.host, pvt->uri.port); + ne_redirect_register(pvt->session); ne_set_server_auth(pvt->session, auth_credentials, pvt); if (!strcasecmp(pvt->uri.scheme, "https")) { ne_ssl_trust_default_ca(pvt->session);