clean up message duration writing code (bug #4285)
authorKevin P. Fleming <kpfleming@digium.com>
Mon, 16 May 2005 13:36:35 +0000 (13:36 +0000)
committerKevin P. Fleming <kpfleming@digium.com>
Mon, 16 May 2005 13:36:35 +0000 (13:36 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@5698 65c4cc65-6c06-0410-ace0-fbb531ad65f3

apps/app_voicemail.c

index 0586a56..fc3a18c 100755 (executable)
@@ -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);