From 897b0bc3b0bc832c865e34f5ce6d7b3c3909613a Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov Date: Wed, 2 Apr 2014 17:24:26 +0100 Subject: [PATCH] Fix some bugs. --- src/compression.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/compression.c b/src/compression.c index 04eb374..40bffc9 100644 --- a/src/compression.c +++ b/src/compression.c @@ -22,6 +22,7 @@ */ #include "compression.h" +#include "logger.h" static struct rdns_compression_entry * rdns_can_compress (const char *pos, struct rdns_compression_entry *comp) @@ -44,6 +45,7 @@ rdns_calculate_label_len (const char *pos, const char *end) break; } res ++; + p ++; } return res; } @@ -91,7 +93,7 @@ rdns_write_name_compressed (struct rdns_request *req, uint16_t pointer; while (pos < end && remain > 0) { - if (head == NULL) { + if (head != NULL) { test = rdns_can_compress (pos, head); if (test != NULL) { if (remain < 2) { @@ -99,7 +101,7 @@ rdns_write_name_compressed (struct rdns_request *req, return false; } - pointer = htons ((uint16_t)test->offset | DNS_COMPRESSION_BITS); + pointer = htons ((uint16_t)test->offset) | DNS_COMPRESSION_BITS; memcpy (target, &pointer, sizeof (pointer)); req->pos += 2;