Example #1
0
//--------------------------------------------
void encode_mqttsn_sensor_data(uint8_t **buf, size_t *size, const char *data, size_t data_len)
{
	uint32_t *data_ptr;
	float float_data;
	int32_t long_data;
	char *end;

	assert(data_len < 50);

	errno = 0;
	end = NULL;
	long_data = strtol(data, &end, 10);
	if (errno == 0 && end == (char *)data + data_len)
	{
		*size = 5;
		*buf = (uint8_t *)malloc(*size);
		*(*buf) = SENSOR_DATA_INT32;
		data_ptr = (uint32_t *)(*buf + 1);
		*data_ptr = htonl(long_data);
		return;
	}

	errno = 0;
#ifdef _MSC_VER
	float_data = (float)strtod(data, &end);
#else
	float_data = strtof(data, &end);
#endif
	if (errno == 0 && end == (char *)data + data_len)
	{
		*size = 5;
		*buf = (uint8_t *)malloc(*size);
		*(*buf) = SENSOR_DATA_FLOAT;
		data_ptr = (uint32_t *)(*buf + 1);
		*data_ptr = htonl(*(uint32_t *)&float_data);
		return;
	}

	long_data = _inet_addr(data, data_len);
	if (long_data != INADDR_NONE)
	{
		*size = 5;
		*buf = (uint8_t *)malloc(*size);
		*(*buf) = SENSOR_DATA_IPV4;
		data_ptr = (uint32_t *)(*buf + 1);
		*data_ptr = long_data;
		return;
	}

	*size = 2 + data_len;
	*buf = (uint8_t *)malloc(*size);
	*(*buf) = SENSOR_DATA_UTF8STR;
	*(*buf + 1) = (uint8_t)data_len < MAX_UTF8_STRING ? (uint8_t)data_len : MAX_UTF8_STRING;

	memcpy(*buf + 2, data, *(*buf + 1));
}
Example #2
0
int main (void)
{
  const struct hostent *h;
  const char *host_name = "test-host";
  int   wait_time;
  DWORD addr_list [MAX_ADDRESSES+1];

  dbug_init();
  sock_init();
  print_hosts();

  wait_time = netdbCacheLife + 1;
  memset (&addr_list, 0, sizeof(addr_list));
  addr_list[0] = htonl (_inet_addr("80.22.33.45"));
  addr_list[1] = htonl (_inet_addr("222.22.33.46"));
  addr_list[2] = htonl (_inet_addr("217.22.33.47"));
  addr_list[3] = htonl (_inet_addr("81.22.33.48"));
  addr_list[4] = INADDR_NONE;

  SOCK_DEBUGF (("\nadd_hostent: `%s'", host_name));
  add_hostent (NULL, host_name, "some.cname.org", &addr_list[1],
               addr_list[0], netdbCacheLife);
  h = gethostbyname (host_name);
  if (!h)
  {
    fprintf (stderr, "gethostbyname() failed!. h_errno = %d\n", h_errno);
    return (1);
  }
  fprintf (stderr, "Waiting for cache-entry to timeout..");
  Sleep (wait_time);

  fprintf (stderr, "gethostbyname() should do a DNS lookup now.\n");
  h = gethostbyname (host_name);
  if (h)
     fprintf (stderr, "entry didn't timeout!.\n");

#if defined(USE_FORTIFY)
  Fortify_ListAllMemory();
  Fortify_OutputStatistics();
#endif
  return (0);
}
Example #3
0
static void openloghost (void)
{
  struct servent *sp;
  struct hostent *hp;

  if (logSock)
  {
    sock_close (logSock);
    logSock = NULL;
  }

  sp = getservbyname ("syslog", "udp");
  if (sp)
     syslog_port = htons (sp->s_port);

  logHost = _inet_addr (syslog_hostName);
  if (!logHost)
  {
    hp = gethostbyname (syslog_hostName);
    if (!hp)
    {
      fprintf (stderr, "syslog: Unknown host `%s'\n", syslog_hostName);
      return;
    }
    logHost = ntohl (*(DWORD*)hp->h_addr);
  }

  if (!logSock)
  {
    logSock = malloc (sizeof(udp_Socket));
    if (!logSock)
    {
      perror ("syslog");
      return;
    }
  }

  if (!udp_open ((udp_Socket*)logSock, 0, logHost, syslog_port, NULL))
  {
    errno = errno_s = EHOSTUNREACH;  /* "No route to host" (ARP failed) */
    STAT (ipstats.ips_noroute++);
    perror ("syslog");
    sock_close (logSock);
    logSock = NULL;
  }
}
Example #4
0
A_INT32
cmd_ota_fw_upgrade(A_INT32 argc, A_CHAR *argv[])
{
    A_UINT32 ota_server_ip = 0;
    A_CHAR *file_name = NULL;
    A_UINT32 protocol = 0;

    if (argc < 4) {
        return -1;
    }

    ota_server_ip = _inet_addr(argv[1]);

    file_name = argv[2];

    protocol = atoi(argv[3]);

    extern A_INT32 qca_ota_upgrade(A_UINT32 ip_addr, A_CHAR *file_name, A_UINT32 protocol,
                               A_INT32 partition_index);
    return qca_ota_upgrade(ota_server_ip, file_name, protocol, -1);
}
Example #5
0
static void init_tcp_listen_ports()
{
	int32 index = 0;
	const char *port_str;
	while ((port_str = PrefsFindString("tcp_port", index++)) != NULL) {
		uint32 iface = 0;
		char *if_str = strchr(port_str,',');
		if(if_str) {
			*if_str++ = 0;
			uint32 if_net = _inet_addr( if_str );
			if(if_net == INADDR_NONE) if_net = INADDR_ANY;
			iface = ntohl( if_net );
		}
		uint16 port = (uint16)strtoul( port_str, 0, 0 );
		if( port ) {
			uint32 ip = 0;
			bool once = false;
			alloc_listen_socket( port, ip, iface, once );
		}
	}
}
Example #6
0
File: test.c Project: CCQIU/CC
int main (int argc, char * const argv[])
{
	byte_t ip[4] = {116, 31, 119, 0};
	int i = 0;
	setlocale( LC_CTYPE, "chs" ); // 设置当前locale为chs,这在非简体中文平台上不可缺少

	for (i = 0; i < 255; i++)
	{
		int32_t p = _inet_addr(ip[0], ip[1], ip[2], i);
		_tprintf(_T("%d.%d.%d.%d = %ld = "), ip[0], ip[1], ip[2], i, p);
		_tprintf(_T("%d.%d.%d.%d\n"), ((byte_t *)&p)[0], ((byte_t *)&p)[1], ((byte_t *)&p)[2],((byte_t *)&p)[3]);

	}

	while (c != 'q') {
		c = getchar();
		cc_sleep(10);
	}

	return 0;
}