HTTP_RESULT ntyHttpCreate(void *_self) {
	NattyHttp *http = (NattyHttp*)_self;
	kal_uint32 acct_id = 0;
	kal_uint8   val; 
	void *pNetwork = ntyNetworkInstance();

	acct_id = ntyGetAccountId(pNetwork);
	if (acct_id == 0) {
		nty_printf("acct_id don't init \r\n");
		return NTY_HTTP_FAILED;
	}

	if (!ntyHostNameHaveParsed(http)) {
		strcpy(http->hostName, GAODE_SERVER_NAME);
		ntyGetHostByName(http->hostName);
	}

	http->socketid = soc_create(SOC_PF_INET, SOC_SOCK_STREAM, 0, MOD_MMI, acct_id);

	if(http->socketid >= 0) {
		val = KAL_TRUE;
		soc_setsockopt((kal_uint8)http->socketid, SOC_NBIO, &val, sizeof(val));

		val = SOC_WRITE | SOC_READ | SOC_CONNECT | SOC_CLOSE;
		soc_setsockopt((kal_uint8)http->socketid,SOC_ASYNC, &val, sizeof(val));
		nty_printf("{%s:%d} --> socketid : %d\r\n", __FILE__, __LINE__, http->socketid);
		return NTY_HTTP_SUCCESS;
	} else {
		return NTY_HTTP_FAILED;
	}
}
Exemple #2
0
//-----------------------------------------------------------------------------
kal_bool gps_soc_create_socket(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    kal_uint8 val = 1;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    gps_soc_transaction.state = GPS_SOC_CREATING;
    gps_soc_log("gps_soc_create_socket, transaction state: %d", gps_soc_transaction.state);
    gps_soc_transaction.socket_id = soc_create(PF_INET, SOCK_STREAM, 0, MOD_GPS_TCPIP, gps_soc_transaction.nwt_acount_id);
    gps_soc_log("Create socket: %d", gps_soc_transaction.socket_id);

    if (gps_soc_transaction.socket_id < 0)
    {
        gps_soc_log("Create socket fail !!");

        return KAL_FALSE;
    }

    if (soc_setsockopt(gps_soc_transaction.socket_id, SOC_NBIO, &val, sizeof(val)) < 0)
    {
        gps_soc_log("Set socket to nonblock mode error !!");

        return KAL_FALSE;
    }

    val = SOC_READ | SOC_WRITE | SOC_CLOSE | SOC_CONNECT;
    if (soc_setsockopt(gps_soc_transaction.socket_id, SOC_ASYNC, &val, sizeof(val)) < 0)
    {
        gps_soc_log("Set socket to nonblock mode error !!");

        return KAL_FALSE;
    }
    gps_soc_transaction.state = GPS_SOC_CREATED;
    gps_soc_log("gps_soc_create_socket, transaction state: %d", gps_soc_transaction.state);

    return KAL_TRUE;
}
void EmPingStartAct(kal_char *serv_addr)
{
   kal_uint32 acc_id = 5;//account id
   kal_uint16 i, j = 0;     
   kal_char str_buff[50];
   kal_uint8 val = 1;

   PING_CONTEXT_INFO(state) = PING_ACTIVE;

   /* Clean all the statistics for the previous session */
   PING_CONTEXT_INFO(maxRspMS) = 0;
   PING_CONTEXT_INFO(minRspMS) = 0;
   PING_CONTEXT_INFO(avgRspMS) = 0;
   PING_CONTEXT_INFO(rcvdCounter) = 0;
   PING_CONTEXT_INFO(lostCounter) = 0;

   if(PING_CONTEXT_INFO(echo_req) != NULL)
   {
      OslMfree(PING_CONTEXT_INFO(echo_req));
   }

   if(PING_CONTEXT_INFO(echo_rsp) != NULL)
   {
      OslMfree(PING_CONTEXT_INFO(echo_rsp));
   }

   //PING_CONTEXT_INFO(socketId) = soc_create(PF_INET, SOCK_RAW, IPPROTO_ICMP, MOD_PING, acc_id);
   PING_CONTEXT_INFO(socketId) = soc_create(PF_INET, SOCK_RAW, IPPROTO_ICMP, MOD_MMI, acc_id);

   if(PING_CONTEXT_INFO(socketId) >= 0)
   {

      if(soc_setsockopt(PING_CONTEXT_INFO(socketId), SOC_NBIO, &val, sizeof(val)) < 0)
      {
         kal_print("Set socket to nonblock mode error !!");
         return ;
      }

      val = SOC_READ | SOC_WRITE;

      if(soc_setsockopt(PING_CONTEXT_INFO(socketId), SOC_ASYNC, &val, sizeof(val)) < 0)
      {
         kal_print("Set socket to nonblock mode error !!");
         return ;
      }

      
      PING_CONTEXT_INFO(echo_req) = (kal_uint8*)OslMalloc(PING_CONTEXT_INFO(pingSize)+8);
      PING_CONTEXT_INFO(echo_rsp) = (kal_uint8*)OslMalloc(PING_CONTEXT_INFO(pingSize)+8);

      PING_CONTEXT_INFO(seqNo) = 0;
      PING_CONTEXT_INFO(currCount) = 0;

      PING_CONTEXT_INFO(pingSrvAddr.port) = 100;//identifier
      PING_CONTEXT_INFO(pingSrvAddr.addr_len) = 4;//any
      PING_CONTEXT_INFO(pingSrvAddr.addr[0])=0;
      PING_CONTEXT_INFO(pingSrvAddr.addr[1])=0;
      PING_CONTEXT_INFO(pingSrvAddr.addr[2])=0;
      PING_CONTEXT_INFO(pingSrvAddr.addr[3])=0;

#ifdef MMI_ON_HARDWARE_P
      if(soc_bind(PING_CONTEXT_INFO(socketId), &PING_CONTEXT_INFO(pingSrvAddr)) != 0)
      {
         soc_close(PING_CONTEXT_INFO(socketId));
         if(PING_CONTEXT_INFO(echo_req) != NULL)
         {
            OslMfree(PING_CONTEXT_INFO(echo_req));
         }

         if(PING_CONTEXT_INFO(echo_rsp) != NULL)
         {
            OslMfree(PING_CONTEXT_INFO(echo_rsp));
         }
         PING_CONTEXT_INFO(echo_req) = NULL;
         PING_CONTEXT_INFO(echo_rsp) = NULL;
         

         kal_print("bind error");
      }
#endif
                  
      PING_CONTEXT_INFO(pingSrvAddr.addr[0]) = atoi(strtok(serv_addr, "."));//ip string: "140.112.1.1" to integer
      PING_CONTEXT_INFO(pingSrvAddr.addr[1]) = atoi(strtok(NULL, "."));
      PING_CONTEXT_INFO(pingSrvAddr.addr[2]) = atoi(strtok(NULL, "."));
      PING_CONTEXT_INFO(pingSrvAddr.addr[3]) = atoi(strtok(NULL, "."));
      PING_CONTEXT_INFO(pingSrvAddr.addr_len) = 4;

      kal_sprintf(str_buff, "Pinging %d.%d.%d.%d with %d bytes of data", PING_CONTEXT_INFO(pingSrvAddr.addr[0])
                                                   , PING_CONTEXT_INFO(pingSrvAddr.addr[1])
                                                   , PING_CONTEXT_INFO(pingSrvAddr.addr[2])
                                                   , PING_CONTEXT_INFO(pingSrvAddr.addr[3])
                                                   , PING_CONTEXT_INFO(pingSize));
      kal_print(str_buff);
      EmPingUpdateScreen(EM_PING_START, -1);
      EmPingSendPkt();


   } //if(s >= 0)
   else
   {
      ASSERT(PING_CONTEXT_INFO(socketId) >= 0);
   }
}
Exemple #4
0
//-----------------------------------------------------------------------------
int gps_soc_tcp_send_request2(void)
{
	kal_uint8 val = 1; // non-blocking mode, default
	kal_int32 res;
	kal_int8 error; 
	kal_int32 detail_cause;
	kal_bool set_header = KAL_FALSE;

	gps_soc_transaction.socket_id = soc_create(PF_INET, SOCK_STREAM, 0, MOD_GPS_TCPIP, gps_soc_transaction.nwt_acount_id);
	gps_soc_log("soc_create, socket_id: %d", gps_soc_transaction.socket_id);
	if (gps_soc_transaction.socket_id < 0)
	{
		if (gps_soc_transaction.callback != NULL)
		{
	    	gps_soc_transaction.callback(0, NULL, 0);
		}
		return GPS_SOC_ERROR;
	}

	val = 0;	// blocking mode
	res = soc_setsockopt(gps_soc_transaction.socket_id, SOC_NBIO, &val, sizeof(val));
	gps_soc_log("soc_setsockopt, val: %d, result: %d", val, res);
	if (res < 0)
	{
		goto ERROR_HANDLE;
	}
	val = SOC_READ | SOC_WRITE | SOC_CLOSE | SOC_CONNECT;
	res = soc_setsockopt(gps_soc_transaction.socket_id, SOC_ASYNC, &val, sizeof(val));
	gps_soc_log("soc_setsockopt, val: %d, result: %d", val, res);
	if (res < 0)
	{
		goto ERROR_HANDLE;
	}
	
	gps_soc_log("Connect to %d.%d.%d.%d and port: %d",
				    gps_soc_transaction.server_ip_addr.addr[0],
				    gps_soc_transaction.server_ip_addr.addr[1],
				    gps_soc_transaction.server_ip_addr.addr[2],
				    gps_soc_transaction.server_ip_addr.addr[3],
				    gps_soc_transaction.server_ip_addr.port);
	
	res = soc_connect(gps_soc_transaction.socket_id, &gps_soc_transaction.server_ip_addr);
	gps_soc_log("soc_connect res: %d", res);
	if (res < 0)
	{
		res = soc_get_last_error(gps_soc_transaction.socket_id, &error, &detail_cause);
		gps_soc_log("res: %d soc_connect error: %d, detail_cause: %d", 
					res, error, detail_cause);

		goto ERROR_HANDLE;
	}
	
	while (gps_soc_transaction.snd_counter < gps_soc_transaction.snd_data_len)
	{
		const GPS_GPRMC_Packed_Struct_t *pPack;
		char *pBuff;
		int i, count;

		pPack = (GPS_GPRMC_Packed_Struct_t *)gps_soc_transaction.rcvd_buffer;
		pPack += gps_soc_transaction.snd_counter;
		pBuff = gps_soc_transaction.snd_buffer;
		pBuff[0] = '\0';
		if (!set_header)
		{
			sprintf(pBuff, "#%s#%s#%s#%s#%d\r\n", 
					gps_imei_str,
					gps_gprs_username, 
					gps_gprs_userpwd, 
					gps_soc_upldtype_str(gps_soc_transaction.cause_type),
					gps_soc_transaction.snd_data_len);
			set_header = KAL_TRUE;
		}
		count = (gps_soc_transaction.snd_data_len - gps_soc_transaction.snd_counter) <= GPS_SEND_ITEMS_ONETIME ?
				(gps_soc_transaction.snd_data_len - gps_soc_transaction.snd_counter) :
				GPS_SEND_ITEMS_ONETIME;
		for (i = 0; i < count; i++)
		{
		    Result_t result = RESULT_ERROR;

			pBuff = gps_soc_transaction.snd_buffer + strlen(gps_soc_transaction.snd_buffer);
			sprintf(pBuff, "#");
			pBuff = gps_soc_transaction.snd_buffer + strlen(gps_soc_transaction.snd_buffer);
			sprintf(pBuff, "%04x%04x", pPack->lac, pPack->cid) ;
			pBuff = gps_soc_transaction.snd_buffer + strlen(gps_soc_transaction.snd_buffer);
			result = GPS_APP_GPRMC_Packed2Str(pBuff, pPack);
			pPack++;
		}

		if (gps_soc_transaction.snd_counter + count >= (kal_int32) gps_soc_transaction.snd_data_len)
		{
			pBuff = gps_soc_transaction.snd_buffer + strlen(gps_soc_transaction.snd_buffer);
			sprintf(pBuff, "##\r\n");
		}

	    gps_soc_log("send data len: %d, data: %s", 
		   			strlen(gps_soc_transaction.snd_buffer),
		   			gps_soc_transaction.snd_buffer);
		res = soc_send(gps_soc_transaction.socket_id, 
					   (kal_uint8*)gps_soc_transaction.snd_buffer, 
					   strlen(gps_soc_transaction.snd_buffer), 
					   0);
		gps_soc_log("Http send request result, sent_bytes: %d", res);
		if (res < 0)
		{
			res = soc_get_last_error(gps_soc_transaction.socket_id, &error, &detail_cause);
			gps_soc_log("res: %d soc_send error: %d, detail_cause: %d", 
						res, error, detail_cause);
			break;
		}
		kal_sleep_task(250);

		gps_soc_transaction.snd_counter += count;
	}
  
ERROR_HANDLE:
	if (gps_soc_transaction.callback != NULL)
	{
	   	gps_soc_transaction.callback(0, NULL, 0);
	}

	kal_sleep_task(250);
	res = soc_close(gps_soc_transaction.socket_id);
	gps_soc_log("soc_close res: %d", res);
	if (res < 0)
	{
		res = soc_get_last_error(gps_soc_transaction.socket_id, &error, &detail_cause);
		gps_soc_log("res: %d soc_close error: %d, detail_cause: %d", 
					res, error, detail_cause);
	}
	kal_sleep_task(250);

	soc_close_nwk_account_by_id(MOD_GPS_TCPIP, gps_soc_transaction.nwt_acount_id);

	return GPS_SOC_SUCCESS;
}
Exemple #5
0
VMINT vm_tls_new_ctx(vm_tls_version_enum ver, vm_socket_type_enum sock_type, VMINT apn, vm_tls_side_enum side, callback_t cb)
{
    kal_int32 ret;
    vm_tls_context_t * ctx_p = NULL;
    VMUINT acct_id = 0;
    kal_uint8 val;
    
    MMI_TRACE(TRACE_GROUP_8, TRC_MRE_SSL_S, 1, __LINE__);

    
    ctx_p = vm_tls_malloc_ctx();

    if (NULL == ctx_p)
    {
        MMI_TRACE(TRACE_GROUP_8, TRC_MRE_SSL_E1, 1, __LINE__);
        return VM_TLS_RET_BASE -2;
    }

    ret = tls_new_ctx((tls_version_enum)ver,
        (tls_side_enum)side,
        MOD_MMI,
        STR_MRE_TITLE);

    if (ret < 0)
    {
        vm_tls_free_ctx(ctx_p);
        MMI_TRACE(TRACE_GROUP_8, TRC_MRE_SSL_E2, 1, ret);
        return ret;
    }

    ctx_p->tls_ctx = ret;
    ctx_p->cb = cb;
    ctx_p->soc_id = 0;
    ctx_p->p_hdl = vm_pmng_get_current_handle();


    if (VM_E_SOC_SUCCESS != vm_get_encoded_dtacct_id(apn, &acct_id))
    {
        MMI_TRACE(TRACE_GROUP_8, TRC_MRE_SSL_E3, 1, __LINE__);
        return VM_TLS_RET_BASE -3;
    }

    
    ctx_p->soc_id = soc_create(SOC_PF_INET, sock_type, 0, MOD_MMI, acct_id);
    if (0 > ctx_p->soc_id)
    {
        // TODO: print ctx_p->soc_id
        ctx_p->soc_id = 0;
        MMI_TRACE(TRACE_GROUP_8, TRC_MRE_SSL_E4, 1, __LINE__);
        return VM_TLS_RET_BASE -3;
    }
    
    val = KAL_TRUE;
    ret = soc_setsockopt(ctx_p->soc_id, SOC_NBIO, &val, sizeof(val));
    if (ret < 0)
    {
        MMI_TRACE(TRACE_GROUP_8, TRC_MRE_SSL_E5, 1, __LINE__);
        return VM_TLS_RET_BASE -5;
    }

    val = SOC_READ | SOC_WRITE | SOC_CONNECT | SOC_CLOSE;
    ret = soc_setsockopt(ctx_p->soc_id, SOC_ASYNC, &val, sizeof(val));
    if (ret < 0)
    {
        MMI_TRACE(TRACE_GROUP_8, TRC_MRE_SSL_E6, 1, __LINE__);
        return VM_TLS_RET_BASE -6;
    }
    
    MMI_TRACE(TRACE_GROUP_8, TRC_MRE_DLS_LOG, 
        ctx_p->tls_ctx,
        ctx_p->soc_id,
        ctx_p->p_hdl,
        0,
        0,
        ctx_p->cb,
        1, __LINE__);
    
    if (0 == g_ref_count++)
    {
        mmi_frm_set_protocol_event_handler(MSG_ID_APP_SOC_NOTIFY_IND, (PsIntFuncPtr)vm_tls_notify_cb, MMI_TRUE);
        mmi_frm_set_protocol_event_handler(MSG_ID_APP_TLS_NOTIFY_IND, (PsIntFuncPtr)vm_tls_notify_ind, MMI_TRUE);
        mmi_frm_set_protocol_event_handler(MSG_ID_APP_TLS_ALERT_IND, (PsIntFuncPtr)vm_tls_alert_ind, MMI_TRUE);
        mmi_frm_set_protocol_event_handler(MSG_ID_APP_TLS_INVALID_CERT_IND, (PsIntFuncPtr)vm_tls_invalid_cert_ind, MMI_TRUE);
        mmi_frm_set_protocol_event_handler(MSG_ID_APP_TLS_CLIENT_AUTH_IND, (PsIntFuncPtr)vm_tls_client_auth_ind, MMI_TRUE);
        MMI_TRACE(TRACE_GROUP_8, TRC_MRE_SSL_E7, 1, __LINE__);
    }

    MMI_TRACE(TRACE_GROUP_8, TRC_MRE_SSL_E, 1, ctx_p->res_id);
    return ctx_p->res_id;
    
    
}