Mercurial > p > roundup > code
diff roundup/mailgw.py @ 5356:91954be46a66
A real fix for the problem where:
import random
would result in every call to random() returning the same value
in the web interface.
While cgi/client.py:Client::__init.py__ was calling random.seed(),
on most systems random was SystemRandom and not the default random.
As a result the random as you would get from:
import random
was never being seeded. I added a function to access and seed the
random bound instance of random.Random that is called during init.
This fixes all three places where I saw the broken randomness.
It should also fix:
http://psf.upfronthosting.co.za/roundup/meta/issue644
I also removed the prior code that would bail if systemRandom was not
available.
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Sun, 08 Jul 2018 11:34:42 -0400 |
| parents | 66a17c80e035 |
| children | 64b05e24dbd8 |
line wrap: on
line diff
--- a/roundup/mailgw.py Sat Jul 07 22:39:16 2018 -0400 +++ b/roundup/mailgw.py Sun Jul 08 11:34:42 2018 -0400 @@ -95,19 +95,10 @@ __docformat__ = 'restructuredtext' import string, re, os, mimetools, cStringIO, smtplib, socket, binascii, quopri -import time, sys, logging +import time, random, sys, logging import traceback import email.utils -try: - # Use the cryptographic source of randomness if available - from random import SystemRandom - random=SystemRandom() -except ImportError: - raise - from random import Random - random=Random() - from anypy.email_ import decode_header from roundup import configuration, hyperdb, date, password, exceptions
