From dd75a94e181c2d5f05d9ad518e0f476dee098f87 Mon Sep 17 00:00:00 2001 From: Jan Kadlec <jan.kadlec@nic.cz> Date: Tue, 8 Apr 2014 15:57:35 +0200 Subject: [PATCH] new_node: Removed from/to wire cruft from rrset.c. --- src/libknot/rrset.c | 118 +++++--------------------------------------- 1 file changed, 12 insertions(+), 106 deletions(-) diff --git a/src/libknot/rrset.c b/src/libknot/rrset.c index d447d026d..c123d0923 100644 --- a/src/libknot/rrset.c +++ b/src/libknot/rrset.c @@ -192,7 +192,6 @@ static int knot_rrset_rdata_to_wire_one(const knot_rrset_t *rrset, for (int i = 0; desc->block_types[i] != KNOT_RDATA_WF_END; i++) { int item = desc->block_types[i]; if (compr && descriptor_item_is_compr_dname(item)) { - dbg_packet("%s: putting compressed name\n", __func__); const knot_dname_t *dname = rdata + offset; int ret = knot_compr_put_dname(dname, *pos, max_size - size - rdlength, @@ -204,25 +203,12 @@ static int knot_rrset_rdata_to_wire_one(const knot_rrset_t *rrset, if (!knot_pkt_compr_hint(compr->rrinfo, hint_id)) { knot_pkt_compr_hint_set(compr->rrinfo, hint_id, compr->wire_pos, ret); } - assert(ret + size + rdlength <= max_size); -dbg_response_exec_detail( - char *name = knot_dname_to_str(dname); - dbg_response_detail("Compressed dname=%s size: %d\n", - name, ret); - free(name); -); *pos += ret; rdlength += ret; offset += knot_dname_size(dname); compr->wire_pos += ret; } else if (descriptor_item_is_dname(item)) { - dbg_packet("%s: putting uncompressed name\n", __func__); const knot_dname_t *dname = rdata + offset; -dbg_rrset_exec_detail( - char *name = knot_dname_to_str(dname); - dbg_rrset_detail("Saving this DNAME=%s\n", name); - free(name); -); // save whole domain name size_t maxb = max_size - size - rdlength; int dname_size = knot_dname_to_wire(*pos, dname, maxb); @@ -232,8 +218,6 @@ dbg_rrset_exec_detail( if (compr && !knot_pkt_compr_hint(compr->rrinfo, hint_id)) { knot_pkt_compr_hint_set(compr->rrinfo, hint_id, compr->wire_pos, dname_size); } - dbg_rrset_detail("Uncompressed dname size: %d\n", - dname_size); *pos += dname_size; rdlength += dname_size; offset += dname_size; @@ -241,8 +225,6 @@ dbg_rrset_exec_detail( compr->wire_pos += dname_size; } } else if (descriptor_item_is_fixed(item)) { - dbg_rrset_detail("Saving static chunk, size=%d\n", - item); /* Fixed length chunk. */ if (size + rdlength + item > max_size) { return KNOT_ESPACE; @@ -259,13 +241,7 @@ dbg_rrset_exec_detail( size_t remainder_size = rrset_rdata_remainder_size(rrset, offset, rdata_pos); - dbg_rrset_detail("Saving remaining chunk, size=%zu, " - "size with remainder=%zu\n", - remainder_size, - size + rdlength + remainder_size); if (size + rdlength + remainder_size > max_size) { - dbg_rrset("rr: to_wire: Remainder does not fit " - "to wire.\n"); return KNOT_ESPACE; } memcpy(*pos, rdata + offset, remainder_size); @@ -281,8 +257,6 @@ dbg_rrset_exec_detail( uint16_t chunk_size = rrset_rdata_naptr_bin_chunk_size(rrset, rdata_pos); if (size + rdlength + chunk_size > max_size) { - dbg_rrset("rr: to_wire: NAPTR chunk does not " - "fit to wire.\n"); return KNOT_ESPACE; } memcpy(*pos, rdata + offset, chunk_size); @@ -299,7 +273,6 @@ dbg_rrset_exec_detail( size += rdlength; *knot_rr_size = size; - dbg_packet("%s: written rrset %zu bytes\n", __func__, *knot_rr_size); assert(size <= max_size); return KNOT_EOK; } @@ -354,12 +327,9 @@ static int knot_rrset_to_wire_aux(const knot_rrset_t *rrset, uint8_t **pos, return size; } -static int knot_rrset_rdata_store_binary(uint8_t *rdata, size_t *offset, - size_t packet_offset, - const uint8_t *wire, - size_t *pos, - size_t rdlength, - size_t size) +static int binary_store(uint8_t *rdata, size_t *offset, size_t packet_offset, + const uint8_t *wire, size_t *pos, size_t rdlength, + size_t size) { assert(rdata); assert(wire); @@ -516,10 +486,6 @@ int knot_rrset_rdata_from_wire_one(knot_rrset_t *rrset, return ret; } - dbg_rrset_detail("rr: parse_rdata_wire: Parsing RDATA of size=%zu," - " wire_size=%zu, type=%d.\n", rdlength, total_size, - rrset->type); - const rdata_descriptor_t *desc = get_rdata_descriptor(rrset->type); /* Check for obsolete record. */ @@ -527,10 +493,6 @@ int knot_rrset_rdata_from_wire_one(knot_rrset_t *rrset, desc = get_obsolete_rdata_descriptor(rrset->type); } - /*! \todo This estimate is very rough - just to have enough space for - * possible unpacked dname. Should be later replaced by exact - * size counting. - */ uint8_t rdata_buffer[rdlength + KNOT_DNAME_MAXLEN]; memset(rdata_buffer, 0, rdlength + KNOT_DNAME_MAXLEN); @@ -538,13 +500,6 @@ int knot_rrset_rdata_from_wire_one(knot_rrset_t *rrset, size_t parsed = 0; // actual count of parsed octets const size_t packet_offset = *pos; - /*! \todo [RRSet refactor] - * This could be A LOT simpler - copy it as a whole, - * unpack dnames and just do some format checks if necessary. - * But it's questionable, if copying the memory when unpacking - * dnames, wouldn't be too expensive. - */ - for (int i = 0; desc->block_types[i] != KNOT_RDATA_WF_END && parsed < rdlength; ++i) { const int item = desc->block_types[i]; @@ -564,51 +519,21 @@ int knot_rrset_rdata_from_wire_one(knot_rrset_t *rrset, parsed += wire_size; -dbg_rrset_exec_detail( - dbg_rrset_detail("rr: parse_rdata_wire: Parsed DNAME, " - "length=%d.\n", wire_size); - char *name = knot_dname_to_str(rdata_buffer + offset); - dbg_rrset_detail("rr: parse_rdata_wire: Parsed " - "DNAME=%s\n", name); - free(name); -); *pos += wire_size; offset += unpacked_size; } else if (descriptor_item_is_fixed(item)) { - dbg_rrset_detail("rr: parse_rdata_wire: Saving static " - "chunk of size=%u\n", item); - int ret = knot_rrset_rdata_store_binary(rdata_buffer, - &offset, - packet_offset, - wire, - pos, - rdlength, - item); + int ret = binary_store(rdata_buffer, &offset, packet_offset, + wire, pos, rdlength, item); if (ret != KNOT_EOK) { - dbg_rrset("rrset: rdata_from_wire: " - "Cannot store fixed RDATA chunk. " - "Reason: %s.\n", knot_strerror(ret)); return ret; } parsed += item; } else if (descriptor_item_is_remainder(item)) { /* Item size has to be calculated. */ size_t remainder_size = rdlength - parsed; - dbg_rrset_detail("rr: parse_rdata_wire: Saving remaining " - "chunk of size=%zu\n", remainder_size); - int ret = knot_rrset_rdata_store_binary(rdata_buffer, - &offset, - packet_offset, - wire, - pos, - rdlength, - remainder_size); + int ret = binary_store(rdata_buffer, &offset, packet_offset, + wire, pos, rdlength, remainder_size); if (ret != KNOT_EOK) { - dbg_rrset("rrset: rdata_from_wire: " - "Cannot store RDATA remainder of " - "size=%zu, RDLENGTH=%zu. " - "Reason: %s.\n", remainder_size, - rdlength, knot_strerror(ret)); return ret; } parsed += remainder_size; @@ -616,38 +541,19 @@ dbg_rrset_exec_detail( assert(rrset->type == KNOT_RRTYPE_NAPTR); /* Read fixed part - 2 shorts. */ const size_t naptr_fixed_part_size = 4; - int ret = knot_rrset_rdata_store_binary(rdata_buffer, - &offset, - packet_offset, - wire, - pos, - rdlength, - naptr_fixed_part_size); + int ret = binary_store(rdata_buffer, &offset, packet_offset, + wire, pos, rdlength, naptr_fixed_part_size); if (ret != KNOT_EOK) { - dbg_rrset("rrset: rdata_from_wire: " - "Cannot store NAPTR fixed part. " - "Reason: %s.\n", knot_strerror(ret)); return ret; } parsed += naptr_fixed_part_size; for (int j = 0; j < 3; ++j) { /* Read sizes of TXT's - one byte. */ uint8_t txt_size = *(wire + (*pos)) + 1; - dbg_rrset_detail("rrset: rdata_from_wire: " - "Read TXT nr=%d size=%d\n", j, - txt_size); - int ret = knot_rrset_rdata_store_binary(rdata_buffer, - &offset, - packet_offset, - wire, - pos, - rdlength, - txt_size); + int ret = binary_store(rdata_buffer, &offset, + packet_offset, wire, pos, + rdlength, txt_size); if (ret != KNOT_EOK) { - dbg_rrset("rrset: rdata_from_wire: " - "Cannot store NAPTR TXTs. " - "Reason: %s.\n", knot_strerror(ret)); - return ret; } parsed += txt_size; } -- GitLab