2002-01-30 18:55:39 +00:00
/* packet-cosnaming.c
2008-05-09 07:07:50 +00:00
*
* $ Id $
*
2001-07-19 21:30:17 +00:00
* Routines for IDL dissection
*
2006-05-31 00:23:01 +00:00
* Autogenerated from idl2wrs
2001-07-19 21:30:17 +00:00
* Copyright 2001 Frank Singleton < frank . singleton @ ericsson . com >
*/
/*
2006-05-21 05:12:17 +00:00
* Wireshark - Network traffic analyzer
2001-07-19 21:30:17 +00:00
* By Gerald Combs
2011-11-18 12:34:16 +00:00
* Copyright 1999 - 2006 Gerald Combs
2001-07-19 21:30:17 +00:00
*/
2005-06-25 18:20:13 +00:00
2011-11-29 19:36:53 +00:00
static int hf_operationrequest = - 1 ; /* Request_Operation field */
2001-07-19 21:30:17 +00:00
/*
* This program is free software ; you can redistribute it and / or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation ; either version 2
* of the License , or ( at your option ) any later version .
2005-06-25 18:20:13 +00:00
*
2001-07-19 21:30:17 +00:00
* This program is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU General Public License for more details .
2005-06-25 18:20:13 +00:00
*
2001-07-19 21:30:17 +00:00
* You should have received a copy of the GNU General Public License
* along with this program ; if not , write to the Free Software
* Foundation , Inc . , 59 Temple Place - Suite 330 , Boston , MA 02111 - 1307 , USA .
*/
# ifdef HAVE_CONFIG_H
# include "config.h"
# endif
# include <gmodule.h>
# include <string.h>
# include <glib.h>
2002-01-21 07:37:49 +00:00
# include <epan/packet.h>
# include <epan/proto.h>
2004-07-18 18:06:47 +00:00
# include <epan/dissectors/packet-giop.h>
2001-07-19 21:30:17 +00:00
2003-09-05 07:44:50 +00:00
# ifndef ENABLE_STATIC
2001-07-19 21:30:17 +00:00
G_MODULE_EXPORT const gchar version [ ] = " 0.0.1 " ;
# endif
2007-03-28 03:56:24 +00:00
# ifdef _MSC_VER
2007-03-27 02:47:09 +00:00
/* disable warning: "unreference local variable" */
# pragma warning(disable:4101)
# endif
2001-07-19 21:30:17 +00:00
2011-11-18 12:34:16 +00:00
2005-06-25 18:20:13 +00:00
static proto_tree * start_dissecting ( tvbuff_t * tvb , packet_info * pinfo , proto_tree * ptree , int * offset ) ;
2002-01-30 18:55:39 +00:00
/* Struct prototype declaration Start */
/* Struct = IDL:omg.org/CosNaming/NameComponent:1.0 */
2011-11-18 12:39:35 +00:00
static void decode_CosNaming_NameComponent_st ( tvbuff_t * tvb _U_ , packet_info * pinfo _U_ , proto_tree * tree _U_ , int * offset _U_ , MessageHeader * header _U_ , gchar * operation _U_ , gboolean stream_is_big_endian _U_ ) ;
2002-01-30 18:55:39 +00:00
/* Struct = IDL:omg.org/CosNaming/Binding:1.0 */
2011-11-18 12:39:35 +00:00
static void decode_CosNaming_Binding_st ( tvbuff_t * tvb _U_ , packet_info * pinfo _U_ , proto_tree * tree _U_ , int * offset _U_ , MessageHeader * header _U_ , gchar * operation _U_ , gboolean stream_is_big_endian _U_ ) ;
2002-01-30 18:55:39 +00:00
/* Struct prototype declaration End */
2005-06-25 18:20:13 +00:00
2002-01-30 18:55:39 +00:00
/* Union prototype declaration Start */
2005-06-25 18:20:13 +00:00
2002-01-30 18:55:39 +00:00
/* Union prototype declaration End */
2005-06-25 18:20:13 +00:00
2002-01-30 18:55:39 +00:00
2001-07-19 21:30:17 +00:00
/* Initialise the protocol and subtree pointers */
static int proto_cosnaming = - 1 ;
static gint ett_cosnaming = - 1 ;
/* Initialise the initial Alignment */
static guint32 boundary = GIOP_HEADER_SIZE ; /* initial value */
/* Initialise the Registered fields */
/* TODO - Use registered fields */
/*
* IDL Operations Start
*/
2005-06-24 12:43:32 +00:00
2001-07-19 21:30:17 +00:00
static const char CosNaming_NamingContext_bind_op [ ] = " bind " ;
static const char CosNaming_NamingContext_rebind_op [ ] = " rebind " ;
static const char CosNaming_NamingContext_bind_context_op [ ] = " bind_context " ;
static const char CosNaming_NamingContext_rebind_context_op [ ] = " rebind_context " ;
static const char CosNaming_NamingContext_resolve_op [ ] = " resolve " ;
static const char CosNaming_NamingContext_unbind_op [ ] = " unbind " ;
static const char CosNaming_NamingContext_new_context_op [ ] = " new_context " ;
static const char CosNaming_NamingContext_bind_new_context_op [ ] = " bind_new_context " ;
static const char CosNaming_NamingContext_destroy_op [ ] = " destroy " ;
static const char CosNaming_NamingContext_list_op [ ] = " list " ;
static const char CosNaming_BindingIterator_next_one_op [ ] = " next_one " ;
static const char CosNaming_BindingIterator_next_n_op [ ] = " next_n " ;
static const char CosNaming_BindingIterator_destroy_op [ ] = " destroy " ;
/*
* IDL Operations End
*/
2005-06-25 18:20:13 +00:00
2001-07-19 21:30:17 +00:00
/* Begin Exception (containing members) String Declare */
2005-06-24 12:43:32 +00:00
static const char user_exception_CosNaming_NamingContext_NotFound [ ] = " IDL:omg.org/CosNaming/NamingContext/NotFound:1.0 " ;
static const char user_exception_CosNaming_NamingContext_CannotProceed [ ] = " IDL:omg.org/CosNaming/NamingContext/CannotProceed:1.0 " ;
2005-06-25 18:20:13 +00:00
2001-07-19 21:30:17 +00:00
/* End Exception (containing members) String Declare */
2002-01-30 18:55:39 +00:00
/*
* IDL Attributes Start
*/
2005-06-24 12:43:32 +00:00
2002-01-30 18:55:39 +00:00
/*
* IDL Attributes End
*/
2005-06-25 18:20:13 +00:00
2002-01-30 18:55:39 +00:00
/*
* IDL Enums Start
*/
2005-06-24 12:43:32 +00:00
2002-01-30 18:55:39 +00:00
/*
* Enum = IDL : omg . org / CosNaming / BindingType : 1.0
*/
2005-06-24 12:43:32 +00:00
2002-01-30 18:55:39 +00:00
static const value_string CosNaming_BindingType [ ] = {
2005-06-24 12:43:32 +00:00
{ 0 , " nobject " } ,
{ 1 , " ncontext " } ,
2002-01-30 18:55:39 +00:00
{ 0 , NULL } ,
} ;
2005-06-25 18:20:13 +00:00
2002-01-30 18:55:39 +00:00
/*
* Enum = IDL : omg . org / CosNaming / NamingContext / NotFoundReason : 1.0
*/
2005-06-24 12:43:32 +00:00
2002-01-30 18:55:39 +00:00
static const value_string CosNaming_NamingContext_NotFoundReason [ ] = {
2005-06-24 12:43:32 +00:00
{ 0 , " missing_node " } ,
{ 1 , " not_context " } ,
{ 2 , " not_object " } ,
2002-01-30 18:55:39 +00:00
{ 0 , NULL } ,
} ;
2005-06-25 18:20:13 +00:00
2002-01-30 18:55:39 +00:00
/*
* IDL Enums End
*/
2005-06-24 12:43:32 +00:00
2001-07-19 21:30:17 +00:00
/* Begin Exception Helper Functions */
/* Exception = IDL:omg.org/CosNaming/NamingContext/NotFound:1.0 */
2011-11-18 12:39:35 +00:00
static void decode_ex_CosNaming_NamingContext_NotFound ( tvbuff_t * tvb _U_ , packet_info * pinfo _U_ , proto_tree * tree _U_ , int * offset _U_ , MessageHeader * header _U_ , gchar * operation _U_ , gboolean stream_is_big_endian _U_ ) {
2001-07-19 21:30:17 +00:00
2005-06-24 12:43:32 +00:00
2001-07-19 21:30:17 +00:00
/* Operation specific Variable declarations Begin */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
guint32 u_octet4 ;
guint32 u_octet4_loop_NotFound_rest_of_name ;
guint32 i_NotFound_rest_of_name ;
2005-06-24 12:43:32 +00:00
2001-07-19 21:30:17 +00:00
/* Operation specific Variable declarations End */
2002-08-28 20:41:00 +00:00
2005-06-25 18:20:13 +00:00
2001-07-19 21:30:17 +00:00
u_octet4 = get_CDR_enum ( tvb , offset , stream_is_big_endian , boundary ) ;
if ( tree ) {
2011-11-29 19:22:35 +00:00
proto_tree_add_text ( tree , tvb , * offset - 4 , 4 , " NotFound_why = %u (%s) " , u_octet4 , val_to_str ( u_octet4 , CosNaming_NamingContext_NotFoundReason , " Unknown Enum Value " ) ) ;
2001-07-19 21:30:17 +00:00
}
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
u_octet4_loop_NotFound_rest_of_name = get_CDR_ulong ( tvb , offset , stream_is_big_endian , boundary ) ;
if ( tree ) {
2005-06-25 18:20:13 +00:00
proto_tree_add_text ( tree , tvb , * offset - 4 , 4 , " Seq length of NotFound_rest_of_name = %u " , u_octet4_loop_NotFound_rest_of_name ) ;
2001-07-19 21:30:17 +00:00
}
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
for ( i_NotFound_rest_of_name = 0 ; i_NotFound_rest_of_name < u_octet4_loop_NotFound_rest_of_name ; i_NotFound_rest_of_name + + ) {
2002-08-28 20:41:00 +00:00
2002-01-30 18:55:39 +00:00
/* Begin struct "CosNaming_NameComponent" */
2002-08-28 20:41:00 +00:00
2005-06-24 12:43:32 +00:00
2005-06-25 18:20:13 +00:00
2011-11-18 12:39:35 +00:00
decode_CosNaming_NameComponent_st ( tvb , pinfo , tree , offset , header , operation , stream_is_big_endian ) ;
2002-08-28 20:41:00 +00:00
2002-01-30 18:55:39 +00:00
/* End struct "CosNaming_NameComponent" */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
}
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
}
/* Exception = IDL:omg.org/CosNaming/NamingContext/CannotProceed:1.0 */
2011-11-18 12:39:35 +00:00
static void decode_ex_CosNaming_NamingContext_CannotProceed ( tvbuff_t * tvb _U_ , packet_info * pinfo _U_ , proto_tree * tree _U_ , int * offset _U_ , MessageHeader * header _U_ , gchar * operation _U_ , gboolean stream_is_big_endian _U_ ) {
2001-07-19 21:30:17 +00:00
2005-06-24 12:43:32 +00:00
2001-07-19 21:30:17 +00:00
/* Operation specific Variable declarations Begin */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
guint32 u_octet4_loop_CannotProceed_rest_of_name ;
guint32 i_CannotProceed_rest_of_name ;
2005-06-24 12:43:32 +00:00
2001-07-19 21:30:17 +00:00
/* Operation specific Variable declarations End */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
get_CDR_object ( tvb , pinfo , tree , offset , stream_is_big_endian , boundary ) ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
u_octet4_loop_CannotProceed_rest_of_name = get_CDR_ulong ( tvb , offset , stream_is_big_endian , boundary ) ;
if ( tree ) {
2005-06-25 18:20:13 +00:00
proto_tree_add_text ( tree , tvb , * offset - 4 , 4 , " Seq length of CannotProceed_rest_of_name = %u " , u_octet4_loop_CannotProceed_rest_of_name ) ;
2001-07-19 21:30:17 +00:00
}
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
for ( i_CannotProceed_rest_of_name = 0 ; i_CannotProceed_rest_of_name < u_octet4_loop_CannotProceed_rest_of_name ; i_CannotProceed_rest_of_name + + ) {
2002-08-28 20:41:00 +00:00
2002-01-30 18:55:39 +00:00
/* Begin struct "CosNaming_NameComponent" */
2002-08-28 20:41:00 +00:00
2005-06-24 12:43:32 +00:00
2005-06-25 18:20:13 +00:00
2011-11-18 12:39:35 +00:00
decode_CosNaming_NameComponent_st ( tvb , pinfo , tree , offset , header , operation , stream_is_big_endian ) ;
2002-08-28 20:41:00 +00:00
2002-01-30 18:55:39 +00:00
/* End struct "CosNaming_NameComponent" */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
}
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
}
2005-06-25 18:20:13 +00:00
2001-07-19 21:30:17 +00:00
/* End Exception Helper Functions */
/*
* Main delegator for exception handling
*
*/
2005-06-25 18:20:13 +00:00
2011-11-18 12:39:35 +00:00
static gboolean decode_user_exception ( tvbuff_t * tvb _U_ , packet_info * pinfo _U_ , proto_tree * ptree _U_ , int * offset _U_ , MessageHeader * header , gchar * operation _U_ , gboolean stream_is_big_endian _U_ ) {
2005-06-25 18:20:13 +00:00
2011-11-18 12:39:35 +00:00
/*gboolean stream_is_big_endian _U_;*/ /* big endianess */
2005-06-25 18:20:13 +00:00
proto_tree * tree _U_ ;
2002-08-28 20:41:00 +00:00
2005-05-30 16:03:24 +00:00
if ( ! header - > exception_id )
2005-06-24 12:43:32 +00:00
return FALSE ;
2005-06-25 18:20:13 +00:00
if ( strcmp ( header - > exception_id , user_exception_CosNaming_NamingContext_NotFound ) = = 0 ) {
tree = start_dissecting ( tvb , pinfo , ptree , offset ) ;
2011-11-18 12:39:35 +00:00
decode_ex_CosNaming_NamingContext_NotFound ( tvb , pinfo , tree , offset , header , operation , stream_is_big_endian ) ; /* IDL:omg.org/CosNaming/NamingContext/NotFound:1.0 */
2001-07-19 21:30:17 +00:00
return TRUE ;
}
2002-08-28 20:41:00 +00:00
2005-06-25 18:20:13 +00:00
if ( strcmp ( header - > exception_id , user_exception_CosNaming_NamingContext_CannotProceed ) = = 0 ) {
tree = start_dissecting ( tvb , pinfo , ptree , offset ) ;
2011-11-18 12:39:35 +00:00
decode_ex_CosNaming_NamingContext_CannotProceed ( tvb , pinfo , tree , offset , header , operation , stream_is_big_endian ) ; /* IDL:omg.org/CosNaming/NamingContext/CannotProceed:1.0 */
2001-07-19 21:30:17 +00:00
return TRUE ;
}
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
return FALSE ; /* user exception not found */
}
2005-06-25 18:20:13 +00:00
2002-01-30 18:55:39 +00:00
/* Begin Attribute Helper Functions */
/* End Attribute Helper Functions */
2001-07-19 21:30:17 +00:00
/*
* IDL : omg . org / CosNaming / NamingContext / bind : 1.0
*/
2005-06-25 18:20:13 +00:00
2011-11-18 12:39:35 +00:00
static void decode_CosNaming_NamingContext_bind ( tvbuff_t * tvb _U_ , packet_info * pinfo _U_ , proto_tree * tree _U_ , int * offset _U_ , MessageHeader * header , gchar * operation _U_ , gboolean stream_is_big_endian _U_ ) {
2001-07-19 21:30:17 +00:00
2005-06-24 12:43:32 +00:00
2001-07-19 21:30:17 +00:00
/* Operation specific Variable declarations Begin */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
guint32 u_octet4_loop_n ;
guint32 i_n ;
2005-06-24 12:43:32 +00:00
2001-07-19 21:30:17 +00:00
/* Operation specific Variable declarations End */
2002-08-28 20:41:00 +00:00
2011-11-18 12:39:35 +00:00
2001-07-19 21:30:17 +00:00
switch ( header - > message_type ) {
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
case Request :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
u_octet4_loop_n = get_CDR_ulong ( tvb , offset , stream_is_big_endian , boundary ) ;
if ( tree ) {
2005-06-25 18:20:13 +00:00
proto_tree_add_text ( tree , tvb , * offset - 4 , 4 , " Seq length of n = %u " , u_octet4_loop_n ) ;
2001-07-19 21:30:17 +00:00
}
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
for ( i_n = 0 ; i_n < u_octet4_loop_n ; i_n + + ) {
2002-08-28 20:41:00 +00:00
2002-01-30 18:55:39 +00:00
/* Begin struct "CosNaming_NameComponent" */
2002-08-28 20:41:00 +00:00
2005-06-24 12:43:32 +00:00
2005-06-25 18:20:13 +00:00
2011-11-18 12:39:35 +00:00
decode_CosNaming_NameComponent_st ( tvb , pinfo , tree , offset , header , operation , stream_is_big_endian ) ;
2002-08-28 20:41:00 +00:00
2002-01-30 18:55:39 +00:00
/* End struct "CosNaming_NameComponent" */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
}
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
get_CDR_object ( tvb , pinfo , tree , offset , stream_is_big_endian , boundary ) ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
break ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
case Reply :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
switch ( header - > rep_status ) {
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
case NO_EXCEPTION :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
/* Function returns void */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
break ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
case USER_EXCEPTION :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
break ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
default :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
/* Unknown Exception */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
g_warning ( " Unknown Exception " ) ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
break ;
2002-08-28 20:41:00 +00:00
2005-06-24 12:43:32 +00:00
2001-07-19 21:30:17 +00:00
} /* switch(header->message_type) */
2002-08-28 20:41:00 +00:00
2005-06-25 18:20:13 +00:00
break ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
default :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
/* Unknown GIOP Message */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
g_warning ( " Unknown GIOP Message " ) ;
2005-06-25 18:20:13 +00:00
2001-07-19 21:30:17 +00:00
break ;
2002-08-28 20:41:00 +00:00
2005-06-25 18:20:13 +00:00
} /* switch(header->message_type) */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
}
/*
* IDL : omg . org / CosNaming / NamingContext / rebind : 1.0
*/
2005-06-25 18:20:13 +00:00
2011-11-18 12:39:35 +00:00
static void decode_CosNaming_NamingContext_rebind ( tvbuff_t * tvb _U_ , packet_info * pinfo _U_ , proto_tree * tree _U_ , int * offset _U_ , MessageHeader * header , gchar * operation _U_ , gboolean stream_is_big_endian _U_ ) {
2001-07-19 21:30:17 +00:00
2005-06-24 12:43:32 +00:00
2001-07-19 21:30:17 +00:00
/* Operation specific Variable declarations Begin */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
guint32 u_octet4_loop_n ;
guint32 i_n ;
2005-06-24 12:43:32 +00:00
2001-07-19 21:30:17 +00:00
/* Operation specific Variable declarations End */
2002-08-28 20:41:00 +00:00
2011-11-18 12:39:35 +00:00
2001-07-19 21:30:17 +00:00
switch ( header - > message_type ) {
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
case Request :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
u_octet4_loop_n = get_CDR_ulong ( tvb , offset , stream_is_big_endian , boundary ) ;
if ( tree ) {
2005-06-25 18:20:13 +00:00
proto_tree_add_text ( tree , tvb , * offset - 4 , 4 , " Seq length of n = %u " , u_octet4_loop_n ) ;
2001-07-19 21:30:17 +00:00
}
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
for ( i_n = 0 ; i_n < u_octet4_loop_n ; i_n + + ) {
2002-08-28 20:41:00 +00:00
2002-01-30 18:55:39 +00:00
/* Begin struct "CosNaming_NameComponent" */
2002-08-28 20:41:00 +00:00
2005-06-24 12:43:32 +00:00
2005-06-25 18:20:13 +00:00
2011-11-18 12:39:35 +00:00
decode_CosNaming_NameComponent_st ( tvb , pinfo , tree , offset , header , operation , stream_is_big_endian ) ;
2002-08-28 20:41:00 +00:00
2002-01-30 18:55:39 +00:00
/* End struct "CosNaming_NameComponent" */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
}
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
get_CDR_object ( tvb , pinfo , tree , offset , stream_is_big_endian , boundary ) ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
break ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
case Reply :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
switch ( header - > rep_status ) {
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
case NO_EXCEPTION :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
/* Function returns void */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
break ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
case USER_EXCEPTION :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
break ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
default :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
/* Unknown Exception */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
g_warning ( " Unknown Exception " ) ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
break ;
2002-08-28 20:41:00 +00:00
2005-06-24 12:43:32 +00:00
2001-07-19 21:30:17 +00:00
} /* switch(header->message_type) */
2002-08-28 20:41:00 +00:00
2005-06-25 18:20:13 +00:00
break ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
default :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
/* Unknown GIOP Message */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
g_warning ( " Unknown GIOP Message " ) ;
2005-06-25 18:20:13 +00:00
2001-07-19 21:30:17 +00:00
break ;
2002-08-28 20:41:00 +00:00
2005-06-25 18:20:13 +00:00
} /* switch(header->message_type) */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
}
/*
* IDL : omg . org / CosNaming / NamingContext / bind_context : 1.0
*/
2005-06-25 18:20:13 +00:00
2011-11-18 12:39:35 +00:00
static void decode_CosNaming_NamingContext_bind_context ( tvbuff_t * tvb _U_ , packet_info * pinfo _U_ , proto_tree * tree _U_ , int * offset _U_ , MessageHeader * header , gchar * operation _U_ , gboolean stream_is_big_endian _U_ ) {
2001-07-19 21:30:17 +00:00
2005-06-24 12:43:32 +00:00
2001-07-19 21:30:17 +00:00
/* Operation specific Variable declarations Begin */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
guint32 u_octet4_loop_n ;
guint32 i_n ;
2005-06-24 12:43:32 +00:00
2001-07-19 21:30:17 +00:00
/* Operation specific Variable declarations End */
2002-08-28 20:41:00 +00:00
2011-11-18 12:39:35 +00:00
2001-07-19 21:30:17 +00:00
switch ( header - > message_type ) {
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
case Request :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
u_octet4_loop_n = get_CDR_ulong ( tvb , offset , stream_is_big_endian , boundary ) ;
if ( tree ) {
2005-06-25 18:20:13 +00:00
proto_tree_add_text ( tree , tvb , * offset - 4 , 4 , " Seq length of n = %u " , u_octet4_loop_n ) ;
2001-07-19 21:30:17 +00:00
}
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
for ( i_n = 0 ; i_n < u_octet4_loop_n ; i_n + + ) {
2002-08-28 20:41:00 +00:00
2002-01-30 18:55:39 +00:00
/* Begin struct "CosNaming_NameComponent" */
2002-08-28 20:41:00 +00:00
2005-06-24 12:43:32 +00:00
2005-06-25 18:20:13 +00:00
2011-11-18 12:39:35 +00:00
decode_CosNaming_NameComponent_st ( tvb , pinfo , tree , offset , header , operation , stream_is_big_endian ) ;
2002-08-28 20:41:00 +00:00
2002-01-30 18:55:39 +00:00
/* End struct "CosNaming_NameComponent" */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
}
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
get_CDR_object ( tvb , pinfo , tree , offset , stream_is_big_endian , boundary ) ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
break ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
case Reply :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
switch ( header - > rep_status ) {
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
case NO_EXCEPTION :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
/* Function returns void */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
break ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
case USER_EXCEPTION :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
break ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
default :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
/* Unknown Exception */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
g_warning ( " Unknown Exception " ) ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
break ;
2002-08-28 20:41:00 +00:00
2005-06-24 12:43:32 +00:00
2001-07-19 21:30:17 +00:00
} /* switch(header->message_type) */
2002-08-28 20:41:00 +00:00
2005-06-25 18:20:13 +00:00
break ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
default :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
/* Unknown GIOP Message */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
g_warning ( " Unknown GIOP Message " ) ;
2005-06-25 18:20:13 +00:00
2001-07-19 21:30:17 +00:00
break ;
2002-08-28 20:41:00 +00:00
2005-06-25 18:20:13 +00:00
} /* switch(header->message_type) */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
}
/*
* IDL : omg . org / CosNaming / NamingContext / rebind_context : 1.0
*/
2005-06-25 18:20:13 +00:00
2011-11-18 12:39:35 +00:00
static void decode_CosNaming_NamingContext_rebind_context ( tvbuff_t * tvb _U_ , packet_info * pinfo _U_ , proto_tree * tree _U_ , int * offset _U_ , MessageHeader * header , gchar * operation _U_ , gboolean stream_is_big_endian _U_ ) {
2001-07-19 21:30:17 +00:00
2005-06-24 12:43:32 +00:00
2001-07-19 21:30:17 +00:00
/* Operation specific Variable declarations Begin */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
guint32 u_octet4_loop_n ;
guint32 i_n ;
2005-06-24 12:43:32 +00:00
2001-07-19 21:30:17 +00:00
/* Operation specific Variable declarations End */
2002-08-28 20:41:00 +00:00
2011-11-18 12:39:35 +00:00
2001-07-19 21:30:17 +00:00
switch ( header - > message_type ) {
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
case Request :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
u_octet4_loop_n = get_CDR_ulong ( tvb , offset , stream_is_big_endian , boundary ) ;
if ( tree ) {
2005-06-25 18:20:13 +00:00
proto_tree_add_text ( tree , tvb , * offset - 4 , 4 , " Seq length of n = %u " , u_octet4_loop_n ) ;
2001-07-19 21:30:17 +00:00
}
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
for ( i_n = 0 ; i_n < u_octet4_loop_n ; i_n + + ) {
2002-08-28 20:41:00 +00:00
2002-01-30 18:55:39 +00:00
/* Begin struct "CosNaming_NameComponent" */
2002-08-28 20:41:00 +00:00
2005-06-24 12:43:32 +00:00
2005-06-25 18:20:13 +00:00
2011-11-18 12:39:35 +00:00
decode_CosNaming_NameComponent_st ( tvb , pinfo , tree , offset , header , operation , stream_is_big_endian ) ;
2002-08-28 20:41:00 +00:00
2002-01-30 18:55:39 +00:00
/* End struct "CosNaming_NameComponent" */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
}
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
get_CDR_object ( tvb , pinfo , tree , offset , stream_is_big_endian , boundary ) ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
break ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
case Reply :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
switch ( header - > rep_status ) {
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
case NO_EXCEPTION :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
/* Function returns void */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
break ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
case USER_EXCEPTION :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
break ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
default :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
/* Unknown Exception */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
g_warning ( " Unknown Exception " ) ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
break ;
2002-08-28 20:41:00 +00:00
2005-06-24 12:43:32 +00:00
2001-07-19 21:30:17 +00:00
} /* switch(header->message_type) */
2002-08-28 20:41:00 +00:00
2005-06-25 18:20:13 +00:00
break ;
2002-08-28 20:41:00 +00:00
default :
/* Unknown GIOP Message */
g_warning ( " Unknown GIOP Message " ) ;
2005-06-25 18:20:13 +00:00
2002-08-28 20:41:00 +00:00
break ;
2005-06-25 18:20:13 +00:00
} /* switch(header->message_type) */
2002-08-28 20:41:00 +00:00
}
2001-07-19 21:30:17 +00:00
/*
* IDL : omg . org / CosNaming / NamingContext / resolve : 1.0
*/
2005-06-25 18:20:13 +00:00
2011-11-18 12:39:35 +00:00
static void decode_CosNaming_NamingContext_resolve ( tvbuff_t * tvb _U_ , packet_info * pinfo _U_ , proto_tree * tree _U_ , int * offset _U_ , MessageHeader * header , gchar * operation _U_ , gboolean stream_is_big_endian _U_ ) {
2001-07-19 21:30:17 +00:00
2005-06-24 12:43:32 +00:00
2001-07-19 21:30:17 +00:00
/* Operation specific Variable declarations Begin */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
guint32 u_octet4_loop_n ;
guint32 i_n ;
2005-06-24 12:43:32 +00:00
2001-07-19 21:30:17 +00:00
/* Operation specific Variable declarations End */
2002-08-28 20:41:00 +00:00
2011-11-18 12:39:35 +00:00
2001-07-19 21:30:17 +00:00
switch ( header - > message_type ) {
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
case Request :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
u_octet4_loop_n = get_CDR_ulong ( tvb , offset , stream_is_big_endian , boundary ) ;
if ( tree ) {
2005-06-25 18:20:13 +00:00
proto_tree_add_text ( tree , tvb , * offset - 4 , 4 , " Seq length of n = %u " , u_octet4_loop_n ) ;
2001-07-19 21:30:17 +00:00
}
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
for ( i_n = 0 ; i_n < u_octet4_loop_n ; i_n + + ) {
2002-08-28 20:41:00 +00:00
2002-01-30 18:55:39 +00:00
/* Begin struct "CosNaming_NameComponent" */
2002-08-28 20:41:00 +00:00
2005-06-24 12:43:32 +00:00
2005-06-25 18:20:13 +00:00
2011-11-18 12:39:35 +00:00
decode_CosNaming_NameComponent_st ( tvb , pinfo , tree , offset , header , operation , stream_is_big_endian ) ;
2002-08-28 20:41:00 +00:00
2002-01-30 18:55:39 +00:00
/* End struct "CosNaming_NameComponent" */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
}
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
break ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
case Reply :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
switch ( header - > rep_status ) {
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
case NO_EXCEPTION :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
get_CDR_object ( tvb , pinfo , tree , offset , stream_is_big_endian , boundary ) ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
break ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
case USER_EXCEPTION :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
break ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
default :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
/* Unknown Exception */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
g_warning ( " Unknown Exception " ) ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
break ;
2002-08-28 20:41:00 +00:00
2005-06-24 12:43:32 +00:00
2001-07-19 21:30:17 +00:00
} /* switch(header->message_type) */
2002-08-28 20:41:00 +00:00
2005-06-25 18:20:13 +00:00
break ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
default :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
/* Unknown GIOP Message */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
g_warning ( " Unknown GIOP Message " ) ;
2005-06-25 18:20:13 +00:00
2001-07-19 21:30:17 +00:00
break ;
2002-08-28 20:41:00 +00:00
2005-06-25 18:20:13 +00:00
} /* switch(header->message_type) */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
}
/*
* IDL : omg . org / CosNaming / NamingContext / unbind : 1.0
*/
2005-06-25 18:20:13 +00:00
2011-11-18 12:39:35 +00:00
static void decode_CosNaming_NamingContext_unbind ( tvbuff_t * tvb _U_ , packet_info * pinfo _U_ , proto_tree * tree _U_ , int * offset _U_ , MessageHeader * header , gchar * operation _U_ , gboolean stream_is_big_endian _U_ ) {
2001-07-19 21:30:17 +00:00
2005-06-24 12:43:32 +00:00
2001-07-19 21:30:17 +00:00
/* Operation specific Variable declarations Begin */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
guint32 u_octet4_loop_n ;
guint32 i_n ;
2005-06-24 12:43:32 +00:00
2001-07-19 21:30:17 +00:00
/* Operation specific Variable declarations End */
2002-08-28 20:41:00 +00:00
2011-11-18 12:39:35 +00:00
2001-07-19 21:30:17 +00:00
switch ( header - > message_type ) {
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
case Request :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
u_octet4_loop_n = get_CDR_ulong ( tvb , offset , stream_is_big_endian , boundary ) ;
if ( tree ) {
2005-06-25 18:20:13 +00:00
proto_tree_add_text ( tree , tvb , * offset - 4 , 4 , " Seq length of n = %u " , u_octet4_loop_n ) ;
2001-07-19 21:30:17 +00:00
}
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
for ( i_n = 0 ; i_n < u_octet4_loop_n ; i_n + + ) {
2002-08-28 20:41:00 +00:00
2002-01-30 18:55:39 +00:00
/* Begin struct "CosNaming_NameComponent" */
2002-08-28 20:41:00 +00:00
2005-06-24 12:43:32 +00:00
2005-06-25 18:20:13 +00:00
2011-11-18 12:39:35 +00:00
decode_CosNaming_NameComponent_st ( tvb , pinfo , tree , offset , header , operation , stream_is_big_endian ) ;
2002-08-28 20:41:00 +00:00
2002-01-30 18:55:39 +00:00
/* End struct "CosNaming_NameComponent" */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
}
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
break ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
case Reply :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
switch ( header - > rep_status ) {
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
case NO_EXCEPTION :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
/* Function returns void */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
break ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
case USER_EXCEPTION :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
break ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
default :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
/* Unknown Exception */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
g_warning ( " Unknown Exception " ) ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
break ;
2002-08-28 20:41:00 +00:00
2005-06-24 12:43:32 +00:00
2001-07-19 21:30:17 +00:00
} /* switch(header->message_type) */
2002-08-28 20:41:00 +00:00
2005-06-25 18:20:13 +00:00
break ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
default :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
/* Unknown GIOP Message */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
g_warning ( " Unknown GIOP Message " ) ;
2005-06-25 18:20:13 +00:00
2001-07-19 21:30:17 +00:00
break ;
2002-08-28 20:41:00 +00:00
2005-06-25 18:20:13 +00:00
} /* switch(header->message_type) */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
}
/*
* IDL : omg . org / CosNaming / NamingContext / new_context : 1.0
*/
2005-06-25 18:20:13 +00:00
2011-11-18 12:39:35 +00:00
static void decode_CosNaming_NamingContext_new_context ( tvbuff_t * tvb _U_ , packet_info * pinfo _U_ , proto_tree * tree _U_ , int * offset _U_ , MessageHeader * header , gchar * operation _U_ , gboolean stream_is_big_endian _U_ ) {
2001-07-19 21:30:17 +00:00
2005-06-24 12:43:32 +00:00
2001-07-19 21:30:17 +00:00
/* Operation specific Variable declarations Begin */
2002-08-28 20:41:00 +00:00
2005-06-24 12:43:32 +00:00
2001-07-19 21:30:17 +00:00
/* Operation specific Variable declarations End */
2002-08-28 20:41:00 +00:00
2011-11-18 12:39:35 +00:00
2001-07-19 21:30:17 +00:00
switch ( header - > message_type ) {
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
case Request :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
break ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
case Reply :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
switch ( header - > rep_status ) {
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
case NO_EXCEPTION :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
get_CDR_object ( tvb , pinfo , tree , offset , stream_is_big_endian , boundary ) ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
break ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
case USER_EXCEPTION :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
break ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
default :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
/* Unknown Exception */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
g_warning ( " Unknown Exception " ) ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
break ;
2002-08-28 20:41:00 +00:00
2005-06-24 12:43:32 +00:00
2001-07-19 21:30:17 +00:00
} /* switch(header->message_type) */
2002-08-28 20:41:00 +00:00
2005-06-25 18:20:13 +00:00
break ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
default :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
/* Unknown GIOP Message */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
g_warning ( " Unknown GIOP Message " ) ;
2005-06-25 18:20:13 +00:00
2001-07-19 21:30:17 +00:00
break ;
2002-08-28 20:41:00 +00:00
2005-06-25 18:20:13 +00:00
} /* switch(header->message_type) */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
}
/*
* IDL : omg . org / CosNaming / NamingContext / bind_new_context : 1.0
*/
2005-06-25 18:20:13 +00:00
2011-11-18 12:39:35 +00:00
static void decode_CosNaming_NamingContext_bind_new_context ( tvbuff_t * tvb _U_ , packet_info * pinfo _U_ , proto_tree * tree _U_ , int * offset _U_ , MessageHeader * header , gchar * operation _U_ , gboolean stream_is_big_endian _U_ ) {
2001-07-19 21:30:17 +00:00
2005-06-24 12:43:32 +00:00
2001-07-19 21:30:17 +00:00
/* Operation specific Variable declarations Begin */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
guint32 u_octet4_loop_n ;
guint32 i_n ;
2005-06-24 12:43:32 +00:00
2001-07-19 21:30:17 +00:00
/* Operation specific Variable declarations End */
2002-08-28 20:41:00 +00:00
2011-11-18 12:39:35 +00:00
2001-07-19 21:30:17 +00:00
switch ( header - > message_type ) {
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
case Request :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
u_octet4_loop_n = get_CDR_ulong ( tvb , offset , stream_is_big_endian , boundary ) ;
if ( tree ) {
2005-06-25 18:20:13 +00:00
proto_tree_add_text ( tree , tvb , * offset - 4 , 4 , " Seq length of n = %u " , u_octet4_loop_n ) ;
2001-07-19 21:30:17 +00:00
}
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
for ( i_n = 0 ; i_n < u_octet4_loop_n ; i_n + + ) {
2002-08-28 20:41:00 +00:00
2002-01-30 18:55:39 +00:00
/* Begin struct "CosNaming_NameComponent" */
2002-08-28 20:41:00 +00:00
2005-06-24 12:43:32 +00:00
2005-06-25 18:20:13 +00:00
2011-11-18 12:39:35 +00:00
decode_CosNaming_NameComponent_st ( tvb , pinfo , tree , offset , header , operation , stream_is_big_endian ) ;
2002-08-28 20:41:00 +00:00
2002-01-30 18:55:39 +00:00
/* End struct "CosNaming_NameComponent" */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
}
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
break ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
case Reply :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
switch ( header - > rep_status ) {
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
case NO_EXCEPTION :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
get_CDR_object ( tvb , pinfo , tree , offset , stream_is_big_endian , boundary ) ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
break ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
case USER_EXCEPTION :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
break ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
default :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
/* Unknown Exception */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
g_warning ( " Unknown Exception " ) ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
break ;
2002-08-28 20:41:00 +00:00
2005-06-24 12:43:32 +00:00
2001-07-19 21:30:17 +00:00
} /* switch(header->message_type) */
2002-08-28 20:41:00 +00:00
2005-06-25 18:20:13 +00:00
break ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
default :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
/* Unknown GIOP Message */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
g_warning ( " Unknown GIOP Message " ) ;
2005-06-25 18:20:13 +00:00
2001-07-19 21:30:17 +00:00
break ;
2002-08-28 20:41:00 +00:00
2005-06-25 18:20:13 +00:00
} /* switch(header->message_type) */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
}
/*
* IDL : omg . org / CosNaming / NamingContext / destroy : 1.0
*/
2005-06-25 18:20:13 +00:00
2011-11-18 12:39:35 +00:00
static void decode_CosNaming_NamingContext_destroy ( tvbuff_t * tvb _U_ , packet_info * pinfo _U_ , proto_tree * tree _U_ , int * offset _U_ , MessageHeader * header , gchar * operation _U_ , gboolean stream_is_big_endian _U_ ) {
2001-07-19 21:30:17 +00:00
2005-06-24 12:43:32 +00:00
2001-07-19 21:30:17 +00:00
/* Operation specific Variable declarations Begin */
2002-08-28 20:41:00 +00:00
2005-06-24 12:43:32 +00:00
2001-07-19 21:30:17 +00:00
/* Operation specific Variable declarations End */
2002-08-28 20:41:00 +00:00
2011-11-18 12:39:35 +00:00
2001-07-19 21:30:17 +00:00
switch ( header - > message_type ) {
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
case Request :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
break ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
case Reply :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
switch ( header - > rep_status ) {
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
case NO_EXCEPTION :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
/* Function returns void */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
break ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
case USER_EXCEPTION :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
break ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
default :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
/* Unknown Exception */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
g_warning ( " Unknown Exception " ) ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
break ;
2002-08-28 20:41:00 +00:00
2005-06-24 12:43:32 +00:00
2001-07-19 21:30:17 +00:00
} /* switch(header->message_type) */
2002-08-28 20:41:00 +00:00
2005-06-25 18:20:13 +00:00
break ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
default :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
/* Unknown GIOP Message */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
g_warning ( " Unknown GIOP Message " ) ;
2005-06-25 18:20:13 +00:00
2001-07-19 21:30:17 +00:00
break ;
2002-08-28 20:41:00 +00:00
2005-06-25 18:20:13 +00:00
} /* switch(header->message_type) */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
}
/*
* IDL : omg . org / CosNaming / NamingContext / list : 1.0
*/
2005-06-25 18:20:13 +00:00
2011-11-18 12:39:35 +00:00
static void decode_CosNaming_NamingContext_list ( tvbuff_t * tvb _U_ , packet_info * pinfo _U_ , proto_tree * tree _U_ , int * offset _U_ , MessageHeader * header , gchar * operation _U_ , gboolean stream_is_big_endian _U_ ) {
2001-07-19 21:30:17 +00:00
2005-06-24 12:43:32 +00:00
2001-07-19 21:30:17 +00:00
/* Operation specific Variable declarations Begin */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
guint32 u_octet4 ;
guint32 u_octet4_loop_bl ;
guint32 i_bl ;
2005-06-24 12:43:32 +00:00
2001-07-19 21:30:17 +00:00
/* Operation specific Variable declarations End */
2002-08-28 20:41:00 +00:00
2011-11-18 12:39:35 +00:00
2001-07-19 21:30:17 +00:00
switch ( header - > message_type ) {
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
case Request :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
u_octet4 = get_CDR_ulong ( tvb , offset , stream_is_big_endian , boundary ) ;
if ( tree ) {
proto_tree_add_text ( tree , tvb , * offset - 4 , 4 , " how_many = %u " , u_octet4 ) ;
}
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
break ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
case Reply :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
switch ( header - > rep_status ) {
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
case NO_EXCEPTION :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
/* Function returns void */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
u_octet4_loop_bl = get_CDR_ulong ( tvb , offset , stream_is_big_endian , boundary ) ;
if ( tree ) {
2005-06-25 18:20:13 +00:00
proto_tree_add_text ( tree , tvb , * offset - 4 , 4 , " Seq length of bl = %u " , u_octet4_loop_bl ) ;
2001-07-19 21:30:17 +00:00
}
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
for ( i_bl = 0 ; i_bl < u_octet4_loop_bl ; i_bl + + ) {
2002-08-28 20:41:00 +00:00
2002-01-30 18:55:39 +00:00
/* Begin struct "CosNaming_Binding" */
2002-08-28 20:41:00 +00:00
2005-06-24 12:43:32 +00:00
2005-06-25 18:20:13 +00:00
2011-11-18 12:39:35 +00:00
decode_CosNaming_Binding_st ( tvb , pinfo , tree , offset , header , operation , stream_is_big_endian ) ;
2002-08-28 20:41:00 +00:00
2002-01-30 18:55:39 +00:00
/* End struct "CosNaming_Binding" */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
}
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
get_CDR_object ( tvb , pinfo , tree , offset , stream_is_big_endian , boundary ) ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
break ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
case USER_EXCEPTION :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
break ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
default :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
/* Unknown Exception */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
g_warning ( " Unknown Exception " ) ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
break ;
2002-08-28 20:41:00 +00:00
2005-06-24 12:43:32 +00:00
2001-07-19 21:30:17 +00:00
} /* switch(header->message_type) */
2002-08-28 20:41:00 +00:00
2005-06-25 18:20:13 +00:00
break ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
default :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
/* Unknown GIOP Message */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
g_warning ( " Unknown GIOP Message " ) ;
2005-06-25 18:20:13 +00:00
2001-07-19 21:30:17 +00:00
break ;
2002-08-28 20:41:00 +00:00
2005-06-25 18:20:13 +00:00
} /* switch(header->message_type) */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
}
/*
* IDL : omg . org / CosNaming / BindingIterator / next_one : 1.0
*/
2005-06-25 18:20:13 +00:00
2011-11-18 12:39:35 +00:00
static void decode_CosNaming_BindingIterator_next_one ( tvbuff_t * tvb _U_ , packet_info * pinfo _U_ , proto_tree * tree _U_ , int * offset _U_ , MessageHeader * header , gchar * operation _U_ , gboolean stream_is_big_endian _U_ ) {
2001-07-19 21:30:17 +00:00
2005-06-24 12:43:32 +00:00
2001-07-19 21:30:17 +00:00
/* Operation specific Variable declarations Begin */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
guint8 u_octet1 ;
2005-06-24 12:43:32 +00:00
2001-07-19 21:30:17 +00:00
/* Operation specific Variable declarations End */
2002-08-28 20:41:00 +00:00
2011-11-18 12:39:35 +00:00
2001-07-19 21:30:17 +00:00
switch ( header - > message_type ) {
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
case Request :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
break ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
case Reply :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
switch ( header - > rep_status ) {
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
case NO_EXCEPTION :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
u_octet1 = get_CDR_boolean ( tvb , offset ) ;
if ( tree ) {
2002-01-30 18:55:39 +00:00
proto_tree_add_text ( tree , tvb , * offset - 1 , 1 , " Operation_Return_Value = %u " , u_octet1 ) ;
2001-07-19 21:30:17 +00:00
}
2002-08-28 20:41:00 +00:00
2002-01-30 18:55:39 +00:00
/* Begin struct "CosNaming_Binding" */
2002-08-28 20:41:00 +00:00
2005-06-24 12:43:32 +00:00
2005-06-25 18:20:13 +00:00
2011-11-18 12:39:35 +00:00
decode_CosNaming_Binding_st ( tvb , pinfo , tree , offset , header , operation , stream_is_big_endian ) ;
2002-08-28 20:41:00 +00:00
2002-01-30 18:55:39 +00:00
/* End struct "CosNaming_Binding" */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
break ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
case USER_EXCEPTION :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
break ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
default :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
/* Unknown Exception */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
g_warning ( " Unknown Exception " ) ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
break ;
2002-08-28 20:41:00 +00:00
2005-06-24 12:43:32 +00:00
2001-07-19 21:30:17 +00:00
} /* switch(header->message_type) */
2002-08-28 20:41:00 +00:00
2005-06-25 18:20:13 +00:00
break ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
default :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
/* Unknown GIOP Message */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
g_warning ( " Unknown GIOP Message " ) ;
2005-06-25 18:20:13 +00:00
2001-07-19 21:30:17 +00:00
break ;
2002-08-28 20:41:00 +00:00
2005-06-25 18:20:13 +00:00
} /* switch(header->message_type) */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
}
/*
* IDL : omg . org / CosNaming / BindingIterator / next_n : 1.0
*/
2005-06-25 18:20:13 +00:00
2011-11-18 12:39:35 +00:00
static void decode_CosNaming_BindingIterator_next_n ( tvbuff_t * tvb _U_ , packet_info * pinfo _U_ , proto_tree * tree _U_ , int * offset _U_ , MessageHeader * header , gchar * operation _U_ , gboolean stream_is_big_endian _U_ ) {
2001-07-19 21:30:17 +00:00
2005-06-24 12:43:32 +00:00
2001-07-19 21:30:17 +00:00
/* Operation specific Variable declarations Begin */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
guint32 u_octet4 ;
guint8 u_octet1 ;
guint32 u_octet4_loop_bl ;
guint32 i_bl ;
2005-06-24 12:43:32 +00:00
2001-07-19 21:30:17 +00:00
/* Operation specific Variable declarations End */
2002-08-28 20:41:00 +00:00
2011-11-18 12:39:35 +00:00
2001-07-19 21:30:17 +00:00
switch ( header - > message_type ) {
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
case Request :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
u_octet4 = get_CDR_ulong ( tvb , offset , stream_is_big_endian , boundary ) ;
if ( tree ) {
proto_tree_add_text ( tree , tvb , * offset - 4 , 4 , " how_many = %u " , u_octet4 ) ;
}
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
break ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
case Reply :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
switch ( header - > rep_status ) {
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
case NO_EXCEPTION :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
u_octet1 = get_CDR_boolean ( tvb , offset ) ;
if ( tree ) {
2002-01-30 18:55:39 +00:00
proto_tree_add_text ( tree , tvb , * offset - 1 , 1 , " Operation_Return_Value = %u " , u_octet1 ) ;
2001-07-19 21:30:17 +00:00
}
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
u_octet4_loop_bl = get_CDR_ulong ( tvb , offset , stream_is_big_endian , boundary ) ;
if ( tree ) {
2005-06-25 18:20:13 +00:00
proto_tree_add_text ( tree , tvb , * offset - 4 , 4 , " Seq length of bl = %u " , u_octet4_loop_bl ) ;
2001-07-19 21:30:17 +00:00
}
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
for ( i_bl = 0 ; i_bl < u_octet4_loop_bl ; i_bl + + ) {
2002-08-28 20:41:00 +00:00
2002-01-30 18:55:39 +00:00
/* Begin struct "CosNaming_Binding" */
2002-08-28 20:41:00 +00:00
2005-06-24 12:43:32 +00:00
2005-06-25 18:20:13 +00:00
2011-11-18 12:39:35 +00:00
decode_CosNaming_Binding_st ( tvb , pinfo , tree , offset , header , operation , stream_is_big_endian ) ;
2002-08-28 20:41:00 +00:00
2002-01-30 18:55:39 +00:00
/* End struct "CosNaming_Binding" */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
}
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
break ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
case USER_EXCEPTION :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
break ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
default :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
/* Unknown Exception */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
g_warning ( " Unknown Exception " ) ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
break ;
2002-08-28 20:41:00 +00:00
2005-06-24 12:43:32 +00:00
2001-07-19 21:30:17 +00:00
} /* switch(header->message_type) */
2002-08-28 20:41:00 +00:00
2005-06-25 18:20:13 +00:00
break ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
default :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
/* Unknown GIOP Message */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
g_warning ( " Unknown GIOP Message " ) ;
2005-06-25 18:20:13 +00:00
2001-07-19 21:30:17 +00:00
break ;
2002-08-28 20:41:00 +00:00
2005-06-25 18:20:13 +00:00
} /* switch(header->message_type) */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
}
/*
* IDL : omg . org / CosNaming / BindingIterator / destroy : 1.0
*/
2005-06-25 18:20:13 +00:00
2011-11-18 12:39:35 +00:00
static void decode_CosNaming_BindingIterator_destroy ( tvbuff_t * tvb _U_ , packet_info * pinfo _U_ , proto_tree * tree _U_ , int * offset _U_ , MessageHeader * header , gchar * operation _U_ , gboolean stream_is_big_endian _U_ ) {
2001-07-19 21:30:17 +00:00
2005-06-24 12:43:32 +00:00
2001-07-19 21:30:17 +00:00
/* Operation specific Variable declarations Begin */
2002-08-28 20:41:00 +00:00
2005-06-24 12:43:32 +00:00
2001-07-19 21:30:17 +00:00
/* Operation specific Variable declarations End */
2002-08-28 20:41:00 +00:00
2011-11-18 12:39:35 +00:00
2001-07-19 21:30:17 +00:00
switch ( header - > message_type ) {
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
case Request :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
break ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
case Reply :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
switch ( header - > rep_status ) {
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
case NO_EXCEPTION :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
/* Function returns void */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
break ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
case USER_EXCEPTION :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
break ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
default :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
/* Unknown Exception */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
g_warning ( " Unknown Exception " ) ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
break ;
2002-08-28 20:41:00 +00:00
2005-06-24 12:43:32 +00:00
2001-07-19 21:30:17 +00:00
} /* switch(header->message_type) */
2002-08-28 20:41:00 +00:00
2005-06-25 18:20:13 +00:00
break ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
default :
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
/* Unknown GIOP Message */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
g_warning ( " Unknown GIOP Message " ) ;
2005-06-25 18:20:13 +00:00
2001-07-19 21:30:17 +00:00
break ;
2002-08-28 20:41:00 +00:00
2005-06-25 18:20:13 +00:00
} /* switch(header->message_type) */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
}
2002-01-30 18:55:39 +00:00
/* Struct = IDL:omg.org/CosNaming/NameComponent:1.0 */
2011-11-18 12:39:35 +00:00
static void decode_CosNaming_NameComponent_st ( tvbuff_t * tvb _U_ , packet_info * pinfo _U_ , proto_tree * tree _U_ , int * offset _U_ , MessageHeader * header _U_ , gchar * operation _U_ , gboolean stream_is_big_endian _U_ ) {
2002-01-30 18:55:39 +00:00
2005-06-24 12:43:32 +00:00
2002-01-30 18:55:39 +00:00
/* Operation specific Variable declarations Begin */
2002-08-28 20:41:00 +00:00
2002-01-30 18:55:39 +00:00
guint32 u_octet4 ;
gchar * seq = NULL ;
2005-06-24 12:43:32 +00:00
2002-01-30 18:55:39 +00:00
/* Operation specific Variable declarations End */
2002-08-28 20:41:00 +00:00
2002-01-30 18:55:39 +00:00
u_octet4 = get_CDR_string ( tvb , & seq , offset , stream_is_big_endian , boundary ) ;
if ( tree ) {
2006-04-19 05:17:46 +00:00
proto_tree_add_text ( tree , tvb , * offset - u_octet4 , u_octet4 , " NameComponent_id (%u) = %s " ,
u_octet4 , ( u_octet4 > 0 ) ? seq : " " ) ;
2002-01-30 18:55:39 +00:00
}
2006-04-19 05:17:46 +00:00
2002-01-30 18:55:39 +00:00
g_free ( seq ) ; /* free buffer */
seq = NULL ;
2002-08-28 20:41:00 +00:00
2002-01-30 18:55:39 +00:00
u_octet4 = get_CDR_string ( tvb , & seq , offset , stream_is_big_endian , boundary ) ;
if ( tree ) {
2006-04-19 05:17:46 +00:00
proto_tree_add_text ( tree , tvb , * offset - u_octet4 , u_octet4 , " NameComponent_kind (%u) = %s " ,
u_octet4 , ( u_octet4 > 0 ) ? seq : " " ) ;
2002-01-30 18:55:39 +00:00
}
2006-04-19 05:17:46 +00:00
2002-01-30 18:55:39 +00:00
g_free ( seq ) ; /* free buffer */
seq = NULL ;
2002-08-28 20:41:00 +00:00
2002-01-30 18:55:39 +00:00
}
/* Struct = IDL:omg.org/CosNaming/Binding:1.0 */
2011-11-18 12:39:35 +00:00
static void decode_CosNaming_Binding_st ( tvbuff_t * tvb _U_ , packet_info * pinfo _U_ , proto_tree * tree _U_ , int * offset _U_ , MessageHeader * header _U_ , gchar * operation _U_ , gboolean stream_is_big_endian _U_ ) {
2002-01-30 18:55:39 +00:00
2005-06-24 12:43:32 +00:00
2002-01-30 18:55:39 +00:00
/* Operation specific Variable declarations Begin */
2002-08-28 20:41:00 +00:00
2002-01-30 18:55:39 +00:00
guint32 u_octet4_loop_Binding_binding_name ;
guint32 i_Binding_binding_name ;
guint32 u_octet4 ;
2005-06-24 12:43:32 +00:00
2002-01-30 18:55:39 +00:00
/* Operation specific Variable declarations End */
2002-08-28 20:41:00 +00:00
2002-01-30 18:55:39 +00:00
u_octet4_loop_Binding_binding_name = get_CDR_ulong ( tvb , offset , stream_is_big_endian , boundary ) ;
if ( tree ) {
2005-06-25 18:20:13 +00:00
proto_tree_add_text ( tree , tvb , * offset - 4 , 4 , " Seq length of Binding_binding_name = %u " , u_octet4_loop_Binding_binding_name ) ;
2002-01-30 18:55:39 +00:00
}
2002-08-28 20:41:00 +00:00
2002-01-30 18:55:39 +00:00
for ( i_Binding_binding_name = 0 ; i_Binding_binding_name < u_octet4_loop_Binding_binding_name ; i_Binding_binding_name + + ) {
2002-08-28 20:41:00 +00:00
2002-01-30 18:55:39 +00:00
/* Begin struct "CosNaming_NameComponent" */
2002-08-28 20:41:00 +00:00
2005-06-24 12:43:32 +00:00
2005-06-25 18:20:13 +00:00
2011-11-18 12:39:35 +00:00
decode_CosNaming_NameComponent_st ( tvb , pinfo , tree , offset , header , operation , stream_is_big_endian ) ;
2002-08-28 20:41:00 +00:00
2002-01-30 18:55:39 +00:00
/* End struct "CosNaming_NameComponent" */
2002-08-28 20:41:00 +00:00
2002-01-30 18:55:39 +00:00
}
2002-08-28 20:41:00 +00:00
2005-06-25 18:20:13 +00:00
2002-01-30 18:55:39 +00:00
u_octet4 = get_CDR_enum ( tvb , offset , stream_is_big_endian , boundary ) ;
if ( tree ) {
2011-11-29 19:22:35 +00:00
proto_tree_add_text ( tree , tvb , * offset - 4 , 4 , " Binding_binding_type = %u (%s) " , u_octet4 , val_to_str ( u_octet4 , CosNaming_BindingType , " Unknown Enum Value " ) ) ;
2002-01-30 18:55:39 +00:00
}
2002-08-28 20:41:00 +00:00
2002-01-30 18:55:39 +00:00
}
2005-06-25 18:20:13 +00:00
/*
* Called once we accept the packet as being for us ; it sets the
* Protocol and Info columns and creates the top - level protocol
* tree item .
*/
static proto_tree * start_dissecting ( tvbuff_t * tvb , packet_info * pinfo , proto_tree * ptree , int * offset ) {
2001-07-19 21:30:17 +00:00
proto_item * ti = NULL ;
proto_tree * tree = NULL ; /* init later, inside if(tree) */
2009-08-09 06:26:46 +00:00
col_set_str ( pinfo - > cinfo , COL_PROTOCOL , " COSNAMING " ) ;
2005-06-25 18:20:13 +00:00
/*
* Do not clear COL_INFO , as nothing is being written there by
* this dissector yet . So leave it as is from the GIOP dissector .
* TODO : add something useful to COL_INFO
* col_clear ( pinfo - > cinfo , COL_INFO ) ;
*/
2002-01-30 18:55:39 +00:00
2001-07-19 21:30:17 +00:00
if ( ptree ) {
2010-05-24 06:06:17 +00:00
ti = proto_tree_add_item ( ptree , proto_cosnaming , tvb , * offset , - 1 , ENC_NA ) ;
2005-06-25 18:20:13 +00:00
tree = proto_item_add_subtree ( ti , ett_cosnaming ) ;
}
return tree ;
}
2001-07-19 21:30:17 +00:00
2006-04-17 18:10:23 +00:00
static gboolean dissect_cosnaming ( tvbuff_t * tvb , packet_info * pinfo , proto_tree * ptree , int * offset , MessageHeader * header , gchar * operation , gchar * idlname ) {
2005-06-25 18:20:13 +00:00
2011-11-18 12:39:35 +00:00
gboolean stream_is_big_endian ; /* big endianess */
2005-06-25 18:20:13 +00:00
proto_tree * tree _U_ ;
2011-11-29 19:36:53 +00:00
# define process_RequestOperation(){ \
proto_item * pi ; \
if ( header - > message_type = = Reply ) { col_append_fstr ( pinfo - > cinfo , COL_INFO , " op = %s " , operation ) ; } ; /* fill-up info column */ \
pi = proto_tree_add_string_format_value ( ptree , hf_operationrequest , tvb , 0 , 0 , operation , " %s " , operation ) ; PROTO_ITEM_SET_GENERATED ( pi ) ; /* fill-up the field */ \
} ;
2001-07-19 21:30:17 +00:00
2011-11-18 12:39:35 +00:00
stream_is_big_endian = is_big_endian ( header ) ; /* get endianess */
2001-07-19 21:30:17 +00:00
/* If we have a USER Exception, then decode it and return */
if ( ( header - > message_type = = Reply ) & & ( header - > rep_status = = USER_EXCEPTION ) ) {
2011-11-18 12:39:35 +00:00
return decode_user_exception ( tvb , pinfo , ptree , offset , header , operation , stream_is_big_endian ) ;
2001-07-19 21:30:17 +00:00
}
switch ( header - > message_type ) {
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
case Request :
case Reply :
2002-08-28 20:41:00 +00:00
2006-04-17 18:10:23 +00:00
if ( strcmp ( operation , CosNaming_NamingContext_bind_op ) = = 0
& & ( ! idlname | | strcmp ( idlname , " CosNaming/NamingContext " ) = = 0 ) ) {
2011-11-29 19:36:53 +00:00
process_RequestOperation ( ) ; /* fill-up Request_Operation field & info column */
2005-06-25 18:20:13 +00:00
tree = start_dissecting ( tvb , pinfo , ptree , offset ) ;
2011-11-18 12:39:35 +00:00
decode_CosNaming_NamingContext_bind ( tvb , pinfo , tree , offset , header , operation , stream_is_big_endian ) ;
2001-07-19 21:30:17 +00:00
return TRUE ;
}
2002-08-28 20:41:00 +00:00
2006-04-17 18:10:23 +00:00
if ( strcmp ( operation , CosNaming_NamingContext_rebind_op ) = = 0
& & ( ! idlname | | strcmp ( idlname , " CosNaming/NamingContext " ) = = 0 ) ) {
2011-11-29 19:36:53 +00:00
process_RequestOperation ( ) ; /* fill-up Request_Operation field & info column */
2005-06-25 18:20:13 +00:00
tree = start_dissecting ( tvb , pinfo , ptree , offset ) ;
2011-11-18 12:39:35 +00:00
decode_CosNaming_NamingContext_rebind ( tvb , pinfo , tree , offset , header , operation , stream_is_big_endian ) ;
2001-07-19 21:30:17 +00:00
return TRUE ;
}
2002-08-28 20:41:00 +00:00
2006-04-17 18:10:23 +00:00
if ( strcmp ( operation , CosNaming_NamingContext_bind_context_op ) = = 0
& & ( ! idlname | | strcmp ( idlname , " CosNaming/NamingContext " ) = = 0 ) ) {
2011-11-29 19:36:53 +00:00
process_RequestOperation ( ) ; /* fill-up Request_Operation field & info column */
2005-06-25 18:20:13 +00:00
tree = start_dissecting ( tvb , pinfo , ptree , offset ) ;
2011-11-18 12:39:35 +00:00
decode_CosNaming_NamingContext_bind_context ( tvb , pinfo , tree , offset , header , operation , stream_is_big_endian ) ;
2001-07-19 21:30:17 +00:00
return TRUE ;
}
2002-08-28 20:41:00 +00:00
2006-04-17 18:10:23 +00:00
if ( strcmp ( operation , CosNaming_NamingContext_rebind_context_op ) = = 0
& & ( ! idlname | | strcmp ( idlname , " CosNaming/NamingContext " ) = = 0 ) ) {
2011-11-29 19:36:53 +00:00
process_RequestOperation ( ) ; /* fill-up Request_Operation field & info column */
2005-06-25 18:20:13 +00:00
tree = start_dissecting ( tvb , pinfo , ptree , offset ) ;
2011-11-18 12:39:35 +00:00
decode_CosNaming_NamingContext_rebind_context ( tvb , pinfo , tree , offset , header , operation , stream_is_big_endian ) ;
2001-07-19 21:30:17 +00:00
return TRUE ;
}
2002-08-28 20:41:00 +00:00
2006-04-17 18:10:23 +00:00
if ( strcmp ( operation , CosNaming_NamingContext_resolve_op ) = = 0
& & ( ! idlname | | strcmp ( idlname , " CosNaming/NamingContext " ) = = 0 ) ) {
2011-11-29 19:36:53 +00:00
process_RequestOperation ( ) ; /* fill-up Request_Operation field & info column */
2005-06-25 18:20:13 +00:00
tree = start_dissecting ( tvb , pinfo , ptree , offset ) ;
2011-11-18 12:39:35 +00:00
decode_CosNaming_NamingContext_resolve ( tvb , pinfo , tree , offset , header , operation , stream_is_big_endian ) ;
2001-07-19 21:30:17 +00:00
return TRUE ;
}
2002-08-28 20:41:00 +00:00
2006-04-17 18:10:23 +00:00
if ( strcmp ( operation , CosNaming_NamingContext_unbind_op ) = = 0
& & ( ! idlname | | strcmp ( idlname , " CosNaming/NamingContext " ) = = 0 ) ) {
2011-11-29 19:36:53 +00:00
process_RequestOperation ( ) ; /* fill-up Request_Operation field & info column */
2005-06-25 18:20:13 +00:00
tree = start_dissecting ( tvb , pinfo , ptree , offset ) ;
2011-11-18 12:39:35 +00:00
decode_CosNaming_NamingContext_unbind ( tvb , pinfo , tree , offset , header , operation , stream_is_big_endian ) ;
2001-07-19 21:30:17 +00:00
return TRUE ;
}
2002-08-28 20:41:00 +00:00
2006-04-17 18:10:23 +00:00
if ( strcmp ( operation , CosNaming_NamingContext_new_context_op ) = = 0
& & ( ! idlname | | strcmp ( idlname , " CosNaming/NamingContext " ) = = 0 ) ) {
2011-11-29 19:36:53 +00:00
process_RequestOperation ( ) ; /* fill-up Request_Operation field & info column */
2005-06-25 18:20:13 +00:00
tree = start_dissecting ( tvb , pinfo , ptree , offset ) ;
2011-11-18 12:39:35 +00:00
decode_CosNaming_NamingContext_new_context ( tvb , pinfo , tree , offset , header , operation , stream_is_big_endian ) ;
2001-07-19 21:30:17 +00:00
return TRUE ;
}
2002-08-28 20:41:00 +00:00
2006-04-17 18:10:23 +00:00
if ( strcmp ( operation , CosNaming_NamingContext_bind_new_context_op ) = = 0
& & ( ! idlname | | strcmp ( idlname , " CosNaming/NamingContext " ) = = 0 ) ) {
2011-11-29 19:36:53 +00:00
process_RequestOperation ( ) ; /* fill-up Request_Operation field & info column */
2005-06-25 18:20:13 +00:00
tree = start_dissecting ( tvb , pinfo , ptree , offset ) ;
2011-11-18 12:39:35 +00:00
decode_CosNaming_NamingContext_bind_new_context ( tvb , pinfo , tree , offset , header , operation , stream_is_big_endian ) ;
2001-07-19 21:30:17 +00:00
return TRUE ;
}
2002-08-28 20:41:00 +00:00
2006-04-17 18:10:23 +00:00
if ( strcmp ( operation , CosNaming_NamingContext_destroy_op ) = = 0
& & ( ! idlname | | strcmp ( idlname , " CosNaming/NamingContext " ) = = 0 ) ) {
2011-11-29 19:36:53 +00:00
process_RequestOperation ( ) ; /* fill-up Request_Operation field & info column */
2005-06-25 18:20:13 +00:00
tree = start_dissecting ( tvb , pinfo , ptree , offset ) ;
2011-11-18 12:39:35 +00:00
decode_CosNaming_NamingContext_destroy ( tvb , pinfo , tree , offset , header , operation , stream_is_big_endian ) ;
2001-07-19 21:30:17 +00:00
return TRUE ;
}
2002-08-28 20:41:00 +00:00
2006-04-17 18:10:23 +00:00
if ( strcmp ( operation , CosNaming_NamingContext_list_op ) = = 0
& & ( ! idlname | | strcmp ( idlname , " CosNaming/NamingContext " ) = = 0 ) ) {
2011-11-29 19:36:53 +00:00
process_RequestOperation ( ) ; /* fill-up Request_Operation field & info column */
2005-06-25 18:20:13 +00:00
tree = start_dissecting ( tvb , pinfo , ptree , offset ) ;
2011-11-18 12:39:35 +00:00
decode_CosNaming_NamingContext_list ( tvb , pinfo , tree , offset , header , operation , stream_is_big_endian ) ;
2001-07-19 21:30:17 +00:00
return TRUE ;
}
2002-08-28 20:41:00 +00:00
2006-04-17 18:10:23 +00:00
if ( strcmp ( operation , CosNaming_BindingIterator_next_one_op ) = = 0
& & ( ! idlname | | strcmp ( idlname , " CosNaming/BindingIterator " ) = = 0 ) ) {
2011-11-29 19:36:53 +00:00
process_RequestOperation ( ) ; /* fill-up Request_Operation field & info column */
2005-06-25 18:20:13 +00:00
tree = start_dissecting ( tvb , pinfo , ptree , offset ) ;
2011-11-18 12:39:35 +00:00
decode_CosNaming_BindingIterator_next_one ( tvb , pinfo , tree , offset , header , operation , stream_is_big_endian ) ;
2001-07-19 21:30:17 +00:00
return TRUE ;
}
2002-08-28 20:41:00 +00:00
2006-04-17 18:10:23 +00:00
if ( strcmp ( operation , CosNaming_BindingIterator_next_n_op ) = = 0
& & ( ! idlname | | strcmp ( idlname , " CosNaming/BindingIterator " ) = = 0 ) ) {
2011-11-29 19:36:53 +00:00
process_RequestOperation ( ) ; /* fill-up Request_Operation field & info column */
2005-06-25 18:20:13 +00:00
tree = start_dissecting ( tvb , pinfo , ptree , offset ) ;
2011-11-18 12:39:35 +00:00
decode_CosNaming_BindingIterator_next_n ( tvb , pinfo , tree , offset , header , operation , stream_is_big_endian ) ;
2001-07-19 21:30:17 +00:00
return TRUE ;
}
2002-08-28 20:41:00 +00:00
2006-04-17 18:10:23 +00:00
if ( strcmp ( operation , CosNaming_BindingIterator_destroy_op ) = = 0
& & ( ! idlname | | strcmp ( idlname , " CosNaming/BindingIterator " ) = = 0 ) ) {
2011-11-29 19:36:53 +00:00
process_RequestOperation ( ) ; /* fill-up Request_Operation field & info column */
2005-06-25 18:20:13 +00:00
tree = start_dissecting ( tvb , pinfo , ptree , offset ) ;
2011-11-18 12:39:35 +00:00
decode_CosNaming_BindingIterator_destroy ( tvb , pinfo , tree , offset , header , operation , stream_is_big_endian ) ;
2001-07-19 21:30:17 +00:00
return TRUE ;
}
2002-08-28 20:41:00 +00:00
2005-06-24 12:43:32 +00:00
2001-07-19 21:30:17 +00:00
break ;
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
case CancelRequest :
case LocateRequest :
case LocateReply :
case CloseConnection :
case MessageError :
case Fragment :
return FALSE ; /* not handled yet */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
default :
return FALSE ; /* not handled yet */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
} /* switch */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
return FALSE ;
} /* End of main dissector */
2007-01-02 13:36:45 +00:00
/* Register the protocol with Wireshark */
2001-07-19 21:30:17 +00:00
void proto_register_giop_cosnaming ( void ) {
/* setup list of header fields */
static hf_register_info hf [ ] = {
2011-11-29 19:36:53 +00:00
/* field that indicates the currently ongoing request/reply exchange */
{ & hf_operationrequest , { " Request_Operation " , " COSNAMING.Request_Operation " , FT_STRING , BASE_NONE , NULL , 0x0 , NULL , HFILL } } ,
2001-07-19 21:30:17 +00:00
/* no fields yet */
2005-06-25 18:20:13 +00:00
2001-07-19 21:30:17 +00:00
} ;
/* setup protocol subtree array */
static gint * ett [ ] = {
& ett_cosnaming ,
} ;
/* Register the protocol name and description */
2005-06-25 18:20:13 +00:00
2001-07-19 21:30:17 +00:00
proto_cosnaming = proto_register_protocol ( " Cosnaming Dissector Using GIOP API " , " COSNAMING " , " giop-cosnaming " ) ;
proto_register_field_array ( proto_cosnaming , hf , array_length ( hf ) ) ;
2011-11-29 19:36:53 +00:00
2001-07-19 21:30:17 +00:00
proto_register_subtree_array ( ett , array_length ( ett ) ) ;
2005-06-25 18:20:13 +00:00
2001-07-19 21:30:17 +00:00
}
/* register me as handler for these interfaces */
void proto_register_handoff_giop_cosnaming ( void ) {
2005-06-24 12:43:32 +00:00
2001-07-19 21:30:17 +00:00
/* Register for Explicit Dissection */
2002-08-28 20:41:00 +00:00
2005-06-24 12:43:32 +00:00
register_giop_user_module ( dissect_cosnaming , " COSNAMING " , " CosNaming/BindingIterator " , proto_cosnaming ) ; /* explicit dissector */
2002-08-28 20:41:00 +00:00
2005-06-24 12:43:32 +00:00
2001-07-19 21:30:17 +00:00
/* Register for Explicit Dissection */
2002-08-28 20:41:00 +00:00
2005-06-24 12:43:32 +00:00
register_giop_user_module ( dissect_cosnaming , " COSNAMING " , " CosNaming/NamingContext " , proto_cosnaming ) ; /* explicit dissector */
2002-08-28 20:41:00 +00:00
2005-06-24 12:43:32 +00:00
2001-07-19 21:30:17 +00:00
/* Register for Heuristic Dissection */
2002-08-28 20:41:00 +00:00
2005-06-25 18:20:13 +00:00
register_giop_user ( dissect_cosnaming , " COSNAMING " , proto_cosnaming ) ; /* heuristic dissector */
2002-08-28 20:41:00 +00:00
2001-07-19 21:30:17 +00:00
}
2003-09-05 07:44:50 +00:00
# ifndef ENABLE_STATIC
2001-07-19 21:30:17 +00:00
G_MODULE_EXPORT void
2005-03-07 02:44:41 +00:00
plugin_register ( void )
2005-03-05 06:28:10 +00:00
{
2001-07-19 21:30:17 +00:00
if ( proto_cosnaming = = - 1 ) {
proto_register_giop_cosnaming ( ) ;
}
}
2005-03-07 02:44:41 +00:00
G_MODULE_EXPORT void
plugin_reg_handoff ( void ) {
proto_register_handoff_giop_cosnaming ( ) ;
}
# endif
2005-06-24 12:43:32 +00:00