cw_dbg_missing_mand_elems added.

FossilOrigin-Name: 8c59a56c7d6388abc4c4bef75e96b7302e9ea6a714fdaf5a68cba84bd8066073
This commit is contained in:
7u83@mail.ru 2014-08-25 21:39:26 +00:00
parent d9bd7d3339
commit f7dbcac0d8
2 changed files with 130 additions and 122 deletions

View File

@ -94,6 +94,7 @@ extern int cw_dbg_opt_level;
#define cw_log_dbg_dmp(type,str,len,...) cw_log_dbg_dmp_(type,__FILE__,__LINE__,str,len,__VA_ARGS__) #define cw_log_dbg_dmp(type,str,len,...) cw_log_dbg_dmp_(type,__FILE__,__LINE__,str,len,__VA_ARGS__)
#define cw_dbg_dmp(type,str,len,...) cw_log_dbg_dmp_(type,__FILE__,__LINE__,str,len,__VA_ARGS__) #define cw_dbg_dmp(type,str,len,...) cw_log_dbg_dmp_(type,__FILE__,__LINE__,str,len,__VA_ARGS__)
#define cw_dbg_msgelem(msgtype,msgelemtype,msgbuf,msglen) cw_dbg_msgelem_(msgtype,msgelemtype,msgbuf,msglen) #define cw_dbg_msgelem(msgtype,msgelemtype,msgbuf,msglen) cw_dbg_msgelem_(msgtype,msgelemtype,msgbuf,msglen)
#define cw_dbg_missing_mand_elems(conn, msgtyoe, mand) cw_dbg_missing_mand_elems_(conn, msgtyoe, mand)
#else #else
#define cw_log_dbg(...) #define cw_log_dbg(...)
@ -108,6 +109,9 @@ extern int cw_dbg_opt_level;
#define cw_log_debug0_dump(level,str,len) #define cw_log_debug0_dump(level,str,len)
#define cw_log_debug1_dump(level,str,len) #define cw_log_debug1_dump(level,str,len)
#define cw_log_debug2_dump(level,str,len) #define cw_log_debug2_dump(level,str,len)
#define cw_dbg_missing_mand_elems(conn, msgtyoe, mand)
#endif #endif
extern void (*cw_log_cb)(int level,const char * fromat, ...); extern void (*cw_log_cb)(int level,const char * fromat, ...);
@ -121,6 +125,8 @@ extern void cw_log_tofile(int level,const char *format, ...);
extern void cw_dbg_msgelem_(int msg, int msgelem, const uint8_t *msgbuf,int len); extern void cw_dbg_msgelem_(int msg, int msgelem, const uint8_t *msgbuf,int len);
struct conn;
extern void cw_dbg_missing_mand_elems_(struct conn * conn,int msgtyoe, int * mand);

View File

@ -23,6 +23,7 @@
#include "cw_log.h" #include "cw_log.h"
#include "capwap.h" #include "capwap.h"
#include "cw_util.h"
static void cw_log_debug0_(const char *format, ...) static void cw_log_debug0_(const char *format, ...)
@ -59,7 +60,8 @@ static void cw_log_debug2_(const char *format, ...)
closelog(); closelog();
} }
int cw_log_debug_dump_(int level,const uint8_t * data, int len,const char * format, ...) int cw_log_debug_dump_(int level, const uint8_t * data, int len,
const char *format, ...)
{ {
int maxtlen = 2048; int maxtlen = 2048;
int i; int i;
@ -114,7 +116,8 @@ int cw_dbg_opt_detail=0;
int cw_dbg_opt_level = 0; int cw_dbg_opt_level = 0;
void cw_log_dbg_(int level, const char * file, int line, const char * format, ...) void cw_log_dbg_(int level, const char *file, int line, const char *format,
...)
{ {
if (!(level & cw_dbg_opt_level)) if (!(level & cw_dbg_opt_level))
return; return;
@ -134,7 +137,9 @@ void cw_log_dbg_(int level, const char * file, int line, const char * format, ..
void cw_log_dbg_dmp_(int level,const char * file, int line, const uint8_t * data, int len,const char * format, ...) void cw_log_dbg_dmp_(int level, const char *file, int line,
const uint8_t * data, int len, const char *format,
...)
{ {
if (!(level & cw_dbg_opt_level)) if (!(level & cw_dbg_opt_level))
@ -199,8 +204,7 @@ void cw_log_dbg_dmp_(int level,const char * file, int line, const uint8_t * data
l = sprintf(pdst, " | %s\n\t", asc_buffer); l = sprintf(pdst, " | %s\n\t", asc_buffer);
ascdst = asc_buffer; ascdst = asc_buffer;
} } else {
else{
l = sprintf(pdst, "\n\t"); l = sprintf(pdst, "\n\t");
} }
pdst += l; pdst += l;
@ -231,15 +235,12 @@ void cw_log_dbg_dmp_(int level,const char * file, int line, const uint8_t * data
void (*cw_log_debug_cbs[]) (const char *fromat, ...) = { void (*cw_log_debug_cbs[]) (const char *fromat, ...) = {
cw_log_debug0_, cw_log_debug0_, cw_log_debug1_, cw_log_debug2_};
cw_log_debug1_,
cw_log_debug2_
};
/** /**
* print debug info * print debug info for message elements
*/ */
void cw_dbg_msgelem_(int msg, int msgelem, const uint8_t * msgbuf, int len) void cw_dbg_msgelem_(int msg, int msgelem, const uint8_t * msgbuf, int len)
@ -254,35 +255,36 @@ void cw_dbg_msgelem_(int msg, int msgelem, const uint8_t *msgbuf,int len)
int type = ntohs(*((uint16_t *) (msgbuf + 4))); int type = ntohs(*((uint16_t *) (msgbuf + 4)));
sprintf(vendorname, "%s/%s/%d", sprintf(vendorname, "%s/%s/%d",
(char *) cw_msgelemtostr(msgelem), (char *) cw_msgelemtostr(msgelem),
(char*)cw_ianavendoridtostr(vendor), (char *) cw_ianavendoridtostr(vendor), type);
type);
elemname = vendorname; elemname = vendorname;
} } else {
else{
elemname = cw_msgelemtostr(msgelem); elemname = cw_msgelemtostr(msgelem);
} }
if (!cw_dbg_is_level(DBG_CW_MSGELEM_DMP)) if (!cw_dbg_is_level(DBG_CW_MSGELEM_DMP))
cw_dbg(DBG_CW_MSGELEM,"Reading %s msgelem, type=%d (%s), len=%d", cw_dbg(DBG_CW_MSGELEM,
cw_msgtostr(msg), "Reading %s msgelem, type=%d (%s), len=%d",
msgelem, cw_msgtostr(msg), msgelem, elemname, len);
elemname,
len);
else else
cw_dbg_dmp(DBG_CW_MSGELEM,msgbuf,len,"Reading %s msgelem, type=%d (%s), len=%d\n\t Dump ...", cw_dbg_dmp(DBG_CW_MSGELEM, msgbuf, len,
cw_msgtostr(msg), "Reading %s msgelem, type=%d (%s), len=%d\n\t Dump ...",
msgelem, cw_msgtostr(msg), msgelem, elemname, len);
elemname, }
len);
void cw_dbg_missing_mand_elems_(struct conn *conn, int msgtype, int *mand)
{
if (!cw_dbg_is_level(DBG_CW_RFC))
return;
if (cw_is_missing_mand_elems(mand)) {
char str[512];
cw_get_missing_mand_elems(str, mand);
cw_dbg(DBG_CW_RFC, "Missing msgelems in %s: %s",
cw_msgtostr(msgtype), str);
}
} }
//cw_dbg(DBG_CW_MSGELEM,"Process discovery req msgelem, type=%d (%s), len=%d",type,cw_msgelemtostr(type),len); //cw_dbg(DBG_CW_MSGELEM,"Process discovery req msgelem, type=%d (%s), len=%d",type,cw_msgelemtostr(type),len);
//cw_dbg_dmp(DBG_CW_MSGELEM_DMP,msgelem,len,"Dump for msgelem ..."); //cw_dbg_dmp(DBG_CW_MSGELEM_DMP,msgelem,len,"Dump for msgelem ...");