return g_ntohs(((guint16*) FLX_DNS_PACKET_DATA(p))[index]);
}
-/* Read the first label from string dest, unescape "\" and append it to *name */
-static gchar *unescape_label(gchar *dest, guint size, const gchar **name) {
+/* Read the first label from string *name, unescape "\" and write it to dest */
+gchar *flx_unescape_label(gchar *dest, guint size, const gchar **name) {
guint i = 0;
gchar *d;
guint n;
guint8* prev;
const gchar *pname;
- char label[64];
+ gchar label[64];
/* Check whether we can compress this name. */
pname = name;
- if (!(unescape_label(label, sizeof(label), &name)))
+ if (!(flx_unescape_label(label, sizeof(label), &name)))
goto fail;
if (!(d = flx_dns_packet_append_string(p, label)))
goto fail;
/* g_message("name = %s, rdlength = %u", name, rdlength); */
+
+ *ret_cache_flush = !!(class & FLX_DNS_CACHE_FLUSH);
+ class &= ~ FLX_DNS_CACHE_FLUSH;
start = flx_dns_packet_get_rptr(p);
-
+
r = flx_record_new_full(name, class, type);
switch (type) {
if ((guint8*) flx_dns_packet_get_rptr(p) - (guint8*) start != rdlength)
goto fail;
- *ret_cache_flush = !!(class & FLX_DNS_CACHE_FLUSH);
- class &= ~ FLX_DNS_CACHE_FLUSH;
-
r->ttl = ttl;
return r;