about summary refs log tree commit diff
AgeCommit message (Collapse)Author
2009-02-07Find and ban peers with bad data.Richard Nyberg
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.
2009-02-06Split peer information. Make id hash functions available.Richard Nyberg
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.
2009-02-06Iterate throught the htbl instead of building an array first.Richard Nyberg
2009-02-06We must now set the ratio when creating hash tables.Richard Nyberg
2009-02-06Hashtable tweaks.Richard Nyberg
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.
2009-02-03Make net->piece_count properly aligned.Richard Nyberg
The misalignment caused btpd to not work properly on machines like the NSLU2. Reported by John Caldwell.
2009-02-03Set logmask from commandline.Richard Nyberg
2009-02-03More tracker logging, and use switch for log type.Richard Nyberg
2009-02-03Fix port type confusion.Richard Nyberg
Btpd will now be able to use high ports for itself and trackers again.
2009-01-30Use only IPv4 by default.Richard Nyberg
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.
2009-01-30Set failures on individual trackers, not on tiers.Richard Nyberg
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.
2009-01-29Make the timer code work on MacOS as well.Richard Nyberg
2009-01-29Stop complaints on printf argument types on MacOS.Richard Nyberg
2009-01-29Remove unneeded addrinfo flag which doesn't exist on MacOS.Richard Nyberg
2009-01-29Make sure required versions of autotools are used.Richard Nyberg
2009-01-29Rename timer* to evtimer*.Richard Nyberg
2009-01-26Make the COPYRIGHT file match reality again.Richard Nyberg
2009-01-26Show tracker counts in btcli stat.Richard Nyberg
The counts are for "reachable" trackers, ie. trackers that haven't timed out or been disabled for one reason or other.
2009-01-26Change options to: '-4' => Ipv4 only, '-6' => IPv6 only.Richard Nyberg
2009-01-26Better start from scratch on udp tracker support.Richard Nyberg
2009-01-26Improve the torrent stop and btpd shutdown sequences.Richard Nyberg
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.
2009-01-26More files to ignore.Richard Nyberg
2009-01-26Use the correct macro to make automake happy.Richard Nyberg
Reported by <bsdfan666@cyberdude.com>.
2009-01-26Fix a typo in an error message.Richard Nyberg
2009-01-26Print the result of, and not the address of, getpid().Richard Nyberg
2009-01-26Rethink the tracker client code somewhat.Richard Nyberg
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.
2009-01-15git clean is a better way to clean the tree.Richard Nyberg
2009-01-14Add IPv6 support.Richard Nyberg
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.
2009-01-13Added macros for checking supported compiler flags.Richard Nyberg
2009-01-13Start previously active torrents after log file setup.Richard Nyberg
2009-01-12Test for working snprintf at startup.Richard Nyberg
2009-01-12Let the initial process linger until the daemon is initialized.Richard Nyberg
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.
2009-01-12Don't use the bsd err and warn family of functions. Solaris doesn't have them.Richard Nyberg
2009-01-12Provide own implementation of asprintf if it's missing.Richard Nyberg
2009-01-12Lots of autofoo magic for threads and different libs.Richard Nyberg
2009-01-12pid_t is long on some systems. solaris is one.Richard Nyberg
2009-01-12Remove unnecessary include.Richard Nyberg
2009-01-12On solaris bcopy and some other useful functions are declared in strings.h.Richard Nyberg
2009-01-11Use the more compatible -R flag instead of -rpath when linking.Richard Nyberg
2009-01-11Fix for missing AI_ADDRCONFIG.Richard Nyberg
2009-01-11Indicate that btpd has moved past 0.13.Richard Nyberg
2009-01-11Test that the clock is working at start and test for evloop errors.Richard Nyberg
2009-01-11Update build scripts for recent btpd changes. Also use only one makefile.Richard Nyberg
2009-01-11Remove libevent. Btpd no longer uses it.Richard Nyberg
2009-01-11Btpd now uses evloop, it's own event loop, instead of libevent.Richard Nyberg
2009-01-11Add evloop, btpd's new event loop. This will replace libevent.Richard Nyberg
2009-01-11Let btpd remove torrent data by itself instead of calling rm.Richard Nyberg
2009-01-11Make the http client independent of events and use my iobuf.Richard Nyberg
2009-01-11Make iobuf more useful for io and use better names in its api.Richard Nyberg
2009-01-11Add the function memfind. It'll be used by iobuf.Richard Nyberg