diff options
author | Dan McGee <dan@archlinux.org> | 2007-11-04 16:38:59 -0600 |
---|---|---|
committer | Dan McGee <dan@archlinux.org> | 2007-11-04 16:38:59 -0600 |
commit | 99f42d6bd2116b0bd8f75394fe92255ca1f4c80b (patch) | |
tree | 806ee6eed7631f8f31ee8dcba1848617307d0955 /lib/libalpm/handle.c | |
parent | 86ca39d15e02dff47b5b0f5bcd0494cf101ce0c1 (diff) | |
download | pacman-99f42d6bd2116b0bd8f75394fe92255ca1f4c80b.tar.xz |
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 <dan@archlinux.org>
Diffstat (limited to 'lib/libalpm/handle.c')
-rw-r--r-- | lib/libalpm/handle.c | 29 |
1 files changed, 6 insertions, 23 deletions
diff --git a/lib/libalpm/handle.c b/lib/libalpm/handle.c index 9031291d..af549498 100644 --- a/lib/libalpm/handle.c +++ b/lib/libalpm/handle.c @@ -50,6 +50,8 @@ pmhandle_t *_alpm_handle_new() { pmhandle_t *handle; + ALPM_LOG_FUNC; + CALLOC(handle, 1, sizeof(pmhandle_t), RET_ERR(PM_ERR_MEMORY, NULL)); handle->lckfd = -1; @@ -388,7 +390,6 @@ void SYMEXPORT alpm_option_set_cachedirs(alpm_list_t *cachedirs) int SYMEXPORT alpm_option_set_logfile(const char *logfile) { char *oldlogfile = handle->logfile; - FILE *oldlogstream = handle->logstream; ALPM_LOG_FUNC; @@ -398,32 +399,14 @@ int SYMEXPORT alpm_option_set_logfile(const char *logfile) } handle->logfile = strdup(logfile); - handle->logstream = fopen(logfile, "a"); - if(handle->logstream == NULL) { - /* TODO we probably want to do this at some point, but right now - * it just blows up when a user calls pacman without privilages */ - _alpm_log(PM_LOG_DEBUG, "couldn't open logfile for writing, ignoring\n"); - /* - 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; - } - * reset logfile to its previous value * - FREE(handle->logfile); - handle->logfile = oldlogfile; - handle->logstream = oldlogstream; - return(-1); - */ - } + /* free the old logfile path string, and close the stream so logaction + * will reopen a new stream on the new logfile */ if(oldlogfile) { FREE(oldlogfile); } - if(oldlogstream) { - fclose(oldlogstream); + if(handle->logstream) { + fclose(handle->logstream); } _alpm_log(PM_LOG_DEBUG, "option 'logfile' = %s\n", handle->logfile); return(0); |