summaryrefslogtreecommitdiff
path: root/ot_http.h
AgeCommit message (Collapse)Author
19 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.
40 hoursReplace libowfat's iobatch with our own smaller (and probably only temporary) ot_batchDirk Engling
43 hoursBe stricter about const char*, Wwrite-strings will warn in the future and we don't want to try to overwrite string literalsDirk Engling
2 daysmake all headers self containingDirk Engling
3 daysReplace custom int64 with its standardized int64_t typeDirk Engling
3 daysReplace libowfat's array with our new blob abstractionDirk Engling
2026-04-03turn all int offsets into size_tDirk Engling
2024-04-18Add support for zstdDirk Engling
2024-04-15clang-formatDirk Engling
2024-04-13First shot on chunked transfersDirk Engling
2021-04-24Split huge iovecs over multiple io_batchesDirk Engling
2017-04-28Get rid of some warnings regarding header guardsDirk Engling
2009-11-18Make header parsing more efficient, prepare multithreading and keep-alive.erdgeist
2009-06-17Allow /stats to be located anywhere in your trackers patherdgeist
2009-01-13V6erdgeist
2009-01-05* http and udp routines now use thread local buffers passed in workstruct containers. In other words they do not use static_buffer anymore and are ↵erdgeist
considered to be thread safe. * the new workstruct also introduces a well defined buffer and result passing path * a new function scan_find_keywords is a wrapper around scan_urlencoded_query that maps keys in url to values passed in an array of ot_keywords structs * this new function cleans up much of url parameter parsing work, where read_ptr and write_ptr have been introduced rather than the confusing char *c, *data variables * I now use memcmp instead of byte_diff to allow compiler to optimize constant size string compares * got rid of UTORRENT_1600_WORKAROUND * livesync_ticker is now only called from one (currently main) thread to avoid race conditions
2009-01-03Make opentracker ANSI C again.erdgeist
2008-10-28Whitespace fixeserdgeist
2007-12-20Introduce some kind of versioningerdgeist
2007-12-04Count invalid requestserdgeist
2007-12-03add newline to end of fileerdgeist
2007-12-03Move http handling to its own sourceserdgeist