evolution r36457 - branches/gnome-2-24/e-util



Author: mcrha
Date: Fri Sep 26 08:56:46 2008
New Revision: 36457
URL: http://svn.gnome.org/viewvc/evolution?rev=36457&view=rev

Log:
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.



Modified:
   branches/gnome-2-24/e-util/ChangeLog
   branches/gnome-2-24/e-util/e-logger.c

Modified: branches/gnome-2-24/e-util/e-logger.c
==============================================================================
--- branches/gnome-2-24/e-util/e-logger.c	(original)
+++ branches/gnome-2-24/e-util/e-logger.c	Fri Sep 26 08:56:46 2008
@@ -60,7 +60,8 @@
 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->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 @@
 	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 @@
 	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 @@
 	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;
 	}
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]