diff options
author | etxrab <etxrab@f5534014-38df-0310-8fa8-9805f1628bb7> | 2009-03-03 19:51:08 +0000 |
---|---|---|
committer | etxrab <etxrab@f5534014-38df-0310-8fa8-9805f1628bb7> | 2009-03-03 19:51:08 +0000 |
commit | 43b962d2cd9f4c8691585dd60bd053b944146863 (patch) | |
tree | 4af1146720004778354a19920bec473226f5d64c /epan/dissectors/packet-giop.c | |
parent | 771519aaf0f2a862c674fe4c65c2467d0ab574ae (diff) |
From Alvaro Vega Garcia:
Support ZIOP and MIOP (specialized CORBA protocols).
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=3238
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@27589 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'epan/dissectors/packet-giop.c')
-rw-r--r-- | epan/dissectors/packet-giop.c | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/epan/dissectors/packet-giop.c b/epan/dissectors/packet-giop.c index 1ae82fa129..c2ab00653e 100644 --- a/epan/dissectors/packet-giop.c +++ b/epan/dissectors/packet-giop.c @@ -300,6 +300,7 @@ #include <epan/prefs.h> #include "packet-giop.h" +#include "packet-ziop.h" #include "packet-tcp.h" #include <wsutil/file_util.h> @@ -587,8 +588,6 @@ static const value_string service_context_ids[] = { -#define GIOP_MAGIC "GIOP" - /* * TAGS for IOR Profiles * @@ -4053,8 +4052,26 @@ get_giop_pdu_len(packet_info *pinfo _U_, tvbuff_t *tvb, int offset) return message_size + GIOP_HEADER_SIZE; } +static gboolean +dissect_giop_heur (tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree); + + +gboolean dissect_giop(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { + return dissect_giop_heur(tvb, pinfo, tree); +} + + static void dissect_giop_tcp (tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree) { + + if ( tvb_memeql(tvb, 0, GIOP_MAGIC ,4) != 0) { + + if ( tvb_memeql(tvb, 0, ZIOP_MAGIC ,4) == 0) + dissect_ziop_heur(tvb, pinfo, tree); + + return; + } + tcp_dissect_pdus(tvb, pinfo, tree, giop_desegment, GIOP_HEADER_SIZE, get_giop_pdu_len, dissect_giop_common); } |