22 lines
534 B
C++
22 lines
534 B
C++
|
#include "VpnPacket.hpp"
|
||
|
|
||
|
const size_t VpnPacket::VPN_HEADER_SIZE = 0;
|
||
|
|
||
|
static const size_t OUTER_HEADERS_SIZE =
|
||
|
40 /* IPv6 header */ + 8 /* UDP header */;
|
||
|
// We use a TUN device, hence we don't have a layer 2 header.
|
||
|
|
||
|
VpnPacket::VpnPacket(size_t mtu)
|
||
|
: _data_space(mtu-OUTER_HEADERS_SIZE), _data_size(0)
|
||
|
{
|
||
|
_data = new char[mtu - OUTER_HEADERS_SIZE];
|
||
|
}
|
||
|
|
||
|
VpnPacket::~VpnPacket() {
|
||
|
delete[] _data;
|
||
|
}
|
||
|
|
||
|
bool VpnPacket::parse_as_ipv6() {
|
||
|
return parse_ipv6_header(get_payload(), get_payload_size(), _ipv6_header);
|
||
|
}
|