summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--plugins/imdiag/imdiag.c3
-rw-r--r--tools/syslogd.c35
3 files changed, 24 insertions, 18 deletions
diff --git a/ChangeLog b/ChangeLog
index 4be705ce..ef235247 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -152,7 +152,7 @@ version before switching to this one.
- bugfix: memory leak in ompgsql
Thanks to Ken for providing the patch
---------------------------------------------------------------------------
-Version 3.22.x [v3-stable] (rgerhards), 2009-04-??
+Version 3.22.1 [v3-stable] (rgerhards), 2009-04-??
- bugfix: internal messages were emitted to whatever file had fd2 when
rsyslogd ran in forked mode (as usual!)
Thanks to varmojfekoj for the patch
@@ -162,8 +162,6 @@ Version 3.22.x [v3-stable] (rgerhards), 2009-04-??
the change requires more code than I had hoped. Thus I have NOT tried
to actually catch all cases, this is left for the current devel
releases, if necessary]
----------------------------------------------------------------------------
-Version 3.22.1 [v3-stable] (rgerhards), 2009-04-??
- bugfix: light and full delay watermarks had invalid values, badly
affecting performance for delayable inputs
- bugfix: potential segfault issue when multiple $UDPServerRun directives
diff --git a/plugins/imdiag/imdiag.c b/plugins/imdiag/imdiag.c
index 3cd2dcf8..77e99236 100644
--- a/plugins/imdiag/imdiag.c
+++ b/plugins/imdiag/imdiag.c
@@ -1,3 +1,5 @@
+#warning "imdiag is NOT supported in this version of rsyslog"
+#if 0
/* imdiag.c
* This is a diagnostics module, primarily meant for troubleshooting
* and information about the runtime state of rsyslog. It is implemented
@@ -191,6 +193,7 @@ CODEmodInit_QueryRegCFSLineHdlr
resetConfigVariables, NULL, STD_LOADABLE_MODULE_ID));
#endif
ENDmodInit
+#endif
/* vim:set ai:
diff --git a/tools/syslogd.c b/tools/syslogd.c
index 5884df7e..4444bf6b 100644
--- a/tools/syslogd.c
+++ b/tools/syslogd.c
@@ -1290,21 +1290,26 @@ static int parseRFCStructuredData(char **pp2parse, char *pResult)
if(*p2parse != '[')
return 1; /* this is NOT structured data! */
- while(bCont) {
- if(*p2parse == '\0') {
- iRet = 1; /* this is not valid! */
- bCont = 0;
- } else if(*p2parse == '\\' && *(p2parse+1) == ']') {
- /* this is escaped, need to copy both */
- *pResult++ = *p2parse++;
- *pResult++ = *p2parse++;
- } else if(*p2parse == ']' && *(p2parse+1) == ' ') {
- /* found end, just need to copy the ] and eat the SP */
- *pResult++ = *p2parse;
- p2parse += 2;
- bCont = 0;
- } else {
- *pResult++ = *p2parse++;
+ if(*p2parse == '-') { /* empty structured data? */
+ *pResult++ = '-';
+ ++p2parse;
+ } else {
+ while(bCont) {
+ if(*p2parse == '\0') {
+ iRet = 1; /* this is not valid! */
+ bCont = 0;
+ } else if(*p2parse == '\\' && *(p2parse+1) == ']') {
+ /* this is escaped, need to copy both */
+ *pResult++ = *p2parse++;
+ *pResult++ = *p2parse++;
+ } else if(*p2parse == ']' && *(p2parse+1) == ' ') {
+ /* found end, just need to copy the ] and eat the SP */
+ *pResult++ = *p2parse;
+ p2parse += 2;
+ bCont = 0;
+ } else {
+ *pResult++ = *p2parse++;
+ }
}
}