⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jprovoma.c

📁 MTK手机平台的MMI部分的源代码
💻 C
📖 第 1 页 / 共 5 页
字号:
                    if (strcmp(attr_p->name, VALUE) == 0)
                    {
                        UnicodeToAnsii(parm_element, (S8*) attr_p->value);

                    }
                }
                else if (strcmp(parm_element, PROXY_ID) == 0)
                {
                    attr_p = attr_p->next;
                    if (strcmp(attr_p->name, VALUE) == 0)
                    {
                        len = UCS2Strlen((S8*) attr_p->value);
                        if (len >= PROV_PROXY_ID_LEN)
                        {
                            len = PROV_PROXY_ID_LEN - 1;
                        }
                        UnicodeNToAnsii((S8*) logProxyData_p->proxy_id, (S8*) attr_p->value, len * ENCODING_LENGTH);
                        logProxyData_p->proxy_id[len] = '\0';

                    }
                }
                else if (strcmp(parm_element, STARTPAGE) == 0)
                {
                    attr_p = attr_p->next;
                    len = UCS2Strlen((S8*) attr_p->value);
                    if (len >= PROV_PROFILE_HOMEPAGE_URL_LEN)
                    {
                        len = PROV_PROFILE_HOMEPAGE_URL_LEN - 1;
                    }
                    UnicodeNToAnsii((S8*) logProxyData_p->homepage_url, (S8*) attr_p->value, len * ENCODING_LENGTH);
                    logProxyData_p->homepage_url[len] = '\0';
// MAUI_00355388 Start
//                    mmi_prov_handle_homepage_url(attr_p);   /* check to finally remove this line .. */
// MAUI_00355388 End
                }
            }
        }
        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_logical_proxy(g_prov_proxy_data_p, logProxyData_p))
                {
                    mmi_prov_oma_add_logical_proxy_info(&g_prov_proxy_data_p, logProxyData_p);
                }
                *nextroot_p = root_p;
                return i_ret;
            }
        }
        else
        {
            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);
            }
            *nextroot_p = root_p;
            return i_ret;
        }
    }
    return i_ret;
}


/*****************************************************************************
 * FUNCTION
 *  mmi_prov_oma_handle_pxphysical_tag
 * DESCRIPTION
 *  This function deals with the PXPHYSICAL characteristic tag and its PARM elements
 * PARAMETERS
 *  nextroot_p      [IN]        IN\OUT
 * RETURNS
 *  PROV_OK
 *****************************************************************************/
PROV_RETCODE mmi_prov_oma_handle_pxphysical_tag(TAG **nextroot_p)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    PROV_RETCODE i_ret = PROV_OK;
    ATTRIBUTE *attr_p = NULL;
    TAG *root_p;
    S8 parm_element[PROV_OMA_MIN_SIZE_REQ + 1];
    prov_phy_proxy_data_struct *phyProxyData_p;
    U32 len;
    U32 valid_pxphysical_tag = 0x00;
    U32 redundant_parm = 0x00;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    phyProxyData_p = jdd_MemAlloc(sizeof(prov_phy_proxy_data_struct), 1);
	if(phyProxyData_p != NULL)
	{
		phyProxyData_p->connType = prov_proxy_port.connType;
		phyProxyData_p->port = prov_proxy_port.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)
        {
            UnicodeToAnsii(parm_element, (S8*) root_p->attribute_list->value);
            if (strcmp(parm_element, PORT) == 0)
            {
                mmi_prov_oma_handle_port_tag(&root_p, &phyProxyData_p);

            }
			if(g_prov_proxy_data_p->nextLogProxy_p)
			{
				if ((valid_pxphysical_tag)
					&&
					(!mmi_prov_oma_check_if_redundant_physical_proxy
					 (g_prov_proxy_data_p->nextLogProxy_p->logProxyData.physicalProxy, phyProxyData_p)))
				{
						mmi_prov_oma_add_physical_proxy_info(
							&(g_prov_proxy_data_p->nextLogProxy_p->logProxyData.physicalProxy),
							phyProxyData_p);
				}
			}
			else
			{
            if ((valid_pxphysical_tag)
                &&
                (!mmi_prov_oma_check_if_redundant_physical_proxy
                 (g_prov_proxy_data_p->logProxyData.physicalProxy, phyProxyData_p)))
            {
                mmi_prov_oma_add_physical_proxy_info(
                    &(g_prov_proxy_data_p->logProxyData.physicalProxy),
                    phyProxyData_p);
            }
            }
            *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, PXADDR) == 0)
                {
                    attr_p = attr_p->next;
                    len = UCS2Strlen((S8*) attr_p->value);
                    if (len >= PROV_PX_ADDR_LEN)
                    {
                        len = PROV_PX_ADDR_LEN - 1;
                    }
                    UnicodeNToAnsii((S8*) phyProxyData_p->pxAddr, (S8*) attr_p->value, len * ENCODING_LENGTH);
                    phyProxyData_p->pxAddr[len] = '\0';

                }
                else if (strcmp(parm_element, TO_NAPID) == 0)
                {
                    attr_p = attr_p->next;
                    if (redundant_parm & PROV_OMA_IGNORE_OTHER_TO_NAPID)
                    {
                        goto next;
                    }
                    if (strcmp(attr_p->name, VALUE) == 0)
                    {
                        len = UCS2Strlen((S8*) attr_p->value);
                        if (len >= PROV_NAP_ID_LEN)
                        {
                            len = PROV_NAP_ID_LEN - 1;
                        }
                        UnicodeNToAnsii((S8*) phyProxyData_p->toNapID, (S8*) attr_p->value, len * ENCODING_LENGTH);
                        phyProxyData_p->toNapID[len] = '\0';
                    }

                    redundant_parm |= PROV_OMA_IGNORE_OTHER_TO_NAPID;
                    valid_pxphysical_tag = 0x01;

                }
                else if (strcmp(parm_element, PROV_DOMAIN) == 0)
                {
                    attr_p = attr_p->next;
                    if (strcmp(attr_p->name, VALUE) == 0)
                    {
                        UnicodeToAnsii(parm_element, (S8*) attr_p->value);

                    }
                }
                else if (strcmp(parm_element, PHYSICAL_PROXY_ID) == 0)
                {
                    attr_p = attr_p->next;
                    if (strcmp(attr_p->name, VALUE) == 0)
                    {
                        len = UCS2Strlen((S8*) attr_p->value);
                        if (len >= PROV_PHYSICAL_PROXY_ID_LEN)
                        {
                            len = PROV_PHYSICAL_PROXY_ID_LEN - 1;
                        }
                        UnicodeNToAnsii(
                            (S8*) phyProxyData_p->physicalProxyID,
                            (S8*) attr_p->value,
                            len * ENCODING_LENGTH);
                        phyProxyData_p->physicalProxyID[len] = '\0';
                    }
                }
            }
        }
      next:
        root_p = root_p->next;
        if (root_p != NULL)
        {
            attr_p = root_p->attribute_list;
            if (attr_p == NULL && root_p->name == NULL)
            {
                if ((valid_pxphysical_tag)
                    &&
                    (!mmi_prov_oma_check_if_redundant_physical_proxy
                     (g_prov_proxy_data_p->logProxyData.physicalProxy, phyProxyData_p)))
                {
                    mmi_prov_oma_add_physical_proxy_info(
                        &(g_prov_proxy_data_p->logProxyData.physicalProxy),
                        phyProxyData_p);
                }
                *nextroot_p = root_p;
                return i_ret;
            }
        }
        else
        {

            if ((valid_pxphysical_tag)
                &&
                (!mmi_prov_oma_check_if_redundant_physical_proxy
                 (g_prov_proxy_data_p->logProxyData.physicalProxy, phyProxyData_p)))
            {
                mmi_prov_oma_add_physical_proxy_info(
                    &(g_prov_proxy_data_p->logProxyData.physicalProxy),
                    phyProxyData_p);
            }
            *nextroot_p = root_p;
            return i_ret;
        }
    }
    return i_ret;
}


/*****************************************************************************
 * FUNCTION
 *  mmi_prov_oma_handle_port_tag
 * DESCRIPTION
 *  This function deals with the PORT characteristic tag and its PARM elements
 * PARAMETERS
 *  nextroot_p          [IN]        IN\OUT
 *  phyProxyData_p      [IN]        IN\OUT
 * RETURNS
 *  PROV_OK
 *****************************************************************************/
PROV_RETCODE mmi_prov_oma_handle_port_tag(TAG **nextroot_p, prov_phy_proxy_data_struct **phyProxyData_p)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    PROV_RETCODE i_ret = PROV_OK;
    ATTRIBUTE *attr_p = NULL;
    TAG *root_p;
    S8 parm_element[PROV_OMA_MIN_SIZE_REQ + 1];

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    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)
        {
            *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, PORTNBR) == 0)
                {
                    attr_p = attr_p->next;
                    if (strcmp(attr_p->name, VALUE) == 0)
                    {
                        UnicodeToAnsii(parm_element, (S8*) attr_p->value);
                        (*phyProxyData_p)->port = atoi(parm_element);
                    }
                }
                else if (strcmp(parm_element, SERVICE) == 0)
                {
                    attr_p = attr_p->next;
                    if (strcmp(attr_p->name, VALUE) == 0)
                    {
                        UnicodeToAnsii(parm_element, (S8*) attr_p->value);
                        if (strcmp(parm_element, "CO-WSP") == 0)
                        {
                            (*phyProxyData_p)->connType = PH_CONN_TYPE_CONNECTION_OREINTED;
                            /* g_ph_wap_profile_p->conn_type=PH_CONN_TYPE_CONNECTION_OREINTED; */
                        }
                        else if (strcmp(parm_element, "CO-SEC-WSP") == 0)
                        {
                            (*phyProxyData_p)->connType = PH_CONN_TYPE_CONNECTION_OREINTED_SECURE;
                            /* g_ph_wap_profile_p->conn_type=PH_CONN_TYPE_CONNECTION_OREINTED_SECURE; */
                        }
                        else if (strcmp(parm_element, "OTA-HTTP-TO") == 0)
                        {
                            (*phyProxyData_p)->connType = PH_CONN_TYPE_HTTP;
                        }
                        else if (strcmp(parm_element, "OTA-HTTP-TLS-TO") == 0)
                        {
                            (*phyProxyData_p)->connType = PH_CONN_TYPE_HTTP;
                        }
                        else if (strcmp(parm_element, "OTA-HTTP-PO") == 0)
                        {
                            (*phyProxyData_p)->connType = PH_CONN_TYPE_HTTP;
                        }
                        else if (strcmp(parm_element, "OTA-HTTP-TLS-PO") == 0)
                        {
                            (*phyProxyData_p)->connType = PH_CONN_TYPE_HTTP;
                        }
                    }
                }
            }
        }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -