]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Merged revisions 251631 via svnmerge from
authorJeff Peeler <jpeeler@digium.com>
Wed, 10 Mar 2010 18:26:35 +0000 (18:26 +0000)
committerJeff Peeler <jpeeler@digium.com>
Wed, 10 Mar 2010 18:26:35 +0000 (18:26 +0000)
https://origsvn.digium.com/svn/asterisk/trunk

........
  r251631 | jpeeler | 2010-03-10 12:25:18 -0600 (Wed, 10 Mar 2010) | 14 lines

  Fix jitterbuffer logging not creating logfiles.

  Three changes made here:
  1) Do not fail if a previous log does not exist (in fact, this is probably
  expected).
  2) Ensure that the file descriptor to write to gets assigned properly. I am at
  a loss as to why assigning safe_fd outside the if fixes this, but it makes
  the if statement slightly less complicated anyway.
  3) Move up the failure message so that the errno of the failure is not
  overwritten by fclose.

  (closes issue #16917)
  Reported by: Artem
........

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.2@251632 65c4cc65-6c06-0410-ace0-fbb531ad65f3

main/abstract_jb.c

index 90cd7d14e31c846935a95bf39e68ab16aa887aef..eb42346af3f797f9a29c00d350cf75db84004f8a 100644 (file)
@@ -499,12 +499,14 @@ static int create_jb(struct ast_channel *chan, struct ast_frame *frr)
 
                snprintf(logfile_pathname, sizeof(logfile_pathname),
                        "/tmp/ast_%s_jb_%s--%s.log", jbimpl->name, name1, name2);
-               if (!(safe_fd = mkstemp(safe_logfile)) > -1 || unlink(logfile_pathname) || link(safe_logfile, logfile_pathname) || unlink(safe_logfile) || !(jb->logfile = fdopen(safe_fd, "w+b"))) {
+               unlink(logfile_pathname);
+               safe_fd = mkstemp(safe_logfile);
+               if (safe_fd < 0 || link(safe_logfile, logfile_pathname) || unlink(safe_logfile) || !(jb->logfile = fdopen(safe_fd, "w+b"))) {
+                       ast_log(LOG_ERROR, "Failed to create frame log file with pathname '%s': %s\n", logfile_pathname, strerror(errno));
                        jb->logfile = NULL;
                        if (safe_fd > -1) {
                                close(safe_fd);
                        }
-                       ast_log(LOG_ERROR, "Failed to create frame log file with pathname '%s': %s\n", logfile_pathname, strerror(errno));
                }
 
                if (res == JB_IMPL_OK) {