diff options
author | Bob Halley <halley@play-bow.org> | 2016-08-04 05:58:22 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-08-04 05:58:22 -0700 |
commit | 6a6d2af0dcc94867f6b518d453aeaa7c05fb3352 (patch) | |
tree | e605eb15f808e66bd0dd27e2e99debf95c4f38bb | |
parent | 5ea92537d776687e1718a3fba11ff5509166f6e8 (diff) | |
parent | bb64f4481a8d8c8d278a32e478338ec74c479107 (diff) | |
download | dnspython-6a6d2af0dcc94867f6b518d453aeaa7c05fb3352.tar.gz |
Merge pull request #194 from avylove/entropy_a
Reseed entropy pool after forking
-rw-r--r-- | dns/entropy.py | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/dns/entropy.py b/dns/entropy.py index e340928..2211457 100644 --- a/dns/entropy.py +++ b/dns/entropy.py @@ -46,8 +46,10 @@ class EntropyPool(object): if seed is not None: self.stir(bytearray(seed)) self.seeded = True + self.seed_pid = os.getpid() else: self.seeded = False + self.seed_pid = 0 def stir(self, entropy, already_locked=False): if not already_locked: @@ -64,7 +66,7 @@ class EntropyPool(object): self.lock.release() def _maybe_seed(self): - if not self.seeded: + if not self.seeded or self.seed_pid != os.getpid(): try: seed = os.urandom(16) except: @@ -77,6 +79,8 @@ class EntropyPool(object): except: seed = str(time.time()) self.seeded = True + self.seed_pid = os.getpid() + self.digest = None seed = bytearray(seed) self.stir(seed, True) |