From 81a70f668e7b9377673d9f6af2eb12aa4a5bd789 Mon Sep 17 00:00:00 2001
From: Tilghman Lesher <tilghman@meg.abyt.es>
Date: Tue, 21 Mar 2006 06:28:19 +0000
Subject: [PATCH] Merged revisions 13748 via svnmerge from
 https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r13748 | tilghman | 2006-03-21 00:24:56 -0600 (Tue, 21 Mar 2006) | 2 lines

Bug 6714 - Workaround to avoid retrieving incomplete voicemail message

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@13749 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 apps/app_voicemail.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/apps/app_voicemail.c b/apps/app_voicemail.c
index 188349b458..52e5c5387d 100644
--- a/apps/app_voicemail.c
+++ b/apps/app_voicemail.c
@@ -2364,7 +2364,7 @@ struct leave_vm_options {
 
 static int leave_voicemail(struct ast_channel *chan, char *ext, struct leave_vm_options *options)
 {
-	char txtfile[256];
+	char tmptxtfile[256], txtfile[256];
 	char callerid[256];
 	FILE *txt;
 	int res = 0;
@@ -2561,7 +2561,8 @@ static int leave_voicemail(struct ast_channel *chan, char *ext, struct leave_vm_
 				
 			/* Store information */
 			snprintf(txtfile, sizeof(txtfile), "%s.txt", fn);
-			txt = fopen(txtfile, "w+");
+			snprintf(tmptxtfile, sizeof(tmptxtfile), "%s.txt.tmp", fn);
+			txt = fopen(tmptxtfile, "w+");
 			if (txt) {
 				get_date(date, sizeof(date));
 				fprintf(txt, 
@@ -2601,6 +2602,7 @@ static int leave_voicemail(struct ast_channel *chan, char *ext, struct leave_vm_
 			if (txt) {
 				fprintf(txt, "duration=%d\n", duration);
 				fclose(txt);
+				rename(tmptxtfile, txtfile);
 			}
 				
 			if (duration < vmminmessage) {
-- 
GitLab