aboutsummaryrefslogtreecommitdiffstats
path: root/epan
diff options
context:
space:
mode:
authorRonnie Sahlberg <ronnie_sahlberg@ozemail.com.au>2006-06-27 13:51:13 +0000
committerRonnie Sahlberg <ronnie_sahlberg@ozemail.com.au>2006-06-27 13:51:13 +0000
commitad274d0542e598d1d640a86fa9209e2b881b339a (patch)
treef949ec18c91ba62ff5e70ffd025d7a9974c59a51 /epan
parent16d463dac63e18d58c2fcd9913ef3d83aaa0ffa0 (diff)
make the called subdissectors create their protocol expansion at the first level of the tree and not deep inside the SSL layer
makes the traces much more readable svn path=/trunk/; revision=18583
Diffstat (limited to 'epan')
-rw-r--r--epan/dissectors/packet-ssl.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/epan/dissectors/packet-ssl.c b/epan/dissectors/packet-ssl.c
index 31792f5706..583647e867 100644
--- a/epan/dissectors/packet-ssl.c
+++ b/epan/dissectors/packet-ssl.c
@@ -115,6 +115,11 @@
static gboolean ssl_desegment = TRUE;
static gboolean ssl_desegment_app_data = TRUE;
+/* we need to remember the top tree so that subdissectors we call are created
+ * at the root and not deep down inside the SSL decode
+ */
+static proto_tree *top_tree;
+
/*********************************************************************
*
@@ -864,6 +869,8 @@ dissect_ssl(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
SslDecryptSession* ssl_session = NULL;
guint* conv_version;
+ top_tree=tree;
+
/* Track the version using conversations to reduce the
* chance that a packet that simply *looks* like a v2 or
* v3 packet is dissected improperly. This also allows
@@ -1451,7 +1458,7 @@ dissect_ssl3_record(tvbuff_t *tvb, packet_info *pinfo,
ssl_debug_printf("dissect_ssl3_record found association %p\n", association);
ssl_print_text_data("decrypted app data",pi->app_data.data,
pi->app_data.data_len);
- call_dissector(association->handle, new_tvb, pinfo, ssl_record_tree);
+ call_dissector(association->handle, new_tvb, pinfo, top_tree);
}
/* add raw decrypted data only if a decoder is not found*/
else