version 0.2.0
[fms.git] / src / freenet / periodicdbmaintenance.cpp
index dad043e..f6f501b 100644 (file)
@@ -1,5 +1,6 @@
 #include "../../include/freenet/periodicdbmaintenance.h"\r
 #include "../../include/stringfunctions.h"\r
+#include "../../include/option.h"\r
 \r
 #ifdef XMEM\r
        #include <xmem.h>\r
@@ -7,6 +8,8 @@
 \r
 PeriodicDBMaintenance::PeriodicDBMaintenance()\r
 {\r
+       std::string tempval;\r
+\r
        m_check10mins.SetToGMTime();\r
        m_check30mins.SetToGMTime();\r
        m_check1hour.SetToGMTime();\r
@@ -19,6 +22,10 @@ PeriodicDBMaintenance::PeriodicDBMaintenance()
        m_check6hours.Add(0,-1,-5);\r
        m_check1day.Add(0,0,-23);\r
 \r
+       tempval="180";\r
+       Option::Instance()->Get("DeleteMessagesOlderThan",tempval);\r
+       StringFunctions::Convert(tempval,m_deletemessagesolderthan);\r
+\r
 }\r
 \r
 void PeriodicDBMaintenance::Do10MinuteMaintenance()\r
@@ -185,6 +192,13 @@ void PeriodicDBMaintenance::Do1DayMaintenance()
        st.Bind(0,date.Format("%Y-%m-%d %H:%M:%S"));\r
        st.Step();\r
 \r
+       // delete old messages\r
+       date.SetToGMTime();\r
+       date.Add(0,0,0,-m_deletemessagesolderthan);\r
+       st=m_db->Prepare("DELETE FROM tblMessage WHERE MessageDate<?;");\r
+       st.Bind(0,date.Format("%Y-%m-%d"));\r
+       st.Step();\r
+\r
 }\r
 \r
 void PeriodicDBMaintenance::Process()\r