summaryrefslogtreecommitdiffstats
path: root/tools/syslogd.c
diff options
context:
space:
mode:
authorRainer Gerhards <rgerhards@adiscon.com>2009-05-29 13:52:55 +0200
committerRainer Gerhards <rgerhards@adiscon.com>2009-05-29 13:52:55 +0200
commit2ed8e41b31b4c7e20da487a0a8abc51cbabf70a6 (patch)
treeac069b67131b3e1f470cb983a32d0b2f54ca70bd /tools/syslogd.c
parent8d8befaeca0d9ed3f096780e499a3231f16585c4 (diff)
parent43c45bfebcc672d6fbec2d4d659609d1ea48eda6 (diff)
downloadrsyslog-2ed8e41b31b4c7e20da487a0a8abc51cbabf70a6.tar.gz
rsyslog-2ed8e41b31b4c7e20da487a0a8abc51cbabf70a6.tar.xz
rsyslog-2ed8e41b31b4c7e20da487a0a8abc51cbabf70a6.zip
Merge branch 'v3-stable' into beta
Conflicts: ChangeLog
Diffstat (limited to 'tools/syslogd.c')
-rw-r--r--tools/syslogd.c35
1 files changed, 20 insertions, 15 deletions
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++;
+ }
}
}