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.
___________________________________________________________________________ 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
