From 1eecc81838c4dae2c6234c4ce030d779c5a50b1d Mon Sep 17 00:00:00 2001
From: "Kevin P. Fleming" <kpfleming@digium.com>
Date: Mon, 16 May 2005 13:36:35 +0000
Subject: [PATCH] clean up message duration writing code (bug #4285)

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

diff --git a/apps/app_voicemail.c b/apps/app_voicemail.c
index 0586a56eef..fc3a18cf6f 100755
--- a/apps/app_voicemail.c
+++ b/apps/app_voicemail.c
@@ -1988,7 +1988,6 @@ static int leave_voicemail(struct ast_channel *chan, char *ext, int silent, int
 	FILE *txt;
 	int res = 0;
 	int msgnum;
-	int fd;
 	int duration = 0;
 	int ausemacro = 0;
 	int ousemacro = 0;
@@ -2192,24 +2191,22 @@ static int leave_voicemail(struct ast_channel *chan, char *ext, int silent, int
 	chan->name,
 	ast_callerid_merge(callerid, sizeof(callerid), chan->cid.cid_name, chan->cid.cid_num, "Unknown"),
 	date, (long)time(NULL),
-	category ? category : "");
-					fclose(txt);
+	category ? category : ""); 
 				} else
 					ast_log(LOG_WARNING, "Error opening text file for output\n");
 				res = play_record_review(chan, NULL, fn, vmmaxmessage, fmt, 1, vmu, &duration, dir);
-				if (res == '0')
+				if (res == '0') {
+					if (txt)
+						fclose(txt);
 					goto transfer;
+				}
 				if (res > 0)
 					res = 0;
-				fd = open(txtfile, O_APPEND | O_WRONLY);
-				if (fd > -1) {
-					txt = fdopen(fd, "a");
-					if (txt) {
-						fprintf(txt, "duration=%d\n", duration);
-						fclose(txt);
-					} else
-						close(fd);
+				if (txt) {
+					fprintf(txt, "duration=%d\n", duration);
+					fclose(txt);
 				}
+				
 				if (duration < vmminmessage) {
 					if (option_verbose > 2) 
 						ast_verbose( VERBOSE_PREFIX_3 "Recording was %d seconds long but needs to be at least %d - abandoning\n", duration, vmminmessage);
-- 
GitLab