Squid Web Cache master
Loading...
Searching...
No Matches
BasicActions.cc
Go to the documentation of this file.
1/*
2 * Copyright (C) 1996-2025 The Squid Software Foundation and contributors
3 *
4 * Squid software is distributed under GPLv2+ license and includes
5 * contributions from numerous individuals and organizations.
6 * Please see the COPYING and CONTRIBUTORS files for details.
7 */
8
9/* DEBUG: section 16 Cache Manager API */
10
11#include "squid.h"
12#include "base/TextException.h"
13#include "CacheManager.h"
14#include "mgr/ActionCreator.h"
15#include "mgr/ActionProfile.h"
16#include "mgr/BasicActions.h"
17#include "mgr/Registration.h"
18#include "protos.h"
19#include "SquidConfig.h"
20#include "Store.h"
21
24{
25 return new IndexAction(cmd);
26}
27
29{
30 debugs(16, 5, MYNAME);
31}
32
33void
38
41{
42 return new MenuAction(cmd);
43}
44
46{
47 debugs(16, 5, MYNAME);
48}
49
50void
52{
53 debugs(16, 5, MYNAME);
54 Must(entry != nullptr);
55
56 typedef CacheManager::Menu::const_iterator Iterator;
58
59 for (Iterator a = menu.begin(); a != menu.end(); ++a) {
60 storeAppendPrintf(entry, " %-22s\t%-32s\t%s\n",
61 (*a)->name, (*a)->desc,
63 }
64}
65
68{
69 return new ShutdownAction(cmd);
70}
71
76
77void
79{
80 debugs(16, DBG_CRITICAL, "Shutdown by Cache Manager command.");
81 shut_down(SIGTERM);
82}
83
89
95
96void
98{
99 debugs(16, DBG_IMPORTANT, "Reconfigure by Cache Manager command.");
100 storeAppendPrintf(entry, "Reconfiguring Squid Process ....");
101 reconfigure(SIGHUP);
102}
103
106{
107 return new RotateAction(cmd);
108}
109
111{
112 debugs(16, 5, MYNAME);
113}
114
115void
117{
118 debugs(16, DBG_IMPORTANT, "Rotate Logs by Cache Manager command.");
119 storeAppendPrintf(entry, "Rotating Squid Process Logs ....");
120#if defined(_SQUID_LINUX_THREADS_)
121 rotate_logs(SIGQUIT);
122#else
123 rotate_logs(SIGUSR1);
124#endif
125}
126
132
138
139void
141{
143 debugs(16, DBG_IMPORTANT, "offline_mode now " << (Config.onoff.offline ? "ON" : "OFF") << " by Cache Manager request.");
144
145 storeAppendPrintf(entry, "offline_mode is now %s\n",
146 Config.onoff.offline ? "ON" : "OFF");
147}
148
149void
151{
152 RegisterAction("index", "Cache Manager Interface", &Mgr::IndexAction::Create, 0, 1);
153 RegisterAction("menu", "Cache Manager Menu", &Mgr::MenuAction::Create, 0, 1);
154 RegisterAction("offline_toggle", "Toggle offline_mode setting", &Mgr::OfflineToggleAction::Create, 1, 1);
155 RegisterAction("shutdown", "Shut Down the Squid Process", &Mgr::ShutdownAction::Create, 1, 1);
156 RegisterAction("reconfigure", "Reconfigure Squid", &Mgr::ReconfigureAction::Create, 1, 1);
157 RegisterAction("rotate", "Rotate Squid Logs", &Mgr::RotateAction::Create, 1, 1);
158}
159
class SquidConfig Config
#define Must(condition)
const Menu & menu() const
std::vector< Mgr::ActionProfilePointer > Menu
const char * ActionProtection(const Mgr::ActionProfilePointer &profile)
static CacheManager * GetInstance()
const CommandPointer cmd
the command that caused this action
Definition Action.h:90
void dump(StoreEntry *entry) override
static Pointer Create(const CommandPointer &cmd)
IndexAction(const CommandPointer &cmd)
returns available Cache Manager actions and their access requirements
static Pointer Create(const CommandPointer &cmd)
void dump(StoreEntry *entry) override
MenuAction(const CommandPointer &cmd)
changes offline mode
void dump(StoreEntry *entry) override
static Pointer Create(const CommandPointer &cmd)
OfflineToggleAction(const CommandPointer &cmd)
reconfigures Squid
ReconfigureAction(const CommandPointer &cmd)
void dump(StoreEntry *entry) override
static Pointer Create(const CommandPointer &cmd)
starts log rotation
static Pointer Create(const CommandPointer &cmd)
RotateAction(const CommandPointer &cmd)
void dump(StoreEntry *entry) override
shuts Squid down
static Pointer Create(const CommandPointer &cmd)
ShutdownAction(const CommandPointer &cmd)
void dump(StoreEntry *entry) override
struct SquidConfig::@90 onoff
#define MYNAME
Definition Stream.h:219
#define DBG_IMPORTANT
Definition Stream.h:38
#define debugs(SECTION, LEVEL, CONTENT)
Definition Stream.h:192
#define DBG_CRITICAL
Definition Stream.h:37
void rotate_logs(int sig)
Definition main.cc:692
void reconfigure(int sig)
Definition main.cc:706
void shut_down(int sig)
Definition main.cc:747
void RegisterBasics()
Registers profiles for the actions above; TODO: move elsewhere?
void RegisterAction(char const *action, char const *desc, OBJH *handler, Protected, Atomic, Format)
void storeAppendPrintf(StoreEntry *e, const char *fmt,...)
Definition store.cc:855