//-------------------------------------------- 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)); }
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); }
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; } }
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); }
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 ); } } }
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; }