cbm_result_error_enum srv_cbm_get_real_acct_id(U32 nw_acct_id, U32 *rel_acct_id, U32 *bearer_type) { /*----------------------------------------------------------------*/ /* Local Variables */ /*----------------------------------------------------------------*/ kal_uint8 app_id; cbm_sim_id_enum sim_id; kal_uint32 ori_acct_id; cbm_result_error_enum cbm_errcode = CBM_OK; srv_dtcnt_result_enum da_ret; kal_int8 ret; cbm_bearer_enum ori_bearer_type = CBM_BEARER_NONE; /*----------------------------------------------------------------*/ /* Code Body */ /*----------------------------------------------------------------*/ cbm_decode_data_account_id((kal_uint32)nw_acct_id, &sim_id, &app_id, NULL, &ori_acct_id); switch (ori_acct_id) { case CBM_DEFAULT_ACCT_ID: da_ret = srv_dtcnt_get_auto_acc_id(nw_acct_id, &ori_acct_id); if (da_ret == SRV_DTCNT_RESULT_SUCCESS && cbm_get_original_account(ori_acct_id) != CBM_DEFAULT_ACCT_ID) { ori_acct_id = cbm_set_app_id(ori_acct_id, CBM_INVALID_APP_ID); } else { ori_acct_id = CBM_INVALID_NWK_ACCT_ID; cbm_errcode = CBM_INVALID_ACCT_ID; } break; default: break; } if (cbm_errcode == CBM_OK) { ret = cbm_get_bearer_type(ori_acct_id, &ori_bearer_type); if (ret != CBM_OK || ori_bearer_type == CBM_BEARER_NONE #ifndef __MMI_OP01_WIFI__ #ifdef __MMI_TELEPHONY_SUPPORT__ || (ori_bearer_type != CBM_BEARER_WIFI && !srv_mode_switch_is_network_service_available()) #endif /* __MMI_TELEPHONY_SUPPORT__ */ #endif /* __MMI_OP01_WIFI__ */ ) { cbm_errcode = CBM_INVALID_ACCT_ID; } #ifdef __PS_PDP_SWITCH_SUPPORT__ if (cbm_errcode == CBM_OK) { srv_cbm_app_cntx_struct *mms_app_p = srv_cbm_get_mms_app_slot(SRV_CBM_APP_STATE_MMS_STARTUP); if (!mms_app_p) { mms_app_p = srv_cbm_get_mms_app_slot(SRV_CBM_APP_STATE_MMS_PENDING); } if (mms_app_p) { if (sim_id != cbm_get_sim_id(mms_app_p->nw_acct_id)) { cbm_errcode = CBM_BEARER_FAIL; } } } #endif /* __PS_PDP_SWITCH_SUPPORT__ */ } if (rel_acct_id) { *rel_acct_id = cbm_encode_data_account_id(ori_acct_id, sim_id, app_id, KAL_FALSE); } if (bearer_type) { *bearer_type = ori_bearer_type; } return cbm_errcode; }
VMINT vm_preload_download_ex(VMINT hdl, const VMWCHAR * data, VMBOOL bDLA,void (*callback)(VMINT hdl, void * para), void * user_data) { VMCHAR http_header[BUFFER_LEN] = {0}; VMINT ret = 0; VMINT written = 0; vm_preload_ctx_t * ctx_p = NULL; VMINT bufSize = 0; MMI_TRACE(MMI_MRE_TRC_MOD_VMSOCK, TRC_MRE_VMSOCK_2997 ); if (NULL == data || 0 > hdl) { MMI_TRACE(MMI_MRE_TRC_MOD_VMSOCK, TRC_MRE_VMSOCK_3000 ); return -2; } if (vm_res_get_data(VM_RES_TYPE_PRELOAD, hdl, (void**)&ctx_p, &bufSize) != VM_RES_OK) { MMI_TRACE(MMI_MRE_TRC_MOD_VMSOCK, TRC_MRE_VMSOCK_3058 , -6); return -6; } if (NULL == ctx_p) { MMI_TRACE(MMI_MRE_TRC_MOD_VMSOCK, TRC_MRE_VMSOCK_3009 ); return -3; } vm_wstrcpy(ctx_p->path, (const VMWSTR)data); ctx_p->cb = callback; ctx_p->user_data = user_data; ctx_p->bDLA = bDLA; if (!bDLA || g_no_dla) { ret = _vm_preload_try_download(ctx_p); if (ret <= 0) return ret; } else { #if defined(MMI_DA_HTTP_DOWNLOAD_SUPPORT) VMUINT account_id; srv_da_start_download_struct da_param; vm_apn_info_ext info = {0}; memset(&da_param,0,sizeof(da_param)); vm_get_encoded_dtacct_id(VM_TCP_APN_CMWAP, &account_id); MMI_PRINT(MOD_MRE, MMI_MRE_TRC_MOD_VMSOCK,"preload dla dt[0x%x]", account_id); if (0 == vm_get_apn_info(&info)) // px { if (0 == vm_get_default_apn_info(&info)) { if (info.apn_info_id) { vm_get_encoded_dtacct_id(VM_TCP_APN_CMWAP, &account_id); MMI_PRINT(MOD_MRE, MMI_MRE_TRC_MOD_VMSOCK,"preload dla px[0x%x]", account_id); } else { vm_get_encoded_dtacct_id(VM_TCP_APN_CMNET, &account_id); MMI_PRINT(MOD_MRE, MMI_MRE_TRC_MOD_VMSOCK,"preload dla npx[0x%x]", account_id); } } else // wifi without sim { } } srv_dtcnt_get_auto_acc_id(account_id, &da_param.acc_id); mmi_asc_n_to_ucs2((CHAR *)http_header,ctx_p->url,BUFFER_LEN); da_param.url = (WCHAR*)http_header; //da_param.acc_id = account_id; da_param.show_confirm = MMI_FALSE; da_param.user_data = ctx_p; da_param.filepath = (U16 *)data; da_param.dl_progress = vm_preload_download_callback; da_param.dispatch_callback = NULL; da_param.setting_hdlr = srv_da_default_setting;// MAUI_03202723 srv_da_bypass_setting -> srv_da_default_setting; //vm_preload_download_setting; if (NULL == srv_da_start_http_download(&da_param)) { //_vm_preload_clean(ctx_p); _vm_preload_free_ctx(ctx_p); return -5; } #endif } MMI_TRACE(MMI_MRE_TRC_MOD_VMSOCK, TRC_MRE_VMSOCK_3058 , ret); ctx_p->update = 2; MMI_TRACE(MMI_MRE_TRC_MOD_VMSOCK, TRC_MRE_VMSOCK_3060 ); return 0; }