BasicActions.cc
Go to the documentation of this file.
1/*
2 * Copyright (C) 1996-2023 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
35{
36 debugs(16, 5, MYNAME);
37}
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
73{
74 debugs(16, 5, MYNAME);
75}
76
77void
79{
80 debugs(16, DBG_CRITICAL, "Shutdown by Cache Manager command.");
81 shut_down(SIGTERM);
82}
83
86{
87 return new ReconfigureAction(cmd);
88}
89
91 Action(aCmd)
92{
93 debugs(16, 5, MYNAME);
94}
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
129{
130 return new OfflineToggleAction(cmd);
131}
132
134 Action(aCmd)
135{
136 debugs(16, 5, MYNAME);
137}
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
Definition: SquidConfig.cc:12
#define Must(condition)
Definition: TextException.h:75
const Menu & menu() const
Definition: CacheManager.h:49
std::vector< Mgr::ActionProfilePointer > Menu
Definition: CacheManager.h:35
const char * ActionProtection(const Mgr::ActionProfilePointer &profile)
static CacheManager * GetInstance()
const CommandPointer cmd
the command that caused this action
Definition: Action.h:86
void dump(StoreEntry *entry) override
Definition: BasicActions.cc:34
static Pointer Create(const CommandPointer &cmd)
Definition: BasicActions.cc:23
IndexAction(const CommandPointer &cmd)
Definition: BasicActions.cc:28
returns available Cache Manager actions and their access requirements
Definition: BasicActions.h:38
static Pointer Create(const CommandPointer &cmd)
Definition: BasicActions.cc:40
void dump(StoreEntry *entry) override
Definition: BasicActions.cc:51
MenuAction(const CommandPointer &cmd)
Definition: BasicActions.cc:45
changes offline mode
Definition: BasicActions.h:86
void dump(StoreEntry *entry) override
static Pointer Create(const CommandPointer &cmd)
OfflineToggleAction(const CommandPointer &cmd)
reconfigures Squid
Definition: BasicActions.h:62
ReconfigureAction(const CommandPointer &cmd)
Definition: BasicActions.cc:90
void dump(StoreEntry *entry) override
Definition: BasicActions.cc:97
static Pointer Create(const CommandPointer &cmd)
Definition: BasicActions.cc:85
starts log rotation
Definition: BasicActions.h:74
static Pointer Create(const CommandPointer &cmd)
RotateAction(const CommandPointer &cmd)
void dump(StoreEntry *entry) override
shuts Squid down
Definition: BasicActions.h:50
static Pointer Create(const CommandPointer &cmd)
Definition: BasicActions.cc:67
ShutdownAction(const CommandPointer &cmd)
Definition: BasicActions.cc:72
void dump(StoreEntry *entry) override
Definition: BasicActions.cc:78
struct SquidConfig::@106 onoff
#define MYNAME
Definition: Stream.h:236
#define DBG_IMPORTANT
Definition: Stream.h:38
#define debugs(SECTION, LEVEL, CONTENT)
Definition: Stream.h:194
#define DBG_CRITICAL
Definition: Stream.h:37
void rotate_logs(int sig)
Definition: main.cc:701
void reconfigure(int sig)
Definition: main.cc:715
void shut_down(int sig)
Definition: main.cc:756
void RegisterBasics()
Registers profiles for the actions above; TODO: move elsewhere?
void RegisterAction(char const *action, char const *desc, OBJH *handler, int pw_req_flag, int atomic)
Definition: Registration.cc:16
void storeAppendPrintf(StoreEntry *e, const char *fmt,...)
Definition: store.cc:841

 

Introduction

Documentation

Support

Miscellaneous

Web Site Translations

Mirrors