aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-ipx.c
diff options
context:
space:
mode:
authorRoland Knall <rknall@gmail.com>2022-06-09 22:10:49 +0200
committerRoland Knall <rknall@gmail.com>2022-06-10 09:17:52 +0200
commit0640b711eab0dd6856fd6e003d701334037db5e3 (patch)
tree7228cf366843e09a0048d2fecebc89dc9c33243f /epan/dissectors/packet-ipx.c
parent2cf938cfa89ff56a35812067f024045652c3041b (diff)
tap: Mark filtered packets instead of dropping them
Allows packets to be filtered but marked and not removed from the tap listing. Additionally a total is calculated for all rx/tx frames and bytes
Diffstat (limited to 'epan/dissectors/packet-ipx.c')
-rw-r--r--epan/dissectors/packet-ipx.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/epan/dissectors/packet-ipx.c b/epan/dissectors/packet-ipx.c
index aed4067a64..c7e032639d 100644
--- a/epan/dissectors/packet-ipx.c
+++ b/epan/dissectors/packet-ipx.c
@@ -149,9 +149,11 @@ static const char* ipx_conv_get_filter_type(conv_item_t* conv, conv_filter_type_
static ct_dissector_info_t ipx_ct_dissector_info = {&ipx_conv_get_filter_type};
static tap_packet_status
-ipx_conversation_packet(void *pct, packet_info *pinfo, epan_dissect_t *edt _U_, const void *vip, tap_flags_t flags _U_)
+ipx_conversation_packet(void *pct, packet_info *pinfo, epan_dissect_t *edt _U_, const void *vip, tap_flags_t flags)
{
conv_hash_t *hash = (conv_hash_t*) pct;
+ hash->flags = flags;
+
const ipxhdr_t *ipxh=(const ipxhdr_t *)vip;
add_conversation_table_data(hash, &ipxh->ipx_src, &ipxh->ipx_dst, 0, 0, 1, pinfo->fd->pkt_len, &pinfo->rel_ts, &pinfo->abs_ts, &ipx_ct_dissector_info, ENDPOINT_NONE);
@@ -170,9 +172,11 @@ static const char* ipx_host_get_filter_type(hostlist_talker_t* host, conv_filter
static hostlist_dissector_info_t ipx_host_dissector_info = {&ipx_host_get_filter_type};
static tap_packet_status
-ipx_hostlist_packet(void *pit, packet_info *pinfo, epan_dissect_t *edt _U_, const void *vip, tap_flags_t flags _U_)
+ipx_hostlist_packet(void *pit, packet_info *pinfo, epan_dissect_t *edt _U_, const void *vip, tap_flags_t flags)
{
conv_hash_t *hash = (conv_hash_t*) pit;
+ hash->flags = flags;
+
const ipxhdr_t *ipxh=(const ipxhdr_t *)vip;
/* Take two "add" passes per packet, adding for each direction, ensures that all