diff options
author | Roland Knall <rknall@gmail.com> | 2022-06-09 22:10:49 +0200 |
---|---|---|
committer | Roland Knall <rknall@gmail.com> | 2022-06-10 09:17:52 +0200 |
commit | 0640b711eab0dd6856fd6e003d701334037db5e3 (patch) | |
tree | 7228cf366843e09a0048d2fecebc89dc9c33243f /epan/dissectors/packet-ipx.c | |
parent | 2cf938cfa89ff56a35812067f024045652c3041b (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.c | 8 |
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 |