diff options
author | Rainer Gerhards <rgerhards@adiscon.com> | 2011-05-06 10:06:32 +0200 |
---|---|---|
committer | Rainer Gerhards <rgerhards@adiscon.com> | 2011-05-06 10:06:32 +0200 |
commit | ff2bb192f2c566f189a9d104d83d7a70c7888774 (patch) | |
tree | 7737c436f7f3ed611535879654d59e672cfd69c3 /runtime/module-template.h | |
parent | b056c258d7bab528034ec8c8749cdcf0d0102268 (diff) | |
download | rsyslog-ff2bb192f2c566f189a9d104d83d7a70c7888774.tar.gz rsyslog-ff2bb192f2c566f189a9d104d83d7a70c7888774.tar.xz rsyslog-ff2bb192f2c566f189a9d104d83d7a70c7888774.zip |
step: conf interface now natively supports priv drop
Diffstat (limited to 'runtime/module-template.h')
-rw-r--r-- | runtime/module-template.h | 37 |
1 files changed, 33 insertions, 4 deletions
diff --git a/runtime/module-template.h b/runtime/module-template.h index f44cb54a..0440d02d 100644 --- a/runtime/module-template.h +++ b/runtime/module-template.h @@ -478,6 +478,15 @@ static rsRetVal queryEtryPt(uchar *name, rsRetVal (**pEtryPoint)())\ *pEtryPoint = freeCnf;\ } + +/* the following block is to be added for modules that require + * pre priv drop activation support. + */ +#define CODEqueryEtryPt_STD_CONF2_PREPRIVDROP_QUERIES \ + else if(!strcmp((char*) name, "activateCnfPrePrivDrop")) {\ + *pEtryPoint = activateCnfPrePrivDrop;\ + } + /* the following definition is the standard block for queryEtryPt for LIBRARY * modules. This can be used if no specific handling (e.g. to cover version * differences) is needed. @@ -622,7 +631,7 @@ static rsRetVal modExit(void)\ * the module. -- rgerards, 2011-05-03 */ #define BEGINbeginCnfLoad \ -static rsRetVal beginCnfLoad(modConfData_t **ptr, rsconf_t *pConf)\ +static rsRetVal beginCnfLoad(modConfData_t **ptr, __attribute__((unused)) rsconf_t *pConf)\ {\ modConfData_t *pModConf; \ DEFiRet; @@ -650,7 +659,7 @@ static rsRetVal beginCnfLoad(modConfData_t **ptr, rsconf_t *pConf)\ #define BEGINendCnfLoad \ static rsRetVal endCnfLoad(modConfData_t *ptr)\ {\ - modConfData_t *pModConf = (modConfData_t*) ptr; \ + modConfData_t __attribute__((unused)) *pModConf = (modConfData_t*) ptr; \ DEFiRet; #define CODESTARTendCnfLoad @@ -672,7 +681,7 @@ static rsRetVal endCnfLoad(modConfData_t *ptr)\ #define BEGINcheckCnf \ static rsRetVal checkCnf(modConfData_t *ptr)\ {\ - modConfData_t *pModConf = (modConfData_t*) ptr; \ + modConfData_t __attribute__((unused)) *pModConf = (modConfData_t*) ptr; \ DEFiRet; #define CODESTARTcheckCnf @@ -682,6 +691,26 @@ static rsRetVal checkCnf(modConfData_t *ptr)\ } +/* activateCnfPrePrivDrop() + * Initial config activation, before dropping privileges. This is an optional + * entry points that should only be implemented by those module that really need + * it. Processing should be limited to the minimum possible. Main activation + * should happen in the normal activateCnf() call. + * rgerhards, 2011-05-06 + */ +#define BEGINactivateCnfPrePrivDrop \ +static rsRetVal activateCnfPrePrivDrop(modConfData_t *ptr)\ +{\ + modConfData_t *pModConf = (modConfData_t*) ptr; \ + DEFiRet; + +#define CODESTARTactivateCnfPrePrivDrop + +#define ENDactivateCnfPrePrivDrop \ + RETiRet;\ +} + + /* activateCnf() * This activates the provided config, and may report errors if they are detected * during activation. @@ -690,7 +719,7 @@ static rsRetVal checkCnf(modConfData_t *ptr)\ #define BEGINactivateCnf \ static rsRetVal activateCnf(modConfData_t *ptr)\ {\ - modConfData_t *pModConf = (modConfData_t*) ptr; \ + modConfData_t __attribute__((unused)) *pModConf = (modConfData_t*) ptr; \ DEFiRet; #define CODESTARTactivateCnf |