Brian Oleksa wrote:
Olivier
Yes...looks like I do. Any thoughts on how I can fix this..??
Thanks,
Brian
void proto_reg_handoff_helen(void) {
static gboolean initialized = FALSE;
int i;
for (i = 0; i < 25; i++) {
if (!initialized) {
data_handle = find_dissector("data");
helen_handle = create_dissector_handle(dissect_helen,
proto_helen);
dissector_add("udp.port", ports[i], helen_handle);
}
}
initialized = TRUE;
}
I haven't double-checked, but I exepect the answer is to just reuse the
handle; ie: create the handle just once rather than creating a new
handle for each port.
Also: you certainly don't need to find a data_handle multiple times !
So: just loop on the dissector_add.
------
Note:
Theres also a "range" mechanism/idiom which can be used (especially if
you want to allow the range to be changed in a preference).
See packet-fix.c for an example.