summaryrefslogtreecommitdiffstats
path: root/runtime/msg.c
diff options
context:
space:
mode:
authorRainer Gerhards <rgerhards@adiscon.com>2011-10-17 14:53:22 +0200
committerRainer Gerhards <rgerhards@adiscon.com>2011-10-17 14:53:22 +0200
commit359ddad3c5dce82ab48964c1d8b804c4155ea39c (patch)
tree8e93dffd3eff113cc05537d9699d5065dcb06ee4 /runtime/msg.c
parent26a668f8fa352e63aefcc762eadd123002b3895d (diff)
parent943a2070a6f556c48a903d55da0317b5942a41b6 (diff)
downloadrsyslog-359ddad3c5dce82ab48964c1d8b804c4155ea39c.tar.gz
rsyslog-359ddad3c5dce82ab48964c1d8b804c4155ea39c.tar.xz
rsyslog-359ddad3c5dce82ab48964c1d8b804c4155ea39c.zip
Merge branch 'beta'
Conflicts: ChangeLog configure.ac doc/manual.html
Diffstat (limited to 'runtime/msg.c')
-rw-r--r--runtime/msg.c52
1 files changed, 45 insertions, 7 deletions
diff --git a/runtime/msg.c b/runtime/msg.c
index bd1950ad..8dbb0693 100644
--- a/runtime/msg.c
+++ b/runtime/msg.c
@@ -1597,9 +1597,19 @@ static inline int getPROCIDLen(msg_t *pM, sbool bLockMutex)
*/
char *getPROCID(msg_t *pM, sbool bLockMutex)
{
+ uchar *pszRet;
+
ISOBJ_TYPE_assert(pM, msg);
- preparePROCID(pM, bLockMutex);
- return (pM->pCSPROCID == NULL) ? "-" : (char*) cstrGetSzStrNoNULL(pM->pCSPROCID);
+ if(bLockMutex == LOCK_MUTEX)
+ MsgUnlock(pM);
+ preparePROCID(pM, MUTEX_ALREADY_LOCKED);
+ if(pM->pCSPROCID == NULL)
+ pszRet = UCHAR_CONSTANT("");
+ else
+ pszRet = rsCStrGetSzStrNoNULL(pM->pCSPROCID);
+ if(bLockMutex == LOCK_MUTEX)
+ MsgUnlock(pM);
+ return (char*) pszRet;
}
@@ -1826,7 +1836,15 @@ static int getStructuredDataLen(msg_t *pM)
*/
static inline char *getStructuredData(msg_t *pM)
{
- return (pM->pCSStrucData == NULL) ? "-" : (char*) rsCStrGetSzStrNoNULL(pM->pCSStrucData);
+ uchar *pszRet;
+
+ MsgUnlock(pM);
+ if(pM->pCSStrucData == NULL)
+ pszRet = UCHAR_CONSTANT("-");
+ else
+ pszRet = rsCStrGetSzStrNoNULL(pM->pCSStrucData);
+ MsgUnlock(pM);
+ return (char*) pszRet;
}
@@ -1865,8 +1883,18 @@ int getProgramNameLen(msg_t *pM, sbool bLockMutex)
*/
uchar *getProgramName(msg_t *pM, sbool bLockMutex)
{
- prepareProgramName(pM, bLockMutex);
- return (pM->pCSProgName == NULL) ? UCHAR_CONSTANT("") : rsCStrGetSzStrNoNULL(pM->pCSProgName);
+ uchar *pszRet;
+
+ if(bLockMutex == LOCK_MUTEX)
+ MsgUnlock(pM);
+ prepareProgramName(pM, MUTEX_ALREADY_LOCKED);
+ if(pM->pCSProgName == NULL)
+ pszRet = UCHAR_CONSTANT("");
+ else
+ pszRet = rsCStrGetSzStrNoNULL(pM->pCSProgName);
+ if(bLockMutex == LOCK_MUTEX)
+ MsgUnlock(pM);
+ return pszRet;
}
@@ -1912,9 +1940,19 @@ static inline void prepareAPPNAME(msg_t *pM, sbool bLockMutex)
*/
char *getAPPNAME(msg_t *pM, sbool bLockMutex)
{
+ uchar *pszRet;
+
assert(pM != NULL);
- prepareAPPNAME(pM, bLockMutex);
- return (pM->pCSAPPNAME == NULL) ? "" : (char*) rsCStrGetSzStrNoNULL(pM->pCSAPPNAME);
+ if(bLockMutex == LOCK_MUTEX)
+ MsgUnlock(pM);
+ prepareAPPNAME(pM, MUTEX_ALREADY_LOCKED);
+ if(pM->pCSAPPNAME == NULL)
+ pszRet = UCHAR_CONSTANT("");
+ else
+ pszRet = rsCStrGetSzStrNoNULL(pM->pCSAPPNAME);
+ if(bLockMutex == LOCK_MUTEX)
+ MsgUnlock(pM);
+ return (char*)pszRet;
}
/* rgerhards, 2005-11-24