feat: mcc/mnc的*通配,GetAccountBundlePlanInfo()判断套餐类型条件错误
This commit is contained in:
@@ -3139,7 +3139,7 @@ int GetAccountBundlePlanInfo(_account_info *ptr, long ret_value[6], _state_data
|
||||
ret_value[5] = usr_redis.warning_sms_flag;
|
||||
#else
|
||||
#ifdef HAS_BUNDLE_ROAMING
|
||||
if((shmp != NULL) || (shmp->process_info.bundle_flag == BUNDLE_OTHER_NETWORK))
|
||||
if((shmp != NULL) && (shmp->process_info.bundle_flag == BUNDLE_OTHER_NETWORK))
|
||||
{
|
||||
// see if we have to set bundle to 0===================================
|
||||
if ((sub_ptr->bundle_roam.validity_date > 0) && (sub_ptr->bundle_roam.validity_date < tvnow.tv_sec))// 1) set bundle to 0, if expired when querying.
|
||||
@@ -4840,7 +4840,7 @@ static void PureDigitAscii(u_char *string)
|
||||
char
|
||||
GetTariffLacInfo(u_char *cgi)
|
||||
{
|
||||
int loc = -1, loop, matchFlag=0,len;
|
||||
int loc = -1, loop, matchFlag=0,len, matchMcc=0, matchMnc=0, mMccLen=0, mMncLen=0, matchTz=-1;
|
||||
u_short cell, lac;
|
||||
u_char MCC[32]={0},MNC[32]={0};
|
||||
BasicTariffZone *pBTZ;
|
||||
@@ -4866,14 +4866,81 @@ GetTariffLacInfo(u_char *cgi)
|
||||
continue;
|
||||
matchFlag = 0;
|
||||
len = strlen((char *)pBTZ->mcc);
|
||||
if(len == 0)
|
||||
if((len == 0) || (pBTZ->mcc[0] == '*'))
|
||||
{
|
||||
if ((matchMnc==0) && (matchMcc==0))
|
||||
{
|
||||
matchMcc = 1;
|
||||
mMccLen = 0;
|
||||
matchTz = loop;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
else if ((len>=2)&&(pBTZ->mcc[1]=='*'))
|
||||
{
|
||||
if (pBTZ->mcc[0]==MCC[0])
|
||||
{
|
||||
if ((matchMnc==0) && (mMccLen<=0))
|
||||
{
|
||||
matchMcc = 1;
|
||||
mMccLen = 1;
|
||||
matchTz = loop;
|
||||
}
|
||||
}
|
||||
continue;
|
||||
}
|
||||
else if ((len>=3)&&(pBTZ->mcc[2]=='*'))
|
||||
{
|
||||
if(memcmp(pBTZ->mcc,MCC,2) == 0)
|
||||
{
|
||||
if ((matchMnc==0) && (mMccLen<=1))
|
||||
{
|
||||
matchMcc = 1;
|
||||
mMccLen = 2;
|
||||
matchTz = loop;
|
||||
}
|
||||
}
|
||||
continue;
|
||||
}
|
||||
if(memcmp(pBTZ->mcc,MCC,len) == 0)
|
||||
{
|
||||
len = strlen((char *)pBTZ->mnc);
|
||||
if(len == 0 || (pBTZ->mnc[0] == '*'))
|
||||
if((len == 0) || (pBTZ->mnc[0] == '*'))
|
||||
{
|
||||
matchFlag = 1;
|
||||
//matchFlag = 1;
|
||||
if (matchMnc==0)
|
||||
{
|
||||
matchMnc = 1;
|
||||
mMncLen = 0;
|
||||
matchTz = loop;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
else if ((len>=2)&&(pBTZ->mnc[1]=='*'))
|
||||
{
|
||||
if (pBTZ->mnc[0]==MNC[0])
|
||||
{
|
||||
if (mMncLen<=0)
|
||||
{
|
||||
matchMnc = 1;
|
||||
mMncLen = 1;
|
||||
matchTz = loop;
|
||||
}
|
||||
}
|
||||
continue;
|
||||
}
|
||||
else if ((len>=3)&&(pBTZ->mnc[2]=='*'))
|
||||
{
|
||||
if(memcmp(pBTZ->mnc,MNC,2) == 0)
|
||||
{
|
||||
if (mMncLen<=1)
|
||||
{
|
||||
matchMnc = 1;
|
||||
mMncLen = 2;
|
||||
matchTz = loop;
|
||||
}
|
||||
}
|
||||
continue;
|
||||
}
|
||||
else if(memcmp(pBTZ->mnc,MNC,len) ==0 )
|
||||
{
|
||||
@@ -4912,6 +4979,10 @@ GetTariffLacInfo(u_char *cgi)
|
||||
}
|
||||
}//if mcc
|
||||
}/* for */
|
||||
if ((matchMcc==1) || (matchMnc==1))
|
||||
{
|
||||
return matchTz;
|
||||
}
|
||||
return loc;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user