#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 const SBufWellKnownUrlPathPrefix ()
 initial URL path characters that identify cache manager requests More...
 
static CacheManagerGetInstance ()
 
static void PutCommonResponseHeaders (HttpReply &, const char *httpOrigin)
 

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 32 of file CacheManager.h.

Member Typedef Documentation

◆ Menu

Constructor & Destructor Documentation

◆ CacheManager()

CacheManager::CacheManager ( )
inlineprotected

Definition at line 62 of file CacheManager.h.

Referenced by GetInstance().

Member Function Documentation

◆ ActionProtection()

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

Definition at line 409 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)
protected
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 265 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 133 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 115 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
inline

Definition at line 49 of file CacheManager.h.

References menu_.

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

◆ ParseHeaders()

◆ ParseUrl()

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

Parses the action requested by the user and checks via CacheManager::ActionProtection() that the item is accessible by the user.

Syntax:

[ scheme "://" authority ] '/squid-internal-mgr' path-absolute [ "?" query ] [ "#" fragment ]

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

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

Definition at line 175 of file cache_manager.cc.

References AnyP::Uri::absolute(), action(), ActionProtection(), Assure, CharacterSet::complement(), debugs, findAction(), Here, AnyP::Uri::host(), Mgr::QueryParams::Parse(), AnyP::Uri::path(), SBufToString(), ToSBuf(), and WellKnownUrlPathPrefix().

Referenced by start(), CacheManagerInternals::testInvalidUrl(), and CacheManagerInternals::testValidUrl().

◆ PasswdGet()

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

◆ PutCommonResponseHeaders()

void CacheManager::PutCommonResponseHeaders ( HttpReply response,
const char *  httpOrigin 
)
static

Add HTTP response headers specific/common to all cache manager replies, including cache manager errors and Action reports.

Parameters
httpOriginthe value of Origin header in the trigger HTTP request (or nil)

Definition at line 451 of file cache_manager.cc.

References Http::Message::header, HttpHdrCc::noCache(), HttpHdrCc::noStore(), Http::Message::putCc(), and HttpHeader::putExt().

Referenced by Mgr::Action::fillEntry(), Mgr::Inquirer::start(), and start().

◆ 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 84 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)
protected

Definition at line 66 of file cache_manager.cc.

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

◆ start()

◆ WellKnownUrlPathPrefix()

const SBuf & CacheManager::WellKnownUrlPathPrefix ( )
static

Definition at line 156 of file cache_manager.cc.

Referenced by ForSomeCacheManager(), ParseUrl(), and TestCacheManager::testParseUrl().

Member Data Documentation

◆ menu_

Menu CacheManager::menu_
protected

Definition at line 71 of file CacheManager.h.

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


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

 

Introduction

Documentation

Support

Miscellaneous

Web Site Translations

Mirrors