[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