summaryrefslogtreecommitdiff
path: root/opentracker.c
AgeCommit message (Expand)Author
17 hoursGeneralize the worker setup/runloop/teardown logic by adding a smol ot_worker helperDirk Engling
23 hoursRefactor ot_workqueue out of ot_mutex, no behaviour changeDirk Engling
26 hoursMake the mainloop behave like every worker by claiming and releasing a socket being worked onDirk Engling
26 hoursMake tcp worker multithreaded, tooDirk Engling
41 hoursRefactor all tcp specific code into the ot_tcp module to prepare for multiple concurrent workersDirk Engling
43 hoursIntroduce a fast path assuming that a tcp connection's payload already has arrived at accept timeDirk Engling
2 daysDefer accepts until some data actually is thereDirk Engling
2 daysEnforce the invariant that each socket is only ever expected to be read from or written to, never bothDirk Engling
3 daysReduce syscalls and add helper to count themDirk Engling
3 daysConsolidate all tcp/http tear down into a single http_close function to prevent a rare UAF for expiring connectionsDirk Engling
4 daysRevert last wake-up experiment. Having each udp worker wake up once a second to check if the tracker stops is wastefulDirk Engling
4 daysWith more workers blockingly waiting on udp sockets, we need to keep track of all sockets to shut them down on exitDirk Engling
4 daysPerformance improvement, where it works: Let different udp worker threads have their own socketDirk Engling
5 daysThe main event loop(s) now also catch an EINTR and return instead of blockingDirk Engling
5 daysPlug in the new per-thread stats counter, also make sure that the ot_clean sleep does not stall tracker exitDirk Engling
5 daysTurn malloc+memset into callocDirk Engling
5 daysForgot some g_now_seconds occurencesDirk Engling
5 daysAll OSes now do have a cheap monotonic clock, so no caching thread is needed. Also add some relative time helpersDirk Engling
6 daysRevive http keep alive to save tcp connection setup costsDirk Engling
6 daysReplace libowfat's event waiter with our own abstractionDirk Engling
6 daysThird run of making variable and function names more readable, integer scans and ip parsersDirk Engling
6 daysSecond run of making variable and function names more readable, urlencoder now matches overall naming schemeDirk Engling
6 daysUse new fdstate subsystem to store per fd cookie and timeoutDirk Engling
7 daysFactor out the timeout setter, will probably go later once we do the io loop ourselfDirk Engling
7 daysReplace libowfat's iobatch with our own smaller (and probably only temporary) ot_batchDirk Engling
7 daysBe stricter about const char*, Wwrite-strings will warn in the future and we don't want to try to overwrite string literalsDirk Engling
7 dayswhite space fixesDirk Engling
7 daysSplit options parsing and config code from opentracker.c, it has grown humongousDirk Engling
7 daysFix build. Last commit was too huge ;)Dirk Engling
7 daysDecouple config parsing from binding and worker spawningDirk Engling
8 daysUse the new ot_socket abstraction for socket creation, read and writeDirk Engling
8 daysReplace custom int64 with its standardized int64_t typeDirk Engling
8 daysReplace libowfat's ip scanner and formatters with own ownDirk Engling
8 daysReplace libowfat's array with our new blob abstractionDirk Engling
8 daysInitialise workstruct for each read, so that stale entries will not linger in http error casesDirk Engling
9 daysUse new ranged unsigned int scanner everywhere and squash some bugs along the wayDirk Engling
9 daysadd missing break in config file parserDirk Engling
9 daysReplace all manual hex conversion with the new helperDirk Engling
9 daysUse new entropy fascility and add tests for itDirk Engling
9 daysReplace endianess helpers and remove unused system and libowfat includedDirk Engling
9 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