Robert Hogan wrote:
I'm most of the way (I hope) through a tn3270 dissector. However I'm not
sure of the most acceptable way of doing a couple of things:
- Should I just make TN3270 a sub-dissector of telnet? So users
select 'decode as telnet' and get the tn3270 dissected implicitly? Or
should it have a separate 'decode as' entry? If the latter, I'm not sure
how I can call telnet as a 'super-dissector' or alternatively, avoid
duplicating code.
Well, TN3270 is really 3270-over-telnet so I'd think the former was better.
- The best way of recognizing a tn3270 session is through the 'terminal
type' telnet option at session negotiation. Browsing through other
dissector code I can't find a canonical way of storing information about a
given stream, other than possibly misusing the conversation api. I'm sure
I'm missing a trick. What is the standard way of recognizing that a packet
is from a stream previously identified as requiring a specific
sub-dissector?
I think the only (and best) way to do that is to store the info in a
conversation structure. I've always thought the purpose of
conversations was to store info for later (subsequent packet) use.
(Then again: I've never used them.)