[tor-commits] [bridgedb/master] 5367 - Fix python gotcha in __init__
aagbsn at torproject.org
aagbsn at torproject.org
Sat Mar 16 23:46:31 UTC 2013
commit aba290f8e3a1eaa38bfd580d350e0721911b49da
Author: aagbsn <aagbsn at extc.org>
Date: Sun Mar 11 22:01:28 2012 -0700
5367 - Fix python gotcha in __init__
Python default arguments are only parsed once, therefore the
list was shared between all instances.
See: http://www.ferg.org/projects/python_gotchas.html
---
lib/bridgedb/Server.py | 5 ++++-
1 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/lib/bridgedb/Server.py b/lib/bridgedb/Server.py
index a1b837a..b67edf2 100644
--- a/lib/bridgedb/Server.py
+++ b/lib/bridgedb/Server.py
@@ -50,7 +50,7 @@ class WebResource(twisted.web.resource.Resource):
def __init__(self, distributor, schedule, N=1, useForwardedHeader=False,
includeFingerprints=True,
useRecaptcha=False,recaptchaPrivKey='', recaptchaPubKey='',
- domains=[]):
+ domains=None):
"""Create a new WebResource.
distributor -- an IPBasedDistributor object
schedule -- an IntervalSchedule object
@@ -63,6 +63,9 @@ class WebResource(twisted.web.resource.Resource):
self.nBridgesToGive = N
self.useForwardedHeader = useForwardedHeader
self.includeFingerprints = includeFingerprints
+
+ # do not use mutable types as __init__ defaults!
+ if not domains: domains = []
self.domains = domains
# recaptcha options
More information about the tor-commits
mailing list