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