From 6d7704c1b497341fd6dd3c27e3f64d0db062ccc2 Mon Sep 17 00:00:00 2001 From: Mauro Sardara Date: Mon, 4 Feb 2019 11:06:18 +0100 Subject: [HICN-11] Rework on transport protocols improving components modularity Change-Id: I6683ec5b494238dc93591c103d25275e89b9f267 Signed-off-by: Mauro Sardara --- libtransport/src/hicn/transport/core/packet.cc | 26 +++++++------------------- 1 file changed, 7 insertions(+), 19 deletions(-) (limited to 'libtransport/src/hicn/transport/core/packet.cc') diff --git a/libtransport/src/hicn/transport/core/packet.cc b/libtransport/src/hicn/transport/core/packet.cc index b3e5526ab..ec99bb3f7 100644 --- a/libtransport/src/hicn/transport/core/packet.cc +++ b/libtransport/src/hicn/transport/core/packet.cc @@ -80,7 +80,7 @@ Packet::Packet(const uint8_t *buffer, std::size_t size) Packet::Packet(Packet &&other) : packet_(std::move(other.packet_)), - packet_start_(packet_->writableData()), + packet_start_(other.packet_start_), header_head_(other.header_head_), payload_head_(other.payload_head_), format_(other.format_) { @@ -269,7 +269,7 @@ void Packet::dump() const { std::cout << std::endl << "PAYLOAD -- Length: " << payloadSize() << std::endl; for (utils::MemBuf *current = payload_head_; current && current != header_head_; current = current->next()) { - std::cout << "First MemBuf Length: " << current->length() << std::endl; + std::cout << "MemBuf Length: " << current->length() << std::endl; hicn_packet_dump((uint8_t *)current->data(), current->length()); } } @@ -310,17 +310,6 @@ std::size_t Packet::getSignatureSize() const { return size_bytes; } -void Packet::setSignature(std::unique_ptr &&signature) { - // Check if packet already contains a signature - auto header = header_head_->next(); - while (header != payload_head_) { - header->unlink(); - header = header->next(); - } - - appendHeader(std::move(signature)); -} - void Packet::setSignatureTimestamp(const uint64_t ×tamp) { int ret = hicn_packet_set_signature_timestamp( format_, (hicn_header_t *)packet_start_, timestamp); @@ -397,12 +386,11 @@ utils::CryptoHash Packet::computeDigest(HashAlgorithm algorithm) const { const_cast(this)->resetForHash(); - std::size_t payload_len = getPayloadSizeFromBuffer(format_, packet_start_); - std::size_t header_length = getHeaderSizeFromFormat(format_); - std::size_t signature_size = _is_ah(format_) ? getSignatureSize() : 0; - - hasher.updateBytes(packet_start_, - payload_len + header_length + signature_size); + auto current = header_head_; + do { + hasher.updateBytes(current->data(), current->length()); + current = current->next(); + } while (current != header_head_); hicn_packet_copy_header(format_, &header_copy, (hicn_header_t *)packet_start_, false); -- cgit 1.2.3-korg