/*********************************************************************
Rhapsody in C : 3.0
Login : daicj
Component : SipProxy
Configuration : ShiHao
Model Element : pkgSIPParser
! Generated Date : Mon, 7, Apr 2003
File Path : SipProxy\ShiHao\pkgSIPParser.c
*********************************************************************/
#ifdef __linux__/*jinshuangxi for linux compile*/
#include <netinet/in.h>
#include <inetlib.h>
#include <errnolib.h>
#endif
#include "p_sip_sipparser.h"
#include "p_sip_util.h"
#include "p_sip_sdpparser.h"
#include "p_sip_macro.h"
#include <assert.h>
#define ERROR_SDPIsTooLong (BYTE)1
#define P_SIP_MSG_LTH (WORD)4096
/*## package pkgP::pkgPSIP::pkgSIPParser */
/*----------------------------------------------------------------------------*/
/* pkgSIPParser.c */
/*----------------------------------------------------------------------------*/
extern void debug_printf( char *pformat, ... );
/* extern DWORD sip_strlcpy( BYTE * dst, BYTE * src, DWORD siz ); */ /* Deletd by sr on 2008-12-01 for pclint */
DWORD g_dwSimB2B = 0;
DWORD g_dwMalFromCheck = 0;
DWORD dwTimeStart;
DWORD dwTimeStop;
DWORD g_dwMemsetSize = 0;
void P_SIP_Memset( void *p, BYTE b, DWORD dwSize )
{
g_dwMemsetSize += dwSize;
memset( p, b, dwSize );
}
DWORD g_dwStrncpySize = 0;
void P_P_SIP_Strncpy( BYTE * dst, BYTE * src, DWORD dwSize )
{
g_dwStrncpySize += dwSize;
P_SIP_strncpy( dst, src, dwSize );
}
/* begin */
void ConvertEscapedToChar( BYTE * pbData, BYTE * pbValue );
BOOL8 Convert2Unescape( BYTE * pbMessage, WORD wMaxLth );
void ConvertCharToEscaped( BYTE * pbData, BYTE bValue );
BOOL8 UrlHeaderConvert2Escape( BYTE * pbMessage, WORD wMaxLth );
BOOL8 UrlPasswordConvert2Escape( BYTE * pbMessage, BYTE bMaxLth );
BOOL8 UrlParamConvert2Escape( BYTE * pbMessage, WORD wMaxLth );
BOOL8 Convert2Unescape( BYTE * pbMessage, WORD wMaxLth )
{
/*#[ operation Convert2Unescape(BYTE*,WORD) */
BYTE bLocation;
BYTE bCount;
BYTE bString[512];
bLocation = 0;
bCount = 0;
while ( ( bLocation < wMaxLth ) && ( pbMessage[bLocation] != 0 ) && ( bCount < wMaxLth - 1 ) )
{
if ( SIP_isEscaped( &pbMessage[bLocation] ) )
{
ConvertEscapedToChar( pbMessage + bLocation, &bString[bCount] );
bLocation += 3;
bCount++;
}
else
{
bString[bCount++] = pbMessage[bLocation++];
}
}
if ( pbMessage[bLocation] == 0 )
{
bString[bCount] = 0;
P_P_SIP_Strncpy( pbMessage, bString, wMaxLth );
return TRUE_B8;
}
else
{
return FALSE_B8;
}
/*#] */
}
void ConvertCharToEscaped( BYTE * pbData, BYTE bValue )
{
/*#[ operation ConvertCharToEscaped(BYTE*,BYTE) */
BYTE bChar;
BYTE wTemp1 = ( bValue & 0xF0 ) >> 4;
BYTE wTemp2 = bValue & 0x0F;
*pbData = '%';
SIP_CharToHex( wTemp1, bChar );
*( pbData + 1 ) = bChar;
SIP_CharToHex( wTemp2, bChar );
*( pbData + 2 ) = bChar;
/*#] */
}
void ConvertEscapedToChar( BYTE * pbData, BYTE * pbValue )
{
/*#[ operation ConvertEscapedToChar(BYTE*,BYTE*) */
BYTE bTemp1 = *( pbData + 1 );
BYTE bTemp2 = *( pbData + 2 );
SIP_convertHexToChar( bTemp1 );
SIP_convertHexToChar( bTemp2 );
*pbValue = (BYTE)(( bTemp1 << 4 ) | ( bTemp2 ));/* CRDCR00424670 zhaosr pclint 08-12-30 */
/*#] */
}
/*CRDCM00149983,modified by shihongsheng,09-05-31*/
BOOL8 UrlUserConvert2Escape( BYTE * pbMessage, WORD wMaxLth )
{
/*#[ operation UrlUserConvert2Escape(BYTE*,BYTE) */
DWORD dwLocation;
DWORD dwCount;
BYTE bString[512];
dwLocation = 0;
dwCount = 0;
while ( ( pbMessage[dwLocation] != 0 ) && ( dwLocation < wMaxLth ) )
{
if ( SIP_isUrlUser( pbMessage[dwLocation] ) )
{
bString[dwCount++] = pbMessage[dwLocation++];
}
else
{
ConvertCharToEscaped( bString + dwCount, pbMessage[dwLocation] );
dwLocation++;
dwCount += 3;
}
}
if ( pbMessage[dwLocation] == 0 )
{
bString[dwCount] = 0;
P_P_SIP_Strncpy( pbMessage, bString, wMaxLth );
return TRUE_B8;
}
else
{
return FALSE_B8;
}
/*#] */
}
/*CRDCM00149983,modified by shihongsheng,09-05-31*/
BOOL8 UrlHeaderConvert2Escape( BYTE * pbMessage, WORD wMaxLth )
{
/*#[ operation UrlHeaderConvert2Escape(BYTE*,BYTE) */
DWORD dwLocation;
DWORD dwCount;
BYTE bString[512];
dwLocation = 0;
dwCount = 0;
while ( ( pbMessage[dwLocation] != 0 ) && ( dwLocation < wMaxLth ) )
{
if ( SIP_isUrlHeader( pbMessage[dwLocation] ) )
{
bString[dwCount++] = pbMessage[dwLocation++];
}
else
{
ConvertCharToEscaped( bString + dwCount, pbMessage[dwLocation] );
dwLocation++;
dwCount += 3;
}
}
if ( pbMessage[dwLocation] == 0 )
{
bString[dwCount] = 0;
P_P_SIP_Strncpy( pbMessage, bString, wMaxLth );
return TRUE_B8;
}
else
{
return FALSE_B8;
}
/*#] */
}
BOOL8 SIP_UrlConvert2Escape( URL * ptUrl )
{
/*#[ operation SIP_UrlConvert2Escape(URL*) */
BYTE bCount;
if ( ptUrl == NULL )
{
return FALSE_B8;
}
if ( ptUrl->bMap[URL_USER_MAP] )
{
UrlUserConvert2Escape( ptUrl->bUser, USER_LTH );
}
if ( ptUrl->bMap[URL_PASSWD_MAP] )
{
UrlPasswordConvert2Escape( ptUrl->bPassword, PASSWORD_LTH );
}
bCount = 0;
while ( bCount < ptUrl->bMap[URL_HEADER_MAP_MAP] )
{
if ( ptUrl->tHeader[bCount].bMap[URL_HEADER_HNAME_MAP] )
{
UrlHeaderConvert2Escape( ptUrl->tHeader[bCount].bHName, HEADER_NAME_LTH );
}
if ( ptUrl->tHeader[bCount].bMap[URL_HEADER_HVALUE_MAP] )
{
UrlHeaderConvert2Escape( ptUrl->tHeader[bCount].bHValue, HEADER_VALUE_LTH );
}
bCount++;
}
bCount = 0;
while ( bCount < ptUrl->bMap[URL_PARAM_MAP] )
{
if ( ptUrl->tParam[bCount].bMap[GENERIC_PARAM_NAME_MAP] )
{
UrlParamConvert2Escape( ptUrl->tParam[bCount].bName, GEN_NAME_LTH );
}
if ( ptUrl->tParam[bCount].bMap[GENERIC_PARAM_VALUE_MAP] )
{
UrlParamConvert2Escape( ptUrl->tParam[bCount].bValue, GEN_NAME_LTH );
}
bCount++;
}
return TRUE_B8;
/*#] */
}
BOOL8 SIP_TelUrlConvert2Escape( TEL_URL * ptTelUrl )
{
/*#[ operation SIP_UrlConvert2Escape(URL*) */
BYTE bCount;
if ( ptTelUrl == NULL )
{
return FALSE_B8;
}
bCount = 0;
while ( bCount < ptTelUrl->bMap[TELURL_HEADER_MAP] )
{
if ( ptTelUrl->tHeader[bCount].bMap[URL_HEADER_HNAME_MAP] )
{
UrlHeaderConvert2Escape( ptTelUrl->tHeader[bCount].bHName, HEADER_NAME_LTH );
}
if ( ptTelUrl->tHeader[bCount].bMap[URL_HEADER_HVALUE_MAP] )
{
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
sip.rar_LINUX网关_Q931_pclint_网关sip (179个子文件)
all-wcprops 6KB
all-wcprops 5KB
all-wcprops 1002B
Makefile.bak 2KB
p_sip_sipparser.c 417KB
p_sip_util.c 267KB
p_sip_cmd.c 267KB
p_sip_sipparser_wrapper.c 244KB
p_sip_proxy_scm.c 242KB
p_sip_sipedit.c 223KB
p_sip_tp.c 208KB
p_sip_proxy_tu.c 207KB
p_sip_sdpparser.c 176KB
p_sip_cndr.c 151KB
p_sip_db.c 128KB
p_sip_proxy_tran.c 119KB
p_sip_term.c 119KB
p_sip_statistic.c 110KB
p_sip_register.c 100KB
p_sip_shell.c 81KB
p_sip_proxy_tran_inviteserver.c 71KB
p_sip_proxy_tran_inviteclient.c 60KB
p_sip_proxy_dialog.c 50KB
p_sip_hotsync.c 48KB
p_sip_main.c 48KB
p_sip_proxy_tran_noninviteserver.c 47KB
p_sip_proxy_tran_noninviteclient.c 40KB
p_sip_cdr_tdr.c 40KB
p_sip_media.c 39KB
p_sip_log.c 37KB
p_sip_proxy_cac.c 22KB
p_sip_sipentry.c 15KB
p_sip_vl.c 15KB
p_sip_syntax.c 15KB
p_sip_config.c 13KB
p_sip_global.c 10KB
p_sip_security.c 9KB
p_sip_system.c 6KB
p_sip_sdpparser_wrapper.c 3KB
entries 7KB
entries 6KB
entries 1KB
format 2B
format 2B
format 2B
p_sip_sipparser_wrapper.h 162KB
p_sip_cod.h 97KB
p_sip_util.h 33KB
p_sip_statistic.h 27KB
p_sip_sdpparser_wrapper.h 23KB
p_sip_config.h 22KB
p_sip_tp.h 22KB
p_sip_sipedit.h 21KB
p_sip_proxy_tu.h 15KB
p_sip_event.h 15KB
p_sip_db.h 15KB
p_sip_cmd.h 13KB
p_sip_cndr.h 12KB
p_sip_type.h 9KB
p_sip_proxy_scm.h 9KB
p_sip_sipparser.h 9KB
p_sip_proxy_tran.h 8KB
p_sip_macro.h 8KB
p_sip_error.h 8KB
p_sip_media.h 7KB
p_sip_sdpparser.h 6KB
p_sip_proxy_dialog.h 6KB
p_sip_term.h 6KB
p_sip_log.h 5KB
p_sip_firewall.h 5KB
p_sip_register.h 4KB
p_sip_hotsync.h 3KB
p_sip_proxy_cac.h 3KB
p_sip_linktest.h 3KB
p_sip_cdr_tdr.h 2KB
p_sip_main.h 2KB
p_sip_shell.h 2KB
p_sip_global.h 2KB
p_sip_vl.h 2KB
p_sip_proxy_tran_noninviteserver.h 2KB
p_sip_system.h 1KB
p_sip_proxy_tran_inviteserver.h 1KB
p_sip_proxy_tran_inviteclient.h 1KB
p_sip_proxy_tran_noninviteclient.h 1KB
p_sip_security.h 1KB
p_sip_sipentry.h 529B
p_sip_syntax.h 505B
p_sip_interface.h 170B
Makefile.keep 2KB
options.lnt 7KB
makefile 2KB
Makefile_1 2KB
Makefile_bak 2KB
Makefile.old 2KB
p_sip_sipparser.c.svn-base 417KB
p_sip_util.c.svn-base 267KB
p_sip_cmd.c.svn-base 267KB
p_sip_sipparser_wrapper.c.svn-base 244KB
p_sip_proxy_scm.c.svn-base 242KB
p_sip_sipedit.c.svn-base 223KB
共 179 条
- 1
- 2
资源评论
weixin_42653672
- 粉丝: 93
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功