Updated objects.NetworkObject. Added objects.defaultNetworkObject.
authorFrédéric Jolliton <git@frederic.jolliton.com>
Sat, 21 Oct 2006 14:55:48 +0000 (14:55 +0000)
committerFrédéric Jolliton <git@frederic.jolliton.com>
Sat, 21 Oct 2006 16:16:44 +0000 (16:16 +0000)
rsbac/objects.py

index fba4031..3391c45 100644 (file)
@@ -662,9 +662,25 @@ class Scd( Object ) :
 
 #--[ NetworkObject ]----------------------------------------------------------
 
+_g_networkObject = None
+
 class NetworkObject( Object ) :
     type = headers.T_NETOBJ
-    def __init__( self , *args , **kwargs ) : raise NotImplementedError
+    def __new__( cls ) :
+        global _g_networkObject
+        if _g_networkObject is None :
+            _g_networkObject = Object.__new__( cls )
+            _g_networkObject.__init_singleton__()
+        return _g_networkObject
+    def __init_singleton__( self ) :
+        id = headers.rsbac_target_id_t()
+        id.netobj.sock_p = None
+        id.netobj.local_addr = None
+        id.netobj.local_len = 0
+        id.netobj.remote_addr = None
+        id.netobj.remote_len = 0
+        self._id = byref( id )
+        self.acl = acl.AclById( self )
     def __repr__( self ) :
         return '<NetworkObject>'
 
@@ -1051,6 +1067,8 @@ def createScdObject() :
 # Create SystemClock, SystemSysctl, SystemQuota,..
 createScdObject()
 
+defaultNetworkObject = NetworkObject()
+
 # Local Variables:
 # indent-tabs-mode: nil
 # python-indent: 4