[svn-commits] mmichelson: branch mmichelson/imap_consistency r131076 - /team/mmichelson/ima...

SVN commits to the Digium repositories svn-commits at lists.digium.com
Tue Jul 15 14:00:26 CDT 2008


Author: mmichelson
Date: Tue Jul 15 14:00:26 2008
New Revision: 131076

URL: http://svn.digium.com/view/asterisk?view=rev&rev=131076
Log:
Progress. I had been experiencing crashes and the reason was
due to a perfectly valid assumption I had regarding the vm_state
retrieval functions.

For get_vm_state_by_imapuser, the "interactive" parameter may
be 0, 1, or 2. 2 means to not try to match based on the saved
vm_state's interactive field. For get_vm_state_by_mailbox, the
interactive parameter always is attempted to be matched with
the saved vm_state's interactive field. This means that passing
a 2 will never ever match. Stupid stupid inconsistency.


Modified:
    team/mmichelson/imap_consistency/apps/app_voicemail.c

Modified: team/mmichelson/imap_consistency/apps/app_voicemail.c
URL: http://svn.digium.com/view/asterisk/team/mmichelson/imap_consistency/apps/app_voicemail.c?view=diff&rev=131076&r1=131075&r2=131076
==============================================================================
--- team/mmichelson/imap_consistency/apps/app_voicemail.c (original)
+++ team/mmichelson/imap_consistency/apps/app_voicemail.c Tue Jul 15 14:00:26 2008
@@ -1671,10 +1671,9 @@
 	}
 	
 	/* Before anything can happen, we need a vm_state so that we can
-	 * actually access the imap server
+	 * actually access the imap server through the vms->mailstream
 	 */
-	vms = get_vm_state_by_mailbox(vmu->mailbox, 2);
-	if (!vms) {
+	if(!(vms = get_vm_state_by_mailbox(vmu->mailbox, 0)) && !(vms = get_vm_state_by_mailbox(vmu->mailbox, 1))) {
 		/* This should not happen. If it does, then I guess we'd
 		 * need to create the vm_state, extract which mailbox to
 		 * open, and then set up the msgArray so that the correct
@@ -1682,6 +1681,7 @@
 		 * though, the vms should be obtainable from the vmstates list
 		 * and should have its msgArray properly set up.
 		 */
+		ast_log(LOG_ERROR, "Couldn't find a vm_state for mailbox %s!!! Oh no!\n", vmu->mailbox);
 	}
 
 	if (option_debug > 2)
@@ -1744,6 +1744,7 @@
 	fprintf(text_file_ptr, "duration=%s\n", S_OR(origtime, ""));
 	category = get_header_by_tag(header_content, "X-Asterisk-VM-Category:");
 	fprintf(text_file_ptr, "category=%s\n", S_OR(category, ""));
+	
 	fclose(text_file_ptr);
 	return 0;
 }




More information about the svn-commits mailing list