static int
dissect_x509sat_SyntaxBMPString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 349 "x509sat.cnf"
+#line 348 "x509sat.cnf"
tvbuff_t *wide_tvb = NULL;
char *string;
actx, tree, tvb, offset, hf_index,
&wide_tvb);
-#line 354 "x509sat.cnf"
+#line 353 "x509sat.cnf"
if (! wide_tvb) {
return offset;
}
static int
dissect_x509sat_GUID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 363 "x509sat.cnf"
+#line 362 "x509sat.cnf"
gint8 class;
gboolean pc;
gint32 tag;
/*--- Included file: packet-x509sat-syn-reg.c ---*/
#line 1 "packet-x509sat-syn-reg.c"
/*--- Syntax registrations ---*/
- register_ber_syntax_dissector("DirectoryString", proto_x509sat, dissect_DirectoryString_PDU);
- register_ber_syntax_dissector("UniqueIdentifier", proto_x509sat, dissect_UniqueIdentifier_PDU);
+ register_ber_syntax_dissector("BitString", proto_x509sat, dissect_BitString_PDU);
+ register_ber_syntax_dissector("Boolean", proto_x509sat, dissect_Boolean_PDU);
+ register_ber_syntax_dissector("CaseIgnoreListMatch", proto_x509sat, dissect_CaseIgnoreListMatch_PDU);
register_ber_syntax_dissector("CountryName", proto_x509sat, dissect_CountryName_PDU);
- register_ber_syntax_dissector("Guide", proto_x509sat, dissect_Guide_PDU);
+ register_ber_syntax_dissector("DestinationIndicator", proto_x509sat, dissect_DestinationIndicator_PDU);
+ register_ber_syntax_dissector("DirectoryString", proto_x509sat, dissect_DirectoryString_PDU);
register_ber_syntax_dissector("EnhancedGuide", proto_x509sat, dissect_EnhancedGuide_PDU);
- register_ber_syntax_dissector("PostalAddress", proto_x509sat, dissect_PostalAddress_PDU);
- register_ber_syntax_dissector("TelephoneNumber", proto_x509sat, dissect_TelephoneNumber_PDU);
- register_ber_syntax_dissector("TelexNumber", proto_x509sat, dissect_TelexNumber_PDU);
register_ber_syntax_dissector("FacsimileTelephoneNumber", proto_x509sat, dissect_FacsimileTelephoneNumber_PDU);
- register_ber_syntax_dissector("X121Address", proto_x509sat, dissect_X121Address_PDU);
+ register_ber_syntax_dissector("GUID", proto_x509sat, dissect_GUID_PDU);
+ register_ber_syntax_dissector("Guide", proto_x509sat, dissect_Guide_PDU);
register_ber_syntax_dissector("InternationalISDNNumber", proto_x509sat, dissect_InternationalISDNNumber_PDU);
- register_ber_syntax_dissector("DestinationIndicator", proto_x509sat, dissect_DestinationIndicator_PDU);
- register_ber_syntax_dissector("PreferredDeliveryMethod", proto_x509sat, dissect_PreferredDeliveryMethod_PDU);
- register_ber_syntax_dissector("PresentationAddress", proto_x509sat, dissect_PresentationAddress_PDU);
- register_ber_syntax_dissector("ProtocolInformation", proto_x509sat, dissect_ProtocolInformation_PDU);
+ register_ber_syntax_dissector("Integer", proto_x509sat, dissect_Integer_PDU);
register_ber_syntax_dissector("NameAndOptionalUID", proto_x509sat, dissect_NameAndOptionalUID_PDU);
- register_ber_syntax_dissector("CaseIgnoreListMatch", proto_x509sat, dissect_CaseIgnoreListMatch_PDU);
register_ber_syntax_dissector("ObjectIdentifier", proto_x509sat, dissect_ObjectIdentifier_PDU);
register_ber_syntax_dissector("OctetString", proto_x509sat, dissect_OctetString_PDU);
- register_ber_syntax_dissector("BitString", proto_x509sat, dissect_BitString_PDU);
- register_ber_syntax_dissector("Integer", proto_x509sat, dissect_Integer_PDU);
- register_ber_syntax_dissector("Boolean", proto_x509sat, dissect_Boolean_PDU);
+ register_ber_syntax_dissector("PostalAddress", proto_x509sat, dissect_PostalAddress_PDU);
+ register_ber_syntax_dissector("PreferredDeliveryMethod", proto_x509sat, dissect_PreferredDeliveryMethod_PDU);
+ register_ber_syntax_dissector("PresentationAddress", proto_x509sat, dissect_PresentationAddress_PDU);
+ register_ber_syntax_dissector("BMPString", proto_x509sat, dissect_SyntaxBMPString_PDU);
register_ber_syntax_dissector("GeneralizedTime", proto_x509sat, dissect_SyntaxGeneralizedTime_PDU);
- register_ber_syntax_dissector("UTCTime", proto_x509sat, dissect_SyntaxUTCTime_PDU);
+ register_ber_syntax_dissector("GeneralString", proto_x509sat, dissect_SyntaxGeneralString_PDU);
+ register_ber_syntax_dissector("GraphicString", proto_x509sat, dissect_SyntaxGraphicString_PDU);
+ register_ber_syntax_dissector("IA5String", proto_x509sat, dissect_SyntaxIA5String_PDU);
+ register_ber_syntax_dissector("ISO646String", proto_x509sat, dissect_SyntaxISO646String_PDU);
register_ber_syntax_dissector("NumericString", proto_x509sat, dissect_SyntaxNumericString_PDU);
register_ber_syntax_dissector("PrintableString", proto_x509sat, dissect_SyntaxPrintableString_PDU);
- register_ber_syntax_dissector("IA5String", proto_x509sat, dissect_SyntaxIA5String_PDU);
- register_ber_syntax_dissector("BMPString", proto_x509sat, dissect_SyntaxBMPString_PDU);
+ register_ber_syntax_dissector("T61String", proto_x509sat, dissect_SyntaxT61String_PDU);
+ register_ber_syntax_dissector("TeletexString", proto_x509sat, dissect_SyntaxTeletexString_PDU);
register_ber_syntax_dissector("UniversalString", proto_x509sat, dissect_SyntaxUniversalString_PDU);
register_ber_syntax_dissector("UTF8String", proto_x509sat, dissect_SyntaxUTF8String_PDU);
- register_ber_syntax_dissector("TeletexString", proto_x509sat, dissect_SyntaxTeletexString_PDU);
- register_ber_syntax_dissector("T61String", proto_x509sat, dissect_SyntaxT61String_PDU);
+ register_ber_syntax_dissector("UTCTime", proto_x509sat, dissect_SyntaxUTCTime_PDU);
register_ber_syntax_dissector("VideotexString", proto_x509sat, dissect_SyntaxVideotexString_PDU);
- register_ber_syntax_dissector("GraphicString", proto_x509sat, dissect_SyntaxGraphicString_PDU);
- register_ber_syntax_dissector("ISO646String", proto_x509sat, dissect_SyntaxISO646String_PDU);
register_ber_syntax_dissector("VisibleString", proto_x509sat, dissect_SyntaxVisibleString_PDU);
- register_ber_syntax_dissector("GeneralString", proto_x509sat, dissect_SyntaxGeneralString_PDU);
- register_ber_syntax_dissector("GUID", proto_x509sat, dissect_GUID_PDU);
+ register_ber_syntax_dissector("TelephoneNumber", proto_x509sat, dissect_TelephoneNumber_PDU);
+ register_ber_syntax_dissector("TelexNumber", proto_x509sat, dissect_TelexNumber_PDU);
+ register_ber_syntax_dissector("UniqueIdentifier", proto_x509sat, dissect_UniqueIdentifier_PDU);
+ register_ber_syntax_dissector("X121Address", proto_x509sat, dissect_X121Address_PDU);
/*--- End of included file: packet-x509sat-syn-reg.c ---*/
#line 75 "packet-x509sat-template.c"
out += 'dissect_'+f+'(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_);\n'
return out
- #--- eth_out_syntax_reg ----------------------------------------------------------
- def eth_out_syntax_reg(self, p, f):
- if f.endswith('_PDU'):
- n = f[:-4]
- else:
- n = f
-
- if self.remove_prefix and n.startswith(self.remove_prefix):
- n = n[len(self.remove_prefix):]
-
- out = ' register_ber_syntax_dissector("'+n+'", proto_'+p+', dissect_'+f+');\n'
- return out
-
#--- eth_output_hf ----------------------------------------------------------
def eth_output_hf (self):
if not len(self.eth_hf_ord) and not len(self.eth_hfpdu_ord) and not len(self.named_bit): return
fx = self.output.file_open('syn-reg')
fempty = True
first_decl = True
- for p in self.eth_hfpdu_ord:
+ for k in self.conform.get_order('SYNTAX'):
+ reg = self.conform.use_item('SYNTAX', k)
if first_decl:
fx.write(' /*--- Syntax registrations ---*/\n')
first_decl = False
- fx.write(self.eth_out_syntax_reg(self.eproto, p))
+ fx.write(' register_ber_syntax_dissector(%s, proto_%s, dissect_%s_PDU);\n' % (k, self.eproto, reg['pdu']));
fempty=False
self.output.file_close(fx, discard=fempty)
self.tblcfg['MAKE_ENUM'] = { 'val_nm' : 'flag', 'val_dflt' : 0, 'chk_dup' : True, 'chk_use' : True }
self.tblcfg['USE_VALS_EXT'] = { 'val_nm' : 'flag', 'val_dflt' : 0, 'chk_dup' : True, 'chk_use' : True }
self.tblcfg['PDU'] = { 'val_nm' : 'attr', 'val_dflt' : None, 'chk_dup' : True, 'chk_use' : True }
+ self.tblcfg['SYNTAX'] = { 'val_nm' : 'attr', 'val_dflt' : None, 'chk_dup' : True, 'chk_use' : True }
self.tblcfg['REGISTER'] = { 'val_nm' : 'attr', 'val_dflt' : None, 'chk_dup' : True, 'chk_use' : True }
self.tblcfg['USER_DEFINED'] = { 'val_nm' : 'flag', 'val_dflt' : 0, 'chk_dup' : True, 'chk_use' : True }
self.tblcfg['NO_EMIT'] = { 'val_nm' : 'flag', 'val_dflt' : 0, 'chk_dup' : True, 'chk_use' : True }
self.add_item('PDU', par[0], attr=attr, fn=fn, lineno=lineno)
return
+ def add_syntax(self, par, fn, lineno):
+ #print "add_syntax(par=%s, %s, %d)" % (str(par), fn, lineno)
+ if( (len(par) >=2)):
+ name = par[1]
+ else:
+ name = '"'+par[0]+'"'
+ attr = { 'pdu' : par[0] }
+ self.add_item('SYNTAX', name, attr=attr, fn=fn, lineno=lineno)
+ return
+
def add_register(self, pdu, par, fn, lineno):
#print "add_register(pdu=%s, par=%s, %s, %d)" % (pdu, str(par), fn, lineno)
if (par[0] in ('N', 'NUM')): rtype = 'NUM'; (pmin, pmax) = (2, 2)
'OMIT_ASSIGNMENT', 'NO_OMIT_ASSGN',
'VIRTUAL_ASSGN', 'SET_TYPE', 'ASSIGN_VALUE_TO_TYPE',
'TYPE_RENAME', 'FIELD_RENAME', 'TF_RENAME', 'IMPORT_TAG',
- 'TYPE_ATTR', 'ETYPE_ATTR', 'FIELD_ATTR', 'EFIELD_ATTR'):
+ 'TYPE_ATTR', 'ETYPE_ATTR', 'FIELD_ATTR', 'EFIELD_ATTR', 'SYNTAX'):
ctx = result.group('name')
elif result.group('name') in ('OMIT_ALL_ASSIGNMENTS', 'OMIT_ASSIGNMENTS_EXCEPT',
'OMIT_ALL_TYPE_ASSIGNMENTS', 'OMIT_TYPE_ASSIGNMENTS_EXCEPT',
self.add_pdu(par[0:2], is_new, fn, lineno)
if (len(par)>=3):
self.add_register(par[0], par[2:5], fn, lineno)
+ elif ctx in ('SYNTAX'):
+ if empty.match(line): continue
+ par = get_par(line, 1, 2, fn=fn, lineno=lineno)
+ if not par: continue
+ if not self.check_item('PDU', par[0]):
+ self.add_pdu(par[0:1], False, fn, lineno)
+ self.add_syntax(par, fn, lineno)
elif ctx in ('REGISTER', 'REGISTER_NEW'):
if empty.match(line): continue
par = get_par(line, 3, 4, fn=fn, lineno=lineno)