summaryrefslogtreecommitdiff
path: root/opentracker.c
AgeCommit message (Collapse)Author
18 hoursRevive http keep alive to save tcp connection setup costsDirk Engling
25 hoursReplace 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.
27 hoursThird run of making variable and function names more readable, integer scans and ip parsersDirk Engling
28 hoursSecond run of making variable and function names more readable, urlencoder now matches overall naming schemeDirk Engling
29 hoursUse new fdstate subsystem to store per fd cookie and timeoutDirk Engling
46 hoursFactor out the timeout setter, will probably go later once we do the io loop ourselfDirk Engling
47 hoursReplace libowfat's iobatch with our own smaller (and probably only temporary) ot_batchDirk Engling
2 daysBe stricter about const char*, Wwrite-strings will warn in the future and we don't want to try to overwrite string literalsDirk Engling
2 dayswhite space fixesDirk Engling
2 daysSplit options parsing and config code from opentracker.c, it has grown humongousDirk Engling
2 daysFix build. Last commit was too huge ;)Dirk Engling
2 daysDecouple 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
3 daysUse the new ot_socket abstraction for socket creation, read and writeDirk Engling
3 daysReplace custom int64 with its standardized int64_t typeDirk Engling
3 daysReplace libowfat's ip scanner and formatters with own ownDirk Engling
3 daysReplace libowfat's array with our new blob abstractionDirk Engling
3 daysInitialise workstruct for each read, so that stale entries will not linger in http error casesDirk Engling
4 daysUse new ranged unsigned int scanner everywhere and squash some bugs along the wayDirk Engling
4 daysadd missing break in config file parserDirk Engling
4 daysReplace all manual hex conversion with the new helperDirk Engling
4 daysUse new entropy fascility and add tests for itDirk Engling
4 daysReplace endianess helpers and remove unused system and libowfat includedDirk Engling
* Replace libowfat big endian packers with htonl/ntohl * Turn bucket derivation in ot_mutex.c into its own helper * remove unused includes
4 daysRework config file parser and tidy up mem initsDirk Engling
2026-04-03turn all int offsets into size_tDirk Engling
2024-04-16Remove CVS version tags, they did not work anymore after moving to gitDirk Engling
2024-04-15Install default signal handlers before spawning first threadDirk Engling
2024-04-15time_caching_worker never returns, but if it would, it should return a valueDirk Engling
2024-04-15clang-formatDirk Engling
2024-04-14SpellingDirk Engling
2024-04-14print when RANDOMTORRENTS were createdDirk Engling
2024-04-14Make the amount of random torrents a tunableDirk Engling
2024-04-14Revert b8ee3dfec11d1c66bee614bfab171ada9fc2bb78Dirk Engling
2024-04-14remove debug fprintfs used to catch a bugDirk Engling
2024-04-14Use the HELPLINE macro for help linesDirk Engling
2024-04-13Cancel chunked transfers on dead sockets, tooDirk Engling
2024-04-13Fix type warnings in debug stringsDirk Engling
2024-04-13Allow opentracker to start with a random set of torrents for debugging purposesDirk Engling
2024-04-13Better track current iobatchDirk Engling
2024-04-13First shot on chunked transfersDirk Engling
2024-04-12Start an extra thread to update timer cache. Using signals was unnecessaryDirk Engling
2024-04-05minor cleanups. Breaks proxy.cDirk Engling
2024-04-03Bind dual stack by defaultDirk Engling
2024-04-03Allow binding to v4 and v6 addresses alwaysDirk Engling
2024-03-29Allow networks to be used instead of ip addresses when blessing is involvedDirk Engling
2024-03-07Merge branch 'master' into erdgeist-fix-top10-statsDirk Engling
2024-03-07handle -1 length reads properlyDirk Engling
2022-11-24Add support for dynamic accesslistsDirk Engling
2021-08-23Fix return code check inversion introduced in last commitDirk Engling
2021-08-22opentracker.c: check set*id return valuesRomain Porte
This commit fix the following similar warnings: opentracker.c:562:7: warning: ignoring return value of ‘setegid’ declared with attribute ‘warn_unused_result’ [-Wunused-result] […] The man page of these functions ask users to explicitly check the return value in case of any error happening.
2021-07-27Fix typo. Thanks to Romain PorteDirk Engling