2015-11-12 15:48 GMT+01:00 Paul Offord <[email protected]>: > Hi Pascal, > > > > I wondered if that would be the case but it doesn’t seem to be set when I > enter the handoff code. My handoff looks like this: > > > > proto_reg_handoff_tmsvc(void) > > { > > dissector_handle_t dissect_tmsvc_handle; > > HANDLE h_thread; > > > > if (tmsvc_port > 0) { > > dissect_tmsvc_handle = > create_dissector_handle(dissect_tmsvc, proto_tmsvc); > > > > register_postdissector(dissect_tmsvc_handle); > > > > h_thread = create_service_thread(); > > } > > > > return; > > } > > > > I’ve checked the value of tmsvc_port with a breakpoint set on the if > statement and it’s still 0 at this point. It is set to the saved > preference 8989 by the time of the first call to my dissector. > > > > I notice that Anders has given me a slightly different solution and so > I’ll take a look at that next. >
Anders' solution should be the same as mine (or maybe I was not clear): proto_reg_handoff_tmsvc should be given as parameter to perfs_register_protocol and you will see that this function starts being called several times (so you should probably ensure that your code is called only once). > > > Thanks and regards…Paul > > > > > > > > *From:* [email protected] [mailto: > [email protected]] *On Behalf Of *Pascal Quantin > *Sent:* 12 November 2015 14:15 > *To:* Developer support list for Wireshark <[email protected]> > *Subject:* Re: [Wireshark-dev] When is the preference variable updated? > > > > > > > > 2015-11-12 15:07 GMT+01:00 Paul Offord <[email protected]>: > > Hi, > > > > Frankly I feel a bit stupid asking this but I've been trying to figure it > out for about 6 hours and I think I need help. I have a dissector which I > register like this: > > > > static int tmsvc_port = 0; > > > > void > > proto_register_tmsvc(void) > > { > > module_t *tmsvc_module; > > > > proto_tmsvc = proto_register_protocol("TM Syncro Service", > > "TmSyncro", > > "tmsvc"); > > > > tmsvc_module = prefs_register_protocol(proto_tmsvc, NULL); > > > > prefs_register_uint_preference(tmsvc_module, "port", > > "TmSyncro service port", > > "When set to a value greater than 0 the > TmSyncro service is started and accessible via the port number" > > 10, > > &tmsvc_port); > > > > } > > > > Immediately after the prefs_register_uint_preference call I check the > tmsvc_port value and its still 0 (and I've tried other initialisation > values and they remain unchanged). I was expecting tmsvc_port to be set to > the value I last set by editing the preferences through the Wireshark menu > system. > > > > If I check with Menu -> Edit -> Preferences -> Protocols -> TmSyncro sure > enough the value I last set is there. > > > > When does my variable get updated? Or alternatively, how can I retrieve > the saved preference value? > > > > Thanks and regards...Paul > > > > Hi Paul, > > the variable should be set according to the preference content when the > proto_reg_handoff_tmsvc function (that you register thanks to the > prefs_register_protocol function) is called. Alternatively (if you do not > need the reg_handoff function at all) the variable should be set when your > dissector code is called. > > Best regards, > > Pascal. > > ______________________________________________________________________ > > This message contains confidential information and is intended only for > the individual named. If you are not the named addressee you should not > disseminate, distribute or copy this e-mail. Please notify the sender > immediately by e-mail if you have received this e-mail by mistake and > delete this e-mail from your system. > > Any views or opinions expressed are solely those of the author and do not > necessarily represent those of Advance Seven Ltd. E-mail transmission > cannot be guaranteed to be secure or error-free as information could be > intercepted, corrupted, lost, destroyed, arrive late or incomplete, or > contain viruses. The sender therefore does not accept liability for any > errors or omissions in the contents of this message, which arise as a > result of e-mail transmission. > > Advance Seven Ltd. Registered in England & Wales numbered 2373877 at > Endeavour House, Coopers End Lane, Stansted, Essex CM24 1SJ > > ______________________________________________________________________ > This email has been scanned by the Symantec Email Security.cloud service. > For more information please visit http://www.symanteccloud.com > ______________________________________________________________________ > > ___________________________________________________________________________ > Sent via: Wireshark-dev mailing list <[email protected]> > Archives: https://www.wireshark.org/lists/wireshark-dev > Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev > mailto:[email protected] > ?subject=unsubscribe >
___________________________________________________________________________ Sent via: Wireshark-dev mailing list <[email protected]> Archives: https://www.wireshark.org/lists/wireshark-dev Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev mailto:[email protected]?subject=unsubscribe
