in Sources/aliyun-log-c-sdk/log_producer_sender.c [52:82]
void pb_to_webtracking(lz4_log_buf *lz4_buf, lz4_log_buf **new_lz4_buf)
{
aos_debug_log("[sender] pb_to_webtracking start.");
char * buf = (char *)malloc(lz4_buf->raw_length);
if (LOG_LZ4_decompress_safe((const char* )lz4_buf->data, buf, lz4_buf->length, lz4_buf->raw_length) <= 0)
{
free(buf);
aos_fatal_log("[sender] pb_to_webtracking, LOG_LZ4_decompress_safe error");
return;
}
size_t len = serialize_pb_buffer_to_webtracking(buf, lz4_buf->raw_length, &buf);
int compress_bound = LOG_LZ4_compressBound(len);
char *compress_data = (char *)malloc(compress_bound);
int compressed_size = LOG_LZ4_compress_default((char *)buf, compress_data, len, compress_bound);
if(compressed_size <= 0)
{
aos_fatal_log("[sender] pb_to_webtracking, LOG_LZ4_compress_default error");
free(buf);
free(compress_data);
return;
}
*new_lz4_buf = (lz4_log_buf*)malloc(sizeof(lz4_log_buf) + compressed_size);
(*new_lz4_buf)->length = compressed_size;
(*new_lz4_buf)->raw_length = len;
memcpy((*new_lz4_buf)->data, compress_data, compressed_size);
free(buf);
free(compress_data);
aos_debug_log("[sender] pb_to_webtracking end.");
}