gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r5366 - in GNUnet: . src/util/loggers


From: gnunet
Subject: [GNUnet-SVN] r5366 - in GNUnet: . src/util/loggers
Date: Sun, 29 Jul 2007 01:53:57 -0600 (MDT)

Author: grothoff
Date: 2007-07-29 01:53:57 -0600 (Sun, 29 Jul 2007)
New Revision: 5366

Modified:
   GNUnet/ChangeLog
   GNUnet/src/util/loggers/file.c
Log:
fixing log rotation

Modified: GNUnet/ChangeLog
===================================================================
--- GNUnet/ChangeLog    2007-07-29 07:34:05 UTC (rev 5365)
+++ GNUnet/ChangeLog    2007-07-29 07:53:57 UTC (rev 5366)
@@ -1,3 +1,6 @@
+Sun Jul 29 01:53:32 MDT 2007
+       Fixing log rotation.
+
 Sat Jul 21 23:42:11 MDT 2007
        Radical changes to MySQL implementation (trying to
        address certain scalability issues).

Modified: GNUnet/src/util/loggers/file.c
===================================================================
--- GNUnet/src/util/loggers/file.c      2007-07-29 07:34:05 UTC (rev 5365)
+++ GNUnet/src/util/loggers/file.c      2007-07-29 07:53:57 UTC (rev 5366)
@@ -145,7 +145,7 @@
       FREE (fullname);
       return OK;
     }
-  logdate = &fullname[strlen (def)];
+  logdate = &fullname[strlen (def) + 1];
   datefmt = getDateFormat ();
   ret = strptime (logdate, datefmt, &t);
   FREE (datefmt);
@@ -198,12 +198,25 @@
 }
 
 static void
+purge_old_logs (FileContext * fctx, const char *logfilename)
+{
+  char *dirname;
+
+  dirname = STRDUP (logfilename);
+  while ((strlen (dirname) > 0) &&
+         (dirname[strlen (dirname) - 1] != DIR_SEPARATOR))
+    dirname[strlen (dirname) - 1] = '\0';
+  disk_directory_scan (NULL, dirname, &removeOldLog, fctx);
+  FREE (dirname);
+
+}
+
+static void
 filelogger (void *cls, GE_KIND kind, const char *date, const char *msg)
 {
   FileContext *fctx = cls;
   char *name;
   int ret;
-  char *dirname;
 
   MUTEX_LOCK (fctx->lock);
   if (fctx->logrotate)
@@ -223,12 +236,7 @@
             }
           FREE (fctx->filename);
           fctx->filename = name;
-          dirname = STRDUP (name);
-          while ((strlen (dirname) > 0) &&
-                 (dirname[strlen (dirname) - 1] != DIR_SEPARATOR))
-            dirname[strlen (dirname) - 1] = '\0';
-          disk_directory_scan (fctx->ectx, dirname, &removeOldLog, fctx);
-          FREE (dirname);
+          purge_old_logs (fctx, name);
         }
       else
         {
@@ -329,6 +337,7 @@
   fctx->basename = STRDUP (filename);
   fctx->logstart = start;
   fctx->lock = MUTEX_CREATE (YES);
+  purge_old_logs (fctx, name);
   return GE_create_context_callback (mask,
                                      &filelogger, fctx, &fileclose, NULL);
 }





reply via email to

[Prev in Thread] Current Thread [Next in Thread]