Added debug log

This commit is contained in:
suvendhu 2023-04-11 20:30:35 +05:30
parent 0d23ef70af
commit 468b6803cd
2 changed files with 44 additions and 23 deletions

View file

@ -66,7 +66,8 @@ function print_tag_value()
{
rpc_method=$1
tag=$2
xml_data=`awk -v start="<"$rpc_method">" -v end="</"$rpc_method">" '$0~start,$1~end' $icwmp_log_file`
output=$(sed -n "/<"$rpc_method">/,/<\/"$rpc_method">/p" $icwmp_log_file)
xml_data=$(echo $output | grep -o "<"$rpc_method">.*<\/"$rpc_method">")
tag_value=`grep -oPm1 "(?<=<$tag>)[^<]+" <<< "$xml_data"`
echo $tag_value
}

64
xml.c
View file

@ -149,14 +149,14 @@ int xml_send_message(struct cwmp *cwmp, struct session *session, struct rpc *rpc
if (session->tree_out) {
CWMP_LOG(INFO, "#### %s line: %d ####", __FUNCTION__, __LINE__);
unsigned char *zmsg_out;
msg_out = mxmlSaveAllocString(session->tree_out, whitespace_cb);
msg_out = mxmlSaveAllocString(session->tree_out, MXML_NO_CALLBACK);
if (msg_out == NULL) {
CWMP_LOG(ERROR, "Received tree_out is empty");
return -1;
}
CWMP_LOG(INFO, "#### %s line: %d ####", __FUNCTION__, __LINE__);
CWMP_LOG_XML_MSG(DEBUG, msg_out, XML_MSG_OUT);
CWMP_LOG(INFO, "#### %s line: %d ####", __FUNCTION__, __LINE__);
if (compression != COMP_NONE) {
CWMP_LOG(INFO, "#### %s line: %d ####", __FUNCTION__, __LINE__);
if (zlib_compress(msg_out, &zmsg_out, &msg_out_len, compression)) {
@ -318,6 +318,7 @@ int xml_set_cwmp_id_rpc_cpe(struct session *session)
const char *get_node_tab_space(mxml_node_t *node)
{
CWMP_LOG(INFO, "#### %s start %d ####", __FUNCTION__, __LINE__);
static char tab_space[10 * sizeof(CWMP_MXML_TAB_SPACE) + 1];
int count = 0;
@ -330,33 +331,52 @@ const char *get_node_tab_space(mxml_node_t *node)
snprintf(tab_space, sizeof(tab_space), "%*s", (int)(count * sizeof(CWMP_MXML_TAB_SPACE)), "");
}
CWMP_LOG(INFO, "#### %s exit %d count %d ####", __FUNCTION__, __LINE__, count);
return tab_space;
}
const char *whitespace_cb(mxml_node_t *node, int where __attribute__((unused)))
const char *whitespace_cb(mxml_node_t *node, int where)
{
if (mxmlGetType(node) != MXML_ELEMENT)
return NULL;
switch (where) {
case MXML_WS_BEFORE_CLOSE:
if (mxmlGetFirstChild(node) && mxmlGetType(mxmlGetFirstChild(node)) != MXML_ELEMENT)
return NULL;
return get_node_tab_space(node);
case MXML_WS_BEFORE_OPEN:
if (where == MXML_WS_BEFORE_CLOSE && mxmlGetFirstChild(node) && mxmlGetType(mxmlGetFirstChild(node)) != MXML_ELEMENT)
return NULL;
return get_node_tab_space(node);
case MXML_WS_AFTER_OPEN:
return ((mxmlGetFirstChild(node) == NULL || mxmlGetType(mxmlGetFirstChild(node)) == MXML_ELEMENT) ? "\n" : NULL);
case MXML_WS_AFTER_CLOSE:
return "\n";
default:
CWMP_LOG(INFO, "#### %s start ####", __FUNCTION__);
if (node == NULL) {
CWMP_LOG(INFO, "#### %s exit %d ####", __FUNCTION__, __LINE__);
return NULL;
}
if (mxmlGetType(node) != MXML_ELEMENT) {
CWMP_LOG(INFO, "#### %s exit %d ####", __FUNCTION__, __LINE__);
return NULL;
}
switch (where) {
case MXML_WS_BEFORE_CLOSE:
if (mxmlGetFirstChild(node) && mxmlGetType(mxmlGetFirstChild(node)) != MXML_ELEMENT) {
CWMP_LOG(INFO, "#### %s exit %d ####", __FUNCTION__, __LINE__);
return NULL;
}
CWMP_LOG(INFO, "#### %s exit %d ####", __FUNCTION__, __LINE__);
return get_node_tab_space(node);
case MXML_WS_BEFORE_OPEN:
if (where == MXML_WS_BEFORE_CLOSE && mxmlGetFirstChild(node) && mxmlGetType(mxmlGetFirstChild(node)) != MXML_ELEMENT) {
CWMP_LOG(INFO, "#### %s exit %d ####", __FUNCTION__, __LINE__);
return NULL;
}
CWMP_LOG(INFO, "#### %s exit %d ####", __FUNCTION__, __LINE__);
return get_node_tab_space(node);
case MXML_WS_AFTER_OPEN:
CWMP_LOG(INFO, "#### %s exit %d ####", __FUNCTION__, __LINE__);
return ((mxmlGetFirstChild(node) == NULL || mxmlGetType(mxmlGetFirstChild(node)) == MXML_ELEMENT) ? "\n" : NULL);
case MXML_WS_AFTER_CLOSE:
CWMP_LOG(INFO, "#### %s exit %d ####", __FUNCTION__, __LINE__);
return "\n";
default:
CWMP_LOG(INFO, "#### %s exit %d ####", __FUNCTION__, __LINE__);
return NULL;
}
CWMP_LOG(INFO, "#### %s exit %d ####", __FUNCTION__, __LINE__);
return NULL;
}