summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorRussell Bryant <russell@russellbryant.com>2007-08-09 17:25:09 +0000
committerRussell Bryant <russell@russellbryant.com>2007-08-09 17:25:09 +0000
commit4eea027559def77f4021b450bc820267ac77ca50 (patch)
tree1b41f456afe54c38dbbe05108aedf17c1c04120e /apps
parent9d1acad76b611cc2400d00da0b60fd75d07d6263 (diff)
Merged revisions 78749 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r78749 | russell | 2007-08-09 12:24:40 -0500 (Thu, 09 Aug 2007) | 9 lines Fix subscriptions to multiple mailboxes for ODBC_STORAGE. Also, leave a comment for this to be fixed for IMAP_STORAGE, as well. I left IMAP alone since I know MarkM was working on this code right now for another reason. This is broken even worse in trunk, but for a different reason. The fact that the mailbox option supported multiple mailboxes is completely not obvious from the code in the channel drivers. Anyway, I will fix that in another commit ... ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@78750 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'apps')
-rw-r--r--apps/app_voicemail.c21
1 files changed, 11 insertions, 10 deletions
diff --git a/apps/app_voicemail.c b/apps/app_voicemail.c
index aba334717..2bb86ea96 100644
--- a/apps/app_voicemail.c
+++ b/apps/app_voicemail.c
@@ -2438,17 +2438,16 @@ yuck:
static int has_voicemail(const char *mailbox, const char *folder)
{
- char *context, tmp[256];
+ char tmp[256], *tmp2 = tmp, *mbox, *context;
ast_copy_string(tmp, mailbox, sizeof(tmp));
- if ((context = strchr(tmp, '@')))
- *context++ = '\0';
- else
- context = "default";
-
- if (messagecount(context, tmp, folder))
- return 1;
- else
- return 0;
+ while ((context = mbox = strsep(&tmp2, ","))) {
+ strsep(&context, "@");
+ if (ast_strlen_zero(context))
+ context = "default";
+ if (messagecount(context, mbox, folder))
+ return 1;
+ }
+ return 0;
}
#elif defined(IMAP_STORAGE)
@@ -2670,6 +2669,8 @@ static int inboxcount(const char *mailbox, int *newmsgs, int *oldmsgs)
return 0;
}
+/*! XXX \todo Fix this function to support multiple mailboxes separated
+ * by commas */
static int has_voicemail(const char *mailbox, const char *folder)
{
int newmsgs, oldmsgs;