summaryrefslogtreecommitdiffstats
path: root/runtime/msg.c
diff options
context:
space:
mode:
authorRainer Gerhards <rgerhards@adiscon.com>2013-09-23 12:47:21 +0200
committerRainer Gerhards <rgerhards@adiscon.com>2013-09-23 12:47:21 +0200
commit90e1478f11b7a9d253899104b20900bd999970f1 (patch)
treedad6b3d2f81db53c9ddcb1721a5d6b36c01b6ef5 /runtime/msg.c
parent2d616c409711f0df968bd894ec7f8c0545257214 (diff)
downloadrsyslog-90e1478f11b7a9d253899104b20900bd999970f1.tar.gz
rsyslog-90e1478f11b7a9d253899104b20900bd999970f1.tar.bz2
rsyslog-90e1478f11b7a9d253899104b20900bd999970f1.zip
expose so-far msg-internal method to query structured data
This also lead to a slight performance optimization in the msg.c module (when it comes to querying structured data). This is stage work in order to provide the capability to fully parse structured data.
Diffstat (limited to 'runtime/msg.c')
-rw-r--r--runtime/msg.c33
1 files changed, 11 insertions, 22 deletions
diff --git a/runtime/msg.c b/runtime/msg.c
index 47ff240f..85c97741 100644
--- a/runtime/msg.c
+++ b/runtime/msg.c
@@ -2079,31 +2079,20 @@ finalize_it:
RETiRet;
}
-/* get the length of the "STRUCTURED-DATA" sz string
- * rgerhards, 2005-11-24
- */
-#if 0 /* This method is currently not called, be we like to preserve it */
-static int getStructuredDataLen(msg_t *pM)
-{
- return (pM->pCSStrucData == NULL) ? 1 : rsCStrLen(pM->pCSStrucData);
-}
-#endif
-
-/* get the "STRUCTURED-DATA" as sz string
- * rgerhards, 2005-11-24
- */
-static inline char *getStructuredData(msg_t *pM)
+/* get the "STRUCTURED-DATA" as sz string, including length */
+void
+MsgGetStructuredData(msg_t *pM, uchar **pBuf, rs_size_t *len)
{
- uchar *pszRet;
-
MsgLock(pM);
- if(pM->pCSStrucData == NULL)
- pszRet = UCHAR_CONSTANT("-");
- else
- pszRet = rsCStrGetSzStrNoNULL(pM->pCSStrucData);
+ if(pM->pCSStrucData == NULL) {
+ *pBuf = UCHAR_CONSTANT("-"),
+ *len = 1;
+ } else {
+ *pBuf = rsCStrGetSzStr(pM->pCSStrucData),
+ *len = cstrLen(pM->pCSStrucData);
+ }
MsgUnlock(pM);
- return (char*) pszRet;
}
/* get the "programname" as sz string
@@ -2873,7 +2862,7 @@ uchar *MsgGetProp(msg_t *pMsg, struct templateEntry *pTpe,
pRes = (uchar*)getProtocolVersionString(pMsg);
break;
case PROP_STRUCTURED_DATA:
- pRes = (uchar*)getStructuredData(pMsg);
+ MsgGetStructuredData(pMsg, &pRes, &bufLen);
break;
case PROP_APP_NAME:
pRes = (uchar*)getAPPNAME(pMsg, LOCK_MUTEX);