| Commit message (Collapse) | Author | Age |
| ... | |
| |
|
|
|
| |
Front-end's to the HTTPS and email distributors now make use
of the address class filtering available in IPBasedDistributor
|
| |
|
|
|
|
| |
Test descriptor file parsing, or-address, and mixed address class
(IPv4 and IPv6) or-addresses.
Tests for IPBasedDistributor and FilteredBridgeSplitter
|
| |
|
|
|
| |
Updates the EmailBasedDistributor to support 'ipv6' keyword
in the subject or mail body
|
| |
|
|
|
|
| |
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).
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
| |
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.
|
| |
|
|
|
|
|
| |
Python default arguments are only parsed once, therefore the
list was shared between all instances.
See: http://www.ferg.org/projects/python_gotchas.html
|
| |
|
|
|
|
|
|
|
| |
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.
|
| | |
|
| |
|
|
|
| |
the theory is that the bots that are scraping bridgedb were scraping his
ipv6 bridge too, since they look for ^bridge
|
| | |
|
| | |
|
| |
|
|
|
| |
If RECAPTCHA_* configuration options are not present in bridgedb.conf,
bridgedb disables recaptcha support.
|
| |
|
|
|
| |
Call the correct function name.
cleanWarnedBridges() renamed to cleanWarnedEmails()
|
| |
|
|
|
| |
use correct text for blocked bridges
this didn't get changed when merging.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| | |
|
| | |
|
| |
|
|
|
|
| |
This set of changes adds recaptcha support to bridgedb.
The implementation proxies responses from clients to
preserve their privacy.
|
| |
|
|
|
|
| |
This set of changes implements email rate-limiting for the
EmailBasedDistributor. Abusers are warned, and then temporarily
blacklisted.
|
| |
|
|
|
|
| |
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.
|
| | |
|
| | |
|
| |\ |
|
| | | |
|
| | |
| |
| |
| |
| |
| | |
The BridgeDB specification is meant as a description what the current
BridgeDB code does, not what a compatible BridgeDB implementation is
expected to do.
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | |
| |
| |
| | |
- Don't append to bucket files, overwrite existing files if necessary.
|
| | |
| |
| |
| | |
- Don't re-assign buckets when its not necessary.
|
| |\ \ |
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
With this patch we dump the list of currently running bridges with
information about their assigned rings, subrings, and file buckets to a
local file. The idea is to publish sanitized versions of these assignment
files and analyze how the assignment affects a bridge's usage.
The assignment file is written on startup and after receiving a HUP signal
and parsing new bridge descriptors. Note that the assignments file is not
updated when bridges are dumped to file buckets; in that case the changed
assignments to file buckets will be reflected in the assignments file
after the next HUP.
Also note that the assignment file only contains bridges that are believed
to be running from parsing the last network status. As a result, bridges
that are contained in file buckets, but that are not believed to be
running, won't be contained in the assignment file.
|
| |/ / |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | |
| |
| |
| |
| |
| | |
- Install translations to ~/ by default instead of /usr
- Use ~ as prefix by default
- Make sure pseudo distributors don't end up as actual ring names
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|