Go to file
erdgeist d42bf5a031 ** struct ot_workstruct gets ritcher (and will become even ritcher soon).
This is where we encapsulate all per-request data from peer to hash to peer_id, so that it is
available everywhere without passing hundreds of pointers down the stack. Most functions that
do work down the stack now accept an ot_workstruct and some flags. So it can end up in the
stats/event-handler where it will be the default parameter in the future.

** peer_id is now being copied by default and moved to ot_workstruct
So it is available in stats and subsequent functions.

** sync scrape madness is gone
SYNC_SCRAPE was intended to sync tracker state that would normally be lost on restarts i.e.
downloaded counts per torrent. The way was to push it in the tracker cloud after finding all
neighbouring trackers.
This is madness. It never was tested and can be done per tracker by fetching
stats/mode=statedump from time to time and starting opentracker with the -l option later.

** livesync thread has its own ot_workstruct now
So it can behave like ot_udp and ot_http against trackerlogic.c and get rid of the first half
of the embarrassing global variables. The sending half will be fixed soon [tm].

** stats can log completed events
The author recognizes the needs of original content distributors to keep track of the amount
of times a work has been downloaded. While not feasible and used on openbittorrent and other
open and anonymous tracker installations, a tracker user can now choose to send those events
to syslog.
2010-04-22 22:08:42 +00:00
opentracker.xcodeproj Update project to use 10.6 CLang by default. 2009-09-02 16:30:39 +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:10 +00:00
Makefile Get rid of SYNC_SCRAPE madness. It's overkill and no one uses it. 2010-04-22 21:55:28 +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 v6 works since january 2009-10-08 20:27:51 +00:00
opentracker.c Make opentracker's user runtime configurable. Also add more debug output to aid finding problems. 2010-04-09 10:15:51 +00:00
opentracker.conf.sample Make opentracker's user runtime configurable. Also add more debug output to aid finding problems. 2010-04-09 10:15:51 +00:00
ot_accesslist.c Introducing the concept of vectors of nets into opentracker 2009-08-26 21:22:24 +00:00
ot_accesslist.h Introducing the concept of vectors of nets into opentracker 2009-08-26 21:22:24 +00:00
ot_clean.c Formatting 2009-02-20 12:23:59 +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:10 +00:00
ot_fullscrape.c Fix white spaces 2009-03-17 23:57:20 +00:00
ot_fullscrape.h Add comments, rename our struct http_data h to cookie, all clientsockets to sock, all size_t from socket_recvs to byte_count. Make signal handler set default handler for the second SIGINT 2009-01-15 23:01:36 +00:00
ot_http.c ** struct ot_workstruct gets ritcher (and will become even ritcher soon). 2010-04-22 22:08:42 +00:00
ot_http.h Make header parsing more efficient, prepare multithreading and keep-alive. 2009-11-18 04:00:26 +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:10 +00:00
ot_livesync.c ** struct ot_workstruct gets ritcher (and will become even ritcher soon). 2010-04-22 22:08:42 +00:00
ot_livesync.h ** struct ot_workstruct gets ritcher (and will become even ritcher soon). 2010-04-22 22:08:42 +00:00
ot_mutex.c Remove unnecessary =NULL initialization of static pointers. 2009-06-17 15:07:38 +00:00
ot_mutex.h Add spotting woodpeckers, thanks to Vasya P. again 2009-09-02 02:18:36 +00:00
ot_stats.c ** struct ot_workstruct gets ritcher (and will become even ritcher soon). 2010-04-22 22:08:42 +00:00
ot_stats.h Add spotting woodpeckers, thanks to Vasya P. again 2009-09-02 02:18:36 +00:00
ot_sync.c Whitespace fixes 2008-10-28 01:27:22 +00:00
ot_sync.h Whitespace fixes 2008-10-28 01:27:22 +00:00
ot_udp.c ** struct ot_workstruct gets ritcher (and will become even ritcher soon). 2010-04-22 22:08:42 +00:00
ot_udp.h V6 2009-01-13 22:41:17 +00:00
ot_vector.c Nicer formatting for value-- 2009-08-26 21:23:53 +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:10 +00:00
proxy.c Should not report sync scrape packets in stderr 2009-10-15 19:52:17 +00:00
scan_urlencoded_query.c Lot of Gehacktes around this keyword scanner. Don't return a match if string to compare is shorter than key from table. 2009-01-26 10:33:46 +00:00
scan_urlencoded_query.h V6 2009-01-13 22:41:17 +00:00
sync_daemon.pl Gimmi Beer! 2007-04-02 17:05:06 +00:00
trackerlogic.c ** struct ot_workstruct gets ritcher (and will become even ritcher soon). 2010-04-22 22:08:42 +00:00
trackerlogic.h ** struct ot_workstruct gets ritcher (and will become even ritcher soon). 2010-04-22 22:08:42 +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.