}
int offset = (type & PKT_MAC) ? 0 : 14;
+ offset = 0; //TODO: This is just a dirty hack. We dont have IP packets inside libmeshlink
if(type & PKT_COMPRESSED) {
length_t ulen = uncompress_packet(inpkt.data + offset, (const uint8_t *)data, len, from->incompression);
if(ulen < 0) {
inpkt.len = len + offset;
}
- /* Generate the Ethernet packet type if necessary */
- if(offset) {
- switch(inpkt.data[14] >> 4) {
- case 4:
- inpkt.data[12] = 0x08;
- inpkt.data[13] = 0x00;
- break;
- case 6:
- inpkt.data[12] = 0x86;
- inpkt.data[13] = 0xDD;
- break;
- default:
- logger(DEBUG_TRAFFIC, LOG_ERR,
- "Unknown IP version %d while reading packet from %s (%s)",
- inpkt.data[14] >> 4, from->name, from->hostname);
- return false;
- }
- }
-
receive_packet(from, &inpkt);
return true;
}