summaryrefslogtreecommitdiff
AgeCommit message (Expand)Author
5 daysConsolidate all tcp/http tear down into a single http_close function to prevent a rare UAF for expiring connectionsDirk Engling
6 daysBuild everything in one sweep, without intermediate object filesDirk Engling
6 daysadd wake-up tester that helped figuring out how to tickle hanging udp readersDirk Engling
6 daysRevert last wake-up experiment. Having each udp worker wake up once a second to check if the tracker stops is wastefulDirk Engling
6 daysFix a test that would over-report success rate when losing the race for cycles to the test targetDirk Engling
6 daysLivesync now also gets proper deinit codeDirk Engling
6 daysWith more workers blockingly waiting on udp sockets, we need to keep track of all sockets to shut them down on exitDirk Engling
7 daysDefault udp workers to 1, as it is the most sane choice everywhere, also reflect the new udp parallelism in the man pagesDirk Engling
7 daysLet the load tester log losses to better gauge performanceDirk Engling
7 daysAdd load tests to sanitize check the trackerlogic, based on udp requestsDirk Engling
7 daysPerformance improvement, where it works: Let different udp worker threads have their own socketDirk Engling
7 daysThe main event loop(s) now also catch an EINTR and return instead of blockingDirk Engling
8 daysAdd concurrency testDirk Engling
8 daysMake global torrent counter atomic and fix the setter and getterDirk Engling
8 daysPlug in the new per-thread stats counter, also make sure that the ot_clean sleep does not stall tracker exitDirk Engling
8 daysSecond half of moving the stat enum defines to trackerlogicDirk Engling
8 daysPrepare having each thread keep their own stats to avoid data racesDirk Engling
8 daysTurn malloc+memset into callocDirk Engling
8 daysSome more g_now_seconds occurrencesDirk Engling
8 daysForgot some g_now_seconds occurencesDirk Engling
8 daysAll OSes now do have a cheap monotonic clock, so no caching thread is needed. Also add some relative time helpersDirk Engling
8 daysWhile we're at it with the dynamic analyzers, add a tsanDirk Engling
8 daysAdd test for the revived keep aliveDirk Engling
8 daysFix some tests to match retired stats modes and wrong config file orderingDirk Engling
8 daysAdd test for the correct order of partial scrapesDirk Engling
8 daysAdd test for the error packet when a hash is blacklisted (the part I forgot in last commit)Dirk Engling
8 daysAdd test for the error packet when a hash is blacklistedDirk Engling
8 daysRemove enum for a retired stats modeDirk Engling
8 daysClean build artefacts on macos, tooDirk Engling
8 daysAdd DWANT_KEEPALIVE to integration test flags to test the whole sub systemDirk Engling
8 daysSend udp error packet in case of blacklisted torrentDirk Engling
8 daysFix: Forgot to add the actual keep alive flagDirk Engling
8 daysSort info_hashes in a scrape so that the reply forms a valid bencoded dictDirk Engling
8 daysAdd new test for connection keep aliveDirk Engling
8 daysRevive http keep alive to save tcp connection setup costsDirk Engling
8 daysretrieve the address of the sending socket for comparison. In jails it might be forced to its primary addressDirk Engling
8 daysAdding the actual tests to do aforementioned 'Massively increase coverage by pulling fullscrapes and sending udp packets'Dirk Engling
8 daysMassively increase coverage by pulling fullscrapes and sending udp packetsDirk Engling
8 daysFix some sanitizer findings, mostly UB if no accesslist is configured and thread join problemsDirk Engling
8 daysadd more checkers to the sanitizer and integration check runsDirk Engling
8 daysDrop -lz as Makefile.gzip already carries itDirk Engling
8 daysAvoid an UB of adding NULL + 0 by keeping an offset instead of advancing the pointer into a vector structDirk Engling
8 daysAdd integration test and its runnerDirk Engling
9 daysreplace 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
9 daysPotentially overlapping areas need memmove, not memcpyDirk Engling
9 daysMake sure to not accept mere prefixes of addresses from query stringDirk Engling
9 daysWith libowfat gone, we don't need to disable the auto free feature for older versionsDirk Engling
9 daysReplace libowfat's event waiter with our own abstractionDirk Engling
9 daysAdd poll/epoll/kqueue wrapper to wait for eventsDirk Engling
9 daysThird run of making variable and function names more readable, integer scans and ip parsersDirk Engling