Support struct tunnel

This commit is contained in:
luwenpeng
2024-06-17 11:41:21 +08:00
parent de4c15f43c
commit 327d6e7b14
9 changed files with 205 additions and 28 deletions

View File

@@ -1,23 +1,16 @@
#include "packet_priv.h"
#include "packet_utils.h"
int packet_get_layer(const struct packet *pkt, int idx, struct layer *out)
{
if (pkt == NULL || out == NULL)
const struct raw_layer *raw = packet_get_raw_layer(pkt, idx);
if (raw == NULL)
{
return -1;
}
if (idx < 0 || idx >= pkt->layers_used)
else
{
return -1;
layer_convert(raw, out);
return 0;
}
const struct raw_layer *raw = &pkt->layers[idx];
out->proto = raw->proto;
out->header_len = raw->hdr_len;
out->payload_len = raw->pld_len;
out->header.raw = raw->hdr_ptr;
out->payload = raw->pld_ptr;
return 0;
}