void proto_register_user_encap(void) { module_t *module; expert_module_t* expert_user_encap; static uat_field_t user_flds[] = { UAT_FLD_VS(user_encap,encap,"DLT",user_dlts,"The DLT"), UAT_FLD_PROTO(user_encap,payload_proto,"Payload protocol", "Protocol to be used for the payload of this DLT"), UAT_FLD_DEC(user_encap,header_size,"Header size", "Size of an eventual header that precedes the actual payload, 0 means none"), UAT_FLD_PROTO(user_encap,header_proto,"Header protocol", "Protocol to be used for the header (empty = data)"), UAT_FLD_DEC(user_encap,trailer_size,"Trailer size", "Size of an eventual trailer that follows the actual payload, 0 means none"), UAT_FLD_PROTO(user_encap,trailer_proto,"Trailer protocol", "Protocol to be used for the trailer (empty = data)"), UAT_END_FIELDS }; static ei_register_info ei[] = { { &ei_user_encap_not_handled, { "user_dlt.not_handled", PI_UNDECODED, PI_WARN, "Formatted text", EXPFILL }}, }; proto_user_encap = proto_register_protocol("DLT User","DLT_USER","user_dlt"); expert_user_encap = expert_register_protocol(proto_user_encap); expert_register_field_array(expert_user_encap, ei, array_length(ei)); module = prefs_register_protocol(proto_user_encap, NULL); encaps_uat = uat_new("User DLTs Table", sizeof(user_encap_t), "user_dlts", TRUE, &encaps, &num_encaps, UAT_AFFECTS_DISSECTION, /* affects dissection of packets, but not set of named fields */ "ChUserDLTsSection", user_copy_cb, NULL, user_free_cb, NULL, user_flds ); prefs_register_uat_preference(module, "encaps_table", "Encapsulations Table", "A table that enumerates the various protocols to be used against a certain user DLT", encaps_uat); register_dissector("user_dlt",dissect_user,proto_user_encap); /* prefs_register_protocol_obsolete(proto_register_protocol("DLT User A","DLT_USER_A","user_dlt_a")); prefs_register_protocol_obsolete(proto_register_protocol("DLT User B","DLT_USER_B","user_dlt_b")); prefs_register_protocol_obsolete(proto_register_protocol("DLT User C","DLT_USER_C","user_dlt_c")); prefs_register_protocol_obsolete(proto_register_protocol("DLT User D","DLT_USER_D","user_dlt_d")); */ }
/*--- proto_register_ess ----------------------------------------------*/ void proto_register_ess(void) { /* List of fields */ static hf_register_info hf[] = { { &hf_ess_SecurityCategory_type_OID, { "type", "ess.type_OID", FT_STRING, BASE_NONE, NULL, 0, "Type of Security Category", HFILL }}, { &hf_ess_Category_attribute, { "Attribute", "ess.attribute", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, #include "packet-ess-hfarr.c" }; /* List of subtrees */ static gint *ett[] = { &ett_Category_attributes, #include "packet-ess-ettarr.c" }; static uat_field_t attributes_flds[] = { UAT_FLD_CSTRING(ess_category_attributes,oid, "Tag Set", "Category Tag Set (Object Identifier)"), UAT_FLD_DEC(ess_category_attributes,lacv, "Value", "Label And Cert Value"), UAT_FLD_CSTRING(ess_category_attributes,name, "Name", "Category Name"), UAT_END_FIELDS }; uat_t *attributes_uat = uat_new("ESS Category Attributes", sizeof(ess_category_attributes_t), "ess_category_attributes", TRUE, (void*) &ess_category_attributes, &num_ess_category_attributes, UAT_AFFECTS_DISSECTION, /* affects dissection of packets, but not set of named fields */ "ChEssCategoryAttributes", ess_copy_cb, NULL, ess_free_cb, NULL, attributes_flds); static module_t *ess_module; /* Register protocol */ proto_ess = proto_register_protocol(PNAME, PSNAME, PFNAME); /* Register fields and subtrees */ proto_register_field_array(proto_ess, hf, array_length(hf)); proto_register_subtree_array(ett, array_length(ett)); ess_module = prefs_register_protocol(proto_ess, NULL); prefs_register_uat_preference(ess_module, "attributes_table", "ESS Category Attributes", "ESS category attributes translation table", attributes_uat); }
{ char * name; guint32 port_low; guint32 port_high; } lbmpdm_tcp_tag_entry_t; static lbmpdm_tcp_tag_entry_t * lbmpdm_tcp_tag_entry = NULL; static guint lbmpdm_tcp_tag_count = 0; UAT_CSTRING_CB_DEF(lbmpdm_tcp_tag, name, lbmpdm_tcp_tag_entry_t) UAT_DEC_CB_DEF(lbmpdm_tcp_tag, port_low, lbmpdm_tcp_tag_entry_t) UAT_DEC_CB_DEF(lbmpdm_tcp_tag, port_high, lbmpdm_tcp_tag_entry_t) static uat_field_t lbmpdm_tcp_tag_array[] = { UAT_FLD_CSTRING(lbmpdm_tcp_tag, name, "Tag name", "Tag name"), UAT_FLD_DEC(lbmpdm_tcp_tag, port_low, "Port low", "Port low"), UAT_FLD_DEC(lbmpdm_tcp_tag, port_high, "Port high", "Port high"), UAT_END_FIELDS }; /*----------------------------------------------------------------------------*/ /* UAT callback functions. */ /*----------------------------------------------------------------------------*/ static gboolean lbmpdm_tcp_tag_update_cb(void * record, char * * error_string) { lbmpdm_tcp_tag_entry_t * tag = (lbmpdm_tcp_tag_entry_t *)record; if (tag->name == NULL) { *error_string = g_strdup_printf("Tag name can't be empty"); return FALSE;
} lbttcp_tag_entry_t; static lbttcp_tag_entry_t * lbttcp_tag_entry = NULL; static guint lbttcp_tag_count = 0; UAT_CSTRING_CB_DEF(lbttcp_tag, name, lbttcp_tag_entry_t) UAT_DEC_CB_DEF(lbttcp_tag, source_port_low, lbttcp_tag_entry_t) UAT_DEC_CB_DEF(lbttcp_tag, source_port_high, lbttcp_tag_entry_t) UAT_DEC_CB_DEF(lbttcp_tag, request_port_low, lbttcp_tag_entry_t) UAT_DEC_CB_DEF(lbttcp_tag, request_port_high, lbttcp_tag_entry_t) UAT_DEC_CB_DEF(lbttcp_tag, store_port_low, lbttcp_tag_entry_t) UAT_DEC_CB_DEF(lbttcp_tag, store_port_high, lbttcp_tag_entry_t) static uat_field_t lbttcp_tag_array[] = { UAT_FLD_CSTRING(lbttcp_tag, name, "Tag name", "Tag name"), UAT_FLD_DEC(lbttcp_tag, source_port_low, "Source port low", "Source port low"), UAT_FLD_DEC(lbttcp_tag, source_port_high, "Source port high", "Source port high"), UAT_FLD_DEC(lbttcp_tag, request_port_low, "Request port low", "Request port low"), UAT_FLD_DEC(lbttcp_tag, request_port_high, "Request port high", "Request port high"), UAT_FLD_DEC(lbttcp_tag, store_port_low, "Store port low", "Store port low"), UAT_FLD_DEC(lbttcp_tag, store_port_high, "Store port high", "Store port high"), UAT_END_FIELDS }; /*----------------------------------------------------------------------------*/ /* UAT callback functions. */ /*----------------------------------------------------------------------------*/ static gboolean lbttcp_tag_update_cb(void * record, char * * error_string) { lbttcp_tag_entry_t * tag = (lbttcp_tag_entry_t *)record;