📄 mdump.cpp
字号:
#include "stdafx.h"
#include "acs.h"
#include "csta.h"
FILE *fp;
void mdump (unsigned char *buffer)
{
#define SIZE_OF_LINE 16
unsigned char temp[16];
int s;
int i;
int j = 0;
int k;
s = 300;
if ((fp = fopen("cldump.txt", "at+")) != NULL) {
fprintf (fp,"Message recu\n");
fprintf (fp, "ACS Handle : %d\n", (ACSHandle_t) buffer [0]);
if ((EventClass_t) buffer [2] == ACSREQUEST ||
(EventClass_t) buffer [2] == ACSUNSOLICITED ||
(EventClass_t) buffer [2] == ACSCONFIRMATION) {
fprintf (fp, "Event Class : ");
switch ((EventClass_t) buffer [2]) {
case ACSREQUEST :
fprintf (fp, "ACS REQUEST\n");
break;
case ACSUNSOLICITED :
fprintf (fp, "ACS UNSOLICITED\n");
break;
case ACSCONFIRMATION :
fprintf (fp, "ACS CONFIRMATION\n");
break;
}
fprintf (fp, "Event Type : ");
switch ((EventType_t) buffer [4]) {
case ACS_OPEN_STREAM :
fprintf (fp, "ACS OPEN STREAM\n");
break;
case ACS_OPEN_STREAM_CONF :
fprintf (fp, "ACS OPEN STREAM CONFIRMATION\n");
break;
case ACS_CLOSE_STREAM :
fprintf (fp, "ACS CLOSE STREAM\n");
break;
case ACS_CLOSE_STREAM_CONF :
fprintf (fp, "ACS CLOSE STREAM CONFIRMATION\n");
break;
case ACS_ABORT_STREAM :
fprintf (fp, "ACS ABORT STREAM\n");
break;
case ACS_UNIVERSAL_FAILURE_CONF :
fprintf (fp, "ACS UNIVERSAL FAILURE CONF\n");
break;
case ACS_UNIVERSAL_FAILURE :
fprintf (fp, "ACS UNIVERSAL FAILURE\n");
break;
case ACS_KEY_REQUEST :
fprintf (fp, "ACS KEY REQUEST\n");
break;
case ACS_KEY_REPLY :
fprintf (fp, "ACS KEY REPLY\n");
break;
default :
fprintf (fp, "%d\n", (EventType_t) buffer [4]);
break;
}
}
else {
if ((EventClass_t) buffer [2] == CSTAREQUEST ||
(EventClass_t) buffer [2] == CSTAUNSOLICITED ||
(EventClass_t) buffer [2] == CSTACONFIRMATION ||
(EventClass_t) buffer [2] == CSTAEVENTREPORT) {
fprintf (fp, "Event Class : ");
switch ((EventClass_t) buffer [2]) {
case CSTAREQUEST :
fprintf (fp, "CSTA REQUEST\n");
break;
case CSTAUNSOLICITED :
fprintf (fp, "CSTA UNSOLICITED\n");
break;
case CSTACONFIRMATION :
fprintf (fp, "CSTA CONFIRMATION\n");
break;
case CSTAEVENTREPORT :
fprintf (fp, "CSTA EVENT REPORT\n");
break;
}
fprintf (fp, "Event Type : ");
switch ((EventType_t) buffer [4]) {
case CSTA_ALTERNATE_CALL :
fprintf (fp, "CSTA ALTERNATE CALL\n");
break;
case CSTA_ALTERNATE_CALL_CONF :
fprintf (fp, "CSTA ALTERNATE CALL CONFIRMATION\n");
break;
case CSTA_ANSWER_CALL :
fprintf (fp, "CSTA ANSWER CALL\n");
break;
case CSTA_ANSWER_CALL_CONF :
fprintf (fp, "CSTA ANSWER CALL CONF\n");
break;
default :
fprintf (fp, "%d\n", (EventType_t) buffer [4]);
break;
}
}
else {
fprintf (fp, "Event Class : %d\n", (EventClass_t) buffer [2]);
fprintf (fp, "Event Type : %d\n", (EventType_t) buffer [4]);
}
}
if (s == 0 ) return;
for ( ; ; ) {
i = 0;
fprintf(fp,"%04x %04x ",(unsigned int) &buffer[j],j);
while (i != SIZE_OF_LINE && j != s) {
temp[i++] = buffer[j++];
fprintf(fp,"%02x ",temp[i-1]);
}
k = (SIZE_OF_LINE -i)*3 +4;
while (k--) fprintf(fp," ");
k = 0;
while ( k < i ) {
if (temp[k] >= ' ' && temp[k] <= '~' ) fprintf(fp,"%c", temp[k]);
else fprintf(fp,".");
k += 1;
}
fprintf(fp,"\n");
if ( j == s ) break;
}
fprintf(fp,"\n");
fclose (fp);
}
return ;
#undef SIZE_OF_LINE
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -