1. 23 Jun, 2012 2 commits
  2. 22 Jun, 2012 1 commit
  3. 20 Jun, 2012 6 commits
  4. 14 Jun, 2012 12 commits
  5. 30 May, 2012 14 commits
    • aagbsn's avatar
      4297 - Update tests for IP categories · 177ea49d
      aagbsn authored
      Rings are set up a bit differently now, and broke this test.
    • aagbsn's avatar
      4297 - Implement ipCategories functionality · f022b905
      aagbsn authored
      Implement ipCategories with filters so that compound filters can
      also be used (e.g. filter for ipv6 bridges)
    • aagbsn's avatar
      4297 - add IPBasedDistributor IP Clustering Filter · f6c7ee87
      aagbsn authored
      Implements IP clustering as a default filter.
    • aagbsn's avatar
      4297 - Cache dynamic filter functions · a91cf041
      aagbsn authored
    • aagbsn's avatar
      4297 - Move filter functions to Filters.py · 1bcaf832
      aagbsn authored
    • aagbsn's avatar
      4297 - reduce warning severity for ratelimiting · bfe5428d
      aagbsn authored
      Drop to INFO, because these are not WARN
    • aagbsn's avatar
      4297 - Exception Oddities · c04f4035
      aagbsn authored
      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
    • aagbsn's avatar
      4297 - ipv6 uniformMap · 3bee35c8
      aagbsn authored
      Adds an ipv6-comptabile uniform mapper.
    • aagbsn's avatar
      4297 - Warn about bridge pools + dynamic filtering · ee4d719b
      aagbsn authored
      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.
    • aagbsn's avatar
      4297 - Update BridgeDB's front-end Server.py · 3e288275
      aagbsn authored
      Front-end's to the HTTPS and email distributors now make use
      of the address class filtering available in IPBasedDistributor
    • aagbsn's avatar
      4297 - add Tests for BridgeDB IPv6 upgrades · 2e5f4b8c
      aagbsn authored
      Test descriptor file parsing, or-address, and mixed address class
      (IPv4 and IPv6) or-addresses.
      Tests for IPBasedDistributor and FilteredBridgeSplitter
    • aagbsn's avatar
      4297 - Add ipv6 keyword to EmailBasedDistributor · c207f381
      aagbsn authored
      Updates the EmailBasedDistributor to support 'ipv6' keyword
      in the subject or mail body
    • aagbsn's avatar
      4297 - IPBasedDistributor learns to sort bridges · 72561ea2
      aagbsn authored
      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).
    • aagbsn's avatar
      4297 - FilteredBridgeSplitter - sorting bridges · cb2cdbd4
      aagbsn authored
      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',
      When d.insert(bridge) is called, bridges will be inserted into all
      subrings whose filter function returns True.
  6. 02 May, 2012 2 commits
    • aagbsn's avatar
      4297 - parse or-addresses from bridge descriptors · 691db202
      aagbsn authored
      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.
    • aagbsn's avatar
      4297 - add draft proposal to repo · ca16efce
      aagbsn authored
      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.
  7. 01 May, 2012 1 commit
  8. 08 Mar, 2012 2 commits
    • aagbsn's avatar
      5331 - Add log rotation to BridgeDB · 31c55cd3
      aagbsn authored
      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.
    • aagbsn's avatar
      5258 - make SMTP server configurable · 1b1cc253
      aagbsn authored