On Jul 8, 2014, at 2:07 PM, Ben Burwell <[email protected]> wrote:
> I'm writing a plugin and I'm using register_init_routine() to have a function
> called (apparently when a capture is started).
No, it's not.
To quote the comment before the code that handles init routines:
/* Allow protocols to register "init" routines, which are called before
we make a pass through a capture file and dissect all its packets
(e.g., when we read in a new capture file, or run a "filter packets"
or "colorize packets" pass over the current capture file). */
This is not tied to live captures - Wireshark can either read in a new capture
file because it's opening an existing capture file or because it's started a
live capture writing out a new capture file (all captures in Wireshark are
written to files as the capture happens). It's not even tied to opening a new
file - if Wireshark re-dissects all the packets in a capture, the init routine
is called.
Do not depend on an init routine being called *only* at the beginning of a live
capture.
> I'd also like a function to be called when a capture is finished. Are there
> any other API calls that can be used to hook in to other points?
No. As indicated, we don't even have a "live capture starts" hook in the API
exported to plugins (or even built-in dissectors or taps), much less a "live
capture completes" hook. We will *never* provide hooks specific to live
captures for dissectors to use, as dissectors should not and must not dissect
live captures and saved captures differently, and taps should not compute
statistics differently for live captures and saved captures (for a live
capture, the tap might update incrementally, whereas, for a saved capture,
there's no point in updating the display until the entire capture is read, but
that can be handled by calling a "redisplay" routine more often in the former
case).
It might be useful to allow dissectors and taps to register routines called
after the last packet has been read; this might, for example, allow dissectors
to "finish" a partial reassembly and mark it as partially reassembled, so that
some dissection can be done on the incompletely-reassembled packet.
___________________________________________________________________________
Sent via: Wireshark-dev mailing list <[email protected]>
Archives: http://www.wireshark.org/lists/wireshark-dev
Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev
mailto:[email protected]?subject=unsubscribe