From 99f42d6bd2116b0bd8f75394fe92255ca1f4c80b Mon Sep 17 00:00:00 2001 From: Dan McGee Date: Sun, 4 Nov 2007 16:38:59 -0600 Subject: libalpm: open the logstream on demand Don't open a stream to the logfile until necessary. This will allow us to catch any errors in opening the logfile instead of ignorning them. Signed-off-by: Dan McGee --- lib/libalpm/log.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'lib/libalpm/log.c') diff --git a/lib/libalpm/log.c b/lib/libalpm/log.c index f4564fc9..dd9540ed 100644 --- a/lib/libalpm/log.c +++ b/lib/libalpm/log.c @@ -23,6 +23,9 @@ #include #include +#include +#include +#include #include /* libalpm */ @@ -51,6 +54,22 @@ int SYMEXPORT alpm_logaction(char *fmt, ...) /* Sanity checks */ ASSERT(handle != NULL, RET_ERR(PM_ERR_HANDLE_NULL, -1)); + /* check if the logstream is open already, opening it if needed */ + if(handle->logstream == NULL) { + handle->logstream = fopen(handle->logfile, "a"); + /* if we couldn't open it, we have an issue */ + if(handle->logstream == NULL) { + if(errno == EACCES) { + pm_errno = PM_ERR_BADPERMS; + } else if(errno == ENOENT) { + pm_errno = PM_ERR_NOT_A_DIR; + } else { + pm_errno = PM_ERR_SYSTEM; + } + return(-1); + } + } + va_start(args, fmt); ret = _alpm_logaction(handle->usesyslog, handle->logstream, fmt, args); va_end(args); -- cgit v1.2.3-24-g4f1b