aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-ax25-kiss.c
diff options
context:
space:
mode:
Diffstat (limited to 'epan/dissectors/packet-ax25-kiss.c')
-rw-r--r--epan/dissectors/packet-ax25-kiss.c22
1 files changed, 11 insertions, 11 deletions
diff --git a/epan/dissectors/packet-ax25-kiss.c b/epan/dissectors/packet-ax25-kiss.c
index e355bd15d0..aa5a26f808 100644
--- a/epan/dissectors/packet-ax25-kiss.c
+++ b/epan/dissectors/packet-ax25-kiss.c
@@ -178,35 +178,36 @@ static const value_string kiss_frame_types[] = {
{ 0, NULL }
};
-static void
+static gboolean
capture_ax25_kiss( const guchar *pd, int offset, int len, packet_counts *ld, const union wtap_pseudo_header *pseudo_header _U_)
{
int l_offset;
guint8 kiss_cmd;
if ( ! BYTES_ARE_IN_FRAME( offset, len, KISS_HEADER_SIZE ) )
- {
- ld->other++;
- return;
- }
+ return FALSE;
l_offset = offset;
kiss_cmd = pd[ l_offset ];
l_offset += KISS_HEADER_SIZE; /* step over kiss header */
switch ( kiss_cmd & KISS_CMD_MASK )
- {
- case KISS_DATA_FRAME : capture_ax25( pd, l_offset, len, ld, pseudo_header ); break;
+ {
+ case KISS_DATA_FRAME :
+ return capture_ax25( pd, l_offset, len, ld, pseudo_header );
case KISS_TXDELAY : break;
case KISS_PERSISTENCE : break;
case KISS_SLOT_TIME : break;
case KISS_TXTAIL : break;
case KISS_FULLDUPLEX : break;
case KISS_SETHARDWARE : break;
- case KISS_DATA_FRAME_ACK: l_offset += 2; capture_ax25( pd, l_offset, len, ld, pseudo_header ); break;
+ case KISS_DATA_FRAME_ACK:
+ l_offset += 2;
+ return capture_ax25( pd, l_offset, len, ld, pseudo_header );
case KISS_POLL_MODE : break;
case KISS_RETURN : break;
default : break;
- }
+ }
+ return FALSE;
}
/* Code to actually dissect the packets */
@@ -432,8 +433,6 @@ proto_register_ax25_kiss(void)
proto_register_field_array( proto_ax25_kiss, hf, array_length( hf ) );
proto_register_subtree_array( ett, array_length( ett ) );
- register_capture_dissector(WTAP_ENCAP_AX25_KISS, capture_ax25_kiss, proto_ax25_kiss);
-
/* Register preferences module */
ax25_kiss_module = prefs_register_protocol( proto_ax25_kiss, NULL);
@@ -448,6 +447,7 @@ void
proto_reg_handoff_ax25_kiss(void)
{
dissector_add_uint( "wtap_encap", WTAP_ENCAP_AX25_KISS, kiss_handle );
+ register_capture_dissector("wtap_encap", WTAP_ENCAP_AX25_KISS, capture_ax25_kiss, proto_ax25_kiss);
/* only currently implemented for AX.25 */
ax25_handle = find_dissector( "ax25" );