Fixed #5486 -- Worked around the lack of os.getpid() in Jython, whilst still using it for CPython. Patch from Leo Soto.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@6270 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Malcolm Tredinnick 2007-09-15 09:51:41 +00:00
parent 1baae32e16
commit cd8959c82a
2 changed files with 11 additions and 2 deletions

View File

@ -15,8 +15,13 @@ class SessionManager(models.Manager):
"Returns session key that isn't being used." "Returns session key that isn't being used."
# The random module is seeded when this Apache child is created. # The random module is seeded when this Apache child is created.
# Use SECRET_KEY as added salt. # Use SECRET_KEY as added salt.
try:
pid = os.getpid()
except AttributeError:
# No getpid() in Jython, for example
pid = 1
while 1: while 1:
session_key = md5.new("%s%s%s%s" % (random.randint(0, sys.maxint - 1), os.getpid(), time.time(), settings.SECRET_KEY)).hexdigest() session_key = md5.new("%s%s%s%s" % (random.randint(0, sys.maxint - 1), pid, time.time(), settings.SECRET_KEY)).hexdigest()
try: try:
self.get(session_key=session_key) self.get(session_key=session_key)
except self.model.DoesNotExist: except self.model.DoesNotExist:

View File

@ -50,7 +50,11 @@ def make_msgid(idstring=None):
""" """
timeval = time.time() timeval = time.time()
utcdate = time.strftime('%Y%m%d%H%M%S', time.gmtime(timeval)) utcdate = time.strftime('%Y%m%d%H%M%S', time.gmtime(timeval))
pid = os.getpid() try:
pid = os.getpid()
except AttributeError:
# Not getpid() in Jython, for example.
pid = 1
randint = random.randrange(100000) randint = random.randrange(100000)
if idstring is None: if idstring is None:
idstring = '' idstring = ''