📄 cpack.c
字号:
{
int l;
unsigned char *p;
int i,j;
unsigned char b0;
int result;
ST_PACKHEAD *ph;
int cnt;
ST_PACK *pp;
if (pPack->head.recCount>1 && pArray == NULL)
{
strcpy(eMsg,"多纪录压包要求pArray != NULL");
return FALSE;
}
l = sizeof(ST_PACKHEAD);
p = buf;
memcpy(p,&pPack->head,sizeof(pPack->head));
ph = (ST_PACKHEAD*)p;
Reverse((unsigned char *)&ph->RequestType,sizeof(pPack->head.RequestType));
Reverse((unsigned char *)&ph->firstflag,sizeof(pPack->head.firstflag));
Reverse((unsigned char *)&ph->nextflag,sizeof(pPack->head.nextflag));
Reverse((unsigned char *)&ph->recCount,sizeof(pPack->head.recCount));
Reverse((unsigned char *)&ph->retCode,sizeof(pPack->head.retCode));
Reverse((unsigned char *)&ph->hook.UserID,sizeof(pPack->head.hook.UserID));
Reverse((unsigned char *)&ph->hook.queuetype,sizeof(pPack->head.hook.queuetype));
ph = &pPack->head;
p+=sizeof(pPack->head);
pp = &pPack->pack;
for(cnt = 0; cnt < pPack->head.recCount; cnt ++ )
{
for(i=0;i<PARMBITS/BITSPERBYTE;i++)
{
b0 = ph->ParmBits[i];
for(j=0;j<8;j++)
{
if (b0 & _bits[j])
result = (i<<8)+_bits[j];
else
continue;
_EncodeSingleItem(result,pp,(char **)&p,&l);
}
}
if (pArray == NULL)
break;
pp = &pArray[cnt];
}
*len = l;
return TRUE;
}
BOOL SetParmBit(ST_PACKHEAD *ph,int bit)
{
unsigned short hi,low;
hi = (bit&0xFF00)>>8;
low = (bit &0x00ff);
if (hi>PARMBITS/BITSPERBYTE)
return FALSE;
ph->ParmBits[hi]|=low;
return TRUE;
}
void ShowPackNext(ST_CPACK *pPack,ST_PACK *pack,char *buf)
{
int i;
unsigned char b0;
int j;
int result;
sprintf(buf,"\n");
for(i=0;i<PARMBITS/BITSPERBYTE;i++)
{
b0 = pPack->head.ParmBits[i];
for(j=0;j<8;j++)
{
if (b0 & _bits[j])
result = (i<<8)+_bits[j];
else
continue;
ShowPackItem(result,pack,buf+strlen(buf));
}
}
}
BOOL SetErrorPack(ST_CPACK *inPack,ST_CPACK *outPack,
char *emsg,int eCode)
{
char e[300];
memcpy(&outPack->head.addr,&inPack->head.addr,sizeof(outPack->head.addr));
memcpy(outPack->head.hook.queuename,inPack->head.hook.queuename,
sizeof(inPack->head.hook.queuename));
outPack->head.hook.queuetype = inPack->head.hook.queuetype;
memcpy(outPack->head.hook.hostname,inPack->head.hook.hostname,
sizeof(inPack->head.hook.hostname));
outPack->head.firstflag = 1;
outPack->head.nextflag = 0;
outPack->head.recCount = 1;
outPack->head.retCode = eCode;
memset(outPack->head.ParmBits,0,sizeof(outPack->head.ParmBits));
outPack->head.hook.UserID = inPack->head.hook.UserID;
if (strlen(emsg)>250)
memcpy(e,emsg,250);
else
strcpy(e,emsg);
e[250]=0;
strcpy(outPack->pack.vsmess,e);
SetParmBit(&outPack->head , F_VSMESS);
return 1;
}
BOOL SetErrorPack2(ST_CPACK *outPack,char *emsg,int eCode)
{
char e[300];
memset((char *)outPack,0,sizeof(ST_CPACK));
outPack->head.firstflag = 1;
outPack->head.nextflag = 0;
outPack->head.recCount = 1;
outPack->head.retCode = eCode;
memset(outPack->head.ParmBits,0,sizeof(outPack->head.ParmBits));
if (strlen(emsg)>250)
memcpy(e,emsg,250);
else
strcpy(e,emsg);
e[250]=0;
strcpy(outPack->pack.vsmess,e);
SetParmBit(&outPack->head , F_VSMESS);
return 1;
}
BOOL SetErrorPackNew(ST_CPACK *inPack,ST_CPACK *outPack,
char *emsg,char *emsg2,int eCode)
{
char e[300];
memcpy(&outPack->head.addr,&inPack->head.addr,sizeof(outPack->head.addr));
memcpy(outPack->head.hook.queuename,inPack->head.hook.queuename,
sizeof(inPack->head.hook.queuename));
outPack->head.hook.queuetype = inPack->head.hook.queuetype;
memcpy(outPack->head.hook.hostname,inPack->head.hook.hostname,
sizeof(inPack->head.hook.hostname));
outPack->head.firstflag = 1;
outPack->head.nextflag = 0;
outPack->head.recCount = 1;
outPack->head.retCode = eCode;
memset(outPack->head.ParmBits,0,sizeof(outPack->head.ParmBits));
outPack->head.hook.UserID = inPack->head.hook.UserID;
if (strlen(emsg)>250)
memcpy(e,emsg,250);
else
strcpy(e,emsg);
e[250]=0;
strcpy(outPack->pack.vsmess,e);
SetParmBit(&outPack->head , F_VSMESS);
if (strlen(emsg2)>250)
memcpy(e,emsg2,250);
else
strcpy(e,emsg2);
e[250]=0;
strcpy(outPack->pack.vsvarstr0,e);
SetParmBit(&outPack->head , F_VSVARSTR0);
return 1;
}
BOOL SetErrorPack2New(ST_CPACK *outPack,char *emsg,char *emsg2,int eCode)
{
char e[300];
memset((char *)outPack,0,sizeof(ST_CPACK));
outPack->head.firstflag = 1;
outPack->head.nextflag = 0;
outPack->head.recCount = 1;
outPack->head.retCode = eCode;
memset(outPack->head.ParmBits,0,sizeof(outPack->head.ParmBits));
if (strlen(emsg)>250)
memcpy(e,emsg,250);
else
strcpy(e,emsg);
e[250]=0;
strcpy(outPack->pack.vsmess,e);
SetParmBit(&outPack->head , F_VSMESS);
if (strlen(emsg2)>250)
memcpy(e,emsg2,250);
else
strcpy(e,emsg2);
e[250]=0;
strcpy(outPack->pack.vsvarstr0,e);
SetParmBit(&outPack->head , F_VSVARSTR0);
return 1;
}
BOOL SetNormalPack(ST_CPACK *inPack,ST_CPACK *outPack,int nextflag,
int recCount)
{
memcpy(&outPack->head.addr,&inPack->head.addr,sizeof(inPack->head.addr));
memcpy(outPack->head.hook.queuename,inPack->head.hook.queuename,
sizeof(inPack->head.hook.queuename));
outPack->head.hook.queuetype = inPack->head.hook.queuetype;
memcpy(outPack->head.hook.hostname,inPack->head.hook.hostname,
sizeof(inPack->head.hook.hostname));
outPack->head.firstflag = inPack->head.firstflag;
outPack->head.nextflag = nextflag;
outPack->head.recCount = recCount;
outPack->head.retCode = 0;
memset(outPack->head.ParmBits,0,sizeof(outPack->head.ParmBits));
outPack->head.hook.UserID = inPack->head.hook.UserID;
return TRUE;
}
void ShowPack(ST_CPACK *pack,char *buf)
{
int i;
unsigned char b0;
int j;
int result;
sprintf(buf,"<HEAD>\n");
sprintf(buf+strlen(buf),"<REQUESTTYPE=%d,",pack->head.RequestType);
sprintf(buf+strlen(buf),"FIRSTFLAG=%d,",pack->head.firstflag);
sprintf(buf+strlen(buf),"NEXTFLAG=%d,",pack->head.nextflag);
sprintf(buf+strlen(buf),"RECCOUNT=%d,",pack->head.recCount);
sprintf(buf+strlen(buf),"RETCODE=%d,",pack->head.retCode);
sprintf(buf+strlen(buf),"USERDATA=%d,",pack->head.userdata);
sprintf(buf+strlen(buf),"USERID=%d,",pack->head.hook.UserID);
sprintf(buf+strlen(buf),"HOSTNAME=%s,",pack->head.hook.hostname);
sprintf(buf+strlen(buf),"QUEUENAME=%s,",pack->head.hook.queuename);
sprintf(buf+strlen(buf),"QUEUETYPE=%d,",pack->head.hook.queuetype);
sprintf(buf+strlen(buf),"ADDR=");
ShowHex((unsigned char *)&pack->head.addr,sizeof(pack->head.addr),buf+strlen(buf));
sprintf(buf+strlen(buf),">\n</HEAD>\n");
/*
sprintf(buf+strlen(buf),"PACK.HEAD.ParmBits:");
ShowHex(pack->head.ParmBits,sizeof(pack->head.ParmBits),buf+strlen(buf));
*/
sprintf(buf+strlen(buf),"<PACK>\n<");
for(i=0;i<PARMBITS/BITSPERBYTE;i++)
{
b0 = pack->head.ParmBits[i];
for(j=0;j<8;j++)
{
if (b0 & _bits[j])
result = (i<<8)+_bits[j];
else
continue;
ShowPackItem(result,&(pack->pack),buf+strlen(buf));
}
}
sprintf(buf+strlen(buf)-1,">\n</PACK>\n");
}
void ShowHex(unsigned char *p,int len,char* buf)
{
int i;
for(i=0;i<len;i++)
{
sprintf(buf+i*4,"[%02x]",p[i]);
}
}
void ShowPackItem(int idx,ST_PACK *pack,char *buf)
{
#define PC(b,a,c) sprintf(c,"%s=%s,",b,pack->a);
#define PI(b,a,c) sprintf(c,"%s=%d,",b,pack->a);
#define PD(b,a,c) sprintf(c,"%s=%f,",b,pack->a);
#define PH(b,a,c) sprintf(c,"%s=",b); \
ShowHex(pack->a,sizeof(pack->a),c+strlen(c)); \
sprintf(c+strlen(c),"%s",",");
#define PV(b,a,c) sprintf(c,"%s=%s,",b,pack->a);
switch(idx)
{
case F_SCUST_NO:
PC("SCUST_NO",scust_no,buf);
break;
case F_SCUST_NO2:
PC("SCUST_NO2",scust_no2,buf);
break;
case F_SHOLDER_AC_NO:
PC("SHOLDER_AC_NO",sholder_ac_no,buf);
break;
case F_SHOLDER_AC_NO2:
PC("SHOLDER_AC_NO2",sholder_ac_no2,buf);
break;
case F_SHOLDER_TYPE:
PC("SHOLDER_TYPE",sholder_type,buf);
break;
case F_SHOLDER_TYPE2:
PC("SHOLDER_TYPE2",sholder_type2,buf);
break;
case F_SNAME:
PC("SNAME",sname,buf);
break;
case F_SNAME2:
PC("SNAME2",sname2,buf);
break;
case F_SALL_NAME:
PC("SALL_NAME",sall_name,buf);
break;
case F_SMARKET_CODE:
PC("SMARKET_CODE",smarket_code,buf);
break;
case F_SMARKET_CODE2:
PC("SMARKET_CODE2",smarket_code2,buf);
break;
case F_SDATE0:
PC("SDATE0",sdate0,buf);
break;
case F_SDATE1:
PC("SDATE1",sdate1,buf);
break;
case F_SDATE2:
PC("SDATE2",sdate2,buf);
break;
case F_SDATE3:
PC("SDATE3",sdate3,buf);
break;
case F_STIME0:
PC("STIME0",stime0,buf);
break;
case F_STIME1:
PC("STIME1",stime1,buf);
break;
case F_STIME2:
PC("STIME2",stime2,buf);
break;
case F_STIME3:
PC("STIME3",stime3,buf);
break;
case F_LVOL0:
PI("LVOL0",lvol0,buf);
break;
case F_LVOL1:
PI("LVOL1",lvol1,buf);
break;
case F_LVOL2:
PI("LVOL2",lvol2,buf);
break;
case F_LVOL3:
PI("LVOL3",lvol3,buf);
break;
case F_LVOL4:
PI("LVOL4",lvol4,buf);
break;
case F_LVOL5:
PI("LVOL5",lvol5,buf);
break;
case F_LVOL6:
PI("LVOL6",lvol6,buf);
break;
case F_LVOL7:
PI("LVOL7",lvol7,buf);
break;
case F_LVOL8:
PI("LVOL8",lvol8,buf);
break;
case F_LVOL9:
PI("LVOL9",lvol9,buf);
break;
case F_LVOL10:
PI("LVOL10",lvol10,buf);
break;
case F_LVOL11:
PI("LVOL11",lvol11,buf);
break;
case F_LVOL12:
PI("LVOL12",lvol12,buf);
break;
case F_DAMT0:
PD("DAMT0",damt0,buf);
break;
case F_DAMT1:
PD("DAMT1",damt1,buf);
break;
case F_DAMT2:
PD("DAMT2",damt2,buf);
break;
case F_DAMT3:
PD("DAMT3",damt3,buf);
break;
case F_DAMT4:
PD("DAMT4",damt4,buf);
break;
case F_DAMT5:
PD("DAMT5",damt5,buf);
break;
case F_DAMT6:
PD("DAMT6",damt6,buf);
break;
case F_DAMT7:
PD("DAMT7",damt7,buf);
break;
case F_DAMT8:
PD("DAMT8",damt8,buf);
break;
case F_DAMT9:
PD("DAMT9",damt9,buf);
break;
case F_DAMT10:
PD("DAMT10",damt10,buf);
break;
case F_DAMT11:
PD("DAMT11",damt11,buf);
break;
case F_DAMT12:
PD("DAMT12",damt12,buf);
break;
case F_DAMT13:
PD("DAMT13",damt13,buf);
break;
case F_DAMT14:
PD("DAMT14",damt14,buf);
break;
case F_DAMT15:
PD("DAMT15",damt15,buf);
break;
case F_DAMT16:
PD("DAMT16",damt16,buf);
break;
case F_DAMT17:
PD("DAMT17",damt17,buf);
break;
case F_DAMT18:
PD("DAMT18",damt18,buf);
break;
case F_DAMT19:
PD("DAMT19",damt19,buf);
break;
case F_DAMT20:
PD("DAMT20",damt20,buf);
break;
case F_DAMT21:
PD("DAMT21",damt21,buf);
break;
case F_DAMT22:
PD("DAMT22",damt22,buf);
break;
case F_DAMT23:
PD("DAMT23",damt23,buf);
break;
case F_DAMT24:
PD("DAMT24",damt24,buf);
break;
case F_DAMT25:
PD("DAMT25",damt25,buf);
break;
case F_DAMT26:
PD("DAMT26",damt26,buf);
break;
case F_DAMT27:
PD("DAMT27",damt27,buf);
break;
case F_DAMT28:
PD("DAMT28",damt28,buf);
break;
case F_DAMT29:
PD("DAMT29",damt29,buf);
break;
case F_DAMT30:
PD("DAMT30",damt30,buf);
break;
case F_DAMT31:
PD("DAMT31",damt31,buf);
break;
case F_DAMT32:
PD("DAMT32",damt32,buf);
break;
case F_DAMT33:
PD("DAMT33",damt33,buf);
break;
case F_SSTOCK_CODE:
PC("SSTOCK_CODE",sstock_code,buf);
break;
case F_SSTOCK_CODE2:
PC("SSTOCK_CODE2",sstock_code2,buf);
break;
case F_SCUST_TYPE:
PC("SCUST_TYPE",scust_type,buf);
break;
case F_SCUST_TYPE2:
PC("SCUST_TYPE2",scust_type2,buf);
break;
case F_SSTAT_TYPE:
PC("SSTAT_TYPE",sstat_type,buf);
break;
case F_SSTAT_TYPE2:
PC("SSTAT_TYPE2",sstat_type2,buf);
break;
case F_SROOM_NO:
PC("SROOM_NO",sroom_no,buf);
break;
case F_SROOM_NO2:
PC("SROOM_NO2",sroom_no2,buf);
break;
case F_SOPEN_EMP:
PC("SOPEN_EMP",sopen_emp,buf);
break;
case F_SCLOSE_EMP:
PC("SCLOSE_EMP",sclose_emp,buf);
break;
case F_SCHANGE_EMP:
PC("SCHANGE_EMP",schange_emp,buf);
break;
case F_SCHECK_EMP:
PC("SCHECK_EMP",scheck_emp,buf);
break;
case F_SEMP:
PC("SEMP",semp,buf);
break;
case F_SNATION_CODE:
PC("SNATION_CODE",snation_code,buf);
break;
case F_LCERT_CODE:
PI("LCERT_CODE",lcert_code,buf);
break;
case F_STX_PWD:
PC("STX_PWD",stx_pwd,buf);
break;
case F_STX_PWD2:
PC("STX_PWD2",stx_pwd2,buf);
break;
case F_SWITHDRAW_PWD:
PC("SWITHDRAW_PWD",swithdraw_pwd,buf);
break;
case F_SWITHDRAW_PWD2:
PC("SWITHDRAW_PWD2",swithdraw_pwd2,buf);
break;
case F_SEMP_PWD:
PC("SEMP_PWD",semp_pwd,buf);
break;
case F_SEMP_PWD2:
PC("SEMP_PWD2",semp_pwd2,buf);
break;
case F_SBANK_PWD:
PC("SBANK_PWD",sbank_pwd,buf);
break;
case F_SBANK_PWD2:
PC("SBANK_PWD2",sbank_pwd2,buf);
break;
case F_SCUST_AUTH:
PC("SCUST_AUTH",scust_auth,buf);
break;
case F_SCUST_AUTH2:
PC("SCUST_AUTH2",scust_auth2,buf);
break;
case F_SCUST_LIMIT:
PC("SCUST_LIMIT",scust_limit,buf);
break;
case F_SCUST_LIMIT2:
PC("SCUST_LIMIT2",scust_limit2,buf);
break;
case F_LSAFE_LEVEL:
PI("LSAFE_LEVEL",lsafe_level,buf);
break;
case F_LSAFE_LEVEL2:
PI("LSAFE_LEVEL2",lsafe_level2,buf);
break;
case F_SPOST_CODE:
PC("SPOST_CODE",spost_code,buf);
break;
case F_SPOST_CODE2:
PC("SPOST_CODE2",spost_code2,buf);
break;
case F_SPHONE:
PC("SPHONE",sphone,buf);
break;
case F_SPHONE2:
PC("SPHONE2",sphone2,buf);
break;
case F_SPHONE3:
PC("SPHONE3",sphone3,buf);
break;
case F_SPAGER:
PC("SPAGER",spager,buf);
break;
case F_SEMAIL:
PC("SEMAIL",semail,buf);
break;
case F_SEMAIL2:
PC("SEMAIL2",semail2,buf);
break;
case F_SNOTE:
PC("SNOTE",snote,buf);
break;
case F_SNOTE2:
PC("SNOTE2",snote2,buf);
break;
case F_SCERT_NO:
PC("SCERT_NO",scert_no,buf);
break;
case F_SCERT_NO2:
PC("SCERT_NO2",scert_no2,buf);
break;
case F_SCERT_ADDR:
PC("SCERT_ADDR",scert_addr,buf);
break;
case F_SSTATUS0:
PC("SSTATUS0",sstatus0,buf);
break;
case F_SSTATUS1:
PC("SSTATUS1",sstatus1,buf);
break;
case F_SSTATUS2:
PC("SSTATUS2",sstatus2,buf);
break;
case F_SSTATUS3:
PC("SSTATUS3",sstatus3,buf);
break;
case F_SSTATUS4:
PC("SSTATUS4",sstatus4,buf);
break;
case F_LWITHDRAW_FLAG:
PI("LWITHDRAW_FLAG",lwithdraw_flag,buf);
break;
case F_SADDR:
PC("SADDR",saddr,buf);
break;
case F_SADDR2:
PC("SADDR2",saddr2,buf);
break;
case F_SSERIAL0:
PC("SSERIAL0",sserial0,buf);
break;
case F_SSERIAL1:
PC("SSERIAL1",sserial1,buf);
break;
case F_SSERIAL2:
PC("SSERIAL2",sserial2,buf);
break;
case F_SSERIAL3:
PC("SSERIAL3",sserial3,buf);
break;
case F_SSERIAL4:
PC("SSERIAL4",sserial4,buf);
break;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -