From: Kinkie Date: Fri, 4 Jul 2008 02:49:40 +0000 (+0200) Subject: Added variant of registration function which takes in an object rather than X-Git-Tag: SQUID_3_1_0_1~49^2~143^2~50 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1d8395bdbe531f3a6b0050da09730e037690b1ec;p=thirdparty%2Fsquid.git Added variant of registration function which takes in an object rather than a legacy C function. --- diff --git a/src/CacheManager.h b/src/CacheManager.h index c8151fc4f1..f2c18b590d 100644 --- a/src/CacheManager.h +++ b/src/CacheManager.h @@ -55,7 +55,6 @@ public: virtual ~CacheManagerAction(); CacheManagerAction(char const *anAction, char const *aDesc, unsigned int isPwReq, unsigned int isAtomic); - CacheManagerAction *next; }; /** @@ -108,6 +107,7 @@ public: virtual ~CacheManager() {} void registerAction(char const * action, char const * desc, OBJH * handler, int pw_req_flag, int atomic); + void registerAction(CacheManagerAction *anAction); CacheManagerAction * findAction(char const * action); void Start(int fd, HttpRequest * request, StoreEntry * entry); diff --git a/src/cache_manager.cc b/src/cache_manager.cc index 0595448557..2445818d12 100644 --- a/src/cache_manager.cc +++ b/src/cache_manager.cc @@ -75,21 +75,27 @@ CacheManager::CacheManager() void CacheManager::registerAction(char const * action, char const * desc, OBJH * handler, int pw_req_flag, int atomic) { - CacheManagerActionLegacy *a; + debugs(16, 3, "CacheManager::registerAction: registering legacy " << action); + registerAction(new CacheManagerActionLegacy(action,desc,pw_req_flag,atomic,handler)); +} +void +CacheManager::registerAction(CacheManagerAction *anAction) +{ + char *action = anAction->action; if (findAction(action) != NULL) { debugs(16, 2, "CacheManager::registerAction: Duplicate '" << action << "'. Skipping."); return; } assert (strstr (" ", action) == NULL); - a = new CacheManagerActionLegacy(action,desc,pw_req_flag,atomic,handler); - *ActionsList += a; + *ActionsList += anAction; debugs(16, 3, "CacheManager::registerAction: registered " << action); } + /// \ingroup CacheManagerInternal CacheManagerAction * CacheManager::findAction(char const * action)