]> git.ipfire.org Git - thirdparty/squid.git/blob - src/mgr/BasicActions.cc
Removed CVS $ markers
[thirdparty/squid.git] / src / mgr / BasicActions.cc
1 /*
2 * DEBUG: section 16 Cache Manager API
3 *
4 */
5
6 #include "squid.h"
7 #include "base/TextException.h"
8 #include "CacheManager.h"
9 #include "mgr/ActionCreator.h"
10 #include "mgr/ActionProfile.h"
11 #include "mgr/BasicActions.h"
12 #include "mgr/Registration.h"
13 #include "protos.h"
14 #include "Store.h"
15
16 Mgr::IndexAction::Pointer
17 Mgr::IndexAction::Create(const Command::Pointer &cmd)
18 {
19 return new IndexAction(cmd);
20 }
21
22 Mgr::IndexAction::IndexAction(const Command::Pointer &cmd): Action(cmd)
23 {
24 debugs(16, 5, HERE);
25 }
26
27 void
28 Mgr::IndexAction::dump(StoreEntry* entry)
29 {
30 debugs(16, 5, HERE);
31 }
32
33 Mgr::MenuAction::Pointer
34 Mgr::MenuAction::Create(const Command::Pointer &cmd)
35 {
36 return new MenuAction(cmd);
37 }
38
39 Mgr::MenuAction::MenuAction(const Command::Pointer &cmd): Action(cmd)
40 {
41 debugs(16, 5, HERE);
42 }
43
44 void
45 Mgr::MenuAction::dump(StoreEntry* entry)
46 {
47 debugs(16, 5, HERE);
48 Must(entry != NULL);
49
50 typedef CacheManager::Menu::const_iterator Iterator;
51 const CacheManager::Menu& menu = CacheManager::GetInstance()->menu();
52
53 for (Iterator a = menu.begin(); a != menu.end(); ++a) {
54 storeAppendPrintf(entry, " %-22s\t%-32s\t%s\n",
55 (*a)->name, (*a)->desc,
56 CacheManager::GetInstance()->ActionProtection(*a));
57 }
58 }
59
60 Mgr::ShutdownAction::Pointer
61 Mgr::ShutdownAction::Create(const Command::Pointer &cmd)
62 {
63 return new ShutdownAction(cmd);
64 }
65
66 Mgr::ShutdownAction::ShutdownAction(const Command::Pointer &cmd): Action(cmd)
67 {
68 debugs(16, 5, HERE);
69 }
70
71 void
72 Mgr::ShutdownAction::dump(StoreEntry* entry)
73 {
74 debugs(16, DBG_CRITICAL, "Shutdown by Cache Manager command.");
75 shut_down(SIGTERM);
76 }
77
78 Mgr::ReconfigureAction::Pointer
79 Mgr::ReconfigureAction::Create(const Command::Pointer &cmd)
80 {
81 return new ReconfigureAction(cmd);
82 }
83
84 Mgr::ReconfigureAction::ReconfigureAction(const Command::Pointer &cmd):
85 Action(cmd)
86 {
87 debugs(16, 5, HERE);
88 }
89
90 void
91 Mgr::ReconfigureAction::dump(StoreEntry* entry)
92 {
93 debugs(16, DBG_IMPORTANT, "Reconfigure by Cache Manager command.");
94 storeAppendPrintf(entry, "Reconfiguring Squid Process ....");
95 reconfigure(SIGHUP);
96 }
97
98 Mgr::RotateAction::Pointer
99 Mgr::RotateAction::Create(const Command::Pointer &cmd)
100 {
101 return new RotateAction(cmd);
102 }
103
104 Mgr::RotateAction::RotateAction(const Command::Pointer &cmd): Action(cmd)
105 {
106 debugs(16, 5, HERE);
107 }
108
109 void
110 Mgr::RotateAction::dump(StoreEntry* entry)
111 {
112 debugs(16, DBG_IMPORTANT, "Rotate Logs by Cache Manager command.");
113 storeAppendPrintf(entry, "Rotating Squid Process Logs ....");
114 #if defined(_SQUID_LINUX_THREADS_)
115 rotate_logs(SIGQUIT);
116 #else
117 rotate_logs(SIGUSR1);
118 #endif
119 }
120
121 Mgr::OfflineToggleAction::Pointer
122 Mgr::OfflineToggleAction::Create(const Command::Pointer &cmd)
123 {
124 return new OfflineToggleAction(cmd);
125 }
126
127 Mgr::OfflineToggleAction::OfflineToggleAction(const Command::Pointer &cmd):
128 Action(cmd)
129 {
130 debugs(16, 5, HERE);
131 }
132
133 void
134 Mgr::OfflineToggleAction::dump(StoreEntry* entry)
135 {
136 Config.onoff.offline = !Config.onoff.offline;
137 debugs(16, DBG_IMPORTANT, "offline_mode now " << (Config.onoff.offline ? "ON" : "OFF") << " by Cache Manager request.");
138
139 storeAppendPrintf(entry, "offline_mode is now %s\n",
140 Config.onoff.offline ? "ON" : "OFF");
141 }
142
143 void
144 Mgr::RegisterBasics()
145 {
146 RegisterAction("index", "Cache Manager Interface", &Mgr::IndexAction::Create, 0, 1);
147 RegisterAction("menu", "Cache Manager Menu", &Mgr::MenuAction::Create, 0, 1);
148 RegisterAction("offline_toggle", "Toggle offline_mode setting", &Mgr::OfflineToggleAction::Create, 1, 1);
149 RegisterAction("shutdown", "Shut Down the Squid Process", &Mgr::ShutdownAction::Create, 1, 1);
150 RegisterAction("reconfigure", "Reconfigure Squid", &Mgr::ReconfigureAction::Create, 1, 1);
151 RegisterAction("rotate", "Rotate Squid Logs", &Mgr::RotateAction::Create, 1, 1);
152 }