Thanks Guy. I have modified my local dissectors to use "asn1_id_decode1()" and have replaced my 0.9.14 asn1.c asn1.h with the latest from CVS. I remember the TCAP dissector had warnings when you built it, I have an IS-41 dissector that builds clean on my Solaris machine. I would be grateful if you could build it and send me the compile output. I will fix any warnings I can. Any problems in this dissector I can claim as mine completely! I have attached the cvs update -u diffs from the latest CVS source. Thanks again. > -----Original Message----- > From: ethereal-dev-bounces@xxxxxxxxxxxx > [mailto:ethereal-dev-bounces@xxxxxxxxxxxx]On Behalf Of Guy Harris > Sent: Wednesday, October 01, 2003 11:21 PM > To: Jeff Morriss > Cc: Ethereal Development List > Subject: Re: [Ethereal-dev] ITU/ANSI TCAP dissector > > > On Fri, Sep 12, 2003 at 09:46:55AM -0400, Jeff Morriss wrote: > > Jeff Morriss wrote: > > > > > > I'm not ASN.1 expert either, but it appears that the existing > > > "asn1_tag_decode()" only works for the "high tag number" format > > > (multi-octet) tag IDs. In particular, it assumes that bit 8 > will be set > > > on low-tag-number identifiers (but this isn't necessarily the case). > > > > > > Oops, no, that's not the problem... > > > > > > The problem is that the TCAP dissector is using 'asn1_tag_decode()' > > > instead of 'asn1_id_decode()' (which does the work for > dealing with low > > > and high tag number formats). > > > > > > However, the TCAP dissector wants the tag to include the Class, > > > Constructor, and Tag bits all combined together... > > > > > > So there are 3 options: > > > > > > 1) Rewrite a bunch of the TCAP dissector to look at tag IDs > as a triplet > > > (class, constructor, tag number) > > > - this probably has negative filtering consequences: users will > > > probably want to filter on "tcap.msgtype == 0x62" instead of just the > > > tag number > > > > > > 2) Make 'asn1_tag_decode_m()' a wrapper around > 'asn1_id_decode()' that > > > then squishes the class, constructor, and tag number back together > > > > > > 3) Change the comment for (and maybe the name of) > 'asn1_tag_decode_m()' > > > to indicate why that function is used instead of 'asn1_id_decode()' > > > > Or, here's the (obvious, some would say) option #4: Add the > new routine > > from (3) to "asn1.c" for others to use if they want. (I couldn't think > > of a better name for this routine than 'asn1_id_decode1()'.) > > I've checked in Michael's original TCAP dissector, with both of your > patches to it, along with the ASN.1 BER changes - except that, as I > don't know whether any plugins not part of Ethereal use > "asn1_tag_decode()", I left its semantics the same (it zeroes out *tag), > and put the bulk of it into a "asn1_tag_get()" routine, internal to > asn1.c, and had "asn1_id_decode1()" use it. > > If "asn1_tag_decode()" isn't being used, we should get rid of it; if > it's being used but stuff using it should be using something else, we > should, again, get rid of it. > > _______________________________________________ > Ethereal-dev mailing list > Ethereal-dev@xxxxxxxxxxxx > http://www.ethereal.com/mailman/listinfo/ethereal-dev
Attachment:
Makefile.am.diff
Description: Binary data
Attachment:
Makefile.nmake.diff
Description: Binary data
Attachment:
AUTHORS.diff
Description: Binary data
Attachment:
packet-ansi_map.c
Description: Binary data
Powered by MHonArc 2.6.10