diff options
author | Milan Crha <mcrha@redhat.com> | 2008-09-26 16:56:37 +0800 |
---|---|---|
committer | Milan Crha <mcrha@src.gnome.org> | 2008-09-26 16:56:37 +0800 |
commit | 6df1e6d99608781b9e37b02e2a8c28074823ca7f (patch) | |
tree | 978426f08a85827b0fd00f28b8f5ac5e7949fcb4 /e-util/e-logger.c | |
parent | b2fc0d756d4f9f6ebd631e39f763eeba1f30c704 (diff) | |
download | gsoc2013-evolution-6df1e6d99608781b9e37b02e2a8c28074823ca7f.tar.gz gsoc2013-evolution-6df1e6d99608781b9e37b02e2a8c28074823ca7f.tar.zst gsoc2013-evolution-6df1e6d99608781b9e37b02e2a8c28074823ca7f.zip |
** Fix for bug #535248
2008-09-26 Milan Crha <mcrha@redhat.com>
** Fix for bug #535248
* e-logger.c: (flush_logfile), (logger_set_component),
(logger_finalize), (e_logger_log), (e_logger_get_logs):
Check if log file has been opened successfully before using it.
svn path=/trunk/; revision=36456
Diffstat (limited to 'e-util/e-logger.c')
-rw-r--r-- | e-util/e-logger.c | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/e-util/e-logger.c b/e-util/e-logger.c index 0c95520fe8..9db0ca0e37 100644 --- a/e-util/e-logger.c +++ b/e-util/e-logger.c @@ -60,7 +60,8 @@ static gpointer parent_class; static gboolean flush_logfile (ELogger *logger) { - fflush (logger->priv->fp); + if (logger->priv->fp) + fflush (logger->priv->fp); logger->priv->timer = 0; return FALSE; @@ -81,6 +82,9 @@ logger_set_component (ELogger *logger, logger->priv->fp = g_fopen (logger->priv->logfile, "w"); logger->priv->timer = 0; + if (!logger->priv->fp) + g_warning ("%s: Failed to open log file '%s' for writing.", G_STRFUNC, logger->priv->logfile ? logger->priv->logfile : "[null]"); + g_free (temp); } @@ -126,7 +130,8 @@ logger_finalize (GObject *object) if (logger->priv->timer) g_source_remove (logger->priv->timer); flush_logfile (logger); - fclose (logger->priv->fp); + if (logger->priv->fp) + fclose (logger->priv->fp); g_free (logger->priv->component); g_free (logger->priv->logfile); @@ -230,6 +235,9 @@ e_logger_log (ELogger *logger, g_return_if_fail (primary != NULL); g_return_if_fail (secondary != NULL); + if (!logger->priv->fp) + return; + fprintf (logger->priv->fp, "%d:%ld:%s\n", level, t, primary); fprintf (logger->priv->fp, "%d:%ld:%s\n", level, t, secondary); set_dirty (logger); @@ -247,11 +255,12 @@ e_logger_get_logs (ELogger *logger, g_return_if_fail (func != NULL); /* Flush everything before we get the logs */ - fflush (logger->priv->fp); + if (logger->priv->fp) + fflush (logger->priv->fp); fp = g_fopen (logger->priv->logfile, "r"); if (!fp) { - fprintf (stderr, "Cannot open log file '%s' for reading! No flush yet?\n", logger->priv->logfile ? logger->priv->logfile : "[null]"); + g_warning ("%s: Cannot open log file '%s' for reading! No flush yet?\n", G_STRFUNC, logger->priv->logfile ? logger->priv->logfile : "[null]"); return; } |