Richard Nyberg
30601882e5
Whitespace.
pirms 18 gadiem
Richard Nyberg
00db1f1ced
Add function benc_strcmp.
pirms 18 gadiem
Richard Nyberg
ce0ef9d46b
Better message for ENOTENT.
pirms 18 gadiem
Richard Nyberg
311a05f613
btcli add now starts the torrent if not told otherwise. Soem cleanup and
improved error output.
pirms 18 gadiem
Richard Nyberg
b169d038fe
Return rates in bytes/s instead of time factor * bytes/s. Clients should
not need to know about the sample time.
pirms 18 gadiem
Richard Nyberg
b0d013a7aa
Make tests for unit changes to take rounding into account.
pirms 18 gadiem
Richard Nyberg
2483f77ff5
Reprint 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.
pirms 18 gadiem
Richard Nyberg
a5ae3e120f
Some changes to the iobuf interface. Remove a debug assert from btpd_if.c and
make it act properly on iobuf errors.
pirms 18 gadiem
Richard Nyberg
e33b8a57e6
Move the td_* functions to their own file. Remove lots of unneeded includes.
pirms 18 gadiem
Richard Nyberg
fd7d7fca08
Implement the "key" tracker extension.
pirms 18 gadiem
Richard Nyberg
0c9cc2aa1d
Enable printf format type checking.
pirms 18 gadiem
Richard Nyberg
1911f326a6
Implement 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.
pirms 18 gadiem
Richard Nyberg
fa6de9c8a5
btinfo output tweaks.
pirms 18 gadiem
Richard Nyberg
2c15b5701f
No need to have the net structs on a list. Fix a test for finding a torrent
with active net.
pirms 18 gadiem
Richard Nyberg
86754d7d53
btpd 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.
btcli has been split into different files for each command.
Both btpd and btcli now use misc/btpd_if.h for all ipc definitions.
Misc changes:
- struct metainfo is gone. Use the new mi_* functions.
- Add printf format type checking where appropriate.
pirms 18 gadiem
Richard Nyberg
763cbbb59f
Hook the new files to the build.
pirms 18 gadiem
Richard Nyberg
8695ecdf18
Pointers 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.
pirms 18 gadiem
Richard Nyberg
848de36107
This file contains the definitions of the constants used in the btpd
interface.
pirms 18 gadiem
Richard Nyberg
a162d34982
Moved from ../cli.
pirms 18 gadiem
Richard Nyberg
28380064b7
Moved to ../misc.
pirms 18 gadiem
Richard Nyberg
d3f404c07e
The 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 torrents
tget obsoletes stat and list.
Commands for setting values and query other data will be
added later.
pirms 18 gadiem
Richard Nyberg
13607e007a
Remove unused function bts_hashes.
pirms 18 gadiem
Richard Nyberg
334c94db46
There is no spoon^H^H^H^Htruct metainfo. Use struct mi_file instead.
pirms 18 gadiem
Richard Nyberg
cd0eb82f20
The 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.
pirms 18 gadiem
Richard Nyberg
fc20273a80
Moved to ../misc/queue.h
pirms 18 gadiem
Richard Nyberg
c41c08adca
Moved from ../btpd/queue.h
pirms 18 gadiem
Richard Nyberg
a27913a47d
Add functions for conversions between binary data and ascii hex.
Add function for reading a whole file.
Enable printf format checking for some functions.
pirms 18 gadiem
Richard Nyberg
203d4148e4
Add a hashtable implementation.
pirms 18 gadiem
Richard Nyberg
c9ea09b1ad
Enable printf format type checking for buf_print.
pirms 18 gadiem
Richard Nyberg
47358cf420
Add function benc_strlen.
pirms 18 gadiem
Richard Nyberg
c4379cdfb9
Send keepalives.
pirms 18 gadiem
Richard Nyberg
1f4ef6cb15
Reduce 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.
pirms 18 gadiem
Richard Nyberg
e0877d2870
Torrents that were active when btpd was last killed will now be automatically
started when btpd starts. The new '--empty-start' option turns this off.
pirms 18 gadiem
Richard Nyberg
251b5d2e18
Add 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.
pirms 18 gadiem
Richard Nyberg
eb1581a673
Change version to 0.11 and document the changes.
pirms 18 gadiem
Richard Nyberg
7ce1098dff
Remove 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.
pirms 18 gadiem
Richard Nyberg
45ceb46c42
Change version to 0.10 and document the changes.
pirms 18 gadiem
Richard Nyberg
336a4d4c02
Changed the help for the '--ipcprot' option.
pirms 18 gadiem
Richard Nyberg
2e073c13f2
Truncate the pid file when opening it. Now it actually will contain the pid
of the btpd process :)
pirms 18 gadiem
Richard Nyberg
2285473192
Make 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.
pirms 18 gadiem
Richard Nyberg
7810b15cfd
Add the '--ipcprot' option to change the protection mode of the command
socket. From Arnaud Bergeron.
pirms 18 gadiem
Richard Nyberg
2a462baead
Btpd 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.
Added a peer_on_tick function which is used to monitor peers for different
timeouts. Timestamps are compared against the reborn btpd_seconds.
The issue has been reported by Ludvig Omholt and Arnaud Bergeron.
pirms 18 gadiem
Richard Nyberg
cfb37a5227
Split out common code for btpd_log and btpd_err.
pirms 18 gadiem
Richard Nyberg
ed56df9e56
Use 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.
pirms 18 gadiem
Richard Nyberg
368bafd8a6
Fix type mismath. From Arnaud Bergeron.
pirms 18 gadiem
Richard Nyberg
3c5beeaa0e
Changes for 0.9.
pirms 19 gadiem
Richard Nyberg
a0985012a1
Version 0.9.
pirms 19 gadiem
Richard Nyberg
4e6f095c41
Cut 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.
pirms 19 gadiem
Richard Nyberg
db49763849
The 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.
pirms 19 gadiem
Richard Nyberg
b72b6bb8ba
The 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!
pirms 19 gadiem