From 5694b39b8d44d8aa362cfde20346346760116a36 Mon Sep 17 00:00:00 2001
From: Marek Vavrusa <marek.vavrusa@nic.cz>
Date: Mon, 27 May 2013 13:15:56 +0200
Subject: [PATCH] Do not store names that are already fully covered in
 compr.tbl.

This prevents storing compression pointers in compression table
which is useless anyway.

fixes #2475

Change-Id: I98542b687f885fa306bff78c54544be00444d8b5
---
 src/libknot/packet/response.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/libknot/packet/response.c b/src/libknot/packet/response.c
index 02c8ce28df..e038371aa0 100644
--- a/src/libknot/packet/response.c
+++ b/src/libknot/packet/response.c
@@ -140,8 +140,9 @@ int knot_response_compress_dname(const knot_dname_t *dname, knot_compr_t *compr,
 		written += 1;
 	}
 
-	/* Do not insert if exceeds bounds. */
-	if (compr->wire_pos > KNOT_WIRE_PTR_MAX)
+	/* Do not insert if exceeds bounds or full match. */
+	if (match.lbcount == dname->label_count ||
+	    compr->wire_pos > KNOT_WIRE_PTR_MAX)
 		return written;
 
 	/* If table is full, elect name from the lower 1/4 of the table
-- 
GitLab