Switch branches/tags
Commits on Feb 7, 2009
  1. Text updates for btpd 0.14.

    rmn64k committed Feb 7, 2009
  2. Find and ban peers with bad data.

    rmn64k committed Feb 7, 2009
    Log which peer contributed what to a piece. Do not try to download the
    same piece from the same peers. Don't download at all from peers implicated
    in 3 bad pieces. When a previously bad piece has been downloaded successfully
    the bad peer(s) can be found and banned.
Commits on Feb 6, 2009
  1. Split peer information. Make id hash functions available.

    rmn64k committed Feb 6, 2009
    struct peer is now peer and meta_peer. meta_peer can be used as
    a handle that won't be affected if a peer vanishes. The meta_peers
    are kept in a hash table to enable fast lookup by peer id.
  2. Hashtable tweaks.

    rmn64k committed Feb 6, 2009
    o Added ability to set the ratio items:buckets.
    o One can remove items while iterating.
    o _htbl_tov now allocates the result array, _htbl_fillv acts as the old
      _htbl_tov did.
Commits on Feb 3, 2009
  1. Make net->piece_count properly aligned.

    rmn64k committed Feb 3, 2009
    The misalignment caused btpd to not work properly on machines like
    the NSLU2. Reported by John Caldwell.
  2. Set logmask from commandline.

    rmn64k committed Feb 3, 2009
  3. Fix port type confusion.

    rmn64k committed Feb 3, 2009
    Btpd will now be able to use high ports for itself and trackers again.
Commits on Jan 30, 2009
  1. Use only IPv4 by default.

    rmn64k committed Jan 30, 2009
    Unfortunately there are some useless IPv6 trackers that will
    be used instead of their more usefull IPv4 counterparts when
    IPv6 is enabled.
    The -4 and -6 options are tweaked once again. If -6 is given
    only IPv6 will be used. If both are given both will be used
    and otherwise only IPv4 will be used.
    The IPvX stuff should probably be set per torrent in the future.
  2. Set failures on individual trackers, not on tiers.

    rmn64k committed Jan 30, 2009
    Unfortunately many don't understand the tracker tiers and put unrelated
    trackers in the same tier. Thus btpd can't assume that a failure from one
    tracker in a tier is valid for all trackers in that tier.
Commits on Jan 29, 2009
  1. Rename timer* to evtimer*.

    rmn64k committed Jan 29, 2009
Commits on Jan 26, 2009
  1. Show tracker counts in btcli stat.

    rmn64k committed Jan 26, 2009
    The counts are for "reachable" trackers, ie. trackers that haven't
    timed out or been disabled for one reason or other.
  2. Improve the torrent stop and btpd shutdown sequences.

    rmn64k committed Jan 25, 2009
    Torrents are now considered stopped and may be restarted even if
    the stop event haven't been sent the trackers yet. The same holds
    for the del and add commands.
    A btpd process in shutdown mode that only have stopped torrents,
    but is still sending the stop event to trackers, will release
    resources that would block a new btpd to start. It will the
    silently exit when it's finished with the trackers.
    This also makes the timeout parameter for shutdown unnecessary.
  3. More files to ignore.

    rmn64k committed Jan 26, 2009
  4. Use the correct macro to make automake happy.

    rmn64k committed Jan 24, 2009
    Reported by <>.
  5. Rethink the tracker client code somewhat.

    rmn64k committed Jan 21, 2009
    btpd now uses all tiers in parallel, so a torrent with two tiers will
    essentially be treated by btpd as a torrent with two trackers to send
    each event to. This is not quite what the multitrackes standard says,
    but it's much easier to implement reasonable behaviour this way.
    btpd is going to report the number of good trackers for a torrent
    instead of the number of errors, but for now just report zero errors.
Commits on Jan 15, 2009
Commits on Jan 13, 2009
  1. Add IPv6 support.

    rmn64k committed Jan 13, 2009
    Btpd can now use both ipv4 and ipv6. The new options -4 and -6 toggles
    use of ip v4 and v6 respectively. They are both used by default.
    Remove restrictions on the --ip option since the spec allows to be a
    dns name. Ultimately this option may need to be changed on a per
    tracker/torrent basis.
Commits on Jan 12, 2009
  1. Let the initial process linger until the daemon is initialized.

    rmn64k committed Jan 12, 2009
    This enables us to report errors in the btpd init sequence to the
    shell by non zero exit code.
    Changed from flock to lockf because of solaris troubles. I may
    be confused though.