[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 :