summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--plugins/mmrfc5424addhmac/mmrfc5424addhmac.c3
-rw-r--r--runtime/msg.c33
-rw-r--r--runtime/msg.h1
3 files changed, 15 insertions, 22 deletions
diff --git a/plugins/mmrfc5424addhmac/mmrfc5424addhmac.c b/plugins/mmrfc5424addhmac/mmrfc5424addhmac.c
index cfeede8a..9d5ac602 100644
--- a/plugins/mmrfc5424addhmac/mmrfc5424addhmac.c
+++ b/plugins/mmrfc5424addhmac/mmrfc5424addhmac.c
@@ -198,6 +198,9 @@ hashMsg(instanceData *pData, msg_t *pMsg)
uchar hashPrintable[2*EVP_MAX_MD_SIZE+1];
DEFiRet;
+// Next two debug only!
+MsgGetStructuredData(pMsg, &pRawMsg, &lenRawMsg);
+dbgprintf("DDDD: STRUCTURED-DATA is: '%s'\n", pRawMsg);
getRawMsg(pMsg, &pRawMsg, &lenRawMsg);
HMAC(pData->algo, pData->key, pData->keylen,
pRawMsg, lenRawMsg, hash, &hashlen);
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);
diff --git a/runtime/msg.h b/runtime/msg.h
index e220922d..5254f785 100644
--- a/runtime/msg.h
+++ b/runtime/msg.h
@@ -166,6 +166,7 @@ void MsgSetTAG(msg_t *pMsg, uchar* pszBuf, size_t lenBuf);
void MsgSetRuleset(msg_t *pMsg, ruleset_t*);
rsRetVal MsgSetFlowControlType(msg_t *pMsg, flowControl_t eFlowCtl);
rsRetVal MsgSetStructuredData(msg_t *pMsg, char* pszStrucData);
+void MsgGetStructuredData(msg_t *pM, uchar **pBuf, rs_size_t *len);
rsRetVal msgSetFromSockinfo(msg_t *pThis, struct sockaddr_storage *sa);
void MsgSetRcvFrom(msg_t *pMsg, prop_t*);
void MsgSetRcvFromStr(msg_t *pMsg, uchar* pszRcvFrom, int, prop_t **);