Ethereal-dev: [Ethereal-dev] fail to register a new protocol
Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.
From: "David Francois" <davidfrancois19@xxxxxxxxxxx>
Date: Mon, 13 Jun 2005 21:15:34 -0400
Hi, The following is my packet-dspmsg.c. I created this file accordingto packet-frame.c. The code is not completed for dissector, but it should works for protocol registration. After creating packet-dspmsg.c and packet-dspmsg.h under \epan\dissectors folder,
I added name of packet-dspmsg.c and packet-dspmsg.h in Makefile.common.After compilation,I can see proto_register_dspmsg(void) in register_all_protocols(void) in register.c (see register.c below) but when I debug proto_register_dspmsg() with Visual C++ compiler, the code never enter proto_register_dspmsg()?
In register.c file, Visual C++ calls proto_register_dsi(), then skip proto_register_dspmsg (), then call proto_register_dtp ().
Could you tell if I missed some steps and how to fix this problem? Thanks a lot for help. David. The following are register.c,packet-dspmsg.c and packet-dspmsg.h file ----------------------------- Cut Here -------------------- // register.c void register_all_protocols(void) { ..... {extern void proto_register_dsi (void); proto_register_dsi ();} {extern void proto_register_dspmsg (void); proto_register_dspmsg ();} {extern void proto_register_dtp (void); proto_register_dtp ();} ..... } ----------------------------- Cut Here -------------------- //packet-dspmsg.c //Routines for dspmsg packet disassembly #ifdef HAVE_CONFIG_H # include "config.h" #endif #include <glib.h> #include <epan/packet.h> #include <epan/prefs.h> #include "etypes.h" #include <epan/addr_resolv.h> #include "packet-dspmsg.h" #include "packet-ieee8023.h" #include "packet-ipx.h" #include "packet-isl.h" #include "packet-llc.h" #include <epan/crc32.h> #include <epan/tap.h> /* protocols and header fields */ static int proto_dspmsg = -1; static int hf_dspmsg_len = -1; static int hf_dspmsg_num_record = -1; static int hf_dspmsg_records = -1; static gint ett_dspmsg2 = -1; static int dspmsg_tap = -1; static heur_dissector_list_t heur_subdissector_list; static void dissect_dspmsg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, int fcs_len) { int test = 5; // add something later here return; } void proto_register_dspmsg(void) { static hf_register_info hf[] = { { &hf_dspmsg_len, { "dspmsg_len", "dspmsg.len", FT_UINT16, BASE_DEC, NULL, 0x0, "Source Hardware Address", HFILL }}, { &hf_dspmsg_num_record,{ "record_number", "dspmsg.record_number", FT_UINT16, BASE_DEC, NULL, 0x0,
"", HFILL }}, /* registered here but handled in ethertype.c */ { &hf_dspmsg_records,{ "records", "dspmsg.records", FT_UINT16, BASE_HEX, VALS(etype_vals), 0x0,
"", HFILL }}, }; static gint *ett[] = { &ett_dspmsg2, }; module_t *dspmsg_module; proto_dspmsg = proto_register_protocol("dspmsg", "dspmsg", "dspmsg"); proto_register_field_array(proto_dspmsg, hf, array_length(hf)); proto_register_subtree_array(ett, array_length(ett)); /* subdissector code */ register_heur_dissector_list("dspmsg", &heur_subdissector_list); /* Register configuration preferences */ dspmsg_module = prefs_register_protocol(proto_dspmsg, NULL); register_dissector("dspmsg", dissect_dspmsg, proto_dspmsg); dspmsg_tap = register_tap("dspmsg"); } void proto_reg_handoff_dspmsg(void) { dissector_handle_t dspmsg_handle; dspmsg_handle = create_dissector_handle(dissect_dspmsg, proto_dspmsg); dissector_add("wtap_encap", WTAP_ENCAP_DSPMSG, dspmsg_handle); } ----------------------------------- Cut Here ----------------- // packet-dspmsg.h #ifndef __PACKET_DSPMSG_H__ #define __PACKET_DSPMSG_H__ typedef struct _dspmsg_hdr { guint8 dsp_id; guint16 msg_len; guint8 record_num; } dspmsg_hdr; #endif ----------------------------End--------------------------------- _________________________________________________________________Take advantage of powerful junk e-mail filters built on patented Microsoft® SmartScreen Technology. http://join.msn.com/?pgmarket=en-ca&page=byoa/prem&xAPID=1994&DI=1034&SU=http://hotmail.com/enca&HL=Market_MSNIS_Taglines Start enjoying all the benefits of MSN® Premium right now and get the first two months FREE*.
- Follow-Ups:
- Re: [Ethereal-dev] fail to register a new protocol
- From: Ulf Lamping
- Re: [Ethereal-dev] fail to register a new protocol
- Prev by Date: [Ethereal-dev] Re: best option for decoding iscsi?
- Next by Date: [Ethereal-dev] can someone close bug 242
- Previous by thread: [Ethereal-dev] Re: best option for decoding iscsi?
- Next by thread: Re: [Ethereal-dev] fail to register a new protocol
- Index(es):