summaryrefslogtreecommitdiff
path: root/ot_http.c
AgeCommit message (Collapse)Author
13 hoursSort info_hashes in a scrape so that the reply forms a valid bencoded dictDirk Engling
13 hoursRevive http keep alive to save tcp connection setup costsDirk Engling
17 hoursreplace 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
19 hoursMake sure to not accept mere prefixes of addresses from query stringDirk Engling
20 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.
22 hoursThird run of making variable and function names more readable, integer scans and ip parsersDirk Engling
23 hoursSecond run of making variable and function names more readable, urlencoder now matches overall naming schemeDirk Engling
23 hoursUse new fdstate subsystem to store per fd cookie and timeoutDirk Engling
41 hoursFactor out the timeout setter, will probably go later once we do the io loop ourselfDirk Engling
41 hoursReplace libowfat's iobatch with our own smaller (and probably only temporary) ot_batchDirk Engling
43 hoursPrevent UAF when resizing iobatchesDirk Engling
44 hoursBe stricter about const char*, Wwrite-strings will warn in the future and we don't want to try to overwrite string literalsDirk Engling
44 hoursFor workqueue tasks, class has to be in the tasktype or no worker will ever claim the task, forgot oneDirk Engling
3 daysReplace custom int64 with its standardized int64_t typeDirk Engling
3 daysPrevent a task from outliving its connectionDirk 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 daysNull terminate the request at the final return and not after it, preventing a buffer overrunDirk Engling
3 daysUse new ranged unsigned int scanner everywhere and squash some bugs along the wayDirk Engling
3 daysUse strncasecmp instead of libowfat's case_equalbDirk 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
2026-04-03Clean up top100 stats codeDirk Engling
2026-04-03turn all int offsets into size_tDirk Engling
2025-04-25Do not ignore return value of iob_init_autofreeDirk Engling
2024-04-21Move _GNU_SOURCE declaration further to the top, so recursive inclusion of stdio does not ignore the macroDirk Engling
2024-04-18Add support for zstdDirk Engling
2024-04-18Only have huge downloads (aka chunked) be application/octet-streamDirk Engling
2024-04-17Let our fullscrapes have a binary content-typeDirk Engling
2024-04-17chrome does not accept chunked gzip encoding for http/1.0 protocol versionDirk Engling
2024-04-16Remove CVS version tags, they did not work anymore after moving to gitDirk Engling
2024-04-15define _GNU_SOURCE to silence warning about asprintfDirk Engling
2024-04-15Use bzero instead of the new iob_init for older libowfatsDirk Engling
2024-04-15Allow the use of iob_init if the new libowfat is not yet availableDirk Engling
2024-04-15clang-formatDirk Engling
2024-04-14remove debug fprintfs used to catch a bugDirk Engling
2024-04-14Call io_dontwantread only once on a socketDirk Engling
2024-04-13Initialise io_batches with their appropiate init functionDirk Engling
2024-04-13Remove unused macroDirk Engling
2024-04-13Use asprintf to allocate header instead of fixed arrayDirk Engling
2024-04-13Fix type warnings in debug stringsDirk Engling
2024-04-13Add proper parsing for the gzip content encodingDirk Engling
2024-04-13Better track current iobatchDirk Engling
2024-04-13First shot on chunked transfersDirk Engling
2024-04-10white spaceDirk Engling
2024-04-07Silence warning on older compilersDirk Engling
2024-04-07Whitespace fixDirk Engling
2024-04-06Return peer from both address families on announceDirk Engling
2024-04-03Prepare opentracker for dual stack capabilitiesDirk Engling
2024-03-31Prevent proxied ips of the wrong flavour to poison our clientsDirk Engling
2024-03-29Allow networks to be used instead of ip addresses when blessing is involvedDirk Engling