summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2026-10-27retrieve the address of the sending socket for comparison. In jails it might be forced to its primary addressDirk Engling
2026-10-27Adding the actual tests to do aforementioned 'Massively increase coverage by pulling fullscrapes and sending udp packets'Dirk Engling
2026-10-27Massively increase coverage by pulling fullscrapes and sending udp packetsDirk Engling
2026-10-27Fix some sanitizer findings, mostly UB if no accesslist is configured and thread join problemsDirk 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-26Avoid an UB of adding NULL + 0 by keeping an offset instead of advancing the pointer into a vector structDirk 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-26Potentially overlapping areas need memmove, not memcpyDirk Engling
2026-10-26Make sure to not accept mere prefixes of addresses from query stringDirk 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-26Third run of making variable and function names more readable, integer scans and ip parsersDirk Engling
2026-10-26Second run of making variable and function names more readable, urlencoder now matches overall naming schemeDirk Engling
2026-10-26First run of making variable names more readableDirk 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-25Factor out the timeout setter, will probably go later once we do the io loop ourselfDirk Engling
2026-10-25Replace libowfat's iobatch with our own smaller (and probably only temporary) ot_batchDirk Engling
2026-10-25Prevent UAF when resizing iobatchesDirk Engling
2026-10-25Add mutex unit testDirk 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-25For workqueue tasks, class has to be in the tasktype or no worker will ever claim the task, forgot oneDirk Engling
2026-10-25For workqueue tasks, class has to be in the tasktype or no worker will ever claim the taskDirk Engling
2026-10-25white space fixesDirk 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-25Decouple config parsing from binding and worker spawningDirk Engling
* Options are parsed now into a listener description list before binding them at once and starting the workers later * UDP workers can now be configured per connection * socket reuse is now done more sensibly, mcast sockets always reused * Hold-off logic after spawning udp workers removed
2026-10-25Clean up peer re-distribution between single bucket vectors and bucket lists, add testsDirk Engling
2026-10-25Drop dead test helperDirk Engling
2026-10-25Remove dead code left over from refactoringDirk Engling
2026-10-25Remove test for length only mode of the url escaperDirk Engling
2026-10-25Remove unused length calc code from urlencoderDirk Engling
2026-10-25a suffix rule takes no prerequisites, so make the deps explicitDirk Engling
2026-10-25make all headers self containingDirk Engling
2026-10-25Don't let the new iovec allocation dangle in case of a malloc failure for its new dataDirk Engling
2026-10-25Use the new ot_socket abstraction for socket creation, read and writeDirk Engling
2026-10-25Add sub system to abstract low level multi platform socket handling ourselvesDirk Engling
2026-10-24Properly handle socket_recv errorsDirk Engling
2026-10-24Replace custom int64 with its standardized int64_t typeDirk Engling
2026-10-24Prevent a task from outliving its connectionDirk Engling
2026-10-24Free the iovec when canceling tasks and not only the data chunks it holdsDirk Engling
2026-10-24free_peerlist now checks peer_list for NULL, so on alloc failure we don't dereference NULLDirk Engling
2026-10-24Replace libowfat's ip scanner and formatters with own ownDirk Engling
2026-10-24Add tests and build infra for the new ip address parser and formatterDirk Engling
2026-10-24Add an ip address parser and formatter for all formats opentracker needsDirk Engling
2026-10-24Fix: Swap compare size and membersize for binary search. Did not break anything, since they were identicalDirk Engling
2026-10-24Copy the correct amount of bytes for an dynamic accesslist entryDirk Engling