Personal branch of btpd
git clone git://
Log | Files | Refs | README | LICENSE

DateCommit messageAuthorFiles+-
2020-10-31 03:44use in-source sha1 implementation: remove libcrypto dependencyNihal Jere10+191-17
2020-04-07 10:51update readmeEudald Gubert i Roldan1+2-0
2020-04-07 10:46Merge pull request #50 from eudaldgr/travisEudald Gubert i Roldan1+13-0
2020-04-07 09:00Add contact section in readmeraspbeguy1+7-1
2020-04-07 08:55Fix stuffs in README.mdraspbeguy1+6-8
2020-04-07 08:52exclude target binaries in gitignoreraspbeguy1+6-0
2020-04-07 07:52Merge pull request #49 from eudaldgr/filesEudald Gubert i Roldan3+253-217
2020-04-06 11:44net.c problem workaroundEudald Gubert i Roldan1+4-0
2020-04-06 11:40Added a templateEudald Gubert i Roldan2+2-2
2020-04-06 10:25Update config.mkEudald Gubert i Roldan1+1-1
2020-04-06 08:22Update MakefileEudald Gubert i Roldan1+11-11
2020-04-03 18:17Removed automake dependencyEudald Gubert i Roldan7+156-223
2012-05-07 04:03Document applying and displaying torrent labels.Marq Schneider2+8-0
2012-05-07 03:54Add optional label to be associated with torrent.Marq Schneider8+49-16
2012-05-07 03:50Clean up and add a few more entries to .gitignoreMarq Schneider1+19-10
2012-05-06 20:29Add year to log timestamp.Marq Schneider1+1-1
2012-05-06 20:20Add misc/utils.h to Makefile.amMarq Schneider1+2-1
2012-05-06 19:30Merge pull request #36 from brianmwaters/masterMarq Schneider1+1-3
2010-08-13 16:29Add documentation for 'btpd --numwant' and 'btcli rate'Marq Schneider3+19-1
2010-08-13 15:55Added ARRAY_COUNT() macro to get number of elements in const arrays.Marq Schneider5+17-10
2010-08-13 02:14Added 'numwant' to the tracker request parameters.Marq Schneider4+11-2
2010-08-12 03:37Allow changing the upload and download rates at runtime.Marq Schneider9+130-2
2010-08-06 20:34Fix non-escaped hyphens in man pages.Marq Schneider3+24-24
2010-08-05 15:13Corrected man pages bug section URL for issue tracker.Marq Schneider3+3-3
2010-08-04 04:19Indicate post 0.16 version.Marq Schneider1+1-1
2010-08-04 04:18Merge branch 'master' of Schneider0+0-0
2010-08-04 03:18Text updates for btpd 0.16.Marq Schneider7+23-5
2010-07-30 04:16Correct list '%' sequences to match man page.Marq Schneider1+2-2
2010-07-30 02:43Added custom formats for list operation.Marq Schneider2+141-19
2010-07-27 03:01Add multiple torrents at once.Marq Schneider1+41-28
2010-07-27 02:36Fix warning on no return value from non-void function.Marq Schneider1+1-0
2010-07-23 03:57Implement start all (btcli start -a) functionality.Marq Schneider4+59-7
2010-07-20 22:43Don't set a maximum file size. read_file will use the file size.Marq Schneider1+1-1
2010-07-18 18:41Applied patches from OpenBSD to fix addrinfo and HTTP.Marq Schneider2+8-3
2010-07-18 03:18Added man pages for btcli, btinfo, and btpd.Marq Schneider4+382-1
2009-02-17 17:35Fix possible crash with kqueue.Richard Nyberg2+38-15
2009-02-10 15:39test(1)'s equality operator is '=' not '=='.Richard Nyberg1+4-4
2009-02-09 21:08Text updates for btpd 0.15.Richard Nyberg3+10-2
2009-02-09 15:46Run timeouts that will expire in less than one millisecond.Richard Nyberg1+1-1
2009-02-08 23:52Add test case for compiling with pthreads.Richard Nyberg1+3-2
2009-02-08 18:24evtimer_gettime was broken on MacOs.Richard Nyberg1+7-4
2009-02-08 18:21Use the correct address length for connect.Richard Nyberg1+5-3
2009-02-08 18:14Log failure of PROG_SILENT_IFELSE to config.log.Richard Nyberg1+2-0
2009-02-08 18:14Indicate post 0.14 version.Richard Nyberg1+1-1
2009-02-07 23:37Text updates for btpd 0.14.Richard Nyberg3+57-16
2009-02-07 20:13Find and ban peers with bad data.Richard Nyberg10+285-48
2009-02-06 21:43Split peer information. Make id hash functions available.Richard Nyberg8+137-84
2009-02-06 17:21Iterate throught the htbl instead of building an array first.Richard Nyberg3+22-14
2009-02-06 19:13We must now set the ratio when creating hash tables.Richard Nyberg1+2-2
2009-02-06 19:03Hashtable tweaks.Richard Nyberg2+92-30
2009-02-03 22:11Make net->piece_count properly aligned.Richard Nyberg1+6-8
2009-02-03 16:02Set logmask from commandline.Richard Nyberg2+4-4
2009-02-03 16:09More tracker logging, and use switch for log type.Richard Nyberg3+21-15
2009-02-03 15:06Fix port type confusion.Richard Nyberg3+7-9
2009-01-30 11:03Use only IPv4 by default.Richard Nyberg2+14-10
2009-01-30 10:18Set failures on individual trackers, not on tiers.Richard Nyberg1+46-20
2009-01-29 16:00Make the timer code work on MacOS as well.Richard Nyberg4+56-12
2009-01-29 15:43Stop complaints on printf argument types on MacOS.Richard Nyberg1+2-2
2009-01-29 15:42Remove unneeded addrinfo flag which doesn't exist on MacOS.Richard Nyberg1+1-1
2009-01-29 15:38Make sure required versions of autotools are used.Richard Nyberg1+2-1
2009-01-29 15:29Rename timer* to evtimer*.Richard Nyberg11+23-23
2009-01-26 21:34Make the COPYRIGHT file match reality again.Richard Nyberg1+26-17
2009-01-26 21:04Show tracker counts in btcli stat.Richard Nyberg3+10-7
2009-01-26 17:54Change options to: '-4' => Ipv4 only, '-6' => IPv6 only.Richard Nyberg1+4-4
2009-01-26 17:20Better start from scratch on udp tracker support.Richard Nyberg1+0-84
2009-01-25 12:10Improve the torrent stop and btpd shutdown sequences.Richard Nyberg12+179-88
2009-01-26 12:04More files to ignore.Richard Nyberg1+1-0
2009-01-24 10:50Use the correct macro to make automake happy.Richard Nyberg1+1-1
2009-01-24 10:48Fix a typo in an error message.Richard Nyberg1+1-1
2009-01-23 23:53Print the result of, and not the address of, getpid().Richard Nyberg1+1-1
2009-01-21 12:03Rethink the tracker client code somewhat.Richard Nyberg6+320-252
2009-01-15 11:21git clean is a better way to clean the tree.Richard Nyberg1+0-4
2009-01-13 23:25Add IPv6 support. 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.Richard Nyberg9+144-66
2009-01-13 15:59Added macros for checking supported compiler flags.Richard Nyberg1+24-16
2009-01-13 11:09Start previously active torrents after log file setup.Richard Nyberg2+6-5
2009-01-12 22:53Test for working snprintf at startup.Richard Nyberg1+3-0
2009-01-12 22:50Let the initial process linger until the daemon is initialized. 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.Richard Nyberg2+81-38
2009-01-12 21:14Don't use the bsd err and warn family of functions. Solaris doesn't have them.Richard Nyberg8+38-19
2009-01-12 21:09Provide own implementation of asprintf if it's missing.Richard Nyberg2+27-1
2009-01-12 21:04Lots of autofoo magic for threads and different libs.Richard Nyberg2+65-21
2009-01-11 22:23pid_t is long on some systems. solaris is one.Richard Nyberg1+1-1
2009-01-11 22:08Remove unnecessary include.Richard Nyberg1+0-1
2009-01-11 22:07On solaris bcopy and some other useful functions are declared in strings.h.Richard Nyberg7+7-0
2009-01-11 22:01Use the more compatible -R flag instead of -rpath when linking.Richard Nyberg1+4-2
2009-01-11 15:00Fix for missing AI_ADDRCONFIG.Richard Nyberg1+3-0
2009-01-11 14:59Indicate that btpd has moved past 0.13.Richard Nyberg1+1-1
2009-01-10 22:44Test that the clock is working at start and test for evloop errors.Richard Nyberg1+9-2
2009-01-10 22:41Update build scripts for recent btpd changes. Also use only one makefile.Richard Nyberg6+116-84
2009-01-09 16:55Remove libevent. Btpd no longer uses it.Richard Nyberg28+0-11735
2009-01-09 17:49Btpd now uses evloop, it's own event loop, instead of libevent.Richard Nyberg15+160-125
2009-01-09 17:26Add evloop, btpd's new event loop. This will replace libevent.Richard Nyberg8+722-0
2009-01-08 20:51Let btpd remove torrent data by itself instead of calling rm.Richard Nyberg1+15-4
2009-01-07 15:29Make the http client independent of events and use my iobuf.Richard Nyberg3+152-155
2009-01-10 23:34Make iobuf more useful for io and use better names in its api.Richard Nyberg6+149-119
2009-01-10 23:30Add the function memfind. It'll be used by iobuf.Richard Nyberg2+17-0
2008-12-25 11:59Add code to connect to host given by its hostname.Richard Nyberg3+123-1
2008-12-23 22:35Add a thread for performing asynchronous getaddrinfo's.Richard Nyberg4+106-1
2008-12-23 18:20Bring back the old thread callback code.Richard Nyberg4+97-1
2009-01-08 01:49More autotool files to ignore.Richard Nyberg1+2-0
2008-12-23 17:32Tell git to ignore files generated by autotools.Richard Nyberg1+7-0
2008-12-22 22:35Fix type mismatches in a couple of printf statements.Richard Nyberg2+3-2
2008-12-22 22:34Turn off warnings for pointer sign mismatches.Richard Nyberg1+2-2
2007-07-01 14:48The "Host" HTTP header should be placed as early as possible and also include the port number.Richard Nyberg1+2-2
2007-07-01 14:44Recognize both the CRLF sequence and single LF characters as line terminators.Richard Nyberg1+35-14
2007-06-20 17:32Add libraries in the correct place.Richard Nyberg1+2-2
2007-06-20 15:53Create the peer id and random seed based on the host name, port and the time of the initialization in seconds and microseconds.Richard Nyberg1+18-5
2007-05-23 08:20Fix the '--topdir' option for single file torrents without a top directory. Such torrents were saved as 'name/name' instead of 'name'. The option broke in rev253.Richard Nyberg1+1-1
2007-05-21 13:31Fix bug in benc_length. benc_first shouldn't be used here since it returns NULL on empty lists or dictionaries. This could cause crashes.Richard Nyberg1+1-1
2007-05-20 14:43Clean up the #include sections in the btpd files. Most common headers and all btpd headers are included through btpd.h.Richard Nyberg19+44-145
2007-05-19 20:48Added some more info to CHANGES and version information to README.Richard Nyberg2+6-1
2007-05-19 20:36#include order.Richard Nyberg1+1-1
2007-05-19 15:58Fix problem introduced in r345. A call to http_get could cause the callback to be called before http_get returned.Richard Nyberg1+33-23
2007-05-19 15:53I had missed a check for tracker errors. When a torrent is stopping it's supposed to stop if it can't contact the tracker in STOP_ERRORS tries.Richard Nyberg1+15-11
2007-05-19 15:33Fix from libevent r353.Richard Nyberg1+4-5
2007-05-19 13:07Only keep one block of outgoing data in memory.Richard Nyberg1+1-1
2007-05-19 13:06Don't try to resolve the host if it is already given as an ip address.Richard Nyberg1+4-1
2007-05-19 09:12btpd doesn't need pthreads and curl, and libevent is included. Scratch the dependencies from the README.Richard Nyberg1+2-5
2007-05-19 09:04Changes for 0.13.Richard Nyberg1+13-0
2007-05-19 08:43Update the info files regularly. Before they were only updated when a torrent stopped.Richard Nyberg3+33-4
2007-05-19 08:34Update for 2007.Richard Nyberg1+1-1
2007-05-18 20:53Set torrent deletion flag as parameter to torrent_stop. Update torrent info in torrent_stop rather than torrent_kill. The data doesn't change but there may be some time between the two events.Richard Nyberg4+14-13
2007-05-18 13:45o Rename net_(write|read)32 to (enc|dec)_be32. Add similar functions for 64 bits as well. Implement them in libmisc instead of in btpd. o Change resume file format and related APIs. The resume files are now memory mapped.Richard Nyberg9+230-174
2007-05-18 08:15Some code for udp trackers. Not done yet, so it isn't hooked to the build.Richard Nyberg1+91-0
2007-05-18 07:45Update to libevent-1.3b.Richard Nyberg9+47-119
2007-02-25 17:38Some better logging.Richard Nyberg1+12-5
2007-02-25 17:34Update to libevent from patches-1.3 r335.Richard Nyberg8+1116-119
2007-02-24 22:30Some clean up of the values sent for tget answers. Send values that makes sense instead of errors. Fix wrong type for IPC_TVAL_CSIZE, reported by Arnaud Bergeron.Richard Nyberg1+12-30
2007-02-24 21:49Get rid of tp->relpath.Richard Nyberg3+7-4
2007-02-24 21:22Only trigger error handling if an error actually occured. :PRichard Nyberg1+2-1
2007-02-24 19:59o Make errors when reading or writing torrent data non fatal. Instead of killing btpd, only the troublesome torrent will be stopped. o Some code shuffle.Richard Nyberg8+315-284
2007-01-30 17:13Call peer_on_no_reqs at the appropriate time.Richard Nyberg1+1-1
2006-11-15 13:30Add an option to specify the ip the tracker should distribute for this peer.Richard Nyberg4+33-3
2006-11-15 11:21Fix bug in get_op. Increase the tracker error counter, and reduce the timeout for trying the next url, for url's that we can't use. The timeout is in this case just there to keep btpd from busy looping on a bad url.Richard Nyberg1+6-5
2006-11-08 14:29Fix evbuffer_add_vprintf. Patch taken from <>.Richard Nyberg1+5-2
2006-11-08 14:19Fix return value from evdns_resolv_conf_parse and initialization of the dns transaction id.Richard Nyberg1+5-3
2006-11-08 09:12Update COPYRIGHT to match the current copyrights and licenses in the btpd package.Richard Nyberg1+16-28
2006-11-08 09:01Update the build scripts for the following events: o Some new source files. o Inclusion of libevent. o Removal of curl and pthreads dependencies.Richard Nyberg5+13-242
2006-11-08 08:54Remove files not needed by btpd. Make the build scripts more suitable for btpd.Richard Nyberg38+12-8782
2006-11-07 20:04Bring in fixes from libevent trunk.Richard Nyberg2+40-15
2006-11-07 09:40Include libevent 1.2 in btpd.Richard Nyberg64+19551-0
2006-11-06 20:39Remove a couple of forgotten debug printfs.Richard Nyberg1+0-2
2006-11-06 08:48Instead of immediately reading all data a peer requests into outgoing net buffers, we put placeholder buffers on the list and fill them as they are needed. At most 4 blocks will be filled per peer we upload to. This number should probably be made tunable or be based on SO_SNDBUF or something. Anyway, this should lower btpd's memory usage if one has many uploads.Richard Nyberg4+46-13
2006-11-04 12:58Must call next_url if the current url cannot be requested.Richard Nyberg1+1-0
2006-11-03 17:23Initialize the interval variable even when we don't read its value from the tracker reply.Richard Nyberg1+3-1
2006-11-03 17:20Avoid unnecessary operations on tracker stop. Use STOP_ERRORS constant for the number of tracker errors to tolerate when we're stopping.Richard Nyberg1+6-4
2006-11-03 09:11Missed this file in the last commit. Simplify some interfaces by polling for state changes when appropriate instead of being called directly at any time.Richard Nyberg1+23-26
2006-11-03 08:59Make the content code unthreaded and remove the no longer needed inter thread messaging code. Also simplify some interfaces by polling for state changes when appropriate instead of being called directly at any time.Richard Nyberg7+301-604
2006-11-02 21:03Add bts_filename which gets the current filename from a bt_stream.Richard Nyberg2+8-0
2006-10-31 19:34Add initialization of evdns.Richard Nyberg1+8-2
2006-10-31 19:32Now that btpd doesn't use select, we don't need to limit fd's to FD_SETSIZE unless libevent uses the select method.Richard Nyberg1+3-1
2006-10-31 19:28Remove calls to the already removed old http code.Richard Nyberg1+0-2
2006-10-31 19:21Some cleanup. Use names for some numeric constants.Richard Nyberg1+11-13
2006-10-31 10:21Split the tracker code into a generic part and a http specific part. This allows me to add code for other types of trackers.Richard Nyberg5+284-433
2006-10-31 10:09Rename callback type, add timeouts and and allow any http version in the reply.Richard Nyberg2+13-11
2006-10-31 10:07No parenthesis needed around a string value.Richard Nyberg1+1-1
2006-10-31 10:03Add max(x, y) macro.Richard Nyberg1+2-0
2006-10-29 14:54Add a simple http client. Since it uses libevent it's a better fit for btpd than curl.Richard Nyberg2+494-0
2006-10-26 17:21Don't really know why I did setlocale. Get rid of it since I want the CTYPE to be standard.Richard Nyberg1+0-3
2006-10-16 15:53Random changes :)Richard Nyberg1+6-5
2006-10-16 15:00Rewrote parts of the README and updated it with information on the new stuff in 0.12.Richard Nyberg1+116-62
2006-10-16 14:19Help text format change.Richard Nyberg1+7-7
2006-10-15 15:31Don't call mkdirs unnecessarily. Note that this code is only needed because the content code shuts down btpd on errors. When that is fixed this code can be removed.Richard Nyberg1+17-9
2006-10-15 15:12Make mkdirs behave more like 'mkdir -p' and make btpd create the directory hierarchy to a specified torrent content directory if neccessary.Richard Nyberg3+20-15
2006-10-15 15:08OpenBSD doesn't have stdint.h. It'd be great if they would implement basic c99 library support some day...Richard Nyberg1+1-1
2006-10-15 09:27There's no need to fsync here, so remove the call. This should improve write performance.Richard Nyberg1+0-5
2006-10-15 09:04Always update the tlib info when a torrent is stopped. Some code shuffle.Richard Nyberg1+5-4
2006-10-14 21:29Add and use the function make_abs_path. realpath didn't fit my needs. make_abs_path doesn't need the directories to actually exist in the file system.Richard Nyberg3+107-2
2006-10-14 20:00Forgot to free some memory. Remove some broken code; it wasn't needed yet anyway. glibc doesn't have the d_namlen field in struct dirent, so we'll have to use strlen instead.Richard Nyberg1+9-15
2006-10-14 19:55Update for the read_whole_file -> read_file change.Richard Nyberg1+2-2
2006-10-14 19:53Create all files of a torrent at startup.Richard Nyberg1+11-18
2006-10-14 19:46Add missing include.Richard Nyberg1+1-0
2006-10-14 19:46Safer way to initialize the address.Richard Nyberg1+2-2
2006-10-14 19:43Simplify read_whole_file and rename to read_file.Richard Nyberg2+20-29
2006-10-12 15:27Document changes for 0.12.Richard Nyberg1+23-0
2006-10-12 15:27Bump version to 0.12.Richard Nyberg1+1-1
2006-10-12 14:21Allow empty files in torrents. Create them in stat_and_adjust and let the stream abstraction skip past them.Richard Nyberg3+11-1
2006-10-12 12:06Add missing includes.Richard Nyberg2+3-0
2006-10-11 11:39A string wasn't properly zero terminated.Richard Nyberg1+1-1
2006-10-11 11:34Add missing include.Richard Nyberg1+1-0
2006-10-08 09:12Make the del command work for active torrents too.Richard Nyberg3+14-7
2006-10-07 13:16Help text changes and make del and start take the --help option.Richard Nyberg5+59-21
2006-10-07 10:21btcli list now displays size, ratio and the percentage got of torrents. It sorts by name instead of number (should probably add options for sorting). It now also takes torrents to list as optional arguments. Added ratio to btcli stat display. Changed the help text for both commands. Some code shuffle and other tweaks.Richard Nyberg4+103-53
2006-10-07 09:47Add value queries for total amount up- and downloaded. Use the cached values for torrent size and amount gotten when the torrent isn't active.Richard Nyberg2+12-2
2006-10-07 09:45Save the total amount down- and uploaded and cache the torrent size and the amount we have in the info file.Richard Nyberg3+100-38
2006-10-06 15:04Remove unneeded braces.Richard Nyberg1+1-2
2006-10-06 15:02Add command to stop all active torrents. The command is sent by 'btcli stop -a'.Richard Nyberg4+57-5
2006-09-17 09:01Whitespace.Richard Nyberg1+1-1
2006-09-17 08:29Add function benc_strcmp.Richard Nyberg2+21-0
2006-09-17 08:26Better message for ENOTENT.Richard Nyberg1+1-1
2006-09-17 08:19btcli add now starts the torrent if not told otherwise. Soem cleanup and improved error output.Richard Nyberg9+36-33
2006-09-16 10:50Return rates in bytes/s instead of time factor * bytes/s. Clients should not need to know about the sample time.Richard Nyberg4+8-6
2006-09-16 10:33Make tests for unit changes to take rounding into account.Richard Nyberg1+2-3
2006-09-16 10:08Reprint the header at suitable intervals. Display sizes >= 1000MB in gigs instead of megs. Similarily, display rates >= 1000kB/s in MB/s instead of kB/s.Richard Nyberg1+45-13
2006-09-13 20:13Some changes to the iobuf interface. Remove a debug assert from btpd_if.c and make it act properly on iobuf errors.Richard Nyberg5+56-56
2006-09-13 19:47Move the td_* functions to their own file. Remove lots of unneeded includes.Richard Nyberg3+91-107
2006-09-13 18:46Implement the "key" tracker extension.Richard Nyberg2+11-2
2006-09-13 18:44Enable printf format type checking.Richard Nyberg1+1-0
2006-09-13 18:21Implement the multitracker extension. Removed checks for URLs that btpd can handle for now, so if no such URLs exists there will be a lot of tracker errors reported.Richard Nyberg1+36-15
2006-09-13 18:18btinfo output tweaks.Richard Nyberg1+20-12
2006-09-13 08:18No need to have the net structs on a list. Fix a test for finding a torrent with active net.Richard Nyberg2+10-20
2006-09-13 07:02btpd now has a library of torrents indexed by number and info hash. The add and del commands adds or removes torrents from this library. The start and stop commands are used to active or deactivate torrents. Also, a mechanism for qeurying data on torrents has been added. It's only used by the btcli list and stat commands yet though.Richard Nyberg28+1388-637
2006-09-12 21:23Hook the new files to the build.Richard Nyberg1+4-1
2006-09-12 21:21Pointers to different things need not be represented in the same way. Use the fact that we only can store structs in the table to make the complex pointer use safe. Unfortunately the equal and hash functions need to take void * arguments.Richard Nyberg2+35-33
2006-09-12 21:17This file contains the definitions of the constants used in the btpd interface.Richard Nyberg1+45-0
2006-09-12 21:15Moved from ../cli.Richard Nyberg2+405-0
2006-09-12 21:15Moved to ../misc.Richard Nyberg2+0-405
2006-09-12 21:10The btpd interface now consists of these commands: add - adds a torrent to btpd's library del - removes a torrent from btpd's library start - activates a torrent from the library stop - deactivates an active torrent tget - get data from torrentsRichard Nyberg2+277-144
2006-09-12 17:33Remove unused function bts_hashes.Richard Nyberg2+1-36
2006-09-12 15:37There is no spoon^H^H^H^Htruct metainfo. Use struct mi_file instead.Richard Nyberg2+24-19
2006-09-12 15:12The metainfo code provided a load -> test -> struct metainfo interface. The metainfo struct has been replaced by functions for qeurying specific items from the torrent. In addition, the tests of the torrent data has been improved.Richard Nyberg2+348-203
2006-09-12 08:59Moved to ../misc/queue.hRichard Nyberg1+0-99
2006-09-12 08:58Moved from ../btpd/queue.hRichard Nyberg1+99-0
2006-09-12 08:55Add functions for conversions between binary data and ascii hex. Add function for reading a whole file. Enable printf format checking for some functions.Richard Nyberg2+97-1
2006-09-12 08:53Add a hashtable implementation.Richard Nyberg2+255-0
2006-09-12 08:52Enable printf format type checking for buf_print.Richard Nyberg1+1-0
2006-09-12 08:51Add function benc_strlen.Richard Nyberg2+8-0
2006-08-06 19:28Send keepalives.Richard Nyberg6+33-2
2006-08-06 09:18Reduce the number of HAVE messages sent by only sending them to peers missing the piece. Remove seeder peers when our download is finished and remove peers who doesn't show any interest for a long time when we're seeding.Richard Nyberg3+29-9
2006-08-03 18:04Torrents that were active when btpd was last killed will now be automatically started when btpd starts. The new '--empty-start' option turns this off.Richard Nyberg8+135-2
2006-08-03 14:00Add a delay for contacting the same announce url. This way we don't spam a tracker with connections even if we add a lot of torrents with the same tracker at the same time.Richard Nyberg3+32-0
2006-07-30 12:50Change version to 0.11 and document the changes.Richard Nyberg2+8-1
2006-07-28 13:50Remove the events for a peer's socket before closing it. At least the epoll libevent backend didn't like the fd to be closed. Reported by Ludvig Omholt.Richard Nyberg1+1-1
2006-07-23 13:04Change version to 0.10 and document the changes.Richard Nyberg2+14-1
2006-07-23 12:41Changed the help for the '--ipcprot' option.Richard Nyberg1+3-3
2006-07-23 11:19Truncate the pid file when opening it. Now it actually will contain the pid of the btpd process :)Richard Nyberg1+1-1
2006-07-23 11:16Make sure btpd_dir contains an absolute path. If btpd was started with '-d some/releative/path' it would fail to set up the ipc socket correctly. Reported by Arnaud Bergeron.Richard Nyberg1+13-3
2006-07-23 08:02Add the '--ipcprot' option to change the protection mode of the command socket. From Arnaud Bergeron.Richard Nyberg4+11-1
2006-07-22 20:44Btpd could be DOS'ed by incoming connections that never send any data. Strangely such connections are not entirely uncommon. Added a hand shake time out of 60 seconds to resolve this.Richard Nyberg7+71-25
2006-07-21 12:48Split out common code for btpd_log and btpd_err.Richard Nyberg1+13-13
2006-07-21 09:56Use the new functions btpd_ev_(add|del) instead of calling event_(add|del) directly. Failure to add or delete an event is treated as a fatal error.Richard Nyberg9+45-28
2006-07-15 12:31Fix type mismath. From Arnaud Bergeron.Richard Nyberg1+1-1
2006-03-21 10:17Changes for 0.9.Richard Nyberg1+11-0
2006-03-21 10:01Version 0.9.Richard Nyberg1+1-1
2006-03-20 21:45Cut off decimals after the first tenth percent so printf doesn't round the percentage upwards. Ie. Display 99.9%, not 100.0%, even if we have 99.98% of the content.Richard Nyberg1+3-2
2006-03-18 20:28The previous commit was a bit over zealous; the block field should not be cleared for a failed piece in the full torrent test. This also fixes a bug where the content byte count wasn't decreased for failed pieces.Richard Nyberg1+4-4
2006-03-17 13:58The code for testing content that has potentially been modified between btpd runs was quite broken. Pieces stayed marked as ok event though the hash test failed for pieces in modified files. Oops!Richard Nyberg1+12-13
2006-03-16 17:48Fix a bug from the last commit: shared messages for endgame requests could be placed at the wrong index in the array.Richard Nyberg1+3-2
2006-02-21 21:59There's now one list with requests per piece instead of one per block. The network buffers for requests are now allocated as they're needed. Before they were allocated at the same time as their corresponding piece. This lowers btpd's memory consumption.Richard Nyberg5+90-79
2006-02-19 13:04Safer code for net_read32 and net_write32. It may have been possible for them to cause failure on some architectures because of unaligned fetch/write of integers.Richard Nyberg1+8-2
2006-02-17 21:03Two changes to stat output: 1. Show the number of torrents with tracker errors on the total status line. 2. Show the torrent status character on the status line instead of the name line. This only has effect when the '-i' flag is given.Richard Nyberg1+14-17
2006-02-17 20:55Set default value of cm_alloc_size to 2MB.Richard Nyberg1+1-1
2006-02-12 19:40Set its rates to zero when stopping a torrent.Richard Nyberg1+2-0
2006-02-11 21:10Rewrote the README with changes for 0.8..Richard Nyberg1+119-40
2006-02-11 21:04Changes for 0.8.Richard Nyberg1+30-5
2006-02-11 18:25Don't allow a negative cm_alloc_size to wreak havoc.Richard Nyberg1+1-1
2006-02-11 16:52Return possible error message in the http result. Log the error in the tracker code.Richard Nyberg3+6-4
2006-02-11 16:49Change preallocation default to 2048. 1 may be a little low.Richard Nyberg2+2-2
2006-02-11 16:47Safer type use.Richard Nyberg1+2-2
2006-02-10 21:55Fix typo.Richard Nyberg1+1-1
2006-02-10 21:40Add a note on the ACX_PTHREAD macro license.Richard Nyberg1+3-0
2006-02-10 21:30I don't quite like this file. I think I will use the trac site to keep this kind of information instead.Richard Nyberg1+0-18
2006-02-10 21:05Better log message.Richard Nyberg1+2-2
2006-02-10 21:02Better log message.Richard Nyberg1+2-1
2006-02-10 20:55Be careful not to stop the sub struct if they haven't been started. Also be careful so that we don't operate on a dead torrent.Richard Nyberg1+27-18
2006-02-10 20:51Oops! Forgot to free some memory.Richard Nyberg2+2-0
2006-02-10 20:45Call realpath after creating the dir. At least on linux the call to realpath may fail if the last path component doesn't exist.Richard Nyberg1+8-9
2006-02-10 17:33Use c99 types conservatively to compile on OpenBSD. Also convert to or from time_t via long.Richard Nyberg4+13-13
2006-02-10 17:13Glibc needs sys/file.h for flock.Richard Nyberg1+1-1
2006-02-10 15:41Mostly name changes. Add a missing include. Changed the torrent status characters displayed by btcli.Richard Nyberg11+81-63
2006-02-10 15:38Glibc doesn't support locking in open. Use flock after open instead.Richard Nyberg1+6-8
2006-02-10 15:35Put the ACX_PTHREAD macro from the Autoconf macro archive in acinclude.m4. Build btpd with pthreads.Richard Nyberg3+204-10
2006-02-10 09:24Change the downloaders option to max-uploads. I find it much less confusing that way :PRichard Nyberg4+25-25
2006-02-09 22:35Add torrent_name function and use it.Richard Nyberg4+20-13
2006-02-09 22:01btcli stat now takes file arguments to only include stats for the given torrents.Richard Nyberg1+28-6
2006-02-09 21:59Include the info hash in the tpstat structure.Richard Nyberg2+6-1
2006-02-09 20:41o Since the torrent sub structs always exist now, we can always write all stats for torrentst. o btpd may be waiting for a torrent to finish so it can exit. Therefore btpd needs to send the reply to the cli before removing the torrent.Richard Nyberg1+23-29
2006-02-09 20:36There's no need for exactly 64 bits for the upload and download count. Make them long long instead.Richard Nyberg1+1-1
2006-02-09 20:32Removed the http_redo hack.Richard Nyberg2+0-13
2006-02-09 20:29o Make the torrent sub struct exist for whole life time of the torrent. o Better code for stopping the tracker. No more need for the http_redo hack.Richard Nyberg7+132-69
2006-02-09 16:28Fix typo. Index should be i not 1.Richard Nyberg1+1-1
2006-02-08 22:56Interaction with btpd is now much more like I want it. Previous work has moved toward btpd having a library of torrent to wich one may add or remove torrents, and where interaction on torrents are done by their assigned number. This commit is a step back from that and it makes life simpler and better for all :)Richard Nyberg13+496-584
2006-02-08 22:24White space.Richard Nyberg2+2-2
2006-02-08 22:20Add functions find_btpd_dir.Richard Nyberg2+21-0
2006-02-08 17:04Remove unused function canon_path.Richard Nyberg2+0-28
2006-02-08 16:38Use benc_dget_mema instead of benc_dget_mem + malloc + bcopy.Richard Nyberg1+2-2
2006-02-08 16:37Use strtoul to parse length of strings.Richard Nyberg1+5-11
2006-02-08 16:36Added buf_swrite.Richard Nyberg1+2-0
2006-02-06 20:43Check for failure to allocate memory.Richard Nyberg1+4-2
2006-02-06 20:43Remove som unused code I commited by mistake. Replace integer parse code in benc_int with a call to strtoll.Richard Nyberg1+5-94
2006-02-05 18:01Added description of stat output. Changed the stat output.Richard Nyberg1+37-29
2006-02-05 17:08o Changed the benc_ api to make it easier to use. o Lot of work on the cli and its communication with btpd.Richard Nyberg8+949-948
2006-02-05 11:35Make the buf api safe to continue to use even if an error has occured.Richard Nyberg2+18-8
2006-02-05 11:34Add functions read_fully and write_fully. They are simpler alternatives to read and write on blocking sockets.Richard Nyberg2+35-0
2006-02-05 11:30Add a function to look up a torrent by its number.Richard Nyberg2+13-1
2006-02-05 11:29Each torrent now gets a number. This number is used to select which torrent to operate on from btcli.Richard Nyberg2+12-0
2006-02-05 11:24Add function to get tracker error count. Don't look for peers and stuff in tracker replies when we're stopping.Richard Nyberg2+10-2
2006-02-05 11:21Help text changes.Richard Nyberg1+11-9
2006-02-01 21:56Torrents can now be deactivated and btpd will wait for all torrents to deactivate on shutdown. To not risk hanging indefinitely on unresponsive trackers, btpd will cancel tracker requests after a while.Richard Nyberg6+113-19
2006-02-01 21:46o Fixed: cm->active was not set to 0 in cm_stop. o Since we only use the mtime and size field of the stat struct for resume info, we now use a struct with only those two fields. This reduces stack usage.Richard Nyberg1+28-19
2006-02-01 21:32Peers we download from are given a weight of two compared to peers we seed to when we decide which peers to upload to. Also fix so that we don't prefer to upload to peers who has had a good rate but isn't uploading to us now.Richard Nyberg1+11-5
2006-02-01 21:19Added function http_redo, which does a new request for the same url as an old request and cancels the old request.Richard Nyberg2+12-0
2006-01-25 21:59* Better message when trying to start btpd in a driectory where it's already running. * Added --downloaders and --max-peers options and hopefully usefull defaults. Because curl uses fd_sets it's important to keep the numbers of fds used below FD_SETSIZE. I will probably move the curl stuff to it's own process to get rid of that limitation. * Added to the help text.Richard Nyberg8+73-24
2006-01-24 22:42Don't clear the bitfield for blocks it's possible we have, even though the resume file and content aren't synchronized. Save the resumefile every 15 seconds for torrents we're downloading. This way we don't have to redownload much content because of crash or whatnot. Not that btpd would crash :) Also, as there were probably no point in fsync'ing the content when we closed the write stream, that is not done anymore.Richard Nyberg1+57-36
2006-01-22 23:10* Implemented the full cm_ life cycle. * Added fast resume support. A resume file is loaded when a torrent is started and saved when it's stopped or done. If no resume file is found or the file information doesn't match whats on disk, the content is tested for existing pieces. * cm_prealloc now can allocate several adjacent pieces to the given piece. This further reduces fragmentation. How many pieces are allocated at a time is controlled by cm_alloc_size which can be set by the user with the --prealloc option. * Some changes were also made to the torrent api.Richard Nyberg5+569-171
2006-01-22 21:57Added option --prealloc and a directory argument to btpd. Synced the command line help with the available options.Richard Nyberg3+15-13
2006-01-22 21:51Added vfsync and vfopen.Richard Nyberg2+51-7
2006-01-17 10:20White space.Richard Nyberg2+11-11
2006-01-16 22:32Implemented a service thread for operations such as testing piece hashes, preallocating disk space, etc. Tweaked the cm <-> net api a bit.Richard Nyberg7+369-87
2006-01-16 22:23Unify the write and read structs. There was no good reason to keep them separate. Improve the bts_seek so that it only calls close or lseek if necessary. Otherwise it's a nop. Hide bts_seek and instead make the offset explicit in calls to bts_get or bts_put.Richard Nyberg2+119-154
2006-01-16 21:30peer_on_no_reqs was called unsafely in peer_on_choke. It should only be called after removing the last request.Richard Nyberg2+4-2
2006-01-16 20:29There should be one level of pointer indirection less for the arguments of rate_cmp. Also the wrong variable was passed to peer_unchoke. s/unsigned/int where it makes sense.Richard Nyberg1+14-13
2006-01-16 19:47Add peer_full function.Richard Nyberg2+7-0
2006-01-16 17:13A peer needs to be removed from the peer list before being handed to dl_on_lost_peer. Fix a type.Richard Nyberg1+3-3
2006-01-16 17:05Fix conditional I broke in r131.Richard Nyberg1+1-1
2006-01-10 17:57Removed code dealing with child processes; btpd doesn't use them anymore.Richard Nyberg2+0-44
2006-01-10 15:05Changed semantics of cancelled http requests. Before they were reported as cancelled, or possibly ok or failed if the request had come that far. Now cancelled requests are silently discarded and doesn't execute the callback. This makes the http api easier to use. Updated the tracker code for the new http semantics.Richard Nyberg2+12-49
2006-01-09 21:20* Move the network related parts of the torrent struct to a sub struct. * Move some struct and type definitions to net_types.h * Fix ul_on_lost_peer. I must've been very tired when I wrote it :PRichard Nyberg16+310-307
2006-01-09 21:03Fix compiler warnings.Richard Nyberg1+2-2
2006-01-09 17:52Rename tp->cp to tp->cm.Richard Nyberg2+17-17
2006-01-09 16:41Rename p->net to p->in and net_state to input_state. Move code to where it belongs.Richard Nyberg4+60-60
2006-01-09 13:41Better tracker code. Mostly done but needs a little more work. It now uses the new http thread instead of forked proceses for tracker requests.Richard Nyberg5+164-203
2006-01-09 13:31Move finished http requests to a queue and post the whole queue at once. This can potentially reduce the time the http thread keeps the post lock and the httpq lock.Richard Nyberg1+14-13
2006-01-08 11:57OMG! It's a new year already! ;) Update the copyright.Richard Nyberg1+2-2
2006-01-07 14:55Nicer code for the http thread.Richard Nyberg1+78-94
2006-01-06 22:24* Added a method for other threads to execute callbacks in the main thread. * Added a thread and api for http requests. The thread uses the curl multi interface and will be used by the tracker code. The tracker code currently use forked processes to do its bidding.Richard Nyberg5+367-1
2006-01-06 18:49Added BTPDQ_FOREACH_MUTABLE list macro.Richard Nyberg1+5-0
2006-01-06 11:57Sort.Richard Nyberg1+7-6
2006-01-04 19:59Remove use of the ugly PRI* print macros.Richard Nyberg3+14-34
2006-01-04 13:38o Use the new cm_* content api. o Unhook cli_if.c from build temporarily. It needs to be fixed. o Torrent meta data is now kept in subdirectories to $BTPD_HOME/library. o Added some very incomplete life cycle logic for torrents.Richard Nyberg14+165-350
2006-01-04 12:16New api for managing the content of a torrent. It'll keep track of which pieces we and blocks we have, it'll do the writing and reading from disk and test pieces against their hashes. This is only a dummy implementation of the api. I'll flesh it out in subsequent commits.Richard Nyberg2+157-0
2006-01-04 11:53Don't write the rates to the log anymore.Richard Nyberg1+0-3
2006-01-04 11:16Fixed a broken loop. I must have forgotten that the loop variable was unsigned when I wrote it :PRichard Nyberg1+4-4
2006-01-03 22:28o Removed an unused function. o Made bit field argument to has_bit const since the function doesn't modify it.Richard Nyberg2+2-14
2005-12-17 22:07First stab at a choke algorithm for all peers. In previous versions choking was done per torrent.Richard Nyberg1+110-7
2005-12-14 17:31Add and use rand_between.Richard Nyberg4+11-2
2005-12-02 13:18* Some code shuffle and removal of dead code. * Add net_active flag to simplify removal of peers when shutting down the net for a torrent.Richard Nyberg4+26-35
2005-12-01 14:41Rates should be unsigned long. Compute total, torrent and peer rates.Richard Nyberg3+25-11
2005-12-01 14:39dl_on_lost_peer must remove the peer from the list. This was accidentally removed in a previous commit. Fix indentation.Richard Nyberg1+2-1
2005-12-01 13:56Fix an unsafe loop.Richard Nyberg1+4-2
2005-11-30 20:53The mega whitespace patch. Tabs have been converted to spaces and trailing whitespace have been removed. I have fixed my emacs settings now :PRichard Nyberg28+1608-1608
2005-11-30 20:45* Added net_(add|del)_torrent. net_add_torrent enables p2p for a torrent and net_del_torrent does the opposite (surprise!). * Some code shuffle has been done to separate net_ and dl_ from torrent_ but there's still much to be done. * Removed a couple of dead vars from struct torrent.Richard Nyberg7+73-34
2005-11-29 13:58* Removed the heartbeat and btpd_seconds. Note that this breaks the tracker. * Renamed the policy* files to upload* and download*. * The upload (un)choker is now global instead of per torrent. The algorithm is not yet implemented however. To be continued...Richard Nyberg17+364-459
2005-11-27 20:26* Get rid of net_bw_hz and run the bw stuff at one hz. * The peer rates are now only updated when data transfer is enabled in the corresponding direction. They are also computed differently from before. The rates are computed in the bw callback once a second. This facilitates later improvements in the choke algorithm.Richard Nyberg8+64-50
2005-11-27 15:43More name changes from "cm_" to more appropriate names.Richard Nyberg8+149-149
2005-11-27 12:28Rename the list of torrents.Richard Nyberg1+7-7
2005-11-27 12:18This is very much a intermediate commit. * Load "test" torrent on start. * Look for content and resume in the right places.Richard Nyberg3+12-8
2005-11-14 20:54Use a flag (PF_DO_UNWANT) to indicate that we should send an uninterest message when we no longer have any pending requests. This fixes a bug where two uniterest messages were sent to a peer that was no longer wanted in endgame.Richard Nyberg2+11-1
2005-11-07 14:58Just bump version number.Richard Nyberg1+1-1
2005-11-07 14:57Step one of many to make the sub systems more modular. This commit gets rid of the global btpd struct. Some fields in the struct got a corresponding global variable whereas some was made static and moved to a module.Richard Nyberg17+590-519
2005-10-10 16:57Set version to 0.7. Update CHANGES.Richard Nyberg2+8-1
2005-10-08 19:08Add a new net state to get the index and begin fields from piece messages before we read the piece data. This can be used to test for junk earlier.Richard Nyberg3+12-4
2005-10-08 15:31Have a peer event for keep alives too. Its only function is to log atm.Richard Nyberg3+8-1
2005-10-08 15:27Wait until we don't have any unanswered requests on a peer before sending an uninterest message.Richard Nyberg2+24-7
2005-10-08 15:03Log keep alives.Richard Nyberg1+3-1
2005-10-08 14:50Accept pieces even if they arrive in a different order than the requests were sent.Richard Nyberg1+7-5
2005-10-08 14:32Logging.Richard Nyberg1+1-3
2005-10-08 10:00Remove unsent requests from the write queue when we receive a choke.Richard Nyberg1+7-0
2005-10-06 14:09Enable all logging if DEBUG is defined.Richard Nyberg1+5-1
2005-10-06 14:01More logging: discarded pieces and peer_id.Richard Nyberg1+17-10
2005-10-06 08:16#include <limits.h> to be sure to get IOV_MAX. Use the net_state enum and change some state names from NET_ to BTP_. Some minor type fixes.Richard Nyberg4+18-21
2005-10-05 12:01Fix two bugs. Add some logging.Richard Nyberg1+9-3
2005-10-05 11:59Remove unused constants.Richard Nyberg1+0-2
2005-10-05 08:59Code shuffle.Richard Nyberg3+19-13
2005-10-05 08:47Put the net state related data in its own sub struct. Remove unneccesary use of struct io_buffer.Richard Nyberg3+41-39
2005-10-05 08:23Constify some functions. Remove an unneccesary net state. Pass the char buffer directly to net_state instead of struct io_buf.Richard Nyberg4+34-37
2005-10-04 19:21net_state should return ssize_t not int. removed some deug logging.Richard Nyberg1+5-10
2005-10-04 19:14Better method of reading data from peers. btpd could send data to peers that had closed the at least one direction of the connection. That feature was probably unneccesary. Removed it for now.Richard Nyberg2+80-81
2005-10-04 17:52Rewrite of the code for receiving data from peers. It's not quite how I want it yet, but it's getting there.Richard Nyberg4+265-448
2005-10-01 16:29More logging.Richard Nyberg3+54-16
2005-09-30 12:47Changes for 0.6.Richard Nyberg1+8-0
2005-09-24 18:59In the transition to end game it's likely that we'll send an uniterest message followed by an interest message. Optimize this but not sending those messages in that case. This is better becasue we don't risk to trigger a choke from the receiving peer.Richard Nyberg1+6-1
2005-09-23 10:29Send a new request to a peer after sending cancel.Richard Nyberg1+24-23
2005-09-21 19:05xRichard Nyberg1+1-2
2005-09-21 10:55Bump version to 0.6.Richard Nyberg1+1-1
2005-09-20 19:24* Allocate request messages on piece creation. The request objects can be shared by several peers. At least in end game. * Link blocks with the peers we are loading them from and vice versa. * Limit the number of requests / peer in end game too. * Improve end game by using some sort of round robin for block requests.Richard Nyberg6+278-137
2005-09-20 19:04Use the piece destructor.Richard Nyberg1+2-6
2005-09-20 18:54Add some macros.Richard Nyberg1+13-0
2005-09-10 19:25Simplify the autocrap somewhat. Always include the #defines needed to build with glibc.Richard Nyberg1+1-8
2005-08-30 08:18Remove a bad assert. The test can be true during normal operation.Richard Nyberg1+0-1
2005-08-12 20:25Set an upper limit on how many piece messages to queue for writing to a peer. If more requests arrive they will be ignored. When all pieces have been sent to the peer, in order for it not to wait on the ignored requests, its state will be reset by a choke followed by an unchoke message.Richard Nyberg3+45-14
2005-08-03 21:08Only allocate one have message for all peers, instead of one per peer.Richard Nyberg1+2-1
2005-08-02 17:05* Rearrange some code. Mostly from net to net_buf and peer. * Use the new net_bufs where it makes sense. * Take advantage of the reference count on net_bufs and only allocate the (un)choke and (un)interest messages once.Richard Nyberg10+431-380
2005-08-02 14:53The fix for bitfield in r59 wasn't quite correct. Instead of being sent too early it could now be sent too late.Richard Nyberg3+9-2
2005-07-31 17:42Wrong logmask was used.Richard Nyberg1+1-1
2005-07-31 17:03Set version to 0.4.Richard Nyberg1+1-1
2005-07-31 17:03Add items for 0.4.Richard Nyberg1+16-0
2005-07-30 19:02Spelling.Richard Nyberg1+1-1
2005-07-30 18:48Removed the info entry in the net_buf. The information can easily be extracted from the buffer data instead. Created functions to do that.Richard Nyberg3+71-43
2005-07-30 18:45Better tests. peer_laden is needed beacuse the peer might have gotten new request if the piece was fully downloaded and found to be bad.Richard Nyberg1+2-2
2005-07-30 18:42Fix style. Remove unnecessary check for EINTR.Richard Nyberg1+7-12
2005-07-30 18:27All files: Each piece must have at least one byte for their block bit array, or they will collide causing great confusion in btpd. The calculation was done wrong so this could happen for small torrents (blocks / piece < 8).Richard Nyberg3+24-25
2005-07-30 10:27* Don't hold a net_buf on allocation. Do it when it's really needed instead. * Add function net_unsend to safely remove network buffers from a peer's outq. Use it where needed in peer.c.Richard Nyberg3+39-35
2005-07-29 20:19Make sure we don't empty the outq and leave the write callback enabled.Richard Nyberg1+10-0
2005-07-29 19:42Remove dead code.Richard Nyberg2+0-45
2005-07-29 19:40Rework the outgoing network buffers. The buffers now contain more information on what data they hold, making it unnecessary to have other lists tracking that information. Also they now have a reference count, making it possible to use the same buffer on many peers.Richard Nyberg4+204-142
2005-07-29 10:08Missing space.Richard Nyberg1+1-1
2005-07-29 10:07Queue the bitfield for sending after the handshake is completed. This fixes a bug where peer could miss pieces btpd got while the peer was in handshake.Richard Nyberg2+23-4
2005-07-29 09:18At each bandwidth call the remaining bandwidht counter is set to limit / hz. Since the set hz is (almost) never achieved the denominator is now based on the average hz the last 5 seconds.Richard Nyberg4+37-3
2005-07-23 21:30Spelling.Richard Nyberg1+1-1
2005-07-23 21:29Use the old simpler bandwidth limiter, but run it at a configurable rate. Let the default be 8 hz for now.Richard Nyberg5+73-97
2005-07-22 16:34Set a 60s timeout on writes. If a write times ut the peer in question will be killed.Richard Nyberg1+10-3
2005-07-22 16:20Kill a peer when write indicates a closed connection.Richard Nyberg1+4-0
2005-07-22 10:40Speling.Richard Nyberg1+1-1
2005-07-22 10:27The assert is only valid if we haven't transitioned to end game.Richard Nyberg1+5-2
2005-07-22 10:01Remove fixed item.Richard Nyberg1+0-1
2005-07-21 17:01Add item for 0.3.Richard Nyberg1+1-0
2005-07-21 16:59Code shuffle.Richard Nyberg5+90-91
2005-07-21 16:50* Use torrent_get_piece instead of loop. Check for correctness.Richard Nyberg1+6-5
2005-07-21 15:33Prepare for release 0.3.Richard Nyberg2+15-1
2005-07-21 15:11Clear flag for busy blocks when entering end game. Add test for program correctness.Richard Nyberg1+7-1
2005-07-21 15:09No need to test piece_full in end game mode. Added test for program correctness.Richard Nyberg1+3-1
2005-07-21 15:06Add tests for correctness.Richard Nyberg1+2-0
2005-07-21 15:05Increase the number of requests to pipe to 10.Richard Nyberg1+1-1
2005-07-21 09:29The test for if we should call cm_on_undownload or not wasn't totally correct. Since there's a possibility that we've assigned requests to peer and then decreased the wanted level, we could've missed peers with requests but a wanted level of zero.Richard Nyberg1+2-2
2005-07-21 09:23Introduce the -d option.Richard Nyberg1+40-29
2005-07-20 21:44Missed to update peer->nreqs_out at a couple of places.Richard Nyberg2+2-0
2005-07-20 21:42Peers wasn't removed from the list of unattached peers before being added to the torrent list. This bug crept in because this file was based on an earlier version of policy.c.Richard Nyberg1+1-0
2005-07-20 20:57Don't try to assign requests if the peer already has enough requests.Richard Nyberg1+2-2
2005-07-20 20:11Rework the download algorithm. This isn't tested yet, but it compiles so it must be bug free :)Richard Nyberg10+929-763
2005-07-19 10:49Remove -Wall -Werror from the default CFLAGS. Add --with-warn option to configure, making it easy to select between a couple of predefined warning options.Richard Nyberg1+21-1
2005-07-17 20:10Use net_read_to_buf in net_generic_read.Richard Nyberg1+6-11
2005-07-17 18:33Add net_read_to_buf getting rid of some common code. I should make net_generic_read use a real io_buffer and this function too.Richard Nyberg1+20-23
2005-07-17 18:06Make changes in the choke/interest state of a peer visible to the policy on a lower level.Richard Nyberg3+52-17
2005-07-17 15:39* Better interface between the net and peer code. The net code now calls the peer code when it has read a full message. This has mostly involved moving code from net.c to peer.c.Richard Nyberg6+162-96
2005-07-07 19:41This is version 0.2.Richard Nyberg1+1-1
2005-07-07 19:25Add CHANGES. A file describing changes between versions of btpd.Richard Nyberg2+16-1
2005-07-07 16:21*) Add one item. *) Don't call names. *) Don't think it's neccessary to include fixing of general bugs.Richard Nyberg1+2-2
2005-07-07 13:21Add check so that we don't connect to more peers than we should.Richard Nyberg1+2-1
2005-07-07 13:19Write "1 torrent." instead of "1 torrents.".Richard Nyberg1+1-1
2005-07-07 12:55The generic reader didn't have a buffer that was large enough to save uncomplete messages. I had forgotten about the four bytes of message length preceding the message. A buffer overflow could occur because of this. Ouch!Richard Nyberg2+2-1
2005-07-07 12:51Accept more data from tracker.Richard Nyberg1+1-1
2005-07-06 19:10It wasn't safe to modify the list from within the loop. Fixed it.Richard Nyberg1+4-2
2005-07-06 17:14Keep peers not attached to a torrent on a list, making it possible to remove peers in mid hand- shake when removing a torrent.Richard Nyberg5+18-1
2005-07-04 19:13Remove #if 0'ed code.Richard Nyberg1+0-57
2005-07-04 15:46Remove unused label.Richard Nyberg1+0-1
2005-07-04 15:46Sanity checks.Richard Nyberg1+2-0
2005-07-04 15:41Move increment of btpd.npeers to a more fitting location.Richard Nyberg2+1-2
2005-07-04 15:38No need to check for EINTR.Richard Nyberg1+3-5
2005-07-04 06:56Must save the old time to be able to calculate the delta.Richard Nyberg1+1-0
2005-07-03 19:38Base bandwidth calculations on actual time between data points, instead of the ideal.Richard Nyberg1+20-8
2005-07-03 19:35Update btpd.npeers in the right place.Richard Nyberg1+2-5
2005-07-03 19:33Don't multiply the index by 6, it's increased by that amount each loop.Richard Nyberg1+1-1
2005-07-03 13:02Use compact mode for tracker requests.Richard Nyberg6+78-35
2005-07-03 09:41Before, the count of uploaded torrent data was increases by the block size as soon as the message head was written to the network. Now it's increased for each byte of torrent data we've written.Richard Nyberg2+16-8
2005-07-03 09:37New algorithm for bandwidth limitation.Richard Nyberg4+84-2
2005-06-28 16:54Rename TAILQ to BTPDQ to avoid macro redefinition, which may happen if some other header includes sys/queue.h.Richard Nyberg12+177-177
2005-06-28 16:39test(1) uses '=' as the equality operator, not '=='.Richard Nyberg1+2-2
2005-06-24 11:32Separate the child struct from worker specific data.Richard Nyberg2+13-11
2005-06-24 10:25sprintf -> snprintf Removed two unnecessary assignments.Richard Nyberg1+2-4
2005-06-24 10:13* Indicate that this is not version 0.1 any more. * Change email address. * Better tests for curl.Richard Nyberg1+8-3
2005-06-24 10:00Changed email address.Richard Nyberg1+2-1
2005-06-24 09:54Create main development area.Richard Nyberg0+0-0
2005-06-24 09:51Import btpd-0.1.Richard Nyberg37+5748-0