Use the create_vm_state_from_user function in a place where
authorMark Michelson <mmichelson@digium.com>
Wed, 17 Dec 2008 17:52:50 +0000 (17:52 +0000)
committerMark Michelson <mmichelson@digium.com>
Wed, 17 Dec 2008 17:52:50 +0000 (17:52 +0000)
it was not being used before. Also, I've moved the urgent
folder check in messagecount() up a bit so that the flow is
a bit better.

This was something I noticed while taking a look at issue
#13973, although I don't think this is the underlying cause
of the issue.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@165142 65c4cc65-6c06-0410-ace0-fbb531ad65f3

apps/app_voicemail.c

index fc2a524..7286a7b 100644 (file)
@@ -1702,6 +1702,12 @@ static int messagecount(const char *context, const char *mailbox, const char *fo
        int fold = folder_int(folder);
        int urgent = 0;
        
+       /* If URGENT, then look at INBOX */
+       if (fold == 11) {
+               fold = NEW_FOLDER;
+               urgent = 1;
+       }
+
        if (ast_strlen_zero(mailbox))
                return 0;
 
@@ -1749,25 +1755,8 @@ static int messagecount(const char *context, const char *mailbox, const char *fo
                vms_p = get_vm_state_by_mailbox(mailbox, context, 0);
        }
 
-       /* If URGENT, then look at INBOX */
-       if (fold == 11) {
-               fold = NEW_FOLDER;
-               urgent = 1;
-       }
-
        if (!vms_p) {
-               ast_debug(3,"Adding new vmstate for %s\n",vmu->imapuser);
-               if (!(vms_p = ast_calloc(1, sizeof(*vms_p)))) {
-                       return -1;
-               }
-               ast_copy_string(vms_p->imapuser,vmu->imapuser, sizeof(vms_p->imapuser));
-               ast_copy_string(vms_p->username, mailbox, sizeof(vms_p->username)); /* save for access from interactive entry point */
-               vms_p->mailstream = NIL; /* save for access from interactive entry point */
-               ast_debug(3, "Copied %s to %s\n",vmu->imapuser,vms_p->imapuser);
-               vms_p->updated = 1;
-               ast_copy_string(vms_p->curbox, mbox(fold), sizeof(vms_p->curbox));
-               init_vm_state(vms_p);
-               vmstate_insert(vms_p);
+               create_vm_state_from_user(vmu);
        }
        ret = init_mailstream(vms_p, fold);
        if (!vms_p->mailstream) {