diff options
author | Lennart Poettering <lennart@poettering.net> | 2005-03-26 18:37:06 +0000 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2005-03-26 18:37:06 +0000 |
commit | 4aa744ffac20c7b5e18cb3b23e5dbac8221c0043 (patch) | |
tree | e6397080bcf8c2a0b69aeff02d59b82a6513de8a /dns.c | |
parent | 8e7f83aa5b6d910e80c56b31f4eb79b02e7ca67b (diff) |
* add todo list
* beef up packet scheduler
git-svn-id: file:///home/lennart/svn/public/avahi/trunk@18 941a03a8-eaeb-0310-b9a0-b1bbd8fe43fe
Diffstat (limited to 'dns.c')
-rw-r--r-- | dns.c | 15 |
1 files changed, 10 insertions, 5 deletions
@@ -131,7 +131,7 @@ guint8 *flx_dns_packet_append_bytes(flxDnsPacket *p, gconstpointer b, guint l) g_assert(p); g_assert(b); g_assert(l); - + if (!(d = flx_dns_packet_extend(p, l))) return NULL; @@ -373,9 +373,14 @@ flxRecord* flx_dns_packet_consume_record(flxDnsPacket *p, gboolean *ret_cache_fl } default: - if (!(data = flx_dns_packet_get_rptr(p)) || - flx_dns_packet_skip(p, rdlength) < 0) - return NULL; + + if (rdlength > 0) { + + if (!(data = flx_dns_packet_get_rptr(p)) || + flx_dns_packet_skip(p, rdlength) < 0) + return NULL; + } else + data = NULL; break; } @@ -462,7 +467,7 @@ guint8* flx_dns_packet_append_record(flxDnsPacket *p, flxRecord *r, gboolean cac default: if (!flx_dns_packet_append_uint16(p, r->size) || - !flx_dns_packet_append_bytes(p, r->data, r->size)) + (r->size != 0 && !flx_dns_packet_append_bytes(p, r->data, r->size))) return NULL; } |