1
0
mirror of https://github.com/mfontanini/libtins synced 2026-01-26 20:01:35 +01:00

RawPDU now can copy the payload. Modified PDU::clone_inner_pdu to use this.

This commit is contained in:
Matias Fontanini
2011-08-16 21:11:42 -03:00
parent e587d18796
commit 3feb2fdeae
3 changed files with 30 additions and 8 deletions

View File

@@ -22,11 +22,18 @@
#include <cassert>
#include <cstring>
#include "rawpdu.h"
#include <iostream>
Tins::RawPDU::RawPDU(uint8_t *payload, uint32_t size) : PDU(255), _payload(payload), _payload_size(size) {
Tins::RawPDU::RawPDU(uint8_t *pload, uint32_t size, bool copy) : PDU(255), _payload(pload), _payload_size(size), _owns_payload(copy) {
if(copy) {
_payload = new uint8_t[size];
std::memcpy(_payload, pload, size);
}
}
Tins::RawPDU::~RawPDU() {
if(_owns_payload)
delete[] _payload;
}
uint32_t Tins::RawPDU::header_size() const {