1
0
mirror of https://github.com/mfontanini/libtins synced 2026-01-23 02:35:57 +01:00

Fixed TCP checksum. Documented pdu.h.

This commit is contained in:
Matias
2011-08-12 20:17:21 -03:00
parent d59cec94b6
commit 2cdf0f6b29
7 changed files with 124 additions and 34 deletions

View File

@@ -52,16 +52,16 @@ void Tins::PDU::inner_pdu(PDU *next_pdu) {
uint8_t *Tins::PDU::serialize(uint32_t &sz) {
sz = size();
uint8_t *buffer = new uint8_t[sz];
serialize(buffer, sz);
serialize(buffer, sz, 0);
return buffer;
}
void Tins::PDU::serialize(uint8_t *buffer, uint32_t total_sz) {
void Tins::PDU::serialize(uint8_t *buffer, uint32_t total_sz, PDU *parent) {
uint32_t sz = header_size() + trailer_size();
/* Must not happen... */
assert(total_sz >= sz);
if(_inner_pdu)
_inner_pdu->serialize(buffer + header_size(), total_sz - sz);
write_serialization(buffer, total_sz);
_inner_pdu->serialize(buffer + header_size(), total_sz - sz, this);
write_serialization(buffer, total_sz, parent);
}