From 311ecf9afb7b28ea51906854c8cbca617e2d0d06 Mon Sep 17 00:00:00 2001
From: Jan Vcelak <jan.vcelak@nic.cz>
Date: Thu, 4 Sep 2014 18:01:33 +0200
Subject: [PATCH] rrset-wire: merge NAPTR size computation and writing

---
 src/libknot/packet/rrset-wire.c | 25 ++++++++-----------------
 1 file changed, 8 insertions(+), 17 deletions(-)

diff --git a/src/libknot/packet/rrset-wire.c b/src/libknot/packet/rrset-wire.c
index e33ec2a4e9..594f55eebf 100644
--- a/src/libknot/packet/rrset-wire.c
+++ b/src/libknot/packet/rrset-wire.c
@@ -104,12 +104,15 @@ static int write_rdata_fixed(const uint8_t **src, size_t *src_avail,
 }
 
 /*!
- * \brief Compute size of NAPTR RDATA header.
+ * \brief Write NAPTR RDATA header.
  */
-static size_t naptr_header_size(const uint8_t **src, size_t *src_avail)
+static int write_rdata_naptr_header(const uint8_t **src, size_t *src_avail,
+                                    uint8_t **dst, size_t *dst_avail)
 {
 	assert(src && *src);
 	assert(src_avail);
+	assert(dst && *dst);
+	assert(dst_avail);
 
 	size_t size = 0;
 
@@ -122,27 +125,15 @@ static size_t naptr_header_size(const uint8_t **src, size_t *src_avail)
 	for (int i = 0; i < 3; i++) {
 		const uint8_t *len_ptr = *src + size;
 		if (len_ptr >= *src + *src_avail) {
-			return 0;
+			return KNOT_EMALF;
 		}
 
 		size += 1 + *len_ptr;
 	}
 
-	return size;
-}
-
-/*!
- * \brief Write NAPTR RDATA header.
- */
-static int write_rdata_naptr_header(const uint8_t **src, size_t *src_avail,
-                                    uint8_t **wire, size_t *wire_avail)
-{
-	size_t size = naptr_header_size(src, src_avail);
-	if (size == 0) {
-		return KNOT_EMALF;
-	}
+	/* Copy the data */
 
-	return write_rdata_fixed(src, src_avail, wire, wire_avail, size);
+	return write_rdata_fixed(src, src_avail, dst, dst_avail, size);
 }
 
 /*!
-- 
GitLab