use "isQ931ext" in LLComp ie parser.

Be more flexible to missing octect 7 in LLComp ie.

git-svn-id: http://svn.openzap.org/svn/openzap/trunk@300 a93c3328-9c30-0410-af19-c9cd2b2d52af
This commit is contained in:
Michael Jerris 2007-07-02 22:31:20 +00:00
parent f30fa1b95e
commit 916bd148ff

View File

@ -1780,7 +1780,7 @@ L3INT Q931Uie_LLComp(Q931_TrunkInfo_t *pTrunk, Q931mes_Generic *pMsg, L3UCHAR *
Octet++; Octet++;
/* Octet 3a*/ /* Octet 3a*/
if((IBuf[Octet+Off-1] & 0x80) != 0) if(IsQ931Ext(IBuf[Octet+Off-1]))
{ {
pie->NegotInd = (IBuf[Octet+Off] >> 6) & 0x01; pie->NegotInd = (IBuf[Octet+Off] >> 6) & 0x01;
Off++; Off++;
@ -1808,7 +1808,7 @@ L3INT Q931Uie_LLComp(Q931_TrunkInfo_t *pTrunk, Q931mes_Generic *pMsg, L3UCHAR *
Octet++; Octet++;
/* Octet 5a */ /* Octet 5a */
if((IBuf[Octet+Off-1] & 0x80) != 0) if(IsQ931Ext(IBuf[Octet+Off-1]))
{ {
pie->SyncAsync = (IBuf[Octet+Off] >> 6) & 0x01; pie->SyncAsync = (IBuf[Octet+Off] >> 6) & 0x01;
pie->Negot = (IBuf[Octet+Off] >> 5) & 0x01; pie->Negot = (IBuf[Octet+Off] >> 5) & 0x01;
@ -1816,7 +1816,7 @@ L3INT Q931Uie_LLComp(Q931_TrunkInfo_t *pTrunk, Q931mes_Generic *pMsg, L3UCHAR *
Off++; Off++;
/* Octet 5b - 2 options */ /* Octet 5b - 2 options */
if((IBuf[Octet+Off-1] & 0x80) != 0) if(IsQ931Ext(IBuf[Octet+Off-1]))
{ {
if(pie->UIL1Prot == 0x01) /* V.110, I.460 and X.30*/ if(pie->UIL1Prot == 0x01) /* V.110, I.460 and X.30*/
{ {
@ -1849,7 +1849,7 @@ L3INT Q931Uie_LLComp(Q931_TrunkInfo_t *pTrunk, Q931mes_Generic *pMsg, L3UCHAR *
} }
/* Octet 5c */ /* Octet 5c */
if((IBuf[Octet+Off-1] & 0x80) != 0) if(IsQ931Ext(IBuf[Octet+Off-1]))
{ {
pie->NumStopBits=(IBuf[Octet+Off] >> 5) & 0x03; pie->NumStopBits=(IBuf[Octet+Off] >> 5) & 0x03;
pie->NumDataBits=(IBuf[Octet+Off] >> 3) & 0x03; pie->NumDataBits=(IBuf[Octet+Off] >> 3) & 0x03;
@ -1857,7 +1857,7 @@ L3INT Q931Uie_LLComp(Q931_TrunkInfo_t *pTrunk, Q931mes_Generic *pMsg, L3UCHAR *
Off++; Off++;
/* Octet 5d */ /* Octet 5d */
if((IBuf[Octet+Off-1] & 0x80) != 0) if(IsQ931Ext(IBuf[Octet+Off-1]))
{ {
pie->DuplexMode = (IBuf[Octet+Off] >> 6) & 0x01; pie->DuplexMode = (IBuf[Octet+Off] >> 6) & 0x01;
pie->ModemType = IBuf[Octet+Off] & 0x3f; pie->ModemType = IBuf[Octet+Off] & 0x3f;
@ -1877,7 +1877,7 @@ L3INT Q931Uie_LLComp(Q931_TrunkInfo_t *pTrunk, Q931mes_Generic *pMsg, L3UCHAR *
Octet++; Octet++;
/* Octet 6a */ /* Octet 6a */
if((IBuf[Octet+Off-1] & 0x80) != 0) if(IsQ931Ext(IBuf[Octet+Off-1]))
{ {
if(pie->UIL2Prot == 0x10) /* 2nd 6a */ if(pie->UIL2Prot == 0x10) /* 2nd 6a */
{ {
@ -1891,7 +1891,7 @@ L3INT Q931Uie_LLComp(Q931_TrunkInfo_t *pTrunk, Q931mes_Generic *pMsg, L3UCHAR *
Off++; Off++;
} }
/* Octet 6b*/ /* Octet 6b*/
if((IBuf[Octet+Off-1] & 0x80) != 0) if(IsQ931Ext(IBuf[Octet+Off-1]))
{ {
pie->WindowSize = IBuf[Octet+Off] & 0x7f; pie->WindowSize = IBuf[Octet+Off] & 0x7f;
Off++; Off++;
@ -1907,7 +1907,7 @@ L3INT Q931Uie_LLComp(Q931_TrunkInfo_t *pTrunk, Q931mes_Generic *pMsg, L3UCHAR *
Octet++; Octet++;
/* Octet 7a */ /* Octet 7a */
if((IBuf[Octet+Off-1] & 0x80) != 0) if(IsQ931Ext(IBuf[Octet+Off-1]))
{ {
if(pie->UIL3Prot == 0x0b) if(pie->UIL3Prot == 0x0b)
@ -1931,13 +1931,13 @@ L3INT Q931Uie_LLComp(Q931_TrunkInfo_t *pTrunk, Q931mes_Generic *pMsg, L3UCHAR *
} }
/* Octet 7b*/ /* Octet 7b*/
if((IBuf[Octet+Off-1] & 0x80) != 0) if(IsQ931Ext(IBuf[Octet+Off-1]))
{ {
pie->DefPackSize = IBuf[Octet+Off] & 0x0f; pie->DefPackSize = IBuf[Octet+Off] & 0x0f;
Off++; Off++;
/* Octet 7c */ /* Octet 7c */
if((IBuf[Octet+Off-1] & 0x80) != 0) if(IsQ931Ext(IBuf[Octet+Off-1]))
{ {
pie->PackWinSize= IBuf[Octet+Off] & 0x7f; pie->PackWinSize= IBuf[Octet+Off] & 0x7f;
} }
@ -1945,11 +1945,6 @@ L3INT Q931Uie_LLComp(Q931_TrunkInfo_t *pTrunk, Q931mes_Generic *pMsg, L3UCHAR *
} }
} }
} }
else
{
Q931SetError(pTrunk,Q931E_LLCOMP, 7,0);
return Q931E_LLCOMP;
}
Q931IESizeTest(Q931E_LLCOMP); Q931IESizeTest(Q931E_LLCOMP);