summaryrefslogtreecommitdiffstats
path: root/runtime/modules.c
diff options
context:
space:
mode:
authorRainer Gerhards <rgerhards@adiscon.com>2013-04-08 17:55:52 +0200
committerRainer Gerhards <rgerhards@adiscon.com>2013-04-08 17:55:52 +0200
commitd9cde56eb8532bd660d6feb2249562afac0c40f6 (patch)
treeb8c562c0bed8f6bc029dfb7c518356c71e116d5b /runtime/modules.c
parentba592431e279b3dafb74b93824a1478ff0d9724f (diff)
downloadrsyslog-d9cde56eb8532bd660d6feb2249562afac0c40f6.tar.gz
rsyslog-d9cde56eb8532bd660d6feb2249562afac0c40f6.tar.bz2
rsyslog-d9cde56eb8532bd660d6feb2249562afac0c40f6.zip
add output module interface to facilitate cooperative shutdown
... in more complex cases (where receiving SIGTTIN is not sufficient). See also: http://blog.gerhards.net/2013/04/rsyslog-output-plugin-wrangling.html
Diffstat (limited to 'runtime/modules.c')
-rw-r--r--runtime/modules.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/runtime/modules.c b/runtime/modules.c
index 9f7ff31c..e9d8d959 100644
--- a/runtime/modules.c
+++ b/runtime/modules.c
@@ -657,6 +657,10 @@ doModInit(rsRetVal (*modInit)(int, int*, rsRetVal(**)(), rsRetVal(*)(), modInfo_
if(localRet != RS_RET_OK && localRet != RS_RET_MODULE_ENTRY_POINT_NOT_FOUND)
ABORT_FINALIZE(localRet);
+ localRet = (*pNew->modQueryEtryPt)((uchar*)"SetShutdownImmdtPtr", &pNew->mod.om.SetShutdownImmdtPtr);
+ if(localRet != RS_RET_OK && localRet != RS_RET_MODULE_ENTRY_POINT_NOT_FOUND)
+ ABORT_FINALIZE(localRet);
+
localRet = (*pNew->modQueryEtryPt)((uchar*)"beginTransaction", &pNew->mod.om.beginTransaction);
if(localRet == RS_RET_MODULE_ENTRY_POINT_NOT_FOUND)
pNew->mod.om.beginTransaction = dummyBeginTransaction;