ANNOUNCEMENT: Live Wireshark University & Allegro Packets online APAC Wireshark Training Session
July 17th, 2024 | 10:00am-11:55am SGT (UTC+8) | Online

Ethereal-dev: [Ethereal-dev] tiny idl2eth patch

Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.

From: Frank Singleton <frank.singleton@xxxxxxxxxxxx>
Date: Thu, 18 Oct 2001 08:37:24 -0500
Hi,

Until I add support for RECURSIVE structs and unions,
print an error and exit to avoid idl2eth running in 
loops. 

I should have the recursive stuff done in a couple 
of weeks.

twas diffed against 2001-10-18 nightly CVS tarball.

Cheers / Frank.

-- 
EUS/SV/Z Frank Singleton      ASO Americas BSS
Office : +1 972 583 3251      ECN 800 33251  
Mobile : +1 214 228 0874      Amateur Radio: VK3FCS/KM5WS   
Email : frank.singleton@xxxxxxxxxxxx

Hardware: HP Omnibook 4150 running Redhat Linux 7.1 (2.4.3-12 kernel).
--- ../ethereal-2001-10-18/ethereal_gen.py	Fri Oct 12 12:14:41 2001
+++ ../ethereal-2001-10-18.updated/ethereal_gen.py	Thu Oct 18 08:29:09 2001
@@ -1,6 +1,6 @@
 # -*- python -*-
 #
-# $Id: ethereal_gen.py,v 1.12 2001/10/12 17:14:41 guy Exp $
+# $Id: ethereal_gen.py,v 1.3 2001/10/18 13:29:09 frank Exp $
 #                           
 # ethereal_gen.py (part of idl2eth)           
 #
@@ -1095,6 +1095,10 @@
         if self.DEBUG:    
             print "XXX Union ntype =" , ntype
 
+        if ntype.recursive():
+            sys.stderr.write( "Error: idl2eth does not handle recursive unions yet \n")
+            sys.exit(1)
+            
         st = ntype.switchType()
 
             
@@ -1245,7 +1249,11 @@
             ntype = type.decl().alias().aliasType().decl()           
         else:
             ntype = type.decl()         # I am a struct node
-                        
+
+        if ntype.recursive():
+            sys.stderr.write("Error: idl2eth does not handle recursive structs yet \n")
+            sys.exit(1)
+                                    
         for m in ntype.members():
             for decl in m.declarators():
                 if decl.sizes():        # an array