summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
11 hoursLet a tracker with live sync built in run without a clusterDirk Engling
13 hoursGive the live sync worker a real workstructDirk Engling
13 hoursAdd integration tests for live syncDirk Engling
19 hoursRetire old perl backend to the proxy, but don't delete it yetDirk Engling
19 hoursMove the build sources into src/Dirk Engling
19 hoursWith the implementation of the dual stack tracker, the old README is plain wrongDirk Engling
19 hoursTurn the bucket count into a knob, but keep cleaner wake-ups at a constant rateDirk Engling
22 hoursObey PREFIX and add a proper install targetDirk Engling
22 hoursMove the config man page to the proper sectionDirk Engling
23 hoursKeep the build's own flags out of CFLAGS, CPPFLAGS, LDFLAGS and LDLIBSDirk Engling
23 hoursSplit the Makefile into Mk fragments and fix the default targetDirk Engling
23 hoursSweep the obsolete CVS Id keyword out of the treeDirk Engling
37 hoursRemove tracker id from stats, as wellDirk Engling
37 hoursRemove version string from what is reported over httpDirk Engling
37 hoursEnsure that the current version has a tag before allowing to roll a distribution tarballDirk Engling
38 hoursThe proxy did not survive the dual stack migration, might be resurrected in v1.1.0Dirk Engling
38 hoursRemove the batch syncer, live sync replaced it long agoDirk Engling
38 hoursadd test for the version report fascilitiesDirk Engling
38 hoursReport the version, event machanism and feature flags with -vDirk Engling
38 hoursCarry the version into the tarballDirk Engling
38 hoursForce rebuilds on the tracker when feature flags changeDirk Engling
38 hoursPrepare a versioning mechanism for the tracker that works from tarballsDirk Engling
42 hoursLive logging networks was defunc for a while, does not work with v6, so we remove itDirk Engling
3 daysAdd some tests for the actual trackerlogic, something I put off for too longDirk Engling
3 daysAdd tests for the ot_mutex code, it didn't have any until nowDirk Engling
3 daysRemove some obsolete commentsDirk Engling
3 daysGeneralize the worker setup/runloop/teardown logic by adding a smol ot_worker helperDirk Engling
3 daysMake the dynamic accesslist readers release their line buffer and properly exitDirk Engling
3 daysRefactor ot_workqueue out of ot_mutex, no behaviour changeDirk Engling
3 daysMake the mainloop behave like every worker by claiming and releasing a socket being worked onDirk Engling
3 daysMake tcp worker multithreaded, tooDirk Engling
This shamelessly steals the model established in the UDP workers, i.e. if the kernel is able to bind multiple listening sockets to the same endpoint, we will share them across threads. If it can't, all threads will accept on the same socket. The fast path handles most of the connections, only the rare case of no data yet on the socket is offloaded to the slow path (which used to be the mainloop) for completion. This scales nicely, as the higher the load is, the higher chances are that an accept happens only after the network roundtrip to the peer completes, leading to more connections that already have data waiting for us. We also consolidate the workstruct init and deinit code, preparation for later unifying all thread state structs for all protocols (mca, udc and tcp). The config file gains a per tcp connection worker count and some docs explaining what this knob buys and costs, nudging the user to either keep it 0 or dial it up to at least 2.
4 daysRefactor all tcp specific code into the ot_tcp module to prepare for multiple concurrent workersDirk Engling
4 daysAdd test for new config paramsDirk Engling
4 daysAdd config parsers for multiple tcp socket readers and a helper to see if we can offer it on the platformDirk Engling
4 daysIntroduce a fast path assuming that a tcp connection's payload already has arrived at accept timeDirk Engling
4 daysStart documenting design decisions and measurmentsDirk Engling
4 daysRemove references that you need libowfat to build opentrackerDirk Engling
4 daysgit ignore the poll flavor of the runner, tooDirk Engling
4 daysFix idle tests in presence of an accept filterDirk Engling
4 daysRemove stale xcode build fileDirk Engling
4 daysFix expiry tests under the new accept filtersDirk Engling
4 daysUse accept filter dataready instead of httpready on FreeBSDDirk Engling
4 daysDefer accepts until some data actually is thereDirk Engling
4 daysEnforce the invariant that each socket is only ever expected to be read from or written to, never bothDirk Engling
4 daysDon't treat a full send buffer as an error when sending http. Retry laterDirk Engling
5 daysReduce syscalls and add helper to count themDirk Engling
5 daysAdd an http load generatorDirk Engling
5 daysReduce number of per connection sys callsDirk Engling
5 daysCheck for free port in the udp integration test, also speed it up by a bitDirk Engling
5 daysConsolidate all tcp/http tear down into a single http_close function to prevent a rare UAF for expiring connectionsDirk Engling