summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--epan/dissectors/packet-exported_pdu.c1
-rw-r--r--epan/dissectors/packet-logcat.c15
-rw-r--r--epan/exported_pdu.h1
-rw-r--r--ui/gtk/export_pdu_dlg.c1
4 files changed, 18 insertions, 0 deletions
diff --git a/epan/dissectors/packet-exported_pdu.c b/epan/dissectors/packet-exported_pdu.c
index debe9d649f..8c4ed54403 100644
--- a/epan/dissectors/packet-exported_pdu.c
+++ b/epan/dissectors/packet-exported_pdu.c
@@ -350,6 +350,7 @@ proto_register_exported_pdu(void)
register_tap(EXPORT_PDU_TAP_NAME_LAYER_3);
register_tap(EXPORT_PDU_TAP_NAME_LAYER_7);
register_tap(EXPORT_PDU_TAP_NAME_DVB_CI);
+ register_tap(EXPORT_PDU_TAP_NAME_LOGCAT);
}
void
diff --git a/epan/dissectors/packet-logcat.c b/epan/dissectors/packet-logcat.c
index b7e79cd6fd..9e7660d778 100644
--- a/epan/dissectors/packet-logcat.c
+++ b/epan/dissectors/packet-logcat.c
@@ -26,6 +26,8 @@
#include <epan/packet.h>
#include <epan/expert.h>
+#include <epan/exported_pdu.h>
+#include <epan/tap.h>
static int proto_logcat = -1;
@@ -48,6 +50,8 @@ static gint ett_logcat_timestamp = -1;
static dissector_handle_t logcat_handle;
+static gint exported_pdu_tap = -1;
+
static expert_field ei_invalid_payload_length = EI_INIT;
static const value_string priority_vals[] = {
@@ -171,6 +175,15 @@ dissect_logcat(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _
if (length != check_length)
proto_tree_add_expert(maintree, pinfo, &ei_invalid_payload_length, tvb, offset, tvb_length_remaining(tvb, offset));
+ if (have_tap_listener(exported_pdu_tap)) {
+ exp_pdu_data_t *exp_pdu_data;
+
+ exp_pdu_data = load_export_pdu_tags(pinfo, "logcat", -1, EXP_PDU_TAG_END_OF_OPT);
+ exp_pdu_data->tvb_length = tvb_length(tvb);
+ exp_pdu_data->pdu_tvb = tvb;
+ tap_queue_packet(exported_pdu_tap, pinfo, exp_pdu_data);
+ }
+
return offset;
}
@@ -269,6 +282,8 @@ void
proto_reg_handoff_logcat(void)
{
dissector_add_handle("tcp.port", logcat_handle);
+
+ exported_pdu_tap = find_tap_id(EXPORT_PDU_TAP_NAME_LOGCAT);
}
/*
diff --git a/epan/exported_pdu.h b/epan/exported_pdu.h
index a69ad3d58c..34d136a54b 100644
--- a/epan/exported_pdu.h
+++ b/epan/exported_pdu.h
@@ -40,6 +40,7 @@
#define EXPORT_PDU_TAP_NAME_LAYER_3 "OSI layer 3"
#define EXPORT_PDU_TAP_NAME_LAYER_7 "OSI layer 7"
#define EXPORT_PDU_TAP_NAME_DVB_CI "DVB-CI"
+#define EXPORT_PDU_TAP_NAME_LOGCAT "Logcat"
/**
* This struct is used as the data part of tap_queue_packet() and contains a
diff --git a/ui/gtk/export_pdu_dlg.c b/ui/gtk/export_pdu_dlg.c
index 07859a8606..3c4c1ea13a 100644
--- a/ui/gtk/export_pdu_dlg.c
+++ b/ui/gtk/export_pdu_dlg.c
@@ -154,6 +154,7 @@ export_pdu_show_cb(GtkWidget *w _U_, gpointer d _U_)
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(exp_pdu_dlg_data->tap_name_widget), EXPORT_PDU_TAP_NAME_LAYER_7);
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(exp_pdu_dlg_data->tap_name_widget), EXPORT_PDU_TAP_NAME_LAYER_3);
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(exp_pdu_dlg_data->tap_name_widget), EXPORT_PDU_TAP_NAME_DVB_CI);
+ gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(exp_pdu_dlg_data->tap_name_widget), EXPORT_PDU_TAP_NAME_LOGCAT);
gtk_combo_box_set_active(GTK_COMBO_BOX(exp_pdu_dlg_data->tap_name_widget), 0);
ws_gtk_grid_attach_defaults(GTK_GRID(grid), exp_pdu_dlg_data->tap_name_widget, 0, row, 1, 1);