summaryrefslogtreecommitdiff
path: root/Makefile
AgeCommit message (Collapse)Author
5 daysActually implement the OT_PERMISSION_MAY_FULLSCRAPE mechanics and add a config file entryDirk Engling
8 daysMove the build sources into src/Dirk Engling
8 daysTurn the bucket count into a knob, but keep cleaner wake-ups at a constant rateDirk Engling
8 daysObey PREFIX and add a proper install targetDirk Engling
8 daysKeep the build's own flags out of CFLAGS, CPPFLAGS, LDFLAGS and LDLIBSDirk Engling
8 daysSplit the Makefile into Mk fragments and fix the default targetDirk Engling
8 daysSweep the obsolete CVS Id keyword out of the treeDirk Engling
8 daysEnsure that the current version has a tag before allowing to roll a distribution tarballDirk Engling
8 daysThe proxy did not survive the dual stack migration, might be resurrected in v1.1.0Dirk Engling
8 daysCarry the version into the tarballDirk Engling
8 daysForce rebuilds on the tracker when feature flags changeDirk Engling
8 daysPrepare a versioning mechanism for the tracker that works from tarballsDirk Engling
9 daysLive logging networks was defunc for a while, does not work with v6, so we remove itDirk Engling
9 daysAdd some tests for the actual trackerlogic, something I put off for too longDirk Engling
10 daysAdd tests for the ot_mutex code, it didn't have any until nowDirk Engling
10 daysGeneralize the worker setup/runloop/teardown logic by adding a smol ot_worker helperDirk Engling
10 daysMake the dynamic accesslist readers release their line buffer and properly exitDirk Engling
10 daysRefactor ot_workqueue out of ot_mutex, no behaviour changeDirk Engling
11 daysRefactor all tcp specific code into the ot_tcp module to prepare for multiple concurrent workersDirk Engling
11 daysReduce syscalls and add helper to count themDirk Engling
12 daysConsolidate all tcp/http tear down into a single http_close function to prevent a rare UAF for expiring connectionsDirk Engling
12 daysBuild everything in one sweep, without intermediate object filesDirk Engling
14 daysWhile we're at it with the dynamic analyzers, add a tsanDirk Engling
2026-10-27Clean build artefacts on macos, tooDirk Engling
2026-10-27Add DWANT_KEEPALIVE to integration test flags to test the whole sub systemDirk Engling
2026-10-27Massively increase coverage by pulling fullscrapes and sending udp packetsDirk Engling
2026-10-27add more checkers to the sanitizer and integration check runsDirk Engling
2026-10-26Drop -lz as Makefile.gzip already carries itDirk Engling
2026-10-26Add integration test and its runnerDirk Engling
2026-10-26replace all calls to sprintf with a format helper that advances a cursor. Also convert the meta-formatter (i.e. results printer) to this schemeDirk Engling
2026-10-26With libowfat gone, we don't need to disable the auto free feature for older versionsDirk Engling
2026-10-26Replace libowfat's event waiter with our own abstractionDirk Engling
It's with a heavy heart that I remove libowfat as my event library from opentracker. libowfat is what taught opentracker to walk and then fly. The tracker was literally standing on the shoulder of giants when I started writing it in 2006. For its time, the event abstraction was unparalleled and it has held up for many years, and it served the bittorrent community greatly. https://erdgeist.org/gitweb/opentracker/commit/?id=ad472597c569568bad0526d116b601dfcb36638c Unfortunately, it is very likely that libowfat will not be maintained anymore for the foreseeable future, it is already not easy to get its source from upstream and opentracker started receiving bug reports that I can not reasonably answer or patch. Before the project gets more dependent on the limitations of libowfat's current state, I need to teach opentracker to stand on its own feet and fly by itself. I've learned a great deal in the process and have even more respect now for what libowfat pioneered. The path for opentracker is cleared now. Ground work has already been laid in the migration process to support multi threaded http processing while keeping the aggressive reduction of syscalls alive that made the libowfat+opentracker combo so scalable. Here be some dragons, though: Even though there is a unit test suite now, the event loop's rewrite has not been battle tested yet. So you might want to hold up for a bit before jumping on the solo band wagon. What awaits at the end will be a long overdue v1.0, which will be named in honour of Felix.
2026-10-26Add poll/epoll/kqueue wrapper to wait for eventsDirk Engling
2026-10-26Second run of making variable and function names more readable, urlencoder now matches overall naming schemeDirk Engling
2026-10-26Use new fdstate subsystem to store per fd cookie and timeoutDirk Engling
2026-10-26Introduce a sub system that can store io cookies for file descriptors, thread safely soDirk Engling
2026-10-25Replace libowfat's iobatch with our own smaller (and probably only temporary) ot_batchDirk Engling
2026-10-25Be stricter about const char*, Wwrite-strings will warn in the future and we don't want to try to overwrite string literalsDirk Engling
2026-10-25Split options parsing and config code from opentracker.c, it has grown humongousDirk Engling
2026-10-25Fix build. Last commit was too huge ;)Dirk Engling
2026-10-25a suffix rule takes no prerequisites, so make the deps explicitDirk Engling
2026-10-25Add sub system to abstract low level multi platform socket handling ourselvesDirk Engling
2026-10-24Add tests and build infra for the new ip address parser and formatterDirk Engling
2026-10-24Build blob abstraction and their testsDirk Engling
2026-10-24Add tests for the new ranged unsigned int scanner in ot_scanDirk Engling
2026-10-24factor out accesslist parser to fix a potential out of bound read and add tests to the accesslist unitDirk Engling
2026-10-24Replace the shell command in Makefile with backticks to retrieve git version for statsDirk Engling
2026-10-24Compile object and tests for hex converter unitDirk Engling
2026-10-24Use new entropy fascility and add tests for itDirk Engling
2026-10-24Add a unit test harness and a first set of testsDirk Engling
make check builds tests/runner from the modules that link without the io subsystem and runs it.