--- a/src/lib/datapipeline/src/dppline.c +++ b/src/lib/datapipeline/src/dppline.c @@ -2147,9 +2147,11 @@ static void dppline_add_stat_events(Sts_ ipe->timestamp_ms = cs_rec->ip_event->timestamp; if (cs_rec->ip_event->ip_addr) { - ipe->ip_addr.data = malloc(16); - memcpy(ipe->ip_addr.data, cs_rec->ip_event->ip_addr,16); - ipe->ip_addr.len = 16; + uint8_t ip[IPV4_BYTES_LEN] = {0}; + sscanf(cs_rec->ip_event->ip_addr, "%hhu.%hhu.%hhu.%hhu", &ip[0], &ip[1], &ip[2], &ip[3]); + ipe->ip_addr.data = malloc(IPV4_BYTES_LEN); + memcpy(ipe->ip_addr.data, ip, IPV4_BYTES_LEN); + ipe->ip_addr.len = IPV4_BYTES_LEN; ipe->has_ip_addr = true; } } @@ -2224,10 +2226,11 @@ static void dppline_add_stat_events(Sts_ } if (cs_rec->connect_event->ip_addr) { - coe->ip_addr.data = malloc(16); - memcpy(coe->ip_addr.data, cs_rec->connect_event->ip_addr, - 16); - coe->ip_addr.len = 16; + uint8_t ip[IPV4_BYTES_LEN] = {0}; + sscanf(cs_rec->connect_event->ip_addr, "%hhu.%hhu.%hhu.%hhu", &ip[0], &ip[1], &ip[2], &ip[3]); + coe->ip_addr.data = malloc(IPV4_BYTES_LEN); + memcpy(coe->ip_addr.data, ip, IPV4_BYTES_LEN); + coe->ip_addr.len = IPV4_BYTES_LEN; coe->has_ip_addr = true; }