summaryrefslogtreecommitdiffstats
path: root/runtime
diff options
context:
space:
mode:
authorRainer Gerhards <rgerhards@adiscon.com>2008-04-17 11:17:15 +0200
committerRainer Gerhards <rgerhards@adiscon.com>2008-04-17 11:17:15 +0200
commite5130affc022eff12a3d9584576a385edbb13465 (patch)
treec10ebc6869d977806b67f6d72f69b66c36f30548 /runtime
parent0edc7976ae057d474254379daa9085b05a52e12d (diff)
downloadrsyslog-e5130affc022eff12a3d9584576a385edbb13465.tar.gz
rsyslog-e5130affc022eff12a3d9584576a385edbb13465.tar.xz
rsyslog-e5130affc022eff12a3d9584576a385edbb13465.zip
moved "glblModPath" variable inside global data pool
(but still as a variable, not part of glbl object)
Diffstat (limited to 'runtime')
-rw-r--r--runtime/glbl.h3
-rw-r--r--runtime/rsyslog.c3
-rw-r--r--runtime/rsyslog.h11
3 files changed, 14 insertions, 3 deletions
diff --git a/runtime/glbl.h b/runtime/glbl.h
index 0db2f0ac..d61f9b41 100644
--- a/runtime/glbl.h
+++ b/runtime/glbl.h
@@ -34,9 +34,6 @@
#define glblGetIOBufSize() 4096 /* size of the IO buffer, e.g. for strm class */
-extern uchar *glblModPath; /* module load path */
-
-
/* interfaces */
BEGINinterface(glbl) /* name must also be changed in ENDinterface macro! */
uchar* (*GetWorkDir)(void);
diff --git a/runtime/rsyslog.c b/runtime/rsyslog.c
index b7f0c2c1..d0eaa6f8 100644
--- a/runtime/rsyslog.c
+++ b/runtime/rsyslog.c
@@ -76,6 +76,9 @@
#include "conf.h"
#include "glbl.h"
+/* globally visible static data - see comment in rsyslog.h for details */
+uchar *glblModPath; /* module load path */
+
/* static data */
static int iRefCount = 0; /* our refcount - it MUST exist only once inside a process (not thread)
thus it is perfectly OK to use a static. MUST be initialized to 0! */
diff --git a/runtime/rsyslog.h b/runtime/rsyslog.h
index 3841df6c..5a3175e2 100644
--- a/runtime/rsyslog.h
+++ b/runtime/rsyslog.h
@@ -287,6 +287,17 @@ void dbgprintf(char *, ...) __attribute__((format(printf, 1, 2)));
#include "debug.h"
#include "obj.h"
+/* the variable below is a trick: before we can init the runtime, the caller
+ * may want to set a module load path. We can not do this via the glbl class
+ * because it needs an initialized runtime system (and may at some point in time
+ * even be loaded itself). So this is a no-go. What we do is use a single global
+ * variable which may be provided with a pointer by the caller. This variable
+ * resides in rsyslog.c, the main runtime file. We have not seen any realy valule
+ * in providing object access functions. If you don't like that, feel free to
+ * add them. -- rgerhards, 2008-04-17
+ */
+extern uchar *glblModPath; /* module load path */
+
/* some runtime prototypes */
rsRetVal rsrtInit(char **ppErrObj, obj_if_t *pObjIF);
rsRetVal rsrtExit(void);