Provide more information in `ares_txt_reply` to coalesce chunks from the
same record into one string.
fix #7367
struct ares_txt_reply *next;
unsigned char *txt;
size_t length; /* length excludes null termination */
+ unsigned char record_start; /* 1 - if start of new record
+ * 0 - if a chunk in the same record */
};
struct ares_naptr_reply {
break;
}
- ++strptr;
-
/* Allocate storage for this TXT answer appending it to the list */
txt_curr = ares_malloc_data(ARES_DATATYPE_TXT_REPLY);
if (!txt_curr)
}
txt_last = txt_curr;
+ txt_curr->record_start = strptr == aptr;
txt_curr->length = substr_len;
txt_curr->txt = malloc (substr_len + 1/* Including null byte */);
if (txt_curr->txt == NULL)
status = ARES_ENOMEM;
break;
}
+
+ ++strptr;
memcpy ((char *) txt_curr->txt, strptr, substr_len);
/* Make sure we NULL-terminate */