myserver-commit
[Top][All Lists]
Advanced

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

[myserver-commit] [2919] Fixed a problem with reboots.


From: Francesco Pipita
Subject: [myserver-commit] [2919] Fixed a problem with reboots.
Date: Tue, 28 Oct 2008 00:03:09 +0000

Revision: 2919
          http://svn.sv.gnu.org/viewvc/?view=rev&root=myserver&revision=2919
Author:   francesco_pipita
Date:     2008-10-28 00:03:08 +0000 (Tue, 28 Oct 2008)

Log Message:
-----------
Fixed a problem with reboots.

Modified Paths:
--------------
    trunk/myserver/src/log/log_manager.cpp
    trunk/myserver/src/server/server.cpp
    trunk/myserver/tests/test_log_manager.cpp

Modified: trunk/myserver/src/log/log_manager.cpp
===================================================================
--- trunk/myserver/src/log/log_manager.cpp      2008-10-27 20:41:22 UTC (rev 
2918)
+++ trunk/myserver/src/log/log_manager.cpp      2008-10-28 00:03:08 UTC (rev 
2919)
@@ -112,6 +112,11 @@
   return 1;
 }
 
+/*
+ * Remove all the logs owned by `owner' and `owner' as well.
+ * After the call to this method, a call to contains (owner)
+ * must return false.
+ */
 int 
 LogManager::remove (void* owner)
 {
@@ -119,20 +124,21 @@
   int success = 1;
   if (contains (owner))
     {
-      map<string, map<string, LogStream*> > m = owners[owner];
+      map<string, map<string, LogStream*> > *m = &owners[owner];
       map<string, map<string, LogStream*> >::iterator it_1;
-      for (it_1 = m.begin (); it_1 != m.end (); it_1++)
+      for (it_1 = m->begin (); it_1 != m->end (); it_1++)
         {
-          map<string, LogStream*> t = it_1->second;
+          map<string, LogStream*> *t = &it_1->second;
           map<string, LogStream*>::iterator it_2;
-          for (it_2 = t.begin (); it_2 != t.end (); it_2++)
+          for (it_2 = t->begin (); it_2 != t->end (); it_2++)
             {
               delete it_2->second;
               logStreams.erase (it_2->first);
             }
-          t.clear ();
+          t->clear ();
         }
-      m.clear ();
+      m->clear ();
+      owners.erase (owner);
       success = 0;
     }
   mutex->unlock ();

Modified: trunk/myserver/src/server/server.cpp
===================================================================
--- trunk/myserver/src/server/server.cpp        2008-10-27 20:41:22 UTC (rev 
2918)
+++ trunk/myserver/src/server/server.cpp        2008-10-28 00:03:08 UTC (rev 
2919)
@@ -99,16 +99,22 @@
   vhostList = 0;
   purgeThreadsThreshold = 1;
   freeThreads = 0;
+  logManager = new LogManager (&filtersFactory);
   initLogManager ();
 }
 
 void
 Server::initLogManager ()
 {
-  logLocation.assign ("console://stdout");
-  logManager = new LogManager (&filtersFactory);
-  list<string> filters;
-  logManager->add (this, "MAINLOG", logLocation, filters, 0);
+  if (!logLocation.size ())
+    {
+      logLocation.assign ("console://stdout");
+    }
+  if (!logManager->contains (this))
+    {
+      list<string> filters;
+      logManager->add (this, "MAINLOG", logLocation, filters, 0);
+    }
 }
 
 /*!
@@ -987,6 +993,7 @@
  */
 int Server::initialize()
 {
+  initLogManager ();
   char *data;
 #ifdef WIN32
   envString = GetEnvironmentStrings();

Modified: trunk/myserver/tests/test_log_manager.cpp
===================================================================
--- trunk/myserver/tests/test_log_manager.cpp   2008-10-27 20:41:22 UTC (rev 
2918)
+++ trunk/myserver/tests/test_log_manager.cpp   2008-10-28 00:03:08 UTC (rev 
2919)
@@ -84,6 +84,7 @@
     CPPUNIT_ASSERT (lm->remove (this));
     lm->add (this, "test", "file://foo", filters, 0);
     CPPUNIT_ASSERT (!lm->remove (this));
+    CPPUNIT_ASSERT (!lm->contains (this));
   }
 
   void testLog ()






reply via email to

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