issue #5663
authorKevin P. Fleming <kpfleming@digium.com>
Fri, 11 Nov 2005 21:04:10 +0000 (21:04 +0000)
committerKevin P. Fleming <kpfleming@digium.com>
Fri, 11 Nov 2005 21:04:10 +0000 (21:04 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@7078 65c4cc65-6c06-0410-ace0-fbb531ad65f3

ChangeLog
apps/app_voicemail.c

index 3e4509b..f51ed4d 100755 (executable)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2005-11-11  Kevin P. Fleming  <kpfleming@digium.com>
+
+       * apps/app_voicemail.c (close_mailbox): properly remove deleted messages at mailbox close time (issue #5663)
+
 2005-11-11  Mark Spencer <markster@digium.com>
 
        * channels/chan_zap.c (zt_bridge): only enable/disable DTMF detection on SUB_REAL channels
 2005-11-11  Mark Spencer <markster@digium.com>
 
        * channels/chan_zap.c (zt_bridge): only enable/disable DTMF detection on SUB_REAL channels
index b30d69d..b4b77c7 100755 (executable)
@@ -3869,7 +3869,7 @@ static int open_mailbox(struct vm_state *vms, struct ast_vm_user *vmu,int box)
 
 static int close_mailbox(struct vm_state *vms, struct ast_vm_user *vmu)
 {
 
 static int close_mailbox(struct vm_state *vms, struct ast_vm_user *vmu)
 {
-       int x;
+       int x, nummsg;
        int res = 0;
 
        if (vms->lastmsg <= -1)
        int res = 0;
 
        if (vms->lastmsg <= -1)
@@ -3902,12 +3902,14 @@ static int close_mailbox(struct vm_state *vms, struct ast_vm_user *vmu)
                        } 
                } 
        } 
                        } 
                } 
        } 
-       for (x = vms->curmsg + 1; x <= vmu->maxmsg; x++) { 
-               make_file(vms->fn, sizeof(vms->fn), vms->curdir, x); 
-               if (!EXISTS(vms->curdir, x, vms->fn, NULL)) 
-                       break;
-               DELETE(vms->curdir, x, vms->fn);
-       } 
+
+       /* Delete ALL remaining messages */
+       nummsg = x;
+       for (x = vms->curmsg + 1; x <= nummsg; x++) {
+               make_file(vms->fn, sizeof(vms->fn), vms->curdir, x);
+               if (EXISTS(vms->curdir, x, vms->fn, NULL))
+                       DELETE(vms->curdir, x, vms->fn);
+       }
        ast_unlock_path(vms->curdir);
 
 done:
        ast_unlock_path(vms->curdir);
 
 done: