An open and free bittorrent tracker https://erdgeist.org/gitweb/opentracker
Go to file
Dirk Engling b2ca164922 * http and udp routines now use thread local buffers passed in workstruct containers. In other words they do not use static_buffer anymore and are considered to be thread safe.
* the new workstruct also introduces a well defined buffer and result passing path
* a new function scan_find_keywords is a wrapper around scan_urlencoded_query that maps keys in url to values passed in an array of ot_keywords structs
* this new function cleans up much of url parameter parsing work, where read_ptr and write_ptr have been introduced rather than the confusing char *c, *data variables
* I now use memcmp instead of byte_diff to allow compiler to optimize constant size string compares
* got rid of UTORRENT_1600_WORKAROUND
* livesync_ticker is now only called from one (currently main) thread to avoid race conditions
2009-01-05 18:05:38 +00:00
opentracker.xcodeproj The BIG refactoring [tm]. Too many changes to count them. If it doesn't suite you, revert to last version. 2008-11-28 22:21:09 +00:00
tests The BIG refactoring [tm]. Too many changes to count them. If it doesn't suite you, revert to last version. 2008-11-28 22:21:09 +00:00
Makefile * http and udp routines now use thread local buffers passed in workstruct containers. In other words they do not use static_buffer anymore and are considered to be thread safe. 2009-01-05 18:05:38 +00:00
README Move stats out of opentracker.c, also have an own file handle udp requests. 2007-11-06 17:50:41 +00:00
README_v6 account downloaded before early returns 2007-01-27 16:06:13 +00:00
opentracker.c * http and udp routines now use thread local buffers passed in workstruct containers. In other words they do not use static_buffer anymore and are considered to be thread safe. 2009-01-05 18:05:38 +00:00
opentracker.conf.sample Document WANT_RESTRICT_STATS in sample config file 2008-10-24 00:06:35 +00:00
ot_accesslist.c Fix incorrect prototype for accesslist_deinit 2009-01-02 07:52:17 +00:00
ot_accesslist.h Handle program end more politely 2008-12-07 03:50:47 +00:00
ot_clean.c * opentracker now drops permissions in correct order and really chroots() if ran as root 2009-01-02 08:57:49 +00:00
ot_clean.h The BIG refactoring [tm]. Too many changes to count them. If it doesn't suite you, revert to last version. 2008-11-28 22:21:09 +00:00
ot_fullscrape.c * opentracker now drops permissions in correct order and really chroots() if ran as root 2009-01-02 08:57:49 +00:00
ot_fullscrape.h Whitespace fixes 2008-10-28 01:27:21 +00:00
ot_http.c * http and udp routines now use thread local buffers passed in workstruct containers. In other words they do not use static_buffer anymore and are considered to be thread safe. 2009-01-05 18:05:38 +00:00
ot_http.h * http and udp routines now use thread local buffers passed in workstruct containers. In other words they do not use static_buffer anymore and are considered to be thread safe. 2009-01-05 18:05:38 +00:00
ot_iovec.c Formatting 2008-11-03 01:27:03 +00:00
ot_iovec.h The BIG refactoring [tm]. Too many changes to count them. If it doesn't suite you, revert to last version. 2008-11-28 22:21:09 +00:00
ot_livesync.c * http and udp routines now use thread local buffers passed in workstruct containers. In other words they do not use static_buffer anymore and are considered to be thread safe. 2009-01-05 18:05:38 +00:00
ot_livesync.h * opentracker now drops permissions in correct order and really chroots() if ran as root 2009-01-02 08:57:49 +00:00
ot_mutex.c Make opentracker ANSI C again. 2009-01-03 03:25:34 +00:00
ot_mutex.h * opentracker now drops permissions in correct order and really chroots() if ran as root 2009-01-02 08:57:49 +00:00
ot_stats.c Make opentracker ANSI C again. 2009-01-03 03:25:34 +00:00
ot_stats.h stats fuer sync 2008-12-03 20:36:16 +00:00
ot_sync.c Whitespace fixes 2008-10-28 01:27:21 +00:00
ot_sync.h Whitespace fixes 2008-10-28 01:27:21 +00:00
ot_udp.c * http and udp routines now use thread local buffers passed in workstruct containers. In other words they do not use static_buffer anymore and are considered to be thread safe. 2009-01-05 18:05:38 +00:00
ot_udp.h * http and udp routines now use thread local buffers passed in workstruct containers. In other words they do not use static_buffer anymore and are considered to be thread safe. 2009-01-05 18:05:38 +00:00
ot_vector.c minor white space 2009-01-01 17:49:50 +00:00
ot_vector.h The BIG refactoring [tm]. Too many changes to count them. If it doesn't suite you, revert to last version. 2008-11-28 22:21:09 +00:00
scan_urlencoded_query.c * http and udp routines now use thread local buffers passed in workstruct containers. In other words they do not use static_buffer anymore and are considered to be thread safe. 2009-01-05 18:05:38 +00:00
scan_urlencoded_query.h * http and udp routines now use thread local buffers passed in workstruct containers. In other words they do not use static_buffer anymore and are considered to be thread safe. 2009-01-05 18:05:38 +00:00
sync_daemon.pl Gimmi Beer! 2007-04-02 17:05:06 +00:00
trackerlogic.c * opentracker now drops permissions in correct order and really chroots() if ran as root 2009-01-02 08:57:49 +00:00
trackerlogic.h * http and udp routines now use thread local buffers passed in workstruct containers. In other words they do not use static_buffer anymore and are considered to be thread safe. 2009-01-05 18:05:38 +00:00

README

This is opentracker. An open bittorrent tracker.

You need libowfat (http://www.fefe.de/libowfat/).

Steps to go:

cvs -d :pserver:cvs@cvs.fefe.de:/cvs -z9 co libowfat
cd libowfat
make
cd ..
cvs -d:pserver:anoncvs@cvs.erdgeist.org:/home/cvsroot co opentracker
cd opentracker
make
./opentracker

This tracker is open in a sense that everyone announcing a torrent is welcome to do so and will be informed about anyone else announcing the same torrent. Unless
-DWANT_IP_FROM_QUERY_STRING is enabled (which is meant for debugging purposes only), only source IPs are accepted. The tracker implements a minimal set of
essential features only but was able respond to far more than 10000 requests per second on a Sun Fire 2200 M2 (thats where we found no more clients able to fire
more of our testsuite.sh script).

Some tweaks you may want to try under FreeBSD:

sysctl kern.ipc.somaxconn=1024
sysctl kern.ipc.nmbclusters=32768
sysctl net.inet.tcp.msl=10000
sysctl kern.maxfiles=10240

License information:

Although the libowfat library is under GPL, Felix von Leitner aggreed that the compiled binary may be distributed under the same beer ware license as the source code for opentracker. However, we like to hear from happy customers.