static struct { char *set; char *unset; } bitval = { "Set", "Not set" };
-static void dissect_kerberos_udp(tvbuff_t *tvb, packet_info *pinfo,
+static gint dissect_kerberos_udp(tvbuff_t *tvb, packet_info *pinfo,
proto_tree *tree);
static void dissect_kerberos_tcp(tvbuff_t *tvb, packet_info *pinfo,
proto_tree *tree);
return (dissect_kerberos_common(tvb, pinfo, tree, do_col_info, FALSE, cb));
}
-static void
+static gint
dissect_kerberos_udp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{
/* Some weird kerberos implementation apparently do krb4 on the krb5 port.
*/
if(tvb_get_guint8(tvb, 0)<=0x10){
if(krb4_handle){
- call_dissector(krb4_handle, tvb, pinfo, tree);
+ return call_dissector(krb4_handle, tvb, pinfo, tree);
+ }else{
+ return 0;
}
- return;
}
col_set_str(pinfo->cinfo, COL_PROTOCOL, "KRB5");
(void)dissect_kerberos_common(tvb, pinfo, tree, TRUE, FALSE, NULL);
+ return tvb_length(tvb);
}
static gint
krb4_handle = find_dissector("krb4");
- kerberos_handle_udp = create_dissector_handle(dissect_kerberos_udp,
+ kerberos_handle_udp = new_create_dissector_handle(dissect_kerberos_udp,
proto_kerberos);
kerberos_handle_tcp = create_dissector_handle(dissect_kerberos_tcp,
proto_kerberos);