aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjpeeler <jpeeler@f38db490-d61c-443f-a65b-d21fe96a405b>2010-03-10 18:25:18 +0000
committerjpeeler <jpeeler@f38db490-d61c-443f-a65b-d21fe96a405b>2010-03-10 18:25:18 +0000
commitd17a1065fa70261d86c9c4613e3586a1c166257e (patch)
tree15ed1a9bb8dbd5750f6e763ef6fd18b41161943a
parent090c22992b8ebd9b0de86374da8347130afc70b6 (diff)
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: http://svn.digium.com/svn/asterisk/trunk@251631 f38db490-d61c-443f-a65b-d21fe96a405b
-rw-r--r--main/abstract_jb.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/main/abstract_jb.c b/main/abstract_jb.c
index f23c176b1..84b9d6199 100644
--- a/main/abstract_jb.c
+++ b/main/abstract_jb.c
@@ -498,12 +498,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) {