diff options
Diffstat (limited to 'libtransport/src/hicn/transport/core')
-rw-r--r-- | libtransport/src/hicn/transport/core/packet.cc | 8 | ||||
-rw-r--r-- | libtransport/src/hicn/transport/core/packet.h | 2 |
2 files changed, 10 insertions, 0 deletions
diff --git a/libtransport/src/hicn/transport/core/packet.cc b/libtransport/src/hicn/transport/core/packet.cc index de8ede421..954266664 100644 --- a/libtransport/src/hicn/transport/core/packet.cc +++ b/libtransport/src/hicn/transport/core/packet.cc @@ -594,6 +594,14 @@ void Packet::separateHeaderPayload() { packet_->append(header_size); } +void Packet::resetPayload() { + if (packet_->isChained()) { + packet_->separateChain(packet_->next(), packet_->prev()); + payload_head_ = nullptr; + updateLength(); + } +} + } // end namespace core } // end namespace transport diff --git a/libtransport/src/hicn/transport/core/packet.h b/libtransport/src/hicn/transport/core/packet.h index 6d8bc7e0f..4ec93205a 100644 --- a/libtransport/src/hicn/transport/core/packet.h +++ b/libtransport/src/hicn/transport/core/packet.h @@ -178,6 +178,8 @@ class Packet : public std::enable_shared_from_this<Packet> { Packet &setTTL(uint8_t hops); uint8_t getTTL() const; + void resetPayload(); + private: virtual void resetForHash() = 0; void setSignatureSize(std::size_t size_bytes); |