Wireshark-dev: [Wireshark-dev] asn2wrs #.TABLE
From: "Graeme Lunt" <graeme@xxxxxxxxxxx>
Date: Mon, 26 Nov 2007 18:38:33 +0100
Tomas, Anders, I am trying to make the new P7 dissector table driven using the #.TABLE directives in the conformance file, based on what I can see in the camel dissector. I added the following to p7.cnf (it is commented out in the checked-in version): # This table creates the value_sting to name P7 operation codes and errors # in file packet-p7-table.c which is included in the template file # #.TABLE_HDR /* P7 ABSTRACT-OPERATIONS */ const value_string p7_opr_code_strings[] = { #.TABLE_BODY ABSTRACT-OPERATION { %(&operationCode)s, "%(_ident)s" }, #.TABLE_FTR { 0, NULL } ; #.END ABSTRACT-OPERATION is defined as: #.CLASS ABSTRACT-OPERATION &ArgumentType &argumentTypeOptional BooleanType &returnResult BooleanType &ResultType &resultTypeOptional BooleanType &Errors ClassReference ERROR &Linked ClassReference OPERATION &synchronous BooleanType &alwaysReturns BooleanType &InvokePriority _FixedTypeValueSetFieldSpec &ResultPriority _FixedTypeValueSetFieldSpec &operationCode TypeReference Code #.END Now I know that I am building the table on "ABSTRACT-OPERATION" rather than "OPERATION" and "OPERATION" seems to be hard-coded into ans2wrs, but I tried anyway. I get the following error (which I didn't before): env python "../../tools/asn2wrs.py" -b -e -X -T -p p7 -c p7.cnf -s packet-p7-template MSAbstractService.asn MSGeneralAttributeTypes.asn MSAccessProtocol.asn ASN.1 to Wireshark dissector compiler Traceback (most recent call last): File "../../tools/asn2wrs.py", line 7671, in ? eth_main() File "../../tools/asn2wrs.py", line 7610, in eth_main ectx.eth_do_output() File "../../tools/asn2wrs.py", line 1987, in eth_do_output self.eth_output_table() File "../../tools/asn2wrs.py", line 1846, in eth_output_table raise sys.exc_type, "%s:%s invalid key %s for information object %s of %s" % (rep['fn'], rep['lineno'], sys.exc_value, ident, var) KeyError: "p7.cnf:199 invalid key '&operationCode' for information object ms-bind of ABSTRACT-OPERATION" This looks encouraging, as it seems to be saying that it doesn't like ms-bind not having an operationCode. Bind doesn't have an operation code, so I comment out this ABSTRACT-OPERATION: -- MS-bind abstract-operation --ms-bind ABSTRACT-OPERATION ::= { -- ARGUMENT MSBindArgument -- RESULT MSBindResult -- ERRORS {ms-bind-error} --} And try again: env python "../../tools/asn2wrs.py" -b -e -X -T -p p7 -c p7.cnf -s packet-p7-template MSAbstractService.asn MSGeneralAttributeTypes.asn MSAccessProtocol.asn ASN.1 to Wireshark dissector compiler Traceback (most recent call last): File "../../tools/asn2wrs.py", line 7671, in ? eth_main() File "../../tools/asn2wrs.py", line 7610, in eth_main ectx.eth_do_output() File "../../tools/asn2wrs.py", line 1987, in eth_do_output self.eth_output_table() File "../../tools/asn2wrs.py", line 1838, in eth_output_table obj = self.get_obj_repr(ident, var_list) File "../../tools/asn2wrs.py", line 711, in get_obj_repr for f in val.keys(): AttributeError: 'str' object has no attribute 'keys' It now seems to be trying to output the table - but something fundamental is wrong. (I'm afraid my python isn't up to debugging this.) Any ideas where I am going wrong? Or is this not yet supported in asn2wrs? Thanks, Graeme
- Follow-Ups:
- Re: [Wireshark-dev] asn2wrs #.TABLE
- From: Kukosa, Tomas
- Re: [Wireshark-dev] asn2wrs #.TABLE
- Prev by Date: Re: [Wireshark-dev] [Wireshark-commits] rev 23601: /trunk/ /trunk/: capture_loop.c
- Next by Date: Re: [Wireshark-dev] [Wireshark-commits] rev 23601: /trunk/ /trunk/: capture_loop.c
- Previous by thread: Re: [Wireshark-dev] [Wireshark-commits] rev 23601: /trunk/ /trunk/: capture_loop.c
- Next by thread: Re: [Wireshark-dev] asn2wrs #.TABLE
- Index(es):