aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorTomas Kukosa <tomas.kukosa@siemens.com>2005-01-03 14:41:02 +0000
committerTomas Kukosa <tomas.kukosa@siemens.com>2005-01-03 14:41:02 +0000
commit0d5093663d81405de07f2b7f4729740d48bdcba8 (patch)
treeb961f12a1354550e1e16f16f63ea648f965e5b9a /tools
parent5e60281f8d313a724c994c4705a42cd8e7ccec5c (diff)
Directives #.FN_* can be used for Ethereal types as well as for ASN.1 types
svn path=/trunk/; revision=12942
Diffstat (limited to 'tools')
-rw-r--r--tools/asn2eth.py19
1 files changed, 12 insertions, 7 deletions
diff --git a/tools/asn2eth.py b/tools/asn2eth.py
index 1855cadb86..79c0f9d9eb 100644
--- a/tools/asn2eth.py
+++ b/tools/asn2eth.py
@@ -813,14 +813,18 @@ class EthCtx:
out += "dissect_%s_%s(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index, proto_item **item, void *private_data) {\n" % (self.eth_type[tname]['proto'], tname)
elif (self.OPer()):
out += "dissect_%s_%s(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {\n" % (self.eth_type[tname]['proto'], tname)
- if self.conform.get_fn_presence(self.eth_type[tname]['ref'][0]):
+ if self.conform.get_fn_presence(tname):
+ out += self.conform.get_fn_text(tname, 'FN_HDR')
+ elif self.conform.get_fn_presence(self.eth_type[tname]['ref'][0]):
out += self.conform.get_fn_text(self.eth_type[tname]['ref'][0], 'FN_HDR')
return out
#--- eth_type_fn_ftr --------------------------------------------------------
def eth_type_fn_ftr(self, tname):
out = '\n'
- if self.conform.get_fn_presence(self.eth_type[tname]['ref'][0]):
+ if self.conform.get_fn_presence(tname):
+ out += self.conform.get_fn_text(tname, 'FN_FTR')
+ elif self.conform.get_fn_presence(self.eth_type[tname]['ref'][0]):
out += self.conform.get_fn_text(self.eth_type[tname]['ref'][0], 'FN_FTR')
out += " return offset;\n"
out += "}\n"
@@ -828,12 +832,13 @@ class EthCtx:
#--- eth_type_fn_body -------------------------------------------------------
def eth_type_fn_body(self, tname, body, pars=None):
- if self.conform.get_fn_body_presence(self.eth_type[tname]['ref'][0]):
+ out = body
+ if self.conform.get_fn_body_presence(tname):
+ out = self.conform.get_fn_text(tname, 'FN_BODY')
+ elif self.conform.get_fn_body_presence(self.eth_type[tname]['ref'][0]):
out = self.conform.get_fn_text(self.eth_type[tname]['ref'][0], 'FN_BODY')
- elif pars:
- out = body % pars
- else:
- out = body
+ if pars:
+ out = out % pars
return out
#--- eth_output_hf ----------------------------------------------------------