summaryrefslogtreecommitdiffstats
path: root/runtime/module-template.h
diff options
context:
space:
mode:
authorRainer Gerhards <rgerhards@adiscon.com>2011-05-06 10:06:32 +0200
committerRainer Gerhards <rgerhards@adiscon.com>2011-05-06 10:06:32 +0200
commitff2bb192f2c566f189a9d104d83d7a70c7888774 (patch)
tree7737c436f7f3ed611535879654d59e672cfd69c3 /runtime/module-template.h
parentb056c258d7bab528034ec8c8749cdcf0d0102268 (diff)
downloadrsyslog-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.h37
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