diff options
author | Rainer Gerhards <rgerhards@adiscon.com> | 2013-09-23 12:47:21 +0200 |
---|---|---|
committer | Rainer Gerhards <rgerhards@adiscon.com> | 2013-09-23 12:47:21 +0200 |
commit | 90e1478f11b7a9d253899104b20900bd999970f1 (patch) | |
tree | dad6b3d2f81db53c9ddcb1721a5d6b36c01b6ef5 /runtime/msg.c | |
parent | 2d616c409711f0df968bd894ec7f8c0545257214 (diff) | |
download | rsyslog-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.c | 33 |
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); |