diff options
author | Rainer Gerhards <rgerhards@adiscon.com> | 2008-04-17 11:17:15 +0200 |
---|---|---|
committer | Rainer Gerhards <rgerhards@adiscon.com> | 2008-04-17 11:17:15 +0200 |
commit | e5130affc022eff12a3d9584576a385edbb13465 (patch) | |
tree | c10ebc6869d977806b67f6d72f69b66c36f30548 | |
parent | 0edc7976ae057d474254379daa9085b05a52e12d (diff) | |
download | rsyslog-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)
-rw-r--r-- | runtime/glbl.h | 3 | ||||
-rw-r--r-- | runtime/rsyslog.c | 3 | ||||
-rw-r--r-- | runtime/rsyslog.h | 11 | ||||
-rw-r--r-- | tools/syslogd.c | 1 |
4 files changed, 14 insertions, 4 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); diff --git a/tools/syslogd.c b/tools/syslogd.c index 33a33823..67c7d11b 100644 --- a/tools/syslogd.c +++ b/tools/syslogd.c @@ -288,7 +288,6 @@ static int bEscapeCCOnRcv = 1; /* escape control characters on reception: 0 - n int bReduceRepeatMsgs; /* reduce repeated message - 0 - no, 1 - yes */ int bActExecWhenPrevSusp; /* execute action only when previous one was suspended? */ int iActExecOnceInterval = 0; /* execute action once every nn seconds */ -uchar *glblModPath = NULL; /* module load path - only used during initial init, only settable via -M command line option */ /* end global config file state variables */ int MarkInterval = 20 * 60; /* interval between marks in seconds - read-only after startup */ |