Hi Jaap,

   I tried with your suggestion but still the tool crash with the same
sequence. But when i tried applying the same preference code to
packet-udp.cand tried to build wireshark, then it worked fine on
Applying the preference
from udp. *So i doubt that the problem is there while* *Registering the
Preference with Plugin*, it works fine with \epan\dissectors.

Would you please guide what else can be done. Actually my requirement is to
read external .xml file path/location to decode some part within my plugin
packet. So how can that file path/location can be read. At present i m
setting an enviornment variable and reading it but i m searching if some
setting could be  given in Wireshark itself to read the file path/location.

Reply soon,
Thank You,
Khushbu




On 12/17/07, Jaap Keuter <[EMAIL PROTECTED]> wrote:
>
> Hi,
>
> Loose the ipt_config_preferencefile variable, just go with
> gbl_iptConfigDictionary. See packet-cigi.c where global_host_ip is
> handled similarly.
>
> Thanx,
> Jaap
>
> khushbu thakkar wrote:
> > Hi Jaap,
> >
> >            Thanx for the response. Attached is the part of plugin code.
> >
> > Reply Soon,
> > Thank You,
> > Khushbu
> >
> > On 12/15/07, *Jaap Keuter* <[EMAIL PROTECTED]
> > <mailto:[EMAIL PROTECTED]>> wrote:
> >
> >     Hi,
> >
> >     If you could post at least your proto_register and proto_handoff
> code we
> >     might be able to get some insight.
> >
> >     Thanx,
> >     Jaap
> >
> >     khushbu thakkar wrote:
> >      > Hello,
> >      >
> >      >          I am not actually new to Wireshark, i have build the
> >     plugin in
> >      > Wireshark which has to be decoded on the top of UDP. I m using
> >     this on
> >      > Window XP SP1 . I have build Wireshark with GTK+ 2.10.12 and
> >     Wireshark
> >      > Version is 0.99.6.
> >      >
> >      >         The problem with me is *Wireshark Crash* when the
> >     "*Preference*"
> >      > of the my *plugin * is set. Whenever the preference value changes
> >     from
> >      > the initialized value and if we try to capture or load the
> >     recorded file
> >      > having packets of my plugin protocol it crashes. And one more
> >     thing is
> >      > if i disable the preference code n use the xxx.dll then it works
> >     fine
> >      > i.e. problem is due to preference code.
> >      >
> >      >           I m using the Standard code format for registering the
> >      > Preference as in Readme.developer. So anybody could please guide
> me
> >      > where should the problem actually be. Thank You in advance for
> >     the help.
> >      >
> >      > Reply Soon,
> >      > Best Regards,
> >      > Khushbu
> >      >
> >
> >     _______________________________________________
> >     Wireshark-dev mailing list
> >     Wireshark-dev@wireshark.org <mailto:Wireshark-dev@wireshark.org>
> >     http://www.wireshark.org/mailman/listinfo/wireshark-dev
> >
> >
> >
> > ------------------------------------------------------------------------
> >
> >
> > /* Global sample preference ("controls" display of numbers) */
> > static const char *gbl_iptConfigDictionary = NULL;
> > static char *ipt_config_preferencefile           = NULL;
> >
> > /* Register the protocol with Wireshark */
> > /* this format is require because a script is used to build the C
> function
> >    that calls all the protocol registration.
> > */
> > void proto_register_ipt_spy(void)
> > {
> >   module_t *ipt_spy_module;
> > /* Setup list of header fields  See Section 1.6.1 for details*/
> >       static hf_register_info hf[] = {
> >               { &hf_ipt_spy_timestamp,
> >                       { "Time Stamp (microseconds)",           "
> iptwp.timestamp",
> >                       FT_UINT32, BASE_DEC, NULL, 0x0,
> >                       "", HFILL }
> >               },
> >               { &hf_ipt_spy_protocolversion,
> >                       { "Protocol Version",           "
> iptwp.protocolversion",
> >                       FT_UINT32, BASE_HEX,
> VALS(ipt_spy_protocol_ver_vals)  , 0x0,
> >                       "", HFILL }
> >               },
> >                       .
> >                       .
> >                       .
> >                       .
> >       /* Setup protocol subtree array */
> >       static gint *ett[] = {
> >               &ett_ipt_spy,
> >               &ett_ipt_spy_dscpfield,
> >               &ett_ipt_spy_app_data,
> >               &ett_ipt_spy_nestd_app_data,
> >               &ett_ipt_spy_app_data_booleanfield,
> >               &ett_ipt_spy_multiple_app_data,
> >               &ett_ipt_spy_app_data_fcs,
> >       };
> >
> >       ipt_config_preferencefile = g_strdup("");
> >       gbl_iptConfigDictionary = g_strdup(ipt_config_preferencefile);
> >
> > /* Register the protocol name and description */
> >       proto_ipt_spy = proto_register_protocol("IP Train Wire Protocol",
> "IPTWP", "iptwp");
> >
> >       register_dissector("IPTWP", dissect_ipt_spy, proto_ipt_spy); /*By
> Cisco*/
> >
> > /* Required function calls to register the header fields and subtrees
> used */
> >       proto_register_field_array(proto_ipt_spy, hf, array_length(hf));
> >       proto_register_subtree_array(ett, array_length(ett));
> >
> > /* Register preferences module (See Section 2.6 for more on preferences)
> */
> >     ipt_spy_module = prefs_register_protocol(proto_ipt_spy,
> proto_reg_handoff_ipt_spy);
> >
> > /* Register a sample preference */
> >       prefs_register_string_preference(ipt_spy_module, "iptfile",
> >                                   "IPT configuration file",
> >                                   "IPT configuration file",
> >                                   &gbl_iptConfigDictionary);
> >
> > }
> >
> >
> > /* If this dissector uses sub-dissector registration add a registration
> routine.
> >    This exact format is required because a script is used to find these
> routines
> >    and create the code that calls these routines.
> >
> >    This function is also called by preferences whenever "Apply" is
> pressed
> >    (see prefs_register_protocol above) so it should accommodate being
> called
> >    more than once.
> > */
> > void proto_reg_handoff_ipt_spy(void)
> > {
> >         static gboolean inited = FALSE;
> >               dissector_handle_t ipt_spy_handle;
> >
> >               //g_free(ipt_config_pref);
> >               // current_asn1 = g_strdup(asn1_filename);
> >               //ipt_config_pref = g_strdup(gbl_iptConfigDictionary);
> >         if(!inited )
> >               {
> >                       ipt_spy_handle =
> create_dissector_handle(dissect_ipt_spy, proto_ipt_spy);
> >                       inited = TRUE;
> >               }
> >               else
> >               {
> >                       dissector_delete("udp.port", ipt_spy_UDP_MD_PORT,
> ipt_spy_handle);
> >                       dissector_delete("udp.port", ipt_spy_UDP_PD_PORT,
> ipt_spy_handle);
> >               }
> >
> >               ipt_config_preferencefile = gbl_iptConfigDictionary;
> >
> >               dissector_add("udp.port", ipt_spy_UDP_MD_PORT,
> ipt_spy_handle);
> >               dissector_add("udp.port", ipt_spy_UDP_PD_PORT,
> ipt_spy_handle);
> >     /*
> >           If you perform registration functions which are dependant upon
> >           prefs the you should de-register everything which was
> associated
> >           with the previous settings and re-register using the new prefs
> settings
> >           here. In general this means you need to keep track of what
> value the
> >           preference had at the time you registered using a local static
> in this
> >           function. ie.
> >           static int currentPort = -1;
> >           if( -1 != currentPort ) {
> >               dissector_delete( "tcp.port", currentPort,
> ipt_spy_handle);
> >           }
> >           currentPort = gPortPref;
> >           dissector_add("tcp.port", currentPort, ipt_spy_handle);
> >       */
> >
> >
> > }
> >
> >
>
> _______________________________________________
> Wireshark-dev mailing list
> Wireshark-dev@wireshark.org
> http://www.wireshark.org/mailman/listinfo/wireshark-dev
>
_______________________________________________
Wireshark-dev mailing list
Wireshark-dev@wireshark.org
http://www.wireshark.org/mailman/listinfo/wireshark-dev

Reply via email to