/* Given a circuit type and ID for a packet, search for a matching circuit and, if found and it has a circuit dissector, call that dissector and return TRUE, otherwise return FALSE.  */
gboolean try_circuit_dissector(circuit_type ctype, guint32 circuit_id, guint32 frame, tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
/* Given a circuit type and ID for a packet, search for a matching circuit and, if found and it has a circuit dissector, call that dissector and return TRUE, otherwise return FALSE.  */
gboolean try_circuit_dissector(circuit_type ctype, guint32 circuit_id, guint32 frame, tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
{
	circuit_t *circuit;
	circuit = find_circuit(ctype, circuit_id, frame);
	if (circuit != NULL) {
		if (circuit->dissector_handle == NULL)
			return FALSE;
		call_dissector_with_data(circuit->dissector_handle, tvb, pinfo,
		    tree, data);
		return TRUE;
	}
	return FALSE;
}