Colin Helliwell <colin.helliwell@...> writes:
> I’ve developed a number of dissectors which dissect payload from those below
and decode their own protocol. Now I want to pass my payload ‘ownward’ to
another (the JSON dissector). I’d appreciate any tips on how to
initialise/register my protocol such that the JSON dissector sees it and/or how
to pass the payload on to it. A summary of the calls used would probably do –
enough to get me going in the right direction.
You may want to make use of find_dissector() and call_dissector(). ie.,
something like:
static dissector_handle_t json_handle;
static void
dissect_yourproto(...)
{
tvbuff_t *next_tvb;
...
/* All done processing your stuff, so hand off dissection to json,
* (assuming you know the payload is for the json dissector) */
next_tvb = tvb_new_subset(tvb, offset, length, length);
/* ... or next_tvb = tvb_new_subset_remaining( ... ); */
call_dissector(json_handle, next_tvb, pinfo, some_tree);
}
void
proto_reg_handoff_yourproto(void)
{
json_handle = find_dissector("json");
}