fix: update serialization and deserialization for next_ip in device_info

Signed-off-by: DeEMO <yzzxrx@gmail.com>
This commit is contained in:
DeEMO 2025-05-16 15:26:16 +08:00
parent 4b36aef157
commit 0ad009a2f4

View file

@ -2358,15 +2358,17 @@ size_t serialize(const struct device_info * dev_info, char ** buffer) {
// calculate total size for serialized buffer
size_t device_name_len = strlen(dev_info->device_name) + 1;
size_t device_os_len = strlen(dev_info->device_os) + 1;
size_t next_ip_len = strlen(dev_info->next_ip) + 1;
size_t cpu_name_len = strlen(dev_info->cpu_props.name) + 1;
size_t cpu_description_len = strlen(dev_info->cpu_props.description) + 1;
size_t gpu_name_len = strlen(dev_info->gpu_props.name) + 1;
size_t gpu_description_len = strlen(dev_info->gpu_props.description) + 1;
size_t total_size = sizeof(uint32_t)
+ sizeof(size_t) * 6 // for lengths of strings
+ sizeof(size_t) * 7 // for lengths of strings
+ device_name_len
+ device_os_len
+ next_ip_len
+ cpu_name_len
+ cpu_description_len
+ gpu_name_len
@ -2426,6 +2428,11 @@ size_t serialize(const struct device_info * dev_info, char ** buffer) {
memcpy(ptr, dev_info->device_os, device_os_len);
ptr += device_os_len;
memcpy(ptr, &next_ip_len, sizeof(size_t));
ptr += sizeof(size_t);
memcpy(ptr, dev_info->next_ip, next_ip_len);
ptr += next_ip_len;
memcpy(ptr, &cpu_name_len, sizeof(size_t));
ptr += sizeof(size_t);
memcpy(ptr, dev_info->cpu_props.name, cpu_name_len);
@ -2611,6 +2618,14 @@ void deserialize(const char * buffer, struct device_info * dev_info) {
memcpy(const_cast<void*>(static_cast<const void*>(dev_info->device_os)), ptr, device_os_len);
ptr += device_os_len;
// next ip
size_t next_ip_len;
memcpy(&next_ip_len, ptr, sizeof(size_t));
ptr += sizeof(size_t);
dev_info->next_ip = (char *)malloc(next_ip_len);
memcpy(const_cast<void*>(static_cast<const void*>(dev_info->next_ip)), ptr, next_ip_len);
ptr += next_ip_len;
// cpu_props.name
size_t cpu_name_len;
memcpy(&cpu_name_len, ptr, sizeof(size_t));