=== modified file 'src/CacheManager.h'
--- src/CacheManager.h	2009-04-07 13:51:57 +0000
+++ src/CacheManager.h	2010-06-08 10:16:57 +0000
@@ -125,6 +125,12 @@
         virtual void run (StoreEntry *sentry);
         ReconfigureAction();
     };
+    class RotateAction : public CacheManagerAction
+    {
+    public:
+        virtual void run (StoreEntry *sentry);
+        RotateAction();
+    };
     class OfflineToggleAction : public CacheManagerAction
     {
     public:

=== modified file 'src/cache_manager.cc'
--- src/cache_manager.cc	2010-03-05 09:11:37 +0000
+++ src/cache_manager.cc	2010-06-08 10:27:48 +0000
@@ -56,6 +56,7 @@
     registerAction(new OfflineToggleAction);
     registerAction(new ShutdownAction);
     registerAction(new ReconfigureAction);
+    registerAction(new RotateAction);
     registerAction(new MenuAction(this));
 }
 
@@ -374,6 +375,21 @@
 
 /// \ingroup CacheManagerInternal
 void
+CacheManager::RotateAction::run(StoreEntry * sentry)
+{
+    debugs(16, DBG_IMPORTANT, "Rotate Logs by Cache Manager command.");
+    storeAppendPrintf(sentry, "Rotating Squid Process Logs ....");
+#ifdef _SQUID_LINUX_THREADS_
+    rotate_logs(SIGQUIT);
+#else
+    rotate_logs(SIGUSR1);
+#endif
+}
+/// \ingroup CacheManagerInternal
+CacheManager::RotateAction::RotateAction() : CacheManagerAction("rotate","Rotate Squid Logs", 1, 1) { }
+
+/// \ingroup CacheManagerInternal
+void
 CacheManager::OfflineToggleAction::run(StoreEntry * sentry)
 {
     Config.onoff.offline = !Config.onoff.offline;


