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