Don't add Attendees during copy, replace them
authorTerry Wilson <twilson@digium.com>
Fri, 9 Oct 2009 15:00:49 +0000 (15:00 +0000)
committerTerry Wilson <twilson@digium.com>
Fri, 9 Oct 2009 15:00:49 +0000 (15:00 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@223053 65c4cc65-6c06-0410-ace0-fbb531ad65f3

res/res_calendar.c

index 6ec7b42..5239fa6 100644 (file)
@@ -637,7 +637,7 @@ static int calendar_event_notify(const void *data)
                tmp++;
                ast_copy_string(dest, tmp, sizeof(dest));
        } else {
-               ast_log(LOG_WARNING, "Channel should be in form Tech/Dest\n");
+               ast_log(LOG_WARNING, "Channel should be in form Tech/Dest (was '%s')\n", tech);
                goto notify_cleanup;
        }
 
@@ -753,6 +753,12 @@ static void copy_event_data(struct ast_calendar_event *dst, struct ast_calendar_
        dst->alarm = src->alarm;
        dst->busy_state = src->busy_state;
 
+       /* Delete any existing attendees */
+       while ((attendee = AST_LIST_REMOVE_HEAD(&dst->attendees, next))) {
+               ast_free(attendee);
+       }
+
+       /* Copy over the new attendees */
        while ((attendee = AST_LIST_REMOVE_HEAD(&src->attendees, next))) {
                AST_LIST_INSERT_TAIL(&dst->attendees, attendee, next);
        }