summaryrefslogtreecommitdiffstats
path: root/runtime/parser.c
diff options
context:
space:
mode:
authorRainer Gerhards <rgerhards@adiscon.com>2010-04-19 17:13:08 +0200
committerRainer Gerhards <rgerhards@adiscon.com>2010-04-19 17:13:08 +0200
commitd3eb89a5fe1dbcda028c0ab5e6753578716539d7 (patch)
tree9a6da2266542fb772bc996b6d245403ecdfd126c /runtime/parser.c
parent4e511087c413629120315fe5dd26f966ac1ef6fb (diff)
parent587036bfb03167d86b0a2fbfe998db1a916cabb3 (diff)
downloadrsyslog-d3eb89a5fe1dbcda028c0ab5e6753578716539d7.tar.gz
rsyslog-d3eb89a5fe1dbcda028c0ab5e6753578716539d7.tar.xz
rsyslog-d3eb89a5fe1dbcda028c0ab5e6753578716539d7.zip
Merge branch 'v4-devel' into master
Conflicts: runtime/msg.h
Diffstat (limited to 'runtime/parser.c')
-rw-r--r--runtime/parser.c29
1 files changed, 17 insertions, 12 deletions
diff --git a/runtime/parser.c b/runtime/parser.c
index 6238fa64..c85750dc 100644
--- a/runtime/parser.c
+++ b/runtime/parser.c
@@ -437,19 +437,24 @@ ParsePRI(msg_t *pMsg)
msg = pMsg->pszRawMsg;
pri = DEFUPRI;
iPriText = 0;
- if(*msg == '<') {
- /* while we process the PRI, we also fill the PRI textual representation
- * inside the msg object. This may not be ideal from an OOP point of view,
- * but it offers us performance...
- */
- pri = 0;
- while(--lenMsg > 0 && isdigit((int) *++msg)) {
- pri = 10 * pri + (*msg - '0');
+ if(pMsg->msgFlags & NO_PRI_IN_RAW) {
+ /* In this case, simply do so as if the pri would be right at top */
+ MsgSetAfterPRIOffs(pMsg, 0);
+ } else {
+ if(*msg == '<') {
+ /* while we process the PRI, we also fill the PRI textual representation
+ * inside the msg object. This may not be ideal from an OOP point of view,
+ * but it offers us performance...
+ */
+ pri = 0;
+ while(--lenMsg > 0 && isdigit((int) *++msg)) {
+ pri = 10 * pri + (*msg - '0');
+ }
+ if(*msg == '>')
+ ++msg;
+ if(pri & ~(LOG_FACMASK|LOG_PRIMASK))
+ pri = DEFUPRI;
}
- if(*msg == '>')
- ++msg;
- if(pri & ~(LOG_FACMASK|LOG_PRIMASK))
- pri = DEFUPRI;
}
pMsg->iFacility = LOG_FAC(pri);
pMsg->iSeverity = LOG_PRI(pri);