[asterisk-commits] mmichelson: branch mmichelson/imap_consistency_trunk r134252 - /team/mmichels...

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Tue Jul 29 15:56:10 CDT 2008


Author: mmichelson
Date: Tue Jul 29 15:56:09 2008
New Revision: 134252

URL: http://svn.digium.com/view/asterisk?view=rev&rev=134252
Log:
More conflict resolution


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

Modified: team/mmichelson/imap_consistency_trunk/apps/app_voicemail.c
URL: http://svn.digium.com/view/asterisk/team/mmichelson/imap_consistency_trunk/apps/app_voicemail.c?view=diff&rev=134252&r1=134251&r2=134252
==============================================================================
--- team/mmichelson/imap_consistency_trunk/apps/app_voicemail.c (original)
+++ team/mmichelson/imap_consistency_trunk/apps/app_voicemail.c Tue Jul 29 15:56:09 2008
@@ -450,11 +450,7 @@
 #ifdef ODBC_STORAGE
 static char odbc_database[80];
 static char odbc_table[80];
-<<<<<<< .working
-#define RETRIEVE(a,b,c,d) retrieve_file(a,b)
-=======
 #define RETRIEVE(a,b,c) retrieve_file(a,b)
->>>>>>> .merge-right.r134223
 #define DISPOSE(a,b) remove_file(a,b)
 #define STORE(a,b,c,d,e,f,g,h,i,j,k) store_file(a,b,c,d)
 #define EXISTS(a,b,c,d) (message_exists(a,b))
@@ -464,24 +460,18 @@
 #else
 #ifdef IMAP_STORAGE
 <<<<<<< .working
-#define RETRIEVE(a,b,c,d) (imap_retrieve_file(a,b,c,d ))
 #define DISPOSE(a,b) (imap_remove_file(a,b))
 #define STORE(a,b,c,d,e,f,g,h,i,j,k) (imap_store_file(a,b,c,d,e,f,g,h,i,j,k))
 =======
 #define RETRIEVE(a,b,c) imap_retrieve_file(a,b,c)
 #define DISPOSE(a,b) remove_file(a,b)
-#define STORE(a,b,c,d,e,f,g,h,i) (imap_store_file(a,b,c,d,e,f,g,h,i))
 >>>>>>> .merge-right.r134223
 #define EXISTS(a,b,c,d) (ast_fileexists(c,NULL,d) > 0)
 #define RENAME(a,b,c,d,e,f,g,h) (rename_file(g,h));
 #define COPY(a,b,c,d,e,f,g,h) (copy_file(g,h));
 #define DELETE(a,b,c,d) (vm_imap_delete(b,d))
 #else
-<<<<<<< .working
-#define RETRIEVE(a,b,c,d)
-=======
 #define RETRIEVE(a,b,c)
->>>>>>> .merge-right.r134223
 #define DISPOSE(a,b)
 #define STORE(a,b,c,d,e,f,g,h,i,j,k)
 #define EXISTS(a,b,c,d) (ast_fileexists(c,NULL,d) > 0)
@@ -2832,40 +2822,6 @@
 	return x - 1;
 }
 
-<<<<<<< .working
-/*!
- * \brief Removes a voicemail message file.
- * \param dir the path to the message file.
- * \param msgnum the unique number for the message within the mailbox.
- *
- * Removes the message content file and the information file.
- * This method is used by the DISPOSE macro when mailboxes are stored in an ODBC back end.
- * Typical use is to clean up after a RETRIEVE operation. 
- * Note that this does not remove the message from the mailbox folders, to do that we would use delete_file().
- * \return zero on success, -1 on error.
- */
-static int remove_file(char *dir, int msgnum)
-{
-	char fn[PATH_MAX];
-	char full_fn[PATH_MAX];
-	char msgnums[80];
-	
-	if (msgnum > -1) {
-		snprintf(msgnums, sizeof(msgnums), "%d", msgnum);
-		make_file(fn, sizeof(fn), dir, msgnum);
-	} else
-		ast_copy_string(fn, dir, sizeof(fn));
-	ast_filedelete(fn, NULL);	
-	if (ast_check_realtime("voicemail_data")) {
-		ast_destroy_realtime("voicemail_data", "filename", fn, SENTINEL);
-	}
-	snprintf(full_fn, sizeof(full_fn), "%s.txt", fn);
-	unlink(full_fn);
-	return 0;
-}
-
-=======
->>>>>>> .merge-right.r134223
 /*!
  * \brief Determines the highest message number in use for a given user and mailbox folder.
  * \param vmu 
@@ -3368,6 +3324,17 @@
 	return x - 1;
 }
 #if (defined(IMAP_STORAGE) || defined(ODBC_STORAGE))
+/*!
+ * \brief Removes a voicemail message file.
+ * \param dir the path to the message file.
+ * \param msgnum the unique number for the message within the mailbox.
+ *
+ * Removes the message content file and the information file.
+ * This method is used by the DISPOSE macro when mailboxes are stored in an ODBC back end.
+ * Typical use is to clean up after a RETRIEVE operation. 
+ * Note that this does not remove the message from the mailbox folders, to do that we would use delete_file().
+ * \return zero on success, -1 on error.
+ */
 static int remove_file(char *dir, int msgnum)
 {
 	char fn[PATH_MAX];
@@ -4697,13 +4664,7 @@
 		ast_log(AST_LOG_WARNING, "Failed to make directory (%s)\n", tempfile);
 		return -1;
 	}
-<<<<<<< .working
-
-	RETRIEVE(tempfile, -1, ext, context);
-
-=======
 	RETRIEVE(tempfile, -1, vmu);
->>>>>>> .merge-right.r134223
 	if (ast_fileexists(tempfile, NULL, NULL) > 0)
 		ast_copy_string(prefile, tempfile, sizeof(prefile));
 
@@ -4951,12 +4912,6 @@
 		} else
 			ast_log(AST_LOG_WARNING, "Error opening text file for output\n");
 		res = play_record_review(chan, NULL, tmptxtfile, vmu->maxsecs, fmt, 1, vmu, &duration, NULL, options->record_gain, vms, flag);
-<<<<<<< .working
-#else
-		res = play_record_review(chan, NULL, tmptxtfile, vmu->maxsecs, fmt, 1, vmu, &duration, NULL, options->record_gain, NULL, flag);
-#endif
-=======
->>>>>>> .merge-right.r134223
 
 		if (txt) {
 			fprintf(txt, "flag=%s\n", flag);
@@ -5926,11 +5881,7 @@
 			attach_user_voicemail = ast_test_flag((&globalflags), VM_ATTACH);
 
 		if (attach_user_voicemail)
-<<<<<<< .working
-			RETRIEVE(todir, msgnum, vmu->mailbox, vmu->context);
-=======
 			RETRIEVE(todir, msgnum, vmu);
->>>>>>> .merge-right.r134223
 
 		/* XXX possible imap issue, should category be NULL XXX */
 		sendmail(myserveremail, vmu, msgnum, vmu->context, vmu->mailbox, cidnum, cidname, fn, NULL, fmt, duration, attach_user_voicemail, chan, category, flag);
@@ -5945,7 +5896,6 @@
 	if (ast_test_flag(vmu, VM_DELETE))
 		DELETE(todir, msgnum, fn, vmu);
 
-<<<<<<< .working
 	/* Leave voicemail for someone */
 	if (ast_app_has_voicemail(ext_context, NULL)) 
 		ast_app_inboxcount2(ext_context, &urgentmsgs, &newmsgs, &oldmsgs);
@@ -5955,15 +5905,6 @@
 	manager_event(EVENT_FLAG_CALL, "MessageWaiting", "Mailbox: %s@%s\r\nWaiting: %d\r\nNew: %d\r\nOld: %d\r\n", vmu->mailbox, vmu->context, ast_app_has_voicemail(ext_context, NULL), newmsgs, oldmsgs);
 	run_externnotify(vmu->context, vmu->mailbox, flag);
 
-#ifdef IMAP_STORAGE
-	DELETE(todir, msgnum, fn);  /* Delete the file, but not the IMAP message */
-	if (ast_test_flag(vmu, VM_DELETE))  { /* Delete the IMAP message if delete = yes */
-		IMAP_DELETE(vms->curdir, vms->curmsg, vms->fn, vms);
-		vms->newmessages--;  /* Fix new message count */
-	}
-#endif
-=======
->>>>>>> .merge-right.r134223
 	return 0;
 }
 
@@ -6183,11 +6124,7 @@
 		create_dirpath(vmstmp.curdir, sizeof(vmstmp.curdir), sender->context, vmstmp.username, "tmp");
 		make_file(msgfile, sizeof(msgfile), vmstmp.curdir, curmsg);
 
-<<<<<<< .working
-		RETRIEVE(dir, curmsg, sender->mailbox, context);
-=======
  		RETRIEVE(dir, curmsg, sender);
->>>>>>> .merge-right.r134223
 
 		make_file(origmsgfile, sizeof(origmsgfile), dir, curmsg);
 		create_dirpath(vmstmp.curdir, sizeof(vmstmp.curdir), sender->context, vmstmp.username, "tmp");
@@ -6783,16 +6720,9 @@
 		}
 	}
 
-<<<<<<< .working
-	RETRIEVE(vms->curdir, vms->curmsg, vmu->mailbox, vmu->context);
+	/* Retrieve info from VM attribute file */
+	RETRIEVE(vms->curdir, vms->curmsg, vmu);
 	msg_cfg = ast_config_load(filename, config_flags);
-=======
-	/* Retrieve info from VM attribute file */
-	make_file(vms->fn2, sizeof(vms->fn2), vms->curdir, vms->curmsg);
-	snprintf(filename, sizeof(filename), "%s.txt", vms->fn2);
-	RETRIEVE(vms->curdir, vms->curmsg, vmu);
-	msg_cfg = ast_config_load(filename);
->>>>>>> .merge-right.r134223
 	if (!msg_cfg) {
 		ast_log(AST_LOG_WARNING, "No message attribute file?!! (%s)\n", filename);
 		return 0;
@@ -6837,164 +6767,7 @@
 	return res;
 }
 
-<<<<<<< .working
 #ifdef IMAP_STORAGE
-static void imap_mailbox_name(char *spec, size_t len, struct vm_state *vms, int box, int use_folder)
-{
-	char tmp[256], *t = tmp;
-	size_t left = sizeof(tmp);
-
-	if (box == OLD_FOLDER) {
-		ast_copy_string(vms->curbox, mbox(NEW_FOLDER), sizeof(vms->curbox));
-	} else {
-		ast_copy_string(vms->curbox, mbox(box), sizeof(vms->curbox));
-	}
-
-	if (box == NEW_FOLDER) {
-		ast_copy_string(vms->vmbox, "vm-INBOX", sizeof(vms->vmbox));
-	} else {
-		snprintf(vms->vmbox, sizeof(vms->vmbox), "vm-%s", mbox(box));
-	}
-
-	/* Build up server information */
-	ast_build_string(&t, &left, "{%s:%s/imap", imapserver, imapport);
-
-	/* Add authentication user if present */
-	if (!ast_strlen_zero(authuser))
-		ast_build_string(&t, &left, "/authuser=%s", authuser);
-
-	/* Add flags if present */
-	if (!ast_strlen_zero(imapflags))
-		ast_build_string(&t, &left, "/%s", imapflags);
-
-	/* End with username */
-	ast_build_string(&t, &left, "/user=%s}", vms->imapuser);
-
-	if (box == NEW_FOLDER || box == OLD_FOLDER)
-		snprintf(spec, len, "%s%s", tmp, use_folder? imapfolder: "INBOX");
-	else if (box == GREETINGS_FOLDER)
-		snprintf(spec, len, "%s%s", tmp, greetingfolder);
-	else
-		snprintf(spec, len, "%s%s%c%s", tmp, imapfolder, delimiter, mbox(box));
-}
-
-static int init_mailstream(struct vm_state *vms, int box)
-{
-	MAILSTREAM *stream = NIL;
-	long debug;
-	char tmp[256];
-	
-	if (!vms) {
-		ast_log(AST_LOG_ERROR, "vm_state is NULL!\n");
-		return -1;
-	}
-	ast_debug(3,"vm_state user is:%s\n",vms->imapuser);
-	if (vms->mailstream == NIL || !vms->mailstream) {
-		ast_debug(1,"mailstream not set.\n");
-	} else {
-		stream = vms->mailstream;
-	}
-	/* debug = T;  user wants protocol telemetry? */
-	debug = NIL;  /* NO protocol telemetry? */
-
-	if (delimiter == '\0') {		/* did not probe the server yet */
-		char *cp;
-#ifdef USE_SYSTEM_IMAP
-#include <imap/linkage.c>
-#elif defined(USE_SYSTEM_CCLIENT)
-#include <c-client/linkage.c>
-#else
-#include "linkage.c"
-#endif
-		/* Connect to mailbox to get mailstream so we can get delimiter */ 
-		imap_mailbox_name(tmp, sizeof(tmp), vms, 0, 1);
-		ast_mutex_lock(&vms->lock);
-		stream = mail_open (stream, tmp, debug ? OP_DEBUG : NIL);
-		ast_mutex_unlock(&vms->lock);
-		if (stream == NIL) {
-			ast_log(AST_LOG_ERROR, "Can't connect to imap server %s\n", tmp);
-			return -1;
-		}
-		get_mailbox_delimiter(stream);
-		/* update delimiter in imapfolder */
-		for (cp = imapfolder; *cp; cp++) {
-			if (*cp == '/')
-				*cp = delimiter;
-		}
-	}
-	/* Now connect to the target folder */
-	imap_mailbox_name(tmp, sizeof(tmp), vms, box, 1);
-	ast_debug(3,"Before mail_open, server: %s, box:%d\n", tmp, box);
-	ast_mutex_lock(&vms->lock);
-	vms->mailstream = mail_open (stream, tmp, debug ? OP_DEBUG : NIL);
-	ast_mutex_unlock(&vms->lock);
-	if (vms->mailstream == NIL) {
-		return -1;
-	} else {
-		return 0;
-	}
-}
-
-static int open_mailbox(struct vm_state *vms, struct ast_vm_user *vmu, int box)
-{
-	SEARCHPGM *pgm;
-	SEARCHHEADER *hdr;
-	int ret, urgent = 0;
-
-	/* If Urgent, then look at INBOX */
-	if (box == 11) {
-		box = NEW_FOLDER;
-		urgent = 1;
-	}
-
-	ast_copy_string(vms->imapuser,vmu->imapuser, sizeof(vms->imapuser));
-	ast_debug(3,"Before init_mailstream, user is %s\n",vmu->imapuser);
-
-	if ((ret = init_mailstream(vms, box)) || !vms->mailstream) {
-		ast_log(AST_LOG_ERROR, "Could not initialize mailstream\n");
-		return -1;
-	}
-	
-	/* Check Quota */
-	if  (box == 0)  {
-		ast_debug(3, "Mailbox name set to: %s, about to check quotas\n", mbox(box));
-		check_quota(vms,(char *)mbox(box));
-	}
-
-	pgm = mail_newsearchpgm();
-
-	/* Check IMAP folder for Asterisk messages only... */
-	hdr = mail_newsearchheader("X-Asterisk-VM-Extension", vmu->mailbox);
-	pgm->header = hdr;
-	pgm->deleted = 0;
-	pgm->undeleted = 1;
-
-	/* if box = NEW_FOLDER, check for new, if box = OLD_FOLDER, check for read */
-	if (box == NEW_FOLDER && urgent == 1) {
-		pgm->unseen = 1;
-		pgm->seen = 0;
-		pgm->flagged = 1;
-		pgm->unflagged = 0;
-	} else if (box == NEW_FOLDER && urgent == 0) {
-		pgm->unseen = 1;
-		pgm->seen = 0;
-		pgm->flagged = 0;
-		pgm->unflagged = 1;
-	} else if (box == OLD_FOLDER) {
-		pgm->seen = 1;
-		pgm->unseen = 0;
-	}
-
-	ast_debug(3,"Before mail_search_full, user is %s\n",vmu->imapuser);
-
-	vms->vmArrayIndex = 0;
-	mail_search_full (vms->mailstream, NULL, pgm, NIL);
-	vms->lastmsg = vms->vmArrayIndex - 1;
-	mail_free_searchpgm(&pgm);
-
-	return 0;
-}
-
 static int imap_remove_file(char *dir, int msgnum)
 {
 	char fn[PATH_MAX];
@@ -7126,9 +6899,7 @@
 }
 
 #else
-=======
 #ifndef IMAP_STORAGE
->>>>>>> .merge-right.r134223
 static int open_mailbox(struct vm_state *vms, struct ast_vm_user *vmu, int box)
 {
 	int count_msg, last_msg;
@@ -8470,12 +8241,6 @@
 	if (ast_test_flag(vmu, VM_FORCENAME)) {
 		snprintf(prefile,sizeof(prefile), "%s%s/%s/greet", VM_SPOOL_DIR, vmu->context, vms->username);
 		if (ast_fileexists(prefile, NULL, NULL) < 1) {
-<<<<<<< .working
-#ifndef IMAP_STORAGE
-			cmd = play_record_review(chan, "vm-rec-name", prefile, maxgreet, fmtc, 0, vmu, &duration, NULL, record_gain, NULL, NULL);
-#else
-=======
->>>>>>> .merge-right.r134223
 			cmd = play_record_review(chan, "vm-rec-name", prefile, maxgreet, fmtc, 0, vmu, &duration, NULL, record_gain, vms, NULL);
 			if (cmd < 0 || cmd == 't' || cmd == '#')
 				return cmd;
@@ -8486,12 +8251,6 @@
 	if (ast_test_flag(vmu, VM_FORCEGREET)) {
 		snprintf(prefile,sizeof(prefile), "%s%s/%s/unavail", VM_SPOOL_DIR, vmu->context, vms->username);
 		if (ast_fileexists(prefile, NULL, NULL) < 1) {
-<<<<<<< .working
-#ifndef IMAP_STORAGE
-			cmd = play_record_review(chan, "vm-rec-unv", prefile, maxgreet, fmtc, 0, vmu, &duration, NULL, record_gain, NULL, NULL);
-#else
-=======
->>>>>>> .merge-right.r134223
 			cmd = play_record_review(chan, "vm-rec-unv", prefile, maxgreet, fmtc, 0, vmu, &duration, NULL, record_gain, vms, NULL);
 			if (cmd < 0 || cmd == 't' || cmd == '#')
 				return cmd;
@@ -8499,12 +8258,6 @@
 
 		snprintf(prefile,sizeof(prefile), "%s%s/%s/busy", VM_SPOOL_DIR, vmu->context, vms->username);
 		if (ast_fileexists(prefile, NULL, NULL) < 1) {
-<<<<<<< .working
-#ifndef IMAP_STORAGE
-			cmd = play_record_review(chan, "vm-rec-busy", prefile, maxgreet, fmtc, 0, vmu, &duration, NULL, record_gain, NULL, NULL);
-#else
-=======
->>>>>>> .merge-right.r134223
 			cmd = play_record_review(chan, "vm-rec-busy", prefile, maxgreet, fmtc, 0, vmu, &duration, NULL, record_gain, vms, NULL);
 			if (cmd < 0 || cmd == 't' || cmd == '#')
 				return cmd;
@@ -8665,11 +8418,7 @@
 	while ((cmd >= 0) && (cmd != 't')) {
 		if (cmd)
 			retries = 0;
-<<<<<<< .working
-		RETRIEVE(prefile, -1, vmu->mailbox, vmu->context);
-=======
 		RETRIEVE(prefile, -1, vmu);
->>>>>>> .merge-right.r134223
 		if (ast_fileexists(prefile, NULL, NULL) <= 0) {
 			play_record_review(chan, "vm-rec-temp", prefile, maxgreet, fmtc, 0, vmu, &duration, NULL, record_gain, vms, NULL);
 			cmd = 't';	
@@ -11254,13 +11003,9 @@
 	make_file(vms->fn, sizeof(vms->fn), vms->curdir, msg);
 
 	/* Retrieve info from VM attribute file */
-<<<<<<< .working
 	snprintf(filename,sizeof(filename), "%s.txt", vms->fn);
-	RETRIEVE(vms->curdir, vms->curmsg, vmu->mailbox, vmu->context);
+	RETRIEVE(vms->curdir, vms->curmsg, vmu);
 	msg_cfg = ast_config_load(filename, config_flags);
-=======
-	RETRIEVE(vms->curdir, vms->curmsg, vmu);
->>>>>>> .merge-right.r134223
 	DISPOSE(vms->curdir, vms->curmsg);
 	if (!msg_cfg) {
 		ast_log(AST_LOG_WARNING, "No message attribute file?!! (%s)\n", filename);




More information about the asterisk-commits mailing list