summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
...
* 4568 - Update email responsesaagbsn2012-06-20
| | | | | | | | Add new strings for email response template that provide instructions for requesting ipv6 or transports Also move email composition into a separate function and remove code duplication.
* 4568 - Update email and https distributor frontendaagbsn2012-06-20
| | | | Add support for ipv6 and pluggable transports
* 4568 - Add extra-info parser to load()aagbsn2012-06-20
| | | | | BridgeDB will now also parse extra-info descriptors if the configuration option 'EXTRA_INFO_FILE' is specified
* 4568 - Add filter for bridges with transportsaagbsn2012-06-20
| | | | Adds a filter to select bridges with transport specified by name.
* 4568 - Add option EXTRA_INFO_FILE to bridgedb.confaagbsn2012-06-20
| | | | | Adds a configuration option 'EXTRA_INFO_FILE' to specify the location of extra-info descriptors.
* 4568 - Add class PluggableTransport to Bridgesaagbsn2012-06-20
| | | | | | Adds a class PluggableTransport and function parseExtraInfoFile() to read pluggable transports from bridge extra-info descriptors. Also adds transport support in FilteredBridgeSplitter.dumpAssignments
* 5935 - Use bridge.ip when logging r.insert(bridge)aagbsn2012-06-13
| | | | | | BridgeRing.insert() logging.debug now uses the primary bridge address (bridge.ip) to avoid the case where a bridge has no IPv4 addresses, when running python setup.py tests, for example.
* 5935 - Store ip as stringaagbsn2012-06-13
| | | | | bridge.ip is stored in the database as a string but ipaddr.IPAddress everywhere else.
* 5935 - Tests should use a mix of IPv4 and IPv6aagbsn2012-06-13
| | | | | updated fakeBridge(), fakeBridge6() to randomly set the address class in or_addresses so that test coverage is more complete.
* 5935 - Add descriptions to filtersaagbsn2012-06-13
| | | | | | | | | Adds the 'description' attribute to filters. This attribute is used to indicate which filters are applicable to a bridge in the assignments.log The description should be a string of format k=v, for example: filterBridgesByIP4.description is 'ip=4'
* 5935 - FilteredBridgeSplitter dumpAssignments()aagbsn2012-06-13
| | | | | dumpAssignments() should conform to spec in https://trac.torproject.org/projects/tor/ticket/5935
* 5948 - Update usage of getConfigLine()aagbsn2012-06-13
| | | | | The 'needsIPv4' and 'needsIPv6' arguments are replaced with 'addressClass'.
* 5948 - Do not pick from or-addresses randomlyaagbsn2012-06-13
| | | | | Pick the same bridge line each time; uses hmac_fn and email or ip from the request.
* 5947 - Parse "a" lines from networkstatusaagbsn2012-06-13
| | | | | | | | The "a" lines have been tested by the Bridge Authority. The or-addresses in the bridge descriptors have not. This fix makes BridgeDB read or-addresses from the networkstatus instead of the bridge descriptors
* 4297 - Prepopulate ipCategories, clusters, and email ringsaagbsn2012-06-13
|
* 4297 - Update tests to reflect spec changeaagbsn2012-06-13
| | | | Adds a few more checks for parseORAddressLine()
* 4297 - Update PortSpec parsing to reflect specaagbsn2012-06-13
| | | | proposal 186-multiple-orports.txt dropped port range support.
* 4297 - Adds EmailBasedDistributor filteringaagbsn2012-06-13
| | | | | The EmailBasedDistributor can now be passed the same filters as the IPBasedDistributor.
* 4297 - Update tests for IP categoriesaagbsn2012-05-29
| | | | Rings are set up a bit differently now, and broke this test.
* 4297 - Implement ipCategories functionalityaagbsn2012-05-29
| | | | | Implement ipCategories with filters so that compound filters can also be used (e.g. filter for ipv6 bridges)
* 4297 - add IPBasedDistributor IP Clustering Filteraagbsn2012-05-29
| | | | Implements IP clustering as a default filter.
* 4297 - Cache dynamic filter functionsaagbsn2012-05-29
|
* 4297 - Move filter functions to Filters.pyaagbsn2012-05-29
|
* 4297 - reduce warning severity for ratelimitingaagbsn2012-05-29
| | | | Drop to INFO, because these are not WARN
* 4297 - Exception Odditiesaagbsn2012-05-29
| | | | | | | Some versions (tested with 2.6.6) of Python exhibit odd exception handling behavior; this fix corrects an issue where the parent class exception handler was catching exceptions meant for a subclassed exception handler
* 4297 - ipv6 uniformMapaagbsn2012-05-29
| | | | Adds an ipv6-comptabile uniform mapper.
* 4297 - Warn about bridge pools + dynamic filteringaagbsn2012-05-29
| | | | | | | | | | | | | | | | | | | | | | | | If using dynamic bridge filtering, the IPBasedDistributor must be suppled wth a filtering function that will select the correct pool for the requesting IP. The filter could be implemented in a similar fashion as the existing approach, which is to map the requesting ip address to an area and assign then map the areas to pools of bridges. An alternate approach would define bridge pools by a set of corresponding country codes. The pools may either be of roughly equal size to simplify bridge assignment, or weighted by the aggregate bridge users from those countries. Presently, BridgeDB does neither. There are very few IPv6 bridges, so bypassing bridge clustering should be OK for the short term. Deliverables for Sponsor E require that BridgeDB be able to reassign blocked bridges to other countries; the extensions to BridgeDB required to implement this policy will replace the current clusters with bridge pools that correspond to geographic regions and address the current filter limitations.
* 4297 - Update BridgeDB's front-end Server.pyaagbsn2012-05-29
| | | | | Front-end's to the HTTPS and email distributors now make use of the address class filtering available in IPBasedDistributor
* 4297 - add Tests for BridgeDB IPv6 upgradesaagbsn2012-05-29
| | | | | | Test descriptor file parsing, or-address, and mixed address class (IPv4 and IPv6) or-addresses. Tests for IPBasedDistributor and FilteredBridgeSplitter
* 4297 - Add ipv6 keyword to EmailBasedDistributoraagbsn2012-05-29
| | | | | Updates the EmailBasedDistributor to support 'ipv6' keyword in the subject or mail body
* 4297 - IPBasedDistributor learns to sort bridgesaagbsn2012-05-29
| | | | | | IPBasedDistributor now uses the FilteredBridgeSplitter to sort bridges into subrings based on the address class of the Bridges' ip(s) (including addresses parsed from the new or-address spec).
* 4297 - FilteredBridgeSplitter - sorting bridgesaagbsn2012-05-29
| | | | | | | | | | | | | | | | | | The FilteredBridgeSplitter sorts bridges into subrings. The subrings are defined by filter functions. For example, to filter bridges by ORport > 9000: def filterBridgesOver9000(bridge): if bridge.orport > 9000: return True Example in context: d = FilteredBridgeSplitter(key) d.addRing(BridgeRing, 'Bridges with ORPort > 9000', filterBridgesOver9000) When d.insert(bridge) is called, bridges will be inserted into all subrings whose filter function returns True.
* 4297 - parse or-addresses from bridge descriptorsaagbsn2012-05-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Updates parseBridgeDesc to read or-address line from bridge descriptors, and adds a container class PortList parseBridgeDesc adds parseORAddress which parses or-address lines. Valid address:portspec are added to each Bridge object in a dictionary of or-address:PortList key:values. class PortList is a container class that represents the or-address PORTSPEC field, which is a list of ports and port ranges. The implementation contains an efficient representation of port-ranges, implements __contains__ for single ports and port-ranges, and will also squash or merge port ranges that intersect. The getPort() function returns a single valid port (as defined by the PORTSPEC line). Each subsequent call to getPort() will iterate over the valid ports, so that BridgeDB may return a single 'bridge' line for inclusion in torrc and uniformly distribute the available ports. getConfigLine may be passed 'selectFromORAddresses=True', which will return a valid config line from the set of addresses and ports. Filtering for IPv6 or IPv4 addresses is supported, if there are no matches in or-addresses BridgeDB will return the primary ip:orport instead. Also added is a generator 'getAllConfigLines()' which will return every valid address:port (including expanding ranges of ports - which may be a lot of output) combination a bridge supports, one per line.
* 4297 - add draft proposal to repoaagbsn2012-05-02
| | | | | This is the draft proposal that was sent to tor-dev on Dec 5, 2011 plus the addition of the new SQL schema for storing or-addresses.
* 5367 - Fix python gotcha in __init__aagbsn2012-05-01
| | | | | | | Python default arguments are only parsed once, therefore the list was shared between all instances. See: http://www.ferg.org/projects/python_gotchas.html
* 5331 - Add log rotation to BridgeDBaagbsn2012-03-08
| | | | | | | | | Switches BridgeDB logger to use RotatingFileHandler. The defaults are to keep 5 backups, of 10MB each. Adds LOGFILE_COUNT, LOGFILE_ROTATE_SIZE to bridgedb.conf, and sets the default value for LOGLEVEL to WARNING. Thanks to weasel for this patch.
* 5258 - make SMTP server configurableaagbsn2012-03-07
|
* change linus's ivp6 address, and also avoid ^bridgeRoger Dingledine2012-03-06
| | | | | the theory is that the bots that are scraping bridgedb were scraping his ipv6 bridge too, since they look for ^bridge
* advertise linus's ipv6 bridge too (ticket 4831)Roger Dingledine2012-02-14
|
* byblos runs python2.6 nowRoger Dingledine2012-02-14
|
* 4056-add smart defaults for recaptcha settingsaagbsn2011-09-30
| | | | | If RECAPTCHA_* configuration options are not present in bridgedb.conf, bridgedb disables recaptcha support.
* 4056-cleanDatabase has wrong function nameaagbsn2011-09-30
| | | | | Call the correct function name. cleanWarnedBridges() renamed to cleanWarnedEmails()
* point to correct entry in I18n.BRIDGEDB_TEXTaagbsn2011-09-20
| | | | | use correct text for blocked bridges this didn't get changed when merging.
* import after logging is configuredaagbsn2011-09-20
| | | | | | | | | | | | | bridgedb.Server tries to graciously import GeoIP support, but because logging is not yet configured at import time Python creates a default handler that goes to the console and ignores further basicConfig calls See also: http://stackoverflow.com/questions/1943747/ \ python-logging-before-you-run-logging-basicconfig Our solution is to relocate the import so that configureLogging() is called first.
* update READMEaagbsn2011-09-18
|
* add email domains to captcha templateaagbsn2011-09-18
|
* 1836 - recaptcha supportaagbsn2011-09-18
| | | | | | This set of changes adds recaptcha support to bridgedb. The implementation proxies responses from clients to preserve their privacy.
* 1860 - email rate limiting supportaagbsn2011-09-18
| | | | | | This set of changes implements email rate-limiting for the EmailBasedDistributor. Abusers are warned, and then temporarily blacklisted.
* 1608 - don't give out known blocked bridgesaagbsn2011-09-18
| | | | | | This set of changes allows bridgedb to filter responses by country; if a bridge is known to be blocked in a country it can be filtered from the set of returned bridges.
* 2678 - filter bridges in same /16 from responseaagbsn2011-09-18
|