#include <CacheManager.h>

Inheritance diagram for CacheManager:
Collaboration diagram for CacheManager:

Public Types

typedef std::vector< Mgr::ActionProfilePointerMenu

Public Member Functions

void registerProfile (char const *action, char const *desc, OBJH *handler, int pw_req_flag, int atomic)
void registerProfile (char const *action, char const *desc, Mgr::ClassActionCreationHandler *handler, int pw_req_flag, int atomic)
Mgr::ActionProfilePointer findAction (char const *action) const
Mgr::Action::Pointer createNamedAction (const char *actionName)
Mgr::Action::Pointer createRequestedAction (const Mgr::ActionParams &)
const Menumenu () const
void start (const Comm::ConnectionPointer &client, HttpRequest *request, StoreEntry *entry, const AccessLogEntryPointer &ale)
const char * ActionProtection (const Mgr::ActionProfilePointer &profile)

Static Public Member Functions

static CacheManagerGetInstance ()

Protected Member Functions

 CacheManager ()
 use Instance() instead More...
Mgr::CommandPointer ParseUrl (const AnyP::Uri &)
void ParseHeaders (const HttpRequest *request, Mgr::ActionParams &params)
int CheckPassword (const Mgr::Command &cmd)
char * PasswdGet (Mgr::ActionPasswordList *, const char *)
void registerProfile (const Mgr::ActionProfilePointer &profile)
 Registers new profiles, ignoring attempts to register a duplicate. More...

Protected Attributes

Menu menu_

Detailed Description

a CacheManager - the menu system for interacting with squid. This is currently just an adapter to the global cachemgr* routines to provide looser coupling between modules, but once fully transitioned, an instance of this class will represent a single independent manager. TODO: update documentation to reflect the new singleton model.

Definition at line 31 of file CacheManager.h.

Member Typedef Documentation

◆ Menu

Constructor & Destructor Documentation

◆ CacheManager()

CacheManager::CacheManager ( )

Definition at line 53 of file CacheManager.h.

Referenced by GetInstance().

Member Function Documentation

◆ ActionProtection()

const char * CacheManager::ActionProtection ( const Mgr::ActionProfilePointer profile)

Definition at line 437 of file cache_manager.cc.

References assert, Config, SquidConfig::passwd_list, and PasswdGet().

Referenced by Mgr::MenuAction::dump(), and ParseUrl().

◆ CheckPassword()

int CacheManager::CheckPassword ( const Mgr::Command cmd)
Return values
0if mgr->password is good or "none"
1if mgr->password is "disable"
!0if mgr->password does not match configured password

Definition at line 284 of file cache_manager.cc.

References action(), assert, Config, debugs, Mgr::Command::params, SquidConfig::passwd_list, PasswdGet(), Mgr::ActionParams::password, Mgr::Command::profile, and String::size().

Referenced by start().

◆ createNamedAction()

Mgr::Action::Pointer CacheManager::createNamedAction ( const char *  actionName)

Definition at line 131 of file cache_manager.cc.

References findAction(), and Must.

Referenced by Mgr::Response::Response(), and TestCacheManager::testRegister().

◆ createRequestedAction()

Mgr::Action::Pointer CacheManager::createRequestedAction ( const Mgr::ActionParams params)

◆ findAction()

Mgr::ActionProfile::Pointer CacheManager::findAction ( char const *  action) const

Locates an action in the actions registry ActionsList.

Return values
NULLif Action not found
CacheManagerAction*if the action was found

Definition at line 113 of file cache_manager.cc.

References action(), debugs, menu_, and Must.

Referenced by createNamedAction(), createRequestedAction(), ParseUrl(), and registerProfile().

◆ GetInstance()

◆ menu()

const Menu & CacheManager::menu ( ) const

Definition at line 45 of file CacheManager.h.

References menu_.

Referenced by Mgr::MenuAction::dump().

◆ ParseHeaders()

◆ ParseUrl()

Mgr::Command::Pointer CacheManager::ParseUrl ( const AnyP::Uri uri)

define whether the URL is a cache-manager URL and parse the action requested by the user. Checks via CacheManager::ActionProtection() that the item is accessible by the user.


scheme "://" authority [ '/squid-internal-mgr' ] path-absolute [ '@' unreserved ] '?' query-string

see RFC 3986 for definitions of scheme, authority, path-absolute, query-string

Mgr::Command object with action to perform and parameters it might use

Definition at line 180 of file cache_manager.cc.

References AnyP::Uri::absolute(), action(), ActionProtection(), debugs, findAction(), AnyP::Uri::getScheme(), Here, AnyP::Uri::host(), MgrFieldChars(), Mgr::QueryParams::Parse(), AnyP::Uri::path(), AnyP::PROTO_CACHE_OBJECT, SBufToString(), and ToSBuf().

Referenced by CacheManagerInternals::ParseUrl(), and start().

◆ PasswdGet()

char * CacheManager::PasswdGet ( Mgr::ActionPasswordList a,
const char *  action 

◆ registerProfile() [1/3]

void CacheManager::registerProfile ( char const *  action,
char const *  desc,
Mgr::ClassActionCreationHandler handler,
int  pw_req_flag,
int  atomic 

◆ registerProfile() [2/3]

void CacheManager::registerProfile ( char const *  action,
char const *  desc,
OBJH handler,
int  pw_req_flag,
int  atomic 

Registers a C-style action, which is implemented as a pointer to a function taking as argument a pointer to a StoreEntry and returning void. Implemented via CacheManagerActionLegacy.

Definition at line 82 of file cache_manager.cc.

References action(), debugs, handler(), and registerProfile().

Referenced by Mgr::RegisterAction(), registerProfile(), and TestCacheManager::testRegister().

◆ registerProfile() [3/3]

void CacheManager::registerProfile ( const Mgr::ActionProfilePointer profile)

Definition at line 64 of file cache_manager.cc.

References debugs, findAction(), menu_, and Must.

◆ start()

Member Data Documentation

◆ menu_

Menu CacheManager::menu_

Definition at line 62 of file CacheManager.h.

Referenced by findAction(), menu(), and registerProfile().

The documentation for this class was generated from the following files:






Web Site Translations