📄 jprovoma.c
字号:
}
}
}
else if (strcmp(parm_element, NAP_ADDRESS) == 0)
{
attr_p = attr_p->next;
if (g_prov_bearer == PROV_GPRS_BEARER)
{
len = UCS2Strlen((S8*) attr_p->value);
if (len >= MAX_GPRS_MMI_APN_LEN)
{
len = MAX_GPRS_MMI_APN_LEN - 1;
}
UnicodeNToAnsii(
(S8*) accountData_p->dataAccountType.gprsAccount.apn,
(S8*) attr_p->value,
len * ENCODING_LENGTH);
accountData_p->dataAccountType.gprsAccount.apn[len] = '\0';
}
else if (g_prov_bearer == PROV_CSD_BEARER)
{
if (strcmp(attr_p->name, VALUE) == 0)
{
len = UCS2Strlen((S8*) attr_p->value);
if (len >= PROV_MAX_DIAL_NUM_LEN)
{
len = PROV_MAX_DIAL_NUM_LEN - 1;
}
if (mmi_phb_op_check_valid_number((S8*) attr_p->value))
{
UnicodeNToAnsii(
(S8*) accountData_p->dataAccountType.csdAccount.csdDialString,
(S8*) attr_p->value,
len * ENCODING_LENGTH);
accountData_p->dataAccountType.csdAccount.csdDialString[len] = '\0';
accountData_p->dataAccountType.csdAccount.csdDialNumType = CSMCC_DEFAULT_ADDR_TYPE;
}
else
{
memset(accountData_p->dataAccountType.csdAccount.csdDialString, 0, MAX_DIAL_NUM_LEN);
accountData_p->dataAccountType.csdAccount.csdDialNumType = CSMCC_DEFAULT_ADDR_TYPE;
}
}
}
}
else if (strcmp(parm_element, CALLTYPE) == 0)
{
attr_p = attr_p->next;
if (g_prov_bearer == PROV_CSD_BEARER)
{
if (strcmp(attr_p->name, VALUE) == 0)
{
UnicodeToAnsii(parm_element, (S8*) attr_p->value);
if (strcmp(parm_element, ANALOG_MODEM) == 0)
{
accountData_p->dataAccountType.csdAccount.callType = CSMCC_ITC_3_1_K_AUDIO;
}
else if ((strcmp(parm_element, "V.120") == 0) ||
((strcmp(parm_element, "V.110") == 0) || (strcmp(parm_element, "X.31") == 0)))
{
accountData_p->dataAccountType.csdAccount.callType = CSMCC_ITC_UDI;
}
else
{
accountData_p->dataAccountType.csdAccount.callType = CSMCC_ITC_3_1_K_AUDIO;
}
}
}
}
else if (strcmp(parm_element, LINKSPEED) == 0)
{
attr_p = attr_p->next;
if (g_prov_bearer == PROV_CSD_BEARER)
{
if (strcmp(attr_p->name, VALUE) == 0)
{
UnicodeToAnsii(parm_element, (S8*) attr_p->value);
if (strcmp(parm_element, AUTOBAUDING) == 0 || strcmp(parm_element, "9600") == 0)
{
accountData_p->dataAccountType.csdAccount.linkSpeed = CSD_PROF_RATE_9600;
}
else if (strcmp(parm_element, "4800") == 0)
{
accountData_p->dataAccountType.csdAccount.linkSpeed = CSD_PROF_RATE_4800;
}
else if (strcmp(parm_element, "14400") == 0)
{
accountData_p->dataAccountType.csdAccount.linkSpeed = CSD_PROF_RATE_14400;
}
else
{
accountData_p->dataAccountType.csdAccount.linkSpeed = CSD_PROF_RATE_9600;
}
}
}
}
else if (strcmp(parm_element, "DNS-ADDR") == 0)
{
attr_p = attr_p->next;
if (g_prov_bearer == PROV_CSD_BEARER)
{
if (strcmp(attr_p->name, VALUE) == 0)
{
PROV_RETCODE i_ret = PROV_OK;
U8 proxy_ip[MAX_PART_IP_ADDRESS];
UnicodeToAnsii(parm_element, (S8*) attr_p->value);
i_ret = mmi_prov_convert_ip_string_to_array(parm_element, proxy_ip);
if (i_ret == PROV_ERR)
{
memset(proxy_ip, 0, MAX_PART_IP_ADDRESS);
}
memcpy(accountData_p->dataAccountType.csdAccount.dns_ip, proxy_ip, MAX_PART_IP_ADDRESS);
}
}
}
#ifdef __GPRS_MODE__
else if (strcmp(parm_element, MAX_SDU_SIZE) == 0)
{
attr_p = attr_p->next;
if (strcmp(attr_p->name, VALUE) == 0)
{
UnicodeToAnsii(parm_element, (S8*) attr_p->value);
/* g_prov_set_gprs_req_p->gprs_account.req_qos.max_sdu_size=atoi(parm_element); */
}
}
else if (strcmp(parm_element, "GUARANTEED-BITRATE-UPLINK") == 0)
{
attr_p = attr_p->next;
if (strcmp(attr_p->name, VALUE) == 0)
{
UnicodeToAnsii(parm_element, (S8*) attr_p->value);
/* g_prov_set_gprs_req_p->gprs_account.req_qos.guarntd_bit_rate_up_lnk=atoi(parm_element); */
}
}
else if (strcmp(parm_element, "GUARANTEED-BITRATE-DNLINK") == 0)
{
attr_p = attr_p->next;
if (strcmp(attr_p->name, VALUE) == 0)
{
UnicodeToAnsii(parm_element, (S8*) attr_p->value);
/* g_prov_set_gprs_req_p->gprs_account.req_qos.guarntd_bit_rate_down_lnk=atoi(parm_element); */
}
}
else if (strcmp(parm_element, "TRAFFIC-HANDL-PRIO") == 0)
{
attr_p = attr_p->next;
if (strcmp(attr_p->name, VALUE) == 0)
{
UnicodeToAnsii(parm_element, (S8*) attr_p->value);
/* g_prov_set_gprs_req_p->gprs_account.req_qos.traffic_hndl_priority=atoi(parm_element); */
}
}
else if (strcmp(parm_element, "TRANSFER-DELAY") == 0)
{
attr_p = attr_p->next;
if (strcmp(attr_p->name, VALUE) == 0)
{
UnicodeToAnsii(parm_element, (S8*) attr_p->value);
/* g_prov_set_gprs_req_p->gprs_account.req_qos.transfer_delay=atoi(parm_element); */
}
}
else if (strcmp(parm_element, "SDU-ERROR-RATIO") == 0)
{
attr_p = attr_p->next;
if (strcmp(attr_p->name, VALUE) == 0)
{
UnicodeToAnsii(parm_element, (S8*) attr_p->value);
/* g_prov_set_gprs_req_p->gprs_account.req_qos.sdu_err_ratio=atoi(parm_element); */
}
}
#endif /* __GPRS_MODE__ */
}
}
root_p = root_p->next;
if (root_p != NULL)
{
attr_p = root_p->attribute_list;
if (attr_p == NULL && root_p->name == NULL)
{
if (!mmi_prov_oma_check_if_redundant_napdef(g_prov_napdef_data_p, accountData_p))
{
mmi_prov_oma_add_napdef_info(&g_prov_napdef_data_p, accountData_p);
}
*nextroot_p = root_p;
return i_ret;
}
}
else
{
if (!mmi_prov_oma_check_if_redundant_napdef(g_prov_napdef_data_p, accountData_p))
{
mmi_prov_oma_add_napdef_info(&g_prov_napdef_data_p, accountData_p);
}
*nextroot_p = root_p;
return i_ret;
}
}
return i_ret;
}
/*****************************************************************************
* FUNCTION
* mmi_prov_oma_handle_pxlogical_tag
* DESCRIPTION
* This function deals with the PXLOGICAL characteristic tag and its PARM elements
* PARAMETERS
* nextroot_p [IN] IN\OUT
* RETURNS
* PROV_OK
*****************************************************************************/
PROV_RETCODE mmi_prov_oma_handle_pxlogical_tag(TAG **nextroot_p)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
U32 len;
PROV_RETCODE i_ret = PROV_OK;
ATTRIBUTE *attr_p = NULL;
TAG *root_p;
S8 parm_element[PROV_OMA_MIN_SIZE_REQ + 1];
prov_log_proxy_data_struct *logProxyData_p;
prov_phy_proxy_data_struct *phyProxyData_p;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
logProxyData_p = jdd_MemAlloc(sizeof(prov_log_proxy_data_struct), 1);
logProxyData_p->physicalProxy = NULL;
memset((void *)&prov_proxy_port , 0 , sizeof(prov_proxy_port));
root_p = *nextroot_p;
root_p = root_p->next;
attr_p = root_p->attribute_list;
while (root_p != NULL)
{
if (strcmp(root_p->name, CHARACTERISTIC) == 0)
{
if (!mmi_prov_oma_check_if_redundant_logical_proxy(g_prov_proxy_data_p, logProxyData_p))
{
mmi_prov_oma_add_logical_proxy_info(&g_prov_proxy_data_p, logProxyData_p);
}
goto next;
next:
{
if (root_p != NULL)
{
UnicodeToAnsii(parm_element, (S8*) root_p->attribute_list->value);
if (strcmp(parm_element, PXPHYSICAL) == 0)
{
mmi_prov_oma_handle_pxphysical_tag(&root_p);
goto next;
}
else if (strcmp(parm_element, PXAUTHINFO) == 0)
{
mmi_prov_oma_handle_pxauthinfo_tag(&root_p, &logProxyData_p);
logProxyData_p->is_invalid_auth_info = 0x01; /* Only first pxauth info will be stored */
goto next;
}
/*Added by tk*/
else if (strcmp(parm_element, PORT) == 0)
{
phyProxyData_p = jdd_MemAlloc(sizeof(prov_phy_proxy_data_struct), 1);
mmi_prov_oma_handle_port_tag(&root_p, &phyProxyData_p);
prov_proxy_port.connType = phyProxyData_p->connType;
prov_proxy_port.port = phyProxyData_p->port;
if (phyProxyData_p != NULL)
{
jdd_MemFree(phyProxyData_p);
phyProxyData_p = NULL;
}
goto next;
}
}
}
mmi_prov_oma_add_pxauth_info(&g_prov_proxy_data_p, logProxyData_p);
if (logProxyData_p != NULL)
{
jdd_MemFree(logProxyData_p);
logProxyData_p = NULL;
}
*nextroot_p = root_p;
return i_ret;
}
else if (strcmp(root_p->name, PARM) == 0)
{
if (strcmp(attr_p->name, NAME) == 0)
{
UnicodeToAnsii(parm_element, (S8*) attr_p->value);
if (strcmp(parm_element, NAME_PARM) == 0)
{
attr_p = attr_p->next;
if (strcmp(attr_p->name, VALUE) == 0)
{
//added by tk
if(GetUCS2Flag((S8*)attr_p->value))
{
UnicodeToAnsii((S8*) logProxyData_p->proxy_name, (S8*)GetString(STR_ID_PROF_HDLR_DEFAULT_PROFILE_NAME));
}
else
{
len = UCS2Strlen((S8*) attr_p->value);
if (len >= PROV_PROFILE_PROFILE_NAME_LEN)
{
len = PROV_PROFILE_PROFILE_NAME_LEN - 1;
}
UnicodeNToAnsii((S8*) logProxyData_p->proxy_name, (S8*) attr_p->value, len * ENCODING_LENGTH);
logProxyData_p->proxy_name[len] = '\0';
}
//end
}
}
else if (strcmp(parm_element, PROV_DOMAIN) == 0)
{
attr_p = attr_p->next;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -