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

📄 jprovoma.c

📁 MTK手机平台的MMI部分的源代码
💻 C
📖 第 1 页 / 共 5 页
字号:
        root_p = root_p->next;
        if (root_p != NULL)
        {
            attr_p = root_p->attribute_list;
            if (attr_p == NULL && root_p->name == NULL)
            {
                *nextroot_p = root_p;
                return i_ret;
            }
        }
        else
        {
            *nextroot_p = root_p;
            return i_ret;
        }
    }
    return i_ret;
}


/*****************************************************************************
 * FUNCTION
 *  mmi_prov_oma_handle_napauthinfo_tag
 * DESCRIPTION
 *  This function deals with the NAPAUTHINFO characteristic tag and its PARM elements
 * PARAMETERS
 *  nextroot_p              [IN]        IN\OUT
 *  data_account_data_p     [IN]        IN\OUT
 * RETURNS
 *  PROV_OK
 *****************************************************************************/
PROV_RETCODE mmi_prov_oma_handle_napauthinfo_tag(
                TAG **nextroot_p,
                prov_data_account_data_struct **data_account_data_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];
    U32 len;

    /*----------------------------------------------------------------*/
    /* 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, AUTHTYPE) == 0)
                {
                    attr_p = attr_p->next;
                    if (strcmp(attr_p->name, VALUE) == 0)
                    {
                        UnicodeToAnsii(parm_element, (S8*) attr_p->value);
                        if (strcmp(parm_element, PAP) == 0)
                        {
                            (*data_account_data_p)->authType = PROV_AUTHTYPE_PAP;
                        }
                        else if (strcmp(parm_element, CHAP) == 0)
                        {
                            (*data_account_data_p)->authType = PROV_AUTHTYPE_CHAP;
                        }
                        else
                        {
                            (*data_account_data_p)->authType = PROV_AUTHTYPE_PAP;
                        }
                    }

                }
                else if (strcmp(parm_element, AUTHNAME) == 0)
                {
                    attr_p = attr_p->next;
                    if (strcmp(attr_p->name, VALUE) == 0)
                    {
                        len = UCS2Strlen((S8*) attr_p->value);
                        if (len >= PROV_MAX_USER_LEN)
                        {
                            len = PROV_MAX_USER_LEN - 1;
                        }
                        UnicodeNToAnsii(
                            (S8*) (*data_account_data_p)->userName,
                            (S8*) attr_p->value,
                            len * ENCODING_LENGTH);
                        (*data_account_data_p)->userName[len] = '\0';
                    }

                }
                else if (strcmp(parm_element, AUTHSECRET) == 0)
                {
                    attr_p = attr_p->next;
                    if (strcmp(attr_p->name, VALUE) == 0)
                    {
                        len = UCS2Strlen((S8*) attr_p->value);
                        if (len >= PROV_MAX_PASSWD_LEN)
                        {
                            len = PROV_MAX_PASSWD_LEN - 1;
                        }
                        UnicodeNToAnsii(
                            (S8*) (*data_account_data_p)->password,
                            (S8*) attr_p->value,
                            len * ENCODING_LENGTH);
                        (*data_account_data_p)->password[len] = '\0';
                    }
                }
            }
        }

        root_p = root_p->next;
        if (root_p != NULL)
        {
            attr_p = root_p->attribute_list;
            if (attr_p == NULL && root_p->name == NULL)
            {
                *nextroot_p = root_p;
                return i_ret;
            }
        }
        else
        {
            *nextroot_p = root_p;
            return i_ret;
        }
    }
    return i_ret;
}


/*****************************************************************************
 * FUNCTION
 *  mmi_prov_oma_handle_application_tag
 * DESCRIPTION
 *  This function deals with the APPLICATION characteristic tag and its PARM elements
 * PARAMETERS
 *  nextroot_p      [IN]        IN\OUT
 * RETURNS
 *  PROV_OK
 *****************************************************************************/
PROV_RETCODE mmi_prov_oma_handle_application_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];
    U8 app_id[PROV_APPLICATION_APP_ID_LEN + 1];

    U32 redundant_parm = 0x00;
    U32 unsupported_appl = 0x00;

	// MAUI_00355388 Start
    U8 uri[PROV_PROFILE_MMSC_URL_LEN + 1];
	// MAUI_00355388 End

    /*----------------------------------------------------------------*/
    /* 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)
        {
            UnicodeToAnsii(parm_element, (S8*) root_p->attribute_list->value);
            if (strcmp(parm_element, RESOURCE) == 0)
            {
                if (!unsupported_appl)
                {
                    mmi_prov_oma_handle_resource_tag(&root_p);
                }
            }
            *nextroot_p = root_p;
            return i_ret;
        }
        else if (strcmp(root_p->name, PARM) == 0)
        {
            if (strcmp(attr_p->name, NAME) == 0)
            {
                if (unsupported_appl)
                {
                    goto next;
                }
                UnicodeToAnsii(parm_element, (S8*) attr_p->value);
                if (strcmp(parm_element, APPID) == 0)
                {
                    attr_p = attr_p->next;
                    if (strcmp(attr_p->name, VALUE) == 0)
                    {
                        len = UCS2Strlen((S8*) attr_p->value);
                        if (len >= PROV_APPLICATION_APP_ID_LEN)
                        {
                            len = PROV_APPLICATION_APP_ID_LEN - 1;
                        }
                        UnicodeNToAnsii((S8*) app_id, (S8*) attr_p->value, len * ENCODING_LENGTH);
                        app_id[len] = '\0';

                        if (strcmp((S8*) app_id, BRW_APPL) == 0)
                        {
                            if (g_prov_app_brw_p == NULL)
                            {
                                g_prov_app_brw_p = (application_data*) jdd_MemAlloc(sizeof(application_data), 1);
                            }

                            if (strcmp((S8*) app_id, (S8*) g_prov_app_brw_p->app_id) == 0)
                            {
                                g_prov_app_brw_p->flags |= PROV_OMA_IGNORE_OTHER_WAP_APPL;
                                goto next;
                            }

                            UnicodeNToAnsii(
                                (S8*) g_prov_app_brw_p->app_id,
                                (S8*) attr_p->value,
                                len * ENCODING_LENGTH);
                            g_prov_app_brw_p->app_id[len] = '\0';
                            g_prov_appl_flag |= PROV_BROWSER_APPLICATION;
                        }
                        else if (strcmp((S8*) app_id, MMS_APPL) == 0)
                        {
                            if (g_prov_app_mms_p == NULL)
                            {
                                g_prov_app_mms_p = (application_data*) jdd_MemAlloc(sizeof(application_data), 1);
                            }

                            if (strcmp((S8*) app_id, (S8*) g_prov_app_mms_p->app_id) == 0)
                            {
                                g_prov_app_mms_p->flags |= PROV_OMA_IGNORE_OTHER_MMS_APPL;
                                goto next;
                            }

                            UnicodeNToAnsii(
                                (S8*) g_prov_app_mms_p->app_id,
                                (S8*) attr_p->value,
                                len * ENCODING_LENGTH);
                            g_prov_app_mms_p->app_id[len] = '\0';
                            g_prov_appl_flag |= PROV_MMS_APPLICATION;
                            g_prov_setting_type |= PROV_MMS_SETTINGS;
                        }
                        else
                        {
                            //handle all other supported application before this
                            //handle unsupported applications 
                            unsupported_appl = 0x01;

                        }
                    }
                }
                else if (strcmp(parm_element, NAME_PARM) == 0)
                {

                    attr_p = attr_p->next;
                    if (strcmp(attr_p->name, VALUE) == 0)
                    {
                        len = UCS2Strlen((S8*) attr_p->value);
                        if (len >= PROV_APPLICATION_APP_NAME_LEN)
                        {
                            len = PROV_APPLICATION_APP_NAME_LEN - 1;
                        }

                        if (strcmp((S8*) app_id, BRW_APPL) == 0)
                        {
                            if (g_prov_app_brw_p->flags & PROV_OMA_IGNORE_OTHER_WAP_APPL)
                            {
                                goto next;
                            }
                            UnicodeNToAnsii(
                                (S8*) g_prov_app_brw_p->application_name,
                                (S8*) attr_p->value,
                                len * ENCODING_LENGTH);
                            g_prov_app_brw_p->application_name[len] = '\0';

                        }
                        else if (strcmp((S8*) app_id, MMS_APPL) == 0)
                        {
                            if (g_prov_app_mms_p->flags & PROV_OMA_IGNORE_OTHER_MMS_APPL)
                            {
                                goto next;
                            }
                            UnicodeNToAnsii(
                                (S8*) g_prov_app_mms_p->application_name,
                                (S8*) attr_p->value,
                                len * ENCODING_LENGTH);
                            g_prov_app_mms_p->application_name[len] = '\0';
                        }
                    }
                }
                else if (strcmp(parm_element, TO_PROXY) == 0)
                {
                    attr_p = attr_p->next;

                    if (redundant_parm & PROV_OMA_APPL_IGNORE_OTHER_TO_PROXY)
                    {
                        goto 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;
                        }

                        if (strcmp((S8*) app_id, BRW_APPL) == 0)
                        {
                            if (g_prov_app_brw_p->flags & PROV_OMA_IGNORE_OTHER_WAP_APPL)
                            {
                                goto next;
                            }
                            UnicodeNToAnsii(
           

⌨️ 快捷键说明

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