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

📄 jnw_http.c

📁 java 1.1 gemini 08_16
💻 C
📖 第 1 页 / 共 5 页
字号:
            {
                j2me_http_wps_native_data.status = p->status;
                j2me_http_wps_native_data.more_data = p->more;

                if (ilm_ptr->peer_buff_ptr)
                {
                    if (wps_pun_var_part
                        (WPS_PUN_UNPACK, ilm_ptr->msg_id, &http_rsp_var,
                         get_pdu_ptr(ilm_ptr->peer_buff_ptr, &pdu_length)) > 0)
                    {
                        j2me_http_wps_native_data.reply_header_len = http_rsp_var.reply_header_len;
                        if (j2me_http_wps_native_data.reply_header_len > 0)
                        {
                            j2me_http_wps_native_data.reply_header =
                                (kal_uint8*) jvm_malloc(j2me_http_wps_native_data.reply_header_len);
                            if (j2me_http_wps_native_data.reply_header == NULL)
                            {
                                J2ME_http_update_result(WPS_ERROR_NO_RESOURCE);
                                call_back_id = p->request_id;
                                call_back_needed = KAL_TRUE;
                                break;
                            }
                            memcpy(
                                j2me_http_wps_native_data.reply_header,
                                http_rsp_var.reply_header,
                                j2me_http_wps_native_data.reply_header_len);
                        }

                        j2me_http_wps_native_data.reply_segment_len = http_rsp_var.reply_segment_len;
                        if (j2me_http_wps_native_data.reply_segment_len > 0)
                        {
                            j2me_http_wps_native_data.reply_segment =
                                (kal_uint8*) jvm_malloc(j2me_http_wps_native_data.reply_segment_len);
                            if (j2me_http_wps_native_data.reply_segment == NULL)
                            {
                                J2ME_http_update_result(WPS_ERROR_NO_RESOURCE);
                                call_back_id = p->request_id;
                                call_back_needed = KAL_TRUE;
                                break;
                            }
                            memcpy(
                                j2me_http_wps_native_data.reply_segment,
                                http_rsp_var.reply_segment,
                                j2me_http_wps_native_data.reply_segment_len);
                        }
                    }
                }
            #ifdef __JAVA_SUPPORT_HTTP_BEARER_FALLBACK__
                j2me_http_reset_write_req_data();
            #endif /* __JAVA_SUPPORT_HTTP_BEARER_FALLBACK__ */

            }
        #ifdef __JAVA_SUPPORT_HTTP_BEARER_FALLBACK__
            else if (WPS_ERROR_REQ_ABORT == p->result &&
                     KAL_TRUE == j2me_http_is_gprs_fail(p->status) &&
                     KAL_TRUE == j2me_http_is_csd_net_id_existed() &&
                     NULL != j2me_http_write_req_data.url)
        	{
        	    j2me_http_wps_native_data.status = p->status;
                
            }
        #endif /* __JAVA_SUPPORT_HTTP_BEARER_FALLBACK__ */
            else
            {
            #ifdef __JAVA_SUPPORT_HTTP_BEARER_FALLBACK__
                j2me_http_reset_write_req_data();
            #endif /* __JAVA_SUPPORT_HTTP_BEARER_FALLBACK__ */
            }
                
            J2ME_http_update_result(p->result);
            call_back_id = p->request_id;
            call_back_needed = KAL_TRUE;
        }
            break;

        case MSG_ID_WPS_READ_CONTENT_RSP:
        {
            wps_read_content_rsp_struct *p = (wps_read_content_rsp_struct*) ilm_ptr->local_para_ptr;
            wps_read_content_rsp_var_struct http_read_content_rsp_var;
            kal_uint16 pdu_length = 0;

            kal_trace(TRACE_GROUP_3, FUNC_HTTP_WPS_RESPONSE_HANDLER_4);

            j2me_http_wps_native_data.msg_type = MSG_WPS_READ_CONTENT_RSP;
            j2me_http_wps_native_data.req_id = p->request_id;
            j2me_http_wps_native_data.more_data = p->more;

            if (p->result == WPS_OK && ilm_ptr->peer_buff_ptr)
            {
                if (wps_pun_var_part
                    (WPS_PUN_UNPACK, ilm_ptr->msg_id, &http_read_content_rsp_var,
                     get_pdu_ptr(ilm_ptr->peer_buff_ptr, &pdu_length)) > 0)
                {
                    j2me_http_wps_native_data.reply_segment_len = http_read_content_rsp_var.reply_segment_len;

                    if (j2me_http_wps_native_data.reply_segment_len > 0)
                    {
                        j2me_http_wps_native_data.reply_segment =
                            (kal_uint8*) jvm_malloc(j2me_http_wps_native_data.reply_segment_len);
                        if (j2me_http_wps_native_data.reply_segment == NULL)
                        {
                            J2ME_http_update_result(WPS_ERROR_NO_RESOURCE);
                            call_back_id = p->request_id;
                            call_back_needed = KAL_TRUE;
                            break;
                        }
                        memcpy(
                            j2me_http_wps_native_data.reply_segment,
                            http_read_content_rsp_var.reply_segment,
                            j2me_http_wps_native_data.reply_segment_len);
                    }
                }
            }

            J2ME_http_update_result(p->result);
            call_back_id = p->request_id;
            call_back_needed = KAL_TRUE;
        }
            break;

        case MSG_ID_WPS_POST_CONTENT_IND:
        {
            wps_post_content_ind_struct *p = (wps_post_content_ind_struct*) ilm_ptr->local_para_ptr;

            kal_trace(TRACE_GROUP_3, FUNC_HTTP_WPS_RESPONSE_HANDLER_5);

            j2me_http_wps_native_data.msg_type = MSG_WPS_POST_CONTENT_IND;
            j2me_http_wps_native_data.req_id = p->request_id;

            J2ME_http_update_result(p->result);
            call_back_id = p->request_id;
            call_back_needed = KAL_TRUE;
        }
            break;

        case MSG_ID_WPS_SEC_GET_SESSION_INFO_RSP:
        {
            wps_sec_get_session_info_rsp_struct *p = (wps_sec_get_session_info_rsp_struct*) ilm_ptr->local_para_ptr;

            kal_trace(TRACE_GROUP_3, FUNC_HTTP_WPS_RESPONSE_HANDLER_6);

            j2me_http_wps_native_data.msg_type = MSG_WPS_SEC_GET_SESSION_INFO_RSP;
            if (p->result == WPS_OK)
            {
                j2me_http_wps_native_sec_data.key_exchange_alg = p->key_exchange_alg;
                j2me_http_wps_native_sec_data.bulk_encryption_alg = p->blk_encrypt_alg;
                j2me_http_wps_native_sec_data.hash_alg = p->hash_alg;
                j2me_http_wps_native_sec_data.sec_conn_type = p->sec_conn_type;
                j2me_http_wps_native_sec_data.data_ready = KAL_TRUE;
            }

            J2ME_http_update_result(p->result);
            call_back_id = p->channel_id;
            call_back_needed = KAL_TRUE;
        }
            break;

        case MSG_ID_WPS_SEC_GET_CURRENT_CERT_RSP:
        {
            wps_sec_get_current_cert_rsp_struct *p = (wps_sec_get_current_cert_rsp_struct*) ilm_ptr->local_para_ptr;

            kal_trace(TRACE_GROUP_3, FUNC_HTTP_WPS_RESPONSE_HANDLER_7);

            j2me_http_wps_native_data.msg_type = MSG_WPS_SEC_GET_CURRENT_CERT_RSP;

            if (p->result == WPS_OK)
            {
                if (j2me_http_wps_native_sec_data.cert_data == NULL)
                {
                    j2me_http_wps_native_sec_data.cert_data =
                        (j2me_http_wps_sec_cert_struct*) jvm_malloc(sizeof(j2me_http_wps_sec_cert_struct));
                }
                if (j2me_http_wps_native_sec_data.cert_data == NULL)
                {
                    J2ME_http_update_result(WPS_ERROR_NO_RESOURCE);
                    call_back_id = p->channel_id;
                    call_back_needed = KAL_TRUE;
                    break;
                }
                j2me_http_wps_native_sec_data.cert_data->issuer_len = p->issuer_len;
                j2me_http_wps_native_sec_data.cert_data->serial_num_len = p->serial_num_len;
                j2me_http_wps_native_sec_data.cert_data->sig_alg_name_len = p->sig_alg_name_len;
                j2me_http_wps_native_sec_data.cert_data->subject_len = p->subject_len;

                j2me_http_wps_native_sec_data.cert_data->issuer = (kal_uint8*) jvm_malloc(p->issuer_len);
                j2me_http_wps_native_sec_data.cert_data->serial_num = (kal_uint8*) jvm_malloc(p->serial_num_len);
                j2me_http_wps_native_sec_data.cert_data->sig_alg_name = (kal_uint8*) jvm_malloc(p->sig_alg_name_len);
                j2me_http_wps_native_sec_data.cert_data->subject = (kal_uint8*) jvm_malloc(p->subject_len);
                if (j2me_http_wps_native_sec_data.cert_data->issuer == NULL ||
                    j2me_http_wps_native_sec_data.cert_data->serial_num == NULL ||
                    j2me_http_wps_native_sec_data.cert_data->sig_alg_name == NULL ||
                    j2me_http_wps_native_sec_data.cert_data->subject == NULL)
                {
                    J2ME_http_update_result(WPS_ERROR_NO_RESOURCE);
                    call_back_id = p->channel_id;
                    call_back_needed = KAL_TRUE;
                    break;
                }
                memcpy(j2me_http_wps_native_sec_data.cert_data->issuer, p->issuer, p->issuer_len);
                memcpy(j2me_http_wps_native_sec_data.cert_data->serial_num, p->serial_num, p->serial_num_len);
                memcpy(j2me_http_wps_native_sec_data.cert_data->sig_alg_name, p->sig_alg_name, p->sig_alg_name_len);
                memcpy(j2me_http_wps_native_sec_data.cert_data->subject, p->subject, p->subject_len);

                j2me_http_wps_native_sec_data.cert_data->not_after = p->not_after;
                j2me_http_wps_native_sec_data.cert_data->not_before = p->not_before;
                j2me_http_wps_native_sec_data.cert_data->type = p->type;
                j2me_http_wps_native_sec_data.cert_data->version = p->version;
            }
            J2ME_http_update_result(p->result);
            call_back_id = p->channel_id;
            call_back_needed = KAL_TRUE;
        }
            break;

        case MSG_ID_WPS_CANCEL_RSP:
        {
            wps_cancel_rsp_struct *p = (wps_cancel_rsp_struct*) ilm_ptr->local_para_ptr;

            j2me_http_wps_native_data.msg_type = MSG_WPS_CANCEL_RSP;
            j2me_http_wps_native_data.req_id = p->request_id;

            /* The cancel primitive is used to close conenction */
            if (j2me_http_is_closing_connection)
            {
                j2me_http_is_closing_connection = KAL_FALSE;

                /* Close a not pending connection */
                if (p->result == WPS_ERROR_INVALID_REQUEST_ID)
                {
                    p->result = WPS_OK;
                }
            }

            J2ME_http_update_result(p->result);
            call_back_id = p->request_id;
            call_back_needed = KAL_TRUE;
        }
            break;

        case MSG_ID_WPS_CLEAR_RSP:
        {
            wps_clear_rsp_struct *p = (wps_clear_rsp_struct*) ilm_ptr->local_para_ptr;

            J2ME_http_update_result(p->result);
        }
            break;

        case MSG_ID_WPS_HTTP_AUTH_IND:
        {
            if(auto_return_for_auth)
            {
                wps_http_auth_ind_struct *p = (wps_http_auth_ind_struct*) ilm_ptr->local_para_ptr;
                wps_http_auth_res_struct *auth_res;
                auth_res = (wps_http_auth_res_struct*) construct_local_para(sizeof(wps_http_auth_res_struct), TD_CTRL);
                auth_res->channel_id = p->channel_id;
                auth_res->request_id = p->request_id;
                auth_res->username[0] = 0;
                auth_res->password[0] = 0;

                J2ME_http_send_ilm(auth_res, NULL, MSG_ID_WPS_HTTP_AUTH_RES, MOD_WPS);
            }
        }
            break;
        
    #ifdef __JAVA_SUPPORT_HTTP_BEARER_FALLBACK__
        case MSG_ID_WPS_RECONFIG_CHANNEL_RSP:
        {            
            wps_reconfig_channel_rsp_struct *p = (wps_reconfig_channel_rsp_struct*) ilm_ptr->local_para_ptr;
            if (WPS_OK == p->result &&
                NULL != j2me_http_write_req_data.url)
            {
                J2ME_async_http_msgid = 0;
                    
                jnw_http_write_req(
                        j2me_http_write_req_data.conn_id,
                        j2me_http_write_req_data.http_method,
                        j2me_http_write_req_data.url_length,
                        (char*)j2me_http_write_req_data.url,
                        j2me_http_write_req_data.header_length,
                        (char*)j2me_http_write_req_data.header,
                        j2me_http_write_req_data.total_post_content_length,
                        j2me_http_write_req_data.post_segment_length,
                        (char*)j2me_http_write_req_data.post_segment,
                        j2me_http_write_req_data.more_post);

            }
            else
            {            
                J2ME_async_http_msgid = MSG_ID_WPS_HTTP_RSP;
            }

            j2me_http_reset_write_req_data();

        }
            break;
    #endif /* __JAVA_SUPPORT_HTTP_BEARER_FALLBACK__ */        

        default:
            break;

    }

    /* notify J2ME thread to process coming async event */
    kal_set_eg_events(J2ME_async_http_eventgroup, 1, KAL_OR);
    if(call_back_needed)
    {
        jnw_callback_handler(call_back_id);
    }
    return;
}


/*****************************************************************************
 * FUNCTION
 *  jnw_http_get_current_response_connection_id
 * DESCRIPTION
 *  
 * PARAMETERS
 *  void
 * RETURNS
 *  
 *****************************************************************************/
int jnw_http_get_current_response_connection_id()
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    int reqId = (int)j2me_http_wps_native_data.req_id;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    return reqId;
}


/*****************************************************************************
 * FUNCTION
 *  jnw_http_get_current_primitive
 * DESCRIPTION
 *  
 * PARAMETERS
 *  void
 * RETURNS
 *  
 *****************************************************************************/
int jnw_http_get_current_primitive()
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    int msgType = (int)j2me_http_wps_native_data.msg_type;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    return msgType;
}


/*****************************************************************************
 * FUNCTION
 *  jnw_http_get_connection_id
 * DESCRIPTION
 *  
 * PARAMETERS
 *  channel_type        [IN]        
 * RETURNS
 *  
 *****************************************************************************/
int jnw_http_get_connection_id(int channel_type)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    int CurrReqId = 0;
    int channelType = channel_type;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */

⌨️ 快捷键说明

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