[asterisk-commits] mmichelson: trunk r89581 - in /trunk: ./ apps/app_voicemail.c
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Mon Nov 26 09:50:38 CST 2007
Author: mmichelson
Date: Mon Nov 26 09:50:37 2007
New Revision: 89581
URL: http://svn.digium.com/view/asterisk?view=rev&rev=89581
Log:
Merged revisions 89580 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r89580 | mmichelson | 2007-11-26 09:48:06 -0600 (Mon, 26 Nov 2007) | 6 lines
Revert vmu->email back to an empty string if it was empty when imap_store_file
was called. This prevents sending a duplicate e-mail.
(closes issue #11204, reported by spditner, patched by me)
........
Modified:
trunk/ (props changed)
trunk/apps/app_voicemail.c
Propchange: trunk/
------------------------------------------------------------------------------
Binary property 'branch-1.4-merged' - no diff available.
Modified: trunk/apps/app_voicemail.c
URL: http://svn.digium.com/view/asterisk/trunk/apps/app_voicemail.c?view=diff&rev=89581&r1=89580&r2=89581
==============================================================================
--- trunk/apps/app_voicemail.c (original)
+++ trunk/apps/app_voicemail.c Mon Nov 26 09:50:37 2007
@@ -2489,6 +2489,7 @@
char tmp[80] = "/tmp/astmail-XXXXXX";
long len;
void *buf;
+ int tempcopy = 0;
STRING str;
/* Attach only the first format */
@@ -2504,8 +2505,14 @@
else
ast_copy_string (fn, dir, sizeof(fn));
- if (ast_strlen_zero(vmu->email))
+ if (ast_strlen_zero(vmu->email)) {
+ /*we need the vmu->email to be set when we call make_email_file, but if we keep it set,
+ * a duplicate e-mail will be created. So at the end of this function, we will revert back to an empty
+ * string if tempcopy is 1
+ */
ast_copy_string(vmu->email, vmu->imapuser, sizeof(vmu->email));
+ tempcopy = 1;
+ }
if (!strcmp(fmt, "wav49"))
fmt = "WAV";
@@ -2515,6 +2522,8 @@
command hangs */
if (!(p = vm_mkftemp(tmp))) {
ast_log(LOG_WARNING, "Unable to store '%s' (can't create temporary file)\n", fn);
+ if(tempcopy)
+ *(vmu->email) = '\0';
return -1;
}
@@ -2529,6 +2538,8 @@
rewind(p);
if (!(buf = ast_malloc(len+1))) {
ast_log(LOG_ERROR, "Can't allocate %ld bytes to read message\n", len+1);
+ if(tempcopy)
+ *(vmu->email) = '\0';
return -1;
}
fread(buf, len, 1, p);
@@ -2542,6 +2553,10 @@
unlink(tmp);
ast_free(buf);
ast_debug(3, "%s stored\n", fn);
+
+ if(tempcopy)
+ *(vmu->email) = '\0';
+
return 0;
}
More information about the asterisk-commits
mailing list