[Nym3-commit] r67 - trunk

nym3-devel@lists.noreply.org nym3-devel@lists.noreply.org
Wed, 04 Aug 2004 15:12:55 +0200


Author: laurent
Date: 2004-08-04 15:12:54 +0200 (Wed, 04 Aug 2004)
New Revision: 67

Modified:
   trunk/User.py
Log:
Actually use locks.


Modified: trunk/User.py
===================================================================
--- trunk/User.py	2004-08-04 13:00:36 UTC (rev 66)
+++ trunk/User.py	2004-08-04 13:12:54 UTC (rev 67)
@@ -16,8 +16,10 @@
     """Hold user data"""
     def __init__(self, username):
 	self.datafile = Config.path + os.sep + username + '.dat'
+	self.username = username
+	self.lock()
 	try:
-	    f = open(self.datafile, 'r') # TODO : Locks?
+	    f = open(self.datafile, 'r')
 	    self.data = pickle.load(f)
 	    f.close()
 	except IOError:
@@ -25,11 +27,13 @@
 	    self.data = Config.default_settings
 	    self.data['username'] = username
 	    pickle.dump(self.data, f)
+	    f.close()
+	self.release()
 
     def lock(self):
 	"""Lock the user. For well behaved functions."""
 	self.lock = mixminion.Common.Lockfile(Config.path + os.sep + 
-					      self.data['username'] + '.lck')
+					      self.username + '.lck')
 	self.lock.acquire()
 
     def release(self):
@@ -76,9 +80,11 @@
 	return ret
     
     def save_data(self):
-	f = open(self.datafile, 'w') # TODO : Locks?
+	self.lock()
+	f = open(self.datafile, 'w')
 	pickle.dump(self.data, f)
 	f.close()
+	self.release()
 
     def surbfile(self):
 	return Config.path + os.sep + self.data['username'] + '.surbs'
@@ -97,6 +103,7 @@
     def clean_surbs(self):
 	"Inspect the surbs and delete the used/outdated"
 	fname = self.surbfile()
+	self.lock()
 	f = open(fname, "r")
 	buffer = f.read()
 	f.close()
@@ -122,64 +129,80 @@
 	    f.write(surb)
 	    self.data['nSurbs'] = self.data['nSurbs'] + 1
 	f.close()
+	self.release()
 
     def addSurbs(self,surbs):
 	fname = self.surbfile()
+	self.lock()
 	f = open(fname, "a")
 	f.write(surbs)
 	f.close()
 	self.data['nSurbs'] = self.data['nSurbs'] + ( len(surbs) / surb_len)
+	self.release()
 
     def delSurbs(self):
         fname = self.surbfile()
-        f = open(fname, "w") #TODO check that this truncate the file (the file must be empty after that
-        f.close()
+	self.lock()
+        os.unlink(fname)
+	self.release()
         self.data['nSurbs'] = 0
 
     def load_mbox(self):
 	mbox = Config.path + os.sep + self.data['username'] + '.mbox'
+	self.lock()
 	try:
-	    f = open(mbox, 'r') # TODO : Locks?
+	    f = open(mbox, 'r')
 	    self.mbox = pickle.load(f)
 	    f.close()
 	except IOError:
 	    self.mbox = {}
+	self.release()
 
     def save_mbox(self):
 	mbox = Config.path + os.sep + self.data['username'] + '.mbox'
-	f = open(mbox, 'w') # TODO : Locks?
+	self.lock()
+	f = open(mbox, 'w')
 	pickle.dump(self.mbox, f)
 	f.close()
+	self.release()
 	
     def load_synbox(self):
 	synbox = Config.path + os.sep + self.data['username'] + '.syn'
+	self.lock()
 	try:
-	    f = open(synbox, 'r') # TODO : Locks?
+	    f = open(synbox, 'r')
 	    self.syn = pickle.load(f)
 	    f.close()
 	except IOError:
 	    self.syn = []
+	self.release()
 
     def save_synbox(self):
 	synbox = Config.path + os.sep + self.data['username'] + '.syn'
-	f = open(synbox, 'w') # TODO : Locks?
+	self.lock()
+	f = open(synbox, 'w')
 	pickle.dump(self.syn, f)
 	f.close()
+	self.release()
     
     def load_index(self):
 	index = Config.path + os.sep + self.data['username'] + '.idx'
+	self.lock()
 	try:
-	    f = open(index, 'r') # TODO : Locks?
+	    f = open(index, 'r')
 	    self.index = pickle.load(f)
 	    f.close()
 	except IOError:
 	    self.index = {}
+	self.release()
     
     def save_index(self):
 	index = Config.path + os.sep + self.data['username'] + '.idx'
-	f = open(index, 'w') # TODO : Locks?
+	self.lock()
+	f = open(index, 'w')
 	pickle.dump(self.index, f)
 	f.close()
+	self.release()
         
     def store(self, msg):
 	"Store an incoming message"
@@ -202,8 +225,8 @@
 	self.save_index()
 
     def setKeys(self,kid,kenc):
-	self.data['idKey']=kid
-	self.data['encKey']=kenc
+	self.data['idKey'] = kid
+	self.data['encKey'] = kenc
 
     def isInitialized(self):
 	"""True if the first 3 commands :