Ethereal-dev: [Ethereal-dev] Small patch to packet-ssl.c
Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.
From: Yaniv Kaul <ykaul@xxxxxxxxxxxx>
Date: Mon, 28 Feb 2005 19:39:37 +0200
It shows the protocol names in each record.
Index: packet-ssl.c =================================================================== --- packet-ssl.c (revision 13550) +++ packet-ssl.c (working copy) @@ -710,7 +710,7 @@ static void dissect_ssl3_change_cipher_spec(tvbuff_t *tvb, proto_tree *tree, guint32 offset, - guint *conv_version); + guint *conv_version, guint8 content_type); /* alert message dissector */ static void dissect_ssl3_alert(tvbuff_t *tvb, packet_info *pinfo, @@ -721,7 +721,7 @@ static void dissect_ssl3_handshake(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint32 record_length, - guint *conv_version); + guint *conv_version, guint8 content_type); static void dissect_ssl3_hnd_cli_hello(tvbuff_t *tvb, @@ -1033,6 +1033,7 @@ proto_tree *ti = NULL; proto_tree *ssl_record_tree = NULL; guint32 available_bytes = 0; + gchar *proto_name_str = NULL; available_bytes = tvb_length_remaining(tvb, offset); @@ -1186,7 +1187,7 @@ if (check_col(pinfo->cinfo, COL_INFO)) col_append_str(pinfo->cinfo, COL_INFO, "Change Cipher Spec"); dissect_ssl3_change_cipher_spec(tvb, ssl_record_tree, - offset, conv_version); + offset, conv_version, content_type); break; case SSL_ID_ALERT: dissect_ssl3_alert(tvb, pinfo, ssl_record_tree, offset, @@ -1194,16 +1195,18 @@ break; case SSL_ID_HANDSHAKE: dissect_ssl3_handshake(tvb, pinfo, ssl_record_tree, offset, - record_length, conv_version); + record_length, conv_version, content_type); break; case SSL_ID_APP_DATA: if (check_col(pinfo->cinfo, COL_INFO)) col_append_str(pinfo->cinfo, COL_INFO, "Application Data"); if (ssl_record_tree) { + proto_name_str = match_strval(content_type, ssl_31_content_type); proto_item_set_text(ssl_record_tree, - "%s Record Layer: Application Data", - ssl_version_short_names[*conv_version]); + "%s Record Layer: %s Protocol: Application Data", + ssl_version_short_names[*conv_version], + (proto_name_str!=NULL) ? proto_name_str : "unknown"); proto_tree_add_item(ssl_record_tree, hf_ssl_record_appdata, tvb, offset, record_length, 0); } @@ -1224,7 +1227,7 @@ static void dissect_ssl3_change_cipher_spec(tvbuff_t *tvb, proto_tree *tree, guint32 offset, - guint *conv_version) + guint *conv_version, guint8 content_type) { /* * struct { @@ -1232,11 +1235,15 @@ * } ChangeCipherSpec; * */ + gchar *proto_name_str = NULL; + if (tree) { + proto_name_str = match_strval(content_type, ssl_31_content_type); proto_item_set_text(tree, - "%s Record Layer: Change Cipher Spec", - ssl_version_short_names[*conv_version]); + "%s Record Layer: %s Protocol: Change Cipher Spec", + ssl_version_short_names[*conv_version], + (proto_name_str!=NULL) ? proto_name_str : "unknown"); proto_tree_add_item(tree, hf_ssl_change_cipher_spec, tvb, offset++, 1, FALSE); } @@ -1320,7 +1327,7 @@ static void dissect_ssl3_handshake(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, - guint32 record_length, guint *conv_version) + guint32 record_length, guint *conv_version, guint8 content_type) { /* struct { * HandshakeType msg_type; @@ -1342,6 +1349,7 @@ proto_tree *ti = NULL; proto_tree *ssl_hand_tree = NULL; gchar *msg_type_str = NULL; + gchar *proto_name_str = NULL; guint8 msg_type; guint32 length; gboolean first_iteration = TRUE; @@ -1360,6 +1368,7 @@ { msg_type = tvb_get_guint8(tvb, offset); msg_type_str = match_strval(msg_type, ssl_31_handshake_type); + proto_name_str = match_strval(content_type, ssl_31_content_type); length = tvb_get_ntoh24(tvb, offset + 1); if (!msg_type_str && !first_iteration) @@ -1390,15 +1399,17 @@ /* set the label text on the record layer expanding node */ if (first_iteration) { - proto_item_set_text(tree, "%s Record Layer: %s", - ssl_version_short_names[*conv_version], - (msg_type_str!=NULL) ? msg_type_str : + proto_item_set_text(tree, "%s Record Layer: %s Protocol: %s", + ssl_version_short_names[*conv_version], + (proto_name_str!=NULL) ? proto_name_str : "unknown", + (msg_type_str!=NULL) ? msg_type_str : "Encrypted Handshake Message"); } else { - proto_item_set_text(tree, "%s Record Layer: %s", + proto_item_set_text(tree, "%s Record Layer: %s Protocol: %s", ssl_version_short_names[*conv_version], + (proto_name_str!=NULL) ? proto_name_str : "unknown", "Multiple Handshake Messages"); }
- Prev by Date: [Ethereal-dev] VoIP calls analysis and text2pcap
- Next by Date: RE: [Ethereal-dev] bssgp
- Previous by thread: [Ethereal-dev] VoIP calls analysis and text2pcap
- Next by thread: [Ethereal-dev] VoIP call analysis: ISUP messages listed several times
- Index(es):