Hmm, I don't know what I'm thinking of "file dissectors" as being analogous to wiretap modules. I should have thought of them as dissectors instead. My fault.
As long as we have plugins with a good API, then that's good. In fact, we should have a better plugin API than what we have now. I am thinking specifically of custom file formats that I would want to write "file dissectors" for (for some proprietary file formats at my job). Thanks, Gilbert On Thu, Jun 20, 2013 at 3:57 PM, Evan Huus <eapa...@gmail.com> wrote: > On Thu, Jun 20, 2013 at 2:39 PM, Gilbert Ramirez <g...@alumni.rice.edu> > wrote: > > I've written some tools to read various file formats, and what I have > > learned from this is that it's really most useful to create: > > > > 1. a generic library for reading a file format. > > 2. an application dissector (i.e, a FileShark dissector) for using the > > generic library, and providing the API that the application (FileShark) > > wnats. > > 3. And on top of that, FileShark itself. > > > > This is good so that other programs besides FileShark can make use of the > > generic libraries. > > I think this is the wrong way to approach the problem. To draw a > parallel, there's a reason we don't just link a normal TCP stack into > Wireshark. The goal is to be able to display the raw structure of the > file/packets, which is sometimes quite different from the values that > an application reading the file/packets is going to care about. > > > This is different from how we did wiretap, in which the logic for > dissecting > > a packet capture is embedded directly in the wiretap module. If another > > application wanted to decode packet captures, it would have to link > against > > wiretap, and use its APIs. > > Wiretap is a library for reading packet file formats, which is > basically step 1 of your proposal. I'm not entirely clear on what in > your proposal is different, or why it makes sense to do this. > > > This would mean we might spawn some new projects that read the file > formats, > > and those would be separate from FileShark itself. But, that's more > > generally useful. > > If we're going to be decoding a file in Fileshark, there's almost > certainly already a library to read/write it for applications, as > otherwise there would be no files for us to decode. > > > Taking this a step further, maybe it's time to "harden" the APIs of the > > various modules of Wireshark, and also break apart Wireshark. wiretap > could > > be removed entirely out of the Wireshark source base, and put into its > own > > SCM repo and released independently. > > I would be very happy to make proper libraries out of wiretap, > dfilter, epan, etc (and I designed wmem with this in mind). I suspect > splitting them out into multiple repositories is just making work at > this point, but if there's interest once they're usable stand-alone > then it might make sense to reconsider. > > Evan > > > Gilbert > > > > > > > > > > > > On Thu, Jun 20, 2013 at 2:15 PM, Guy Harris <g...@alum.mit.edu> wrote: > >> > >> > >> On Jun 20, 2013, at 11:54 AM, Evan Huus <eapa...@gmail.com> wrote: > >> > >> > 3. Create a separate application called Fileshark that doesn't use > >> > wiretap and links only against libfiledissectors. When dissecting > >> > files directly, wiretap simply gets in the way. Additionally, people > >> > have pointed out several possible UI changes that make sense for files > >> > but not for packets. While hopefully Fileshark and Wireshark will be > >> > able to share much of their code, there are still places where they > >> > will diverge and we want to be able to do that cleanly. > >> > >> Yes. For example, in Fileshark, you either: > >> > >> 1) might want to show, in a summary pane, multiple items for > >> multiple sections/records/etc. of a file > >> > >> or > >> > >> 2) show only one pane, a detail pane, so that with everything > >> closed up, you have a list of sections/records/etc.. > >> > >> > Some of the consequences of this: > >> > - Wireshark proper will not open non-capture files directly. It will > >> > parse files it sees over transport protocols, but to parse an on-disk > >> > file directly will require opening it in Fileshark. > >> > >> Note, BTW, that you might well want to have file dissectors for various > >> forms of capture files that Wireshark can read; if you open those files > in > >> Wireshark, they'd show you the packets (and perhaps other records), but > if > >> you open them in Fileshark, they'd show you the file header (if there is > >> one) and the file records (including the raw contents of record headers, > >> etc.) - that might be a useful tool for Wireshark developers > >> reverse-engineering features of not-publicly-documented file formats. > >> > >> > ___________________________________________________________________________ > >> Sent via: Wireshark-dev mailing list <wireshark-dev@wireshark.org> > >> Archives: http://www.wireshark.org/lists/wireshark-dev > >> Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev > >> > >> mailto:wireshark-dev-requ...@wireshark.org?subject=unsubscribe > > > > > > > > > ___________________________________________________________________________ > > Sent via: Wireshark-dev mailing list <wireshark-dev@wireshark.org> > > Archives: http://www.wireshark.org/lists/wireshark-dev > > Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev > > mailto:wireshark-dev-requ...@wireshark.org > ?subject=unsubscribe > ___________________________________________________________________________ > Sent via: Wireshark-dev mailing list <wireshark-dev@wireshark.org> > Archives: http://www.wireshark.org/lists/wireshark-dev > Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev > mailto:wireshark-dev-requ...@wireshark.org > ?subject=unsubscribe >
___________________________________________________________________________ Sent via: Wireshark-dev mailing list <wireshark-dev@wireshark.org> Archives: http://www.wireshark.org/lists/wireshark-dev Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev mailto:wireshark-dev-requ...@wireshark.org?subject=unsubscribe