Changeset 78:137726cdcd67
- Timestamp:
- 09/26/08 07:59:47
(2 years ago)
- Author:
- Allan Saddi <allan@saddi.com>
- branch:
- default
- Message:
Re-seed random module after each fork.
-
Files:
-
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
| r61 |
r78 |
|
| 34 | 34 | import errno |
|---|
| 35 | 35 | import signal |
|---|
| | 36 | import random |
|---|
| | 37 | import time |
|---|
| 36 | 38 | |
|---|
| 37 | 39 | try: |
|---|
| … | … | |
| 311 | 313 | """Main loop for children.""" |
|---|
| 312 | 314 | requestCount = 0 |
|---|
| 313 | | |
|---|
| | 315 | |
|---|
| | 316 | # Re-seed random module |
|---|
| | 317 | preseed = '' |
|---|
| | 318 | # urandom only exists in Python >= 2.4 |
|---|
| | 319 | if hasattr(os, 'urandom'): |
|---|
| | 320 | try: |
|---|
| | 321 | preseed = os.urandom(16) |
|---|
| | 322 | except NotImplementedError: |
|---|
| | 323 | pass |
|---|
| | 324 | # Have doubts about this. random.seed will just hash the string |
|---|
| | 325 | random.seed('%s%s%s' % (preseed, os.getpid(), time.time())) |
|---|
| | 326 | del preseed |
|---|
| | 327 | |
|---|
| 314 | 328 | while True: |
|---|
| 315 | 329 | # Wait for any activity on the main socket or parent socket. |
|---|