lokinet (0.7.0~rc2-1) sid; urgency=medium [ Ryan Tharp ] * bring gitlab ci up to date, mhas it make a static linux release tarball * Combine tar and xz into one command * update libsodium requirements * remove unneeded packages * include Jason's copy * move linux-setup/readme to docs/ [ Jeff Becker ] * allow building from source tarballs * add gitattributes for git-archive-all * operator presidence [ Rick V ] * fix libsodium cross compile * finally fix cross-LTO on windows builds * finally remove C++17 requirement on windows (only needed it for filesystem) * some win32 cmake cleanup * remove unused rule * missing branch on option [ Jeff Becker ] * fix status line * use size / 2 as the number of transit paths * remove non public routers from nodedb [ Jason Rhinelander ] * Add systemd dev to build-deps * Fix lookup filter to filter second, not first, lookup [ Jeff Becker ] * fix dns rebinding vuln in jsonrpc * make gitlab-ci use recursive git [ Rick V ] * integrate lokinet qt5 UI and make its installation conditional on underlying platform support (Windows Vista or later) * bump version * try extracting dns bind addr from INI on windows * use backport fork for release installer only * bindaddr a common field on the machine-independent side * bump for next release * move these out of the way * So as of GCC 9.2, std::random_device on Windows is RtlGenRandom() * add new test suite * fix logging * remove unit tests [ Jason Rhinelander ] * gitlab-ci: Upgrade xenial cmake (via kitware repo) -- Jason Rhinelander Thu, 05 Mar 2020 18:07:58 -0400 lokinet (0.7.0~rc1-2) sid; urgency=medium [ Jason Rhinelander ] * Rediff patches * Checkout submodules * Remove enable_testing() because ctest sucks (and thus we don't use it) * Bump required sodium version [ Jeff Becker ] * std::vector reserve does not resize [ Jason Rhinelander ] * Switch systemd service files to notify -- Jason Rhinelander Wed, 04 Mar 2020 00:00:15 -0400 lokinet (0.7.0~rc1-1) sid; urgency=medium [ Stephen Shelton ] * Implement KeyManager tests * Fix build * Prefer ASSERT_EQ over ASSERT_TRUE when appropriate [ Jason Rhinelander ] * Separate json SN parsing definition/declaration * Add support for lokid's "unchanged" response [ Jeff Becker ] * configurable log level * reduce number of values for LogLevelFromString * off -> none * unsigned char * don't deadlock when we want to remove lots of paths, flush queue instead when full * unit tests for logging levels * improve test cases [ Stephen Shelton ] * Add unit tests for LogLevelToName and LogLevelToString * Add test to ensure config loading impacts runtime log level * Remove dead code (AbstractRouter::EnsureRouter()) [ Jeff Becker ] * dht fixes, disable iterative lookups on clients, revert "fixes" from 0.6.3, pass in recursion depth from introset lookup * connect to closer nodes for introset lookups * connect to closest for RC lookups too * refactor single char variables in DHT (mostly) * fix recursion depth on introset lookup * return true * monotonic time and run testnet at 20% realtime * use static initialization for started times * don't always use bootstrap when exploring [ jeff ] * router version * router version * dont inherit std::array [ Jeff Becker ] * make it compile * operator != * don't use a pointer [ jeff ] * use double braces [ Jeff Becker ] * initial wack at 0.7.0 dht fixes * make router version member optional on serialization * make it compile * initial dht key blinding * does not work [ Jason Rhinelander ] * Derived key fixes * Fix Recalculate() [ Thomas Winget ] * initial implementation of blinded sign -- not working yet * NO CLAMPS YOU IDIOT!!! [ Stephen Shelton ] * Fix IsCompatableWith() logic WRT emptyRouterVersion, add unit tests * Fix RouterVersion::IsEmpty() and RouterVersion::Clear() [ Jeff Becker ] * const correctness [ Jason Rhinelander ] * Silence unused parameter warning * Use hash instead of random for signing hash data * Fixed EncryptedIntroSet signing to use PrivateKey * make format 😠 🤮 [ Stephen Shelton ] * Fix buffer overflow when version encodes too many integers * Make format [ Jeff Becker ] * use std::shared_ptr not a bare pointer to prevent memleak * make format [ Jason Rhinelander ] * Remove unused ristretto includes [ jeff ] * mock lokid for loopback testnet * use system packages in venv so system packages override [ Jeff Becker ] * correct key [ Jason Rhinelander ] * Abstract signing hash data location * Bump libsodium required version to 1.0.18 * Fix libsodium 1.0.18 URL * Use glob to find sodium source files [ Jeff Becker ] * don't drop messages with pathid zero which belong to snode to snode dht and path build requests. * don't derive x25519 key from ed25519 key * test/service/test_llarp_service_identity.cpp: * notify delivery of path builds [ Jason Rhinelander ] * Switch primary builds from xenial to bionic * Add arm64/s390x/ppc64le builds, reduce apt deps * Remove travis_wait * Zero-initialize test array [ Stephen Shelton ] * s/LogInfo/LogDebug/ @ explore message * s/LogInfo/LogDebug/ @ 'updating SN list' * s/LogInfo/LogDebug @ 'signed/verify encrypted introset' [ Jeff Becker ] * check for current introset being zero (initial state) * * rename i to foundIntro * check for zero timestamp * use > not >= [ Jason Rhinelander ] * Use ExternalProject to build downloaded libsodium * DOWNLOAD_SODIUM=FORCE to always download libsodium * Older cmake workaround * Move ppc64le/s390x to allow_failures and simplify it * Disable stupid native windows builds * Turn on -DDOWNLOAD_SODIUM for gcc trunk build * Remove -Wshadow; it is far too aggressive under gcc * DOWNLOAD_SODIUM in docker travis builds * Disable router docker image * Use -mcpu=native on ppc64le * Big endian fixes * Endian defines fix for macOS * Another big-endian fix * Remove s390x from allowed_failures [ Jeff Becker ] * update lokinet monitor to work with iwp * dont flood dht with requests, if we know of a router don't look it up [ Stephen Shelton ] * Add IWP session stats to JSON API [ Jeff Becker ] * fix unit test * if relayed try closer router if we don't have an intro * handle end case by telling requester that it's not there * move declaration of peer * default recursion depth to 2 not 12 * always recurse to second closest if we don't have it * fix comment * logic simplification * update lokinetmon * add path speed metrics for lokinetmon [ Stephen Shelton ] * Leave IWP session JSON stats 'tx' and 'rx' for compat * Use name 'StateToString()' instead of ambiguous 'toString()' * Make format [ Jeff Becker ] * reduce number of multiack packets sent * update lokinetmon * make publishing introsets optional using reachable=false to disable * make default endpoint non reachable by default * only make default endpoint non-reachable if no keyfile option presented * rc gossiping * * get rid of dht explore for service nodes * add Time_t using std::chrono for future uses * make decaying hashset constructor with llarp_time_t explicit * add decaying hashset implicit constructor using Time_t * add timeouts for gossiper replay * allow regossip of our RC * rc gossiping * * get rid of dht explore for service nodes * add Time_t using std::chrono for future uses * make decaying hashset constructor with llarp_time_t explicit * add decaying hashset implicit constructor using Time_t * add timeouts for gossiper replay * allow regossip of our RC * rename variables * use Time_t * remove include * rename variable [ Jason Rhinelander ] * Fix signed/unsigned comparison warning and make more std::chrono-y [ Stephen Shelton ] * Print an error when BDecodeReadFromFile() fails before calling DumpBuffer() [ Jason Rhinelander ] * Switch abseil & nlohmann to submodules and update to latest stable * Devendor gtest to a submodule * Update deprecated gtest macros * Devendor cxxopts to submodule * ghc::filesystem devendor to submodule [ Jeff Becker ] * remove connect back logic for dead inbound sessions * * add path::Path::UniqueEndpointSet_t * start using check2 for new unit tests * unit test for path::Path::UniqueEndpointSet_t * redundant publish for service endpoint * paralell publish and lookups * log location * refactor GetManyPathsWithUniqueEndpoints to go into service/endpoint_util.hpp * revert change * dont use optional [ Stephen Shelton ] * Big R, little r, what begins with R? * Refactor DHT introset lookups to use redundant lookup strategy * Serialize / deserialize relayOrder @ FindIntroMessage * Remove relayOrder from MessageDecoder * Make format * Bencode/decode relayOrder in lexigraphical order, make it uint64_t [ Jeff Becker ] * dont collide variable names * comparison fix [ Jason Rhinelander ] * Remove unused parameter * Rework partial sorting code: use pointers, add lock * Remove another unused randomize parameter * clang format [ Stephen Shelton ] * Add NodeDB tests around FindClosestTo() [ Jason Rhinelander ] * Update ghc-filesystem to include rick's upstreamed patches [ Jeff Becker ] * make catch2 a submodule [ Jason Rhinelander ] * Reduce introset publishing interal to 2.5min instead of 1.25min [ Jeff Becker ] * spread out path builds * ammend outbound context logic * short circuit * simplify [ Jason Rhinelander ] * Fix typo in option to disable submodule checks [ Jeff Becker ] * use endpoint path for lookup because outboundcontext does not implement pathset::HandleGotIntroMessage * handover fixes * add comment * require router version in public routers [ Jason Rhinelander ] * Replace absl::optional with optional-lite [ Jeff Becker ] * add log statement [ Stephen Shelton ] * Propagate Introset publishing redundantly * Minor improvements to DHT inroset propagation * Make format [ Jason Rhinelander ] * Add missing header [ Stephen Shelton ] * Rework FindIntro logic per redundant strategy [ Jason Rhinelander ] * Remove llvm from travis-ci homebrew packages [ Stephen Shelton ] * Refactor: remove recursionDepth from DHT lookups [ Jeff Becker ] * handle multiple responses per hidden service lookup [ Stephen Shelton ] * Make format [ Thomas Winget ] * path builder prints hops, rest print short name * const-y-ness and move-y-ness * std move better * PathBuildNumber -> NextPathBuildNumber because increment side-effect * should probably build before committing... * make path short name look nicer [ Jason Rhinelander ] * Update osx image to latest on travis * Do a homebrew update * Remove unneeded mingw homebrew dep [ Stephen Shelton ] * Make format [ Jason Rhinelander ] * De-abseil, part 2: mutex, locks, (most) time * Vastly simplified llarp::util::memFn * Removed empty cpp files * Add return types to lambda * Add an old xenial gcc build * Fix and rename CaselessCmp -> CaselessLessThan * De-abseil: Add our own llarp::TrimWhiteSpace * Add cmake "check" target to run all tests * Make C++ literals available everywhere in `llarp` * Deabseil: remove absl::StrCat, de-templatize fromEnv * Remove absl optimization * Miscellaneous small absl removals * Replace abseil date code with Hinnart's date.h * Prettify uptime duration in log lines * Remove all ABSL_ATTRIBUTE_UNUSED uses * Replace absl string_view with string_view from lokimq * Remove metric config parsing * TrimWhiteSpace -> TrimWhitespace * constexpr string_view fixes * Fix format * Remove old vendored ghc-filesystem * Don't use double-underscores * Final abseil purge * gcc 5.x string_view workaround * Rewrite generate expressions to make clang-7 happy * Rewrite In6ToHUInt to be endian agnostic * Avoid copies in mutators * Make uint128_t use big/little endian layout internally * Avoid wrong-order initialization on big endian * Renamed uint128.h -> uint128.hpp * Add gcc5 workaround for catch2 GENERATE(table * Bump XSAN build to bionic and add status message * Always pass XSAN to cmake * Disable thread annotation when not under libc++ * Disable memory sanitizer build * make format 🤦 [ Jeff Becker ] * shift intro on introset update * make decaying hashset use llarp::Time_t and move unit tests to use catch2 * llarp_time_t is now using std::chrono * cast interval to std::chrono::milliseconds before dividing by 4 [ Jason Rhinelander ] * Fix string_view C++17 compatibility [ Jeff Becker ] * use llarp_time_t instead of auto * explictly use std::chrono::milliseconds * remove Time_t, add operator overload for printing llarp_time_t and add to_json function for serializing llarp_time_t to json * remove trailing "ms" * reduce code use * fix last commit [ Jason Rhinelander ] * gcc 5 compatibility workaround * Another gcc 5 compat fix (plus small optimization) [ Stephen Shelton ] * Build endpoint paths at even[ish] intervals * Make format * Big I, little i, what begins with I? * Make format * Use existing 'lastBuild' var for spacing path builds * Increase default path timeout from 10min to 20min * Use constants for path build timing [ Jason Rhinelander ] * Default libsystemd support to enabled if found [ Rick V ] * systemd is linux only [ Linux User ] * 32-bit linux patches [ despair ] * we need XPG7 on netbsd [ Jeff Becker ] * systemd status * remove uneeded members * monkey patch upstream dns to rewrite .loki cname answers * disable flawed unit test * handle snode and clean up codepath for hooked dns * use std::chrono [ Jason Rhinelander ] * Add EXCLUDE_FROM_ALL to subprojects * Fix cmake LINUX variable around systemd enabling * if(LINUX) doesn't work; just try to find libsystemd gently instead * fix speeling mistack * Fix systemd compilation & enable systemd on travis * Shorten version and prefix with v [ Stephen Shelton ] * Remove 'clang-format off' and make format [ Jeff Becker ] * remove dht explore timer * change function signature for dht context to exclude time parameter * remove convotags on dead outbound context [ Stephen Shelton ] * Judicious removal of dead code * Add some notes/comments about DHT message handling * Require 'From' and 'relayed' in PublishIntroMessage ctor * Properly deserialize PubIntroMessages' relayed var * Remove dead code * Handle PubIntro relayOrder logic on client-side * Log when DHTSendTo fails @ Router::SendToOrQueue * Calculate 'candidateNumber' when we should store Introset * Remove dead unit tests * Make format * Implement PublishServiceJob::SendReply() [ jeff ] * remove uneeded code * make format [ Jason Rhinelander ] * Add warns for introset publish failures * Logic simplification [ Jeff Becker ] * dedup via txid not keyspace location * make format * revert [ Jason Rhinelander ] * Add min intro set paths, slightly increase spread speed * De-static constants [ Jeff Becker ] * add local publish intro message to send reply down path * wrong txid [ Jason Rhinelander ] * Avoid unnecessary copy * Don't republish when we have extra paths * Make IntroSet publish confirmed less verbose [ Jeff Becker ] * fix up introset lookups * spelling is hard * rename variable [ Stephen Shelton ] * Remove redundant lookup logic from relays [ Jeff Becker ] * revert relay side dedup parameter * dont put multiple outbound contexts [ Stephen Shelton ] * Consolidate introset publishing constants * Make format [ Jeff Becker ] * remote lookup limiting of 500ms per address * change log [ Stephen Shelton ] * Set release motto for v0.7.0 * Remove re-propagation of introsets when we are wrong candidate -- Jason Rhinelander Tue, 03 Mar 2020 12:02:23 -0400 lokinet (0.6.4-2) sid; urgency=medium * Fix broken testnet client service -- Jason Rhinelander Fri, 24 Jan 2020 20:46:00 -0400 lokinet (0.6.4-1) sid; urgency=medium [ Stephen Shelton ] * Fix HaveReceivedWhitelist() typo * Include outbound message queue stats in dumpState API response * Use std::max() and make format * Lookup routers at maximum frequency of 10 minutes [ Jeff Becker ] * merge conflict fix [ jeff ] * use std::chrono * fix typo [ Stephen Shelton ] * Bump RC expiration constants significantly * Start stale router lookup 5 minutes before its expiration [ Jeff Becker ] * make format * link layer message priority * tail drop * inform congestion on tail drop * bump version for 0.6.4 -- Jason Rhinelander Sun, 19 Jan 2020 14:16:15 -0400 lokinet (0.6.3-1) sid; urgency=medium [ Jason Rhinelander ] * Rediff patches * Enable cpu detection on amd64 [ Jeff Becker ] * explore faster * try doing lookup from close router, randomize when above lookup threshold * always lookup introset from nearest router * use shared_from_this * dht timeout tweak * variable lookup timeout on participants * reduce disk io * disable iterative lookup * testnet patch * periodic nodedb flush * store RCs if valid * make it compile * check with rc handler before insert * contrib/testnet: fix up testnet config generator to make super centralized topology llarp/context.cpp, llarp/nodedb.{h,c}pp: load netdb AFTER whitelist llarp/router/router.cpp: explore always llarp/router/{i,}rc_lookup_handler.{h,c}pp explore with whitelist, update routers with lookup before stale * address feedback from tom * use copy not move * log invalid signatures * check for zero'd rc [ Stephen Shelton ] * Randomize routers to explore in ExploreNetwork() * Add warning when we found a null RC for a DHT lookup * Don't respect whitelist when we haven't received it yet * Make format (mutter mutter) [ Jason Rhinelander ] * Fix json api bind IP [ Stephen Shelton ] * Remove dead code in llarp_nodedb::Insert() * Bump version (0.6.3) -- Jason Rhinelander Thu, 16 Jan 2020 01:25:31 -0400 lokinet (0.6.2-3) sid; urgency=medium * Use systemd service capabilities instead of setcap -- Jason Rhinelander Tue, 14 Jan 2020 18:58:54 -0400 lokinet (0.6.2-2) sid; urgency=medium * Enable cpu AVX2 detection on amd64 -- Jason Rhinelander Wed, 08 Jan 2020 22:18:52 -0400 lokinet (0.6.2-1) sid; urgency=medium [ Jason Rhinelander ] * Enable -avx2 -fma for ntru even when compiling without AVX2 support * Modernize non-AVX2 tuning to haswell * Simplify CRYPTO_FLAGS logic, remove RYZEN_HACK [ Jeff Becker ] * static link with docs * fix up docs * fixups for review * add hashpinned curl tarball for static build * make it build in normal mode too * i hate curl * use proper cmake call [ Jason Rhinelander ] * Fix ntru avx2 compilation when DOWNLOAD_SODIUM [ Jeff Becker ] * remove side effect from address detection assert * dont update timestamp of last use using when we get exit only when we use it * mark used on costructed so it doesn't go away * m_LastUse shouldn't be 0 ever now [ Jason Rhinelander ] * Rediff patches [ Jeff Becker ] * add bw stats to iwp sessions [ Ryan Tharp ] * when STATIC_LINK search for static versions of libraries, delay CURL detection until later * bring in all updates from STATIC_RUNTIME * support LIBCURL_ROOT, disable LIBUV includes * macos release needs the include path * daemon don't override the existing CURL [ Jeff Becker ] * dont close timers on closeall [ Jason Rhinelander ] * Fix for macos's decrepit old bash 3.x [ Jeff Becker ] * limit number of snode sessions client side [ Jason Rhinelander ] * Fix for macos's decrepit old bash 3.x [ Jeff Becker ] * client side perf improvement * remove call to link manager * Revert "remove call to link manager" * limit client side path builds per ip * add unit test for decaying hash set * propagate error to client * comments * typofix * use optional [ Jason Rhinelander ] * Fix for macos's decrepit old bash 3.x [ Jeff Becker ] * fix typo * make static constant for decay interval [ Rick V ] * IX86 builds should only require SSE3, and this still allows debian release mgr to override the target selection flag [ Jeff ] * allow fail of docker build because docker is fail * Update .gitlab-ci.yml * Update .gitlab-ci.yml * Update .gitlab-ci.yml * disable failing gitlab ci [ Jeff Becker ] * dont static link for release * enable profiling by default * * clients expore dht faster * use random path when doing dht lookups for .loki * randomize intro order on shift * client side replay filter * reduce cpu use * * only profile as client * only explore churn as relay * fix include file use * typo fix * more intellegent path failure profiling using LRSM * shuffle intros when more than 1 exists [ Rick V ] * happy new year [ Jeff Becker ] * rename bloomfilter to replayfilter * only ping lokid if a service node * rpc clean up logic, dont fetch list as client AND dont ping lokid as client * remove mutex * relays do profiling and not hand out "shit" routers in explore * make it compile * actually connect to random routers * diversify endpoints * reduce logic calls * don't queue on full write queue * return result * handle write failure * fix up tcp connection logic * if select_random_hop_excluding returns false we should probably break anyways so do that * update readme to include pkg-config [ Jeff ] * version bump [ Jason Rhinelander ] * Lower compiler settings to -march=x86-64 -- Jason Rhinelander Wed, 08 Jan 2020 18:46:52 -0400 lokinet (0.6.1-2) sid; urgency=medium * Fix default testnet router config * Fix bootstrap file assertion in service files * Fix lokinet-router not enabling by default -- Jason Rhinelander Sat, 28 Dec 2019 13:32:46 -0400 lokinet (0.6.1-1) sid; urgency=medium [ Ryan Tharp ] * Update readme.md [ Jason Rhinelander ] * Use memcpy to extract hash value * Disallow AlignedBuffer < 8 bytes; add oddball buffer sizes * Enable DOWNLOAD_SODIUM for travis builds [ Stephen Shelton ] * Enable the JSON RPC API by default [ Ryan Tharp ] * remove win32 note per Jeff [ Rick V ] * why was this there [ Jeff Becker ] * make format * version bump with intentional grammar troll motto for science related ventures. -- Jason Rhinelander Thu, 26 Dec 2019 13:57:42 -0400 lokinet (0.6.0+git20191219-1) sid; urgency=medium [ Rick V ] * update netid on windows side [ Jason Rhinelander ] * Add -DDOWNLOAD_SODIUM to re-enabled dl&build of sodium [ Rick V ] * do not hardcode version into user-agent string [ Thomas Winget ] * implement timers using libuv * Change ILinkLayer::ScheduleTick to use new timer * fix derp nested function call and derp merge error * make dht context use new libuv timers * remove obsolete timer-related code [ Ryan Tharp ] * Xenial compatibility * try to fix gitlab CI (from 991) * correct ninja binary case [ Jeff Becker ] * fix unit tests [ Jason Rhinelander ] * Rediff patches -- Jason Rhinelander Thu, 19 Dec 2019 13:16:59 -0400 lokinet (0.6.0-2) sid; urgency=medium * Added default port lokinet ufw rule -- Jason Rhinelander Tue, 17 Dec 2019 02:04:37 -0400 lokinet (0.6.0-1) sid; urgency=medium * Rediff patches * Add -DDOWNLOAD_SODIUM to re-enabled dl&build of sodium * Add ucf to depends for metapackages * Enable lokid mode in auto-generated router configs [ Jeff Becker ] * stricter timeouts * Revert "stricter timeouts" * dont fail on 0 sized data fed to json parser * allow multiple calls to FeedData * update readme for freebsd * remove abyss-exe * freebsd fix * require version * more * require pkgconf package in freebsd build * use linux codepath for freebsd in filesystem.hpp [ Rick V ] * get ready for v0.6 * include all platform dependencies transitively * add note * don't be aggressive * fix test suite * Explicitly align to 16 bytes on Win32 targets * add definitions for System5 and generic non-Apple BSD * fix versiontag * clang-format everything * microsoft libc a shit * the internal windows toolchain _already_ provides a default manifest * nit [ Jeff Becker ] * netid update -- Jason Rhinelander Mon, 16 Dec 2019 21:12:12 -0400 lokinet (0.6.0~rc2+git20191215-3) sid; urgency=medium * Disable NATIVE_BUILD -- Jason Rhinelander Mon, 16 Dec 2019 15:20:58 -0400 lokinet (0.6.0~rc2+git20191215-2) sid; urgency=medium * Rediff patches -- Jason Rhinelander Mon, 16 Dec 2019 00:18:47 -0400 lokinet (0.6.0~rc2+git20191215-1) sid; urgency=medium * Updated git tag in version -- Jason Rhinelander Sun, 15 Dec 2019 23:36:23 -0400 lokinet (0.6.0~rc2-3) sid; urgency=medium [ Jeff Becker ] * increase ack window [ Jason Rhinelander ] * Don't include net/if.h to help xenial [ Jeff Becker ] * fix typo, reduce delivery timeout * fix slow start bug * change interval such that FEC is less often done * remove internal limit on response size * prune unused files. * remove undeeded test case * fix include [ Jason Rhinelander ] * Add default mainnet/testnet URLs * curl: less verbose and fail on HTTP error response * deb: add separate mainnet/testnet systemd services * Rediff patches -- Jason Rhinelander Sun, 15 Dec 2019 23:34:23 -0400 lokinet (0.6.0~rc2-2) sid; urgency=medium * Refreshed patches * Add required libcurl dep * added libsodium dep * Pass debian version as GIT_VERSION * Disable 1024 aligned buffer test * lokinet-rcutil renamed to lokinetctl * cherry-picked libabyss read fix -- Jason Rhinelander Sun, 15 Dec 2019 13:24:58 -0400 lokinet (0.6.0~rc2-1) sid; urgency=medium [ Jeff Becker ] * tracy lock contention testing and other fun things * dont nack replayed messages, tweak transmission parameters. [ Michael ] * Abort when a null mutex is locked from a different thread (in debug mode only) [ Jeff Becker ] * remove more locking and make it safe * ensure no crash on quit * make it compile * change default url for bootstrap * add multi-ack and change protocol handshake to pin identity key * make it compile * break it again just to be sure * multithreaded iwp cryptography * more async cryptography * testnet * more * unstaged changed [ jeff ] * gut libutp and finish making things compile and pass tests * try calling stuff in logic thread from event loop [ Jeff Becker ] * finish multithread cryptography first pass * move it arround [ jeff ] * try fixing handover and add snapp traffic to multithreaded crypto workers [ Ryan Tharp ] * Change how webhooks are called [ Michael ] * Enable more sanitisers [ Rick V ] * Remove binaries, download them at runtime * new http parser * refactor lokinet-bootstrap * we grab a prebuilt bootstrap at build time * try set up environment for travis installer build * try install .net manually * ok let's see how we're locked up * skip null adapters * clang-format * undo travis changes * bump to 0.5.1 * bump to 0.5.2 * remove old bootstrap code * build mbedtls from source JIT * replace custom bootstrap with curl to match all other platforms * specify host/target explicitly for cross-build * add targets for release engineering * fix static build * fix command line parameters * try running curl if we can't use native WebClient * fix bootstrap command line * fix license * quote paths * Revert "fix license", do the CRLF conversion at installer build time * update URI shortcuts [ Michael ] * Add initial macOS app * Try to fix windows build * Fix static link with gcc * Use a hardened build for macOS release * Distinct ios build * Use a hardened build for macOS release * Improvements to app workflow [ michael-loki ] * Make Travis happy [ jeff ] * don't need that * remove log level change * fix windows port and make it compile * use absl optional * always use absl for string_view * use static_cast * revert to c++14 for non win32 [ Stephen Shelton ] * Add a --version flag to lokinet CLI args [ Michael ] * Support version over jsonrcp [ jeff ] * flesh out vpn c api clean up cruft [ Michael ] * Introduce --background to only start JSON RPC [ jeff ] * update cmake [ Michael ] * Apply Jeff's comments * Split cmake files for executables into src dirs [ michael-loki ] * Fixup [ Michael ] * Fix makefile location * More CI fixes * fixup ios [ jeff ] * initial jni wrapper stuff * finish wiring up jni shizz * try making it compile * fix cmakelists.txt file paths * typofix * pass template arguments in, fix typo * more fixups * cast * typofix * typo fix * more fixes, implemenmt missing functions * close -> closeasync * close async * update comment [ Jeff Becker ] * remove unused file [ Michael ] * Convert RPC endpoint to be a lookup table * Add rpc call to get current addresses for our node * Use libcurl (optional dependency) to hit jsonrpc * Review fixes * Fix travis deps [ Stephen Shelton ] * Add comments to NullMutex implementation to express intent [ jeff ] * call read handler in logic thread [ Stephen Shelton ] * Add numNodesKnown to llarp.admin.dumpstate RPC endpoint * Even more clarity to NullMutex comments [ Jason Rhinelander ] * Fix build on xenial [ jeff ] * revert to ed25519 for signing, this breaks everything (again). * update cmakelists.txt to no longer build removed file * use get_service_nodes rpc endpoint [ Stephen Shelton ] * Add missing #endif (presumably from 281fbff) [ jeff ] * fix #865 by not using logic if it is null in udp_tick * make format * disable DoH using mozilla's ISP backdoor record. * use correct rpc call to lokid * try making it work in the case that is broken on travis * make it compile on windows * add unit test for identity_keygen * make it compile [ Stephen Shelton ] * Prevent in-source-builds with cmake macro [ Ron ] * Update readme.md [ Jeff Becker ] * fix event loop tcp connections so they are thread safe * revert a few things * make format * make format * fix compile error on freebsd * fix crash * make non copyable * update _sz * fix warnings and prevent bug that sends invalid traffic to user * fix bounds check * use data not begin * make it compile [ Ryan Tharp ] * Fix whitespace formatting * MacOS Installer: Generate default config [ Jeff Becker ] * devendor libsodium by default except for android * finishing touches * update travis * use vendored libsodium if we dont have a good version * set version in FindLibsodium.cmake * use PACKAGE_FIND_VERFSION * enable IOS on IOS * fix typo * disable abyss-main [ Jason Rhinelander ] * Fix cmake sodium version check [ Jeff Becker ] * try disabling extra calls for some reason sodium_memcmp destroys the stack and i have no idea why * enable see2 when used * if this works i'll be pissed at gcc [ Rick V ] * a. GCC LTO requires specifiying CXXFLAGS in LDFLAGS * grab everything and the kitchen sink at build time instead * we no longer need IDP (the runtime download plugin) * ok release target now downloads the same known-good assets from public server * lto not supported for cross compile targets * ok implement libuv stubs for tcp connectors * ok add the write handler here too * emit libuv-like stub externally * c-f everything * make that a universal rule * just write the data straight into the socket * ok set write handler in event loop * oops fix up some missing code * manually merge #859 * restore crypto flags for binary builds * fix windows * add patchset for libsodium-upstream-stable so we can get rid of vendored lib * add note * undo change in preparation of removing this shit code * remove vendored libsodium [ Jeff Becker ] * pull in libsodium if local version sucks [ Jason Rhinelander ] * Move sodium download into separate cmake include * Fix download hash verification & version string [ Rick V ] * add patch for libsodium 1.0.17 * add cmake rule to patch libsodium on windows * add patch for latest stable libzmq on windows with a configure note * fix note [ Jeff Becker ] * fix issue #894 * add compile time override for libsodium tarball url using -DSODIUM_TARBALL_URL=https://whatever/tarball.tar.gz * seek for version and set it before deserializing * try fixing leak * use <= not == * meh * move calling of path build sccess hook to correct place * flush link session encrypt queue immediately after handling plaintext packets * Revert "move calling of path build sccess hook to correct place" * changes from review * try interchanging pump order * call Router::PumpLL after every batch of packets from a link session * make it compile [ Jason Rhinelander ] * Silence unused variable warnings in release build [ Jeff Becker ] * get rid of NON_PC_TARGET * add forgotten file * move it * detect properly for mobile * more * exclude debian from setting CRYPTO_FLAGS * move more stuff * move it more * disable gtest when no unit tests * disable windows native in CI * re-add windows to CI pipeline just allow fail * fix patching command * i hate windows * make path builds work again * remove printf * make format * make router give time directly [ Thomas Winget ] * Add per-path queues, prioritize control messages over traffic * ban zero id for pathid; clarity and cleanup * fix seg fault, fix uninitialized static member * do...while; make format; remove erroneous GUARDED_BY * remove our paths from outbound queues * remove our paths from outbound queues * fixes some logical errors in per-path queues [ Jeff Becker ] * prevent double free crap with shared_ptr * iot seems that logic thread didn't work the way i remember it should make logic work the way it should * make format * make unit tests pass for iwp * add warning when trying to queue onto full logic thread [ Stephen Shelton ] * Drop new inbound IWP sessions when the first packet can't be handled * make format (and git commit --amend to re-trigger CI) * Reduce log level of IWP session issues as they may be encountered frequently and normally [ Jason Rhinelander ] * Remove shell globbing of path * clang-format fixes * Don't pointlessly set conffname back to itself * Fix runtime AVX2 detection [ Stephen Shelton ] * Stub out KeyManager class * Replace bencode_write_version_entry with a more general-purpose function for writing bencoded dictionary entries [ Jason Rhinelander ] * Lower the ev tick interval to 10ms [ Stephen Shelton ] * Add "keyfile version" to RouterContact * Rename bencode function for clarity [ Jeff Becker ] * contention killer * make sure all calls of logic thread jobs are not having contention * add trace log level for tracking logic thread jobs * typo fix in release * try fixing file log segfault * make it compile * make contention checker templated * please the gods of valgrind * remove use of void * in godawful old code from a time before happyness * use lambda * std::move * initialize with zeros * remove valgrind access errors * work in progress * flush quues of other paths * make it compile [ Stephen Shelton ] * Implement code to move old key files out of the way [ Jeff Becker ] * fix "zero hop" bug * make logic job queue 8 times bigger * make job queue size configurable * make master build release by default [ Stephen Shelton ] * Reorganize priv key file loading a bit and hook KeyManager into Router [ Jeff Becker ] * use curl to fetch from lokid rpc the identity key * sleep * move sleep * update readme and disable curl on windows * clear response between tries * add check for identity key validity * ping lokid rpc [ Stephen Shelton ] * Undo adding of crypto version to RouterContact, other fixes [ Jeff Becker ] * reduce number of jobs we put onto the logic thread * add metrics tracking for logic jobs in debug mode * prune members in timer context * use timer guard for all jobs in debug mode * prevent segfault [ Thomas Winget ] * Track and log UV event loop ticks in debug builds * Show number of logic thread jobs in debug builds [ Jason Rhinelander ] * Don't flush here; we already have a tick flushing [ Jeff Becker ] * reduce calls in link pump * process transit hops on flush * dont process empty queues * use lockless queues to gather results of transit traffic work * only flush when no other jobs are executing * flush in logic * try async decrypt then verify * batch and flush * fix address mapping bug * remove jenky call to logic thread in link server * ammend previous commit * call jobs in logic * dont flood the logic queue * style nitch [ Jason Rhinelander ] * Die if job queue full * Set tun to non-blocking [ Jeff Becker ] * limit calls * lower limit to 25ms * limit calls to pumpll such that it gets called fast enough but not too much under load [ Rick V ] * crash on wine, we support linux, ucb_unix, svr4 natively ffs. i tested this patch on wine 4.4 on fuckin Solaris 11 snv_151 * fix error msg * set default bootstrap-uri for legacy ui * tick more often [ Jeff Becker ] * fix path resource leak * limit connections * break the world to make it faster * make it compile * dont use auto * fix previous commit * unconditionally bundle first fragment in xmit * make format [ Stephen Shelton ] * Handle link transport key in KeyManager [ Jeff Becker ] * bump version and motto * handle case with no git directory [ Jeff ] * fix readme for libcurl package name on linux [ Stephen Shelton ] * Fix bad merge * Move lokid key API request to KeyManager [ Jeff Becker ] * make it compile [ Jason Rhinelander ] * Bump default netid to gamma for 0.6 [ Stephen Shelton ] * Init key manager before InitOutboundLinks are configured [ Jeff Becker ] * remove unneeded log statement [ Stephen Shelton ] * Reinstate link test / update to use KeyManager [ Jeff Becker ] * close sessions to non essential nodes * fix typo * only close outbound links * close links lazy * more close changes * reduce window [ Stephen Shelton ] * Make format * Avoid trivial getters/setters in KeyManager [ Jeff Becker ] * add bootstrap list functionality and utility [ Stephen Shelton ] * Backup SNApp keys when migrating to new ed25519 crypto [ Jeff Becker ] * use ipv6 only with ipv6 packets [ Jason Rhinelander ] * Replace cppbackport with ghc-filesystem [ Jeff Becker ] * try fixing router lockup * squash possible race condition * add absl annotations * add systemd watchdog if enabled on compile time * disable absl decorator in release * add deadlock checker and revert bencode change from long ago * fix last commit * use correct format string * reduce log levels at runtime * disable metrics by default [ Jason Rhinelander ] * Remove unused argument [ Jeff Becker ] * make format and make tests compile * remove callsto Router::PumpLL and stuff gets faster (or stuff) * use faster hashing * fix unit tests * fixes for travis * more travis fixes * another attempt at travis fix * clang fixes * allow windows to fail * more travis config tweaks * prevent crash on exit * make logic and net thread one in the same * call timers with queuer if set * limit timer calls * more cleanup * use thread queue * trypushback * fixes for travis * more travis fixes * another attempt at travis fix * clang fixes * allow windows to fail * more travis config tweaks * prevent crash on exit * make logic and net thread one in the same * call timers with queuer if set * limit timer calls * more cleanup * use thread queue * trypushback [ Stephen Shelton ] * Optimize AlignedBuffer:::IsZero() [ Jeff Becker ] * make libuv on win32 work * finish remaining changes * more * final change * fug * remove mutexes * consolidate versions [ Stephen Shelton ] * Remove typo in version changes [ Jason Rhinelander ] * Add missing ev_libuv (now needed everywhere) * Put version info into a compiled file * Simplify AlignedBuffer alignment implementation * Change alignment to std::max_align_t [ Stephen Shelton ] * Fix for travis-ci xenial build * Another attempt to make travis-ci's xenial happy * Comment-out ios build for now * make format (or format-verify, at least) * Include error code in log output in Identity::EnsureKeys() * Make format (on recent version-related code) * Use vendored fs::filesystem on all platforms * Remove FS_LIB conditionals [ Jason Rhinelander ] * Offer ritual sacrifice to clang-format -- Jason Rhinelander Fri, 13 Dec 2019 16:07:08 -0400 lokinet (0.5.2-4) sid; urgency=medium * Rename split packages to lokinet{,-bin,-router} -- Jason Rhinelander Tue, 29 Oct 2019 16:18:08 -0300 lokinet (0.5.2-3) sid; urgency=medium * Fix broken RequireFileExists systemd directive -- Jason Rhinelander Tue, 29 Oct 2019 15:13:13 -0300 lokinet (0.5.2-2) sid; urgency=medium * Split client and router config/services into separate packages -- Jason Rhinelander Tue, 29 Oct 2019 14:06:58 -0300 lokinet (0.5.2-1) sid; urgency=medium [ Ryan Tharp ] * Add libuv [ Michael ] * Statically link releases [ jeff ] * remove libutp and all such code related to utp [ Jeff Becker ] * try fixing handover [ jeff ] * handover should be fixed now * final touches * bump version and motto -- Jason Rhinelander Fri, 20 Sep 2019 18:32:38 -0300 lokinet (0.5.1-1) sid; urgency=medium [ Jeff Becker ] * disable link layer locking because there was no contention [ Michael ] * Abort when a null mutex is locked from a different thread (in debug mode only) [ Rick V ] * auto config has been removed for months now * some people set the netid explicitly, and set it to default anyway * 0.6 relate and other general updates to MacOS packaging * fix * Update distribution.xml [ Jeff Becker ] * disable rc expiration * reduce logging and make format * try more ranges [ Jason Rhinelander ] * Move default user/group define into a debian patch * Fix x86-isms in debs [ Jeff Becker ] * prune dht peers every router tick [ Jason Rhinelander ] * Add lokinet DNS for systemd-resolved and resolvconf * Add no-resolvconf hack for deb install to deb config file * Bump version to 0.5.1 for minor fixes for 0.5.0 -- Jason Rhinelander Tue, 10 Sep 2019 19:44:51 -0300 lokinet (0.5.0-2) sid; urgency=medium * Patch lokinet-bootstrap to use system bootstrap path when run as root -- Jason Rhinelander Wed, 04 Sep 2019 15:54:48 -0300 lokinet (0.5.0-1) sid; urgency=medium [ Rick V ] * add build option for constrained node ops and make sure everything is now target-optimised in all configurations (allows debugging on the target using the debug build config) * new cmake module * bump version for release * if cppbackport is built, make that consistent too * add description to lokinet svc manifest * undo utf8 conversion * set point-to-point mode on TAP * iconv 🅱roke * move non-string version info to common header * derp * make format crypto/ * clang-format remaining code, use __asm__ for avx2 port since we insist on straight C99 without extensions (asm isn't special in C99, __asm__ is) * this kills the TAP * add config edit button, and see if this fixes the pipe read bug * add config file options [ Michael ] * Move logging to subdirectory * Move meta programming to subdirectory * Move metrics to subdirectory * Move thread stuff to subdirectory * Fix windows [ Rick V ] * oops [ Jeff ] * Update motto.txt * Update lokinet-bootstrap [ Jeff Becker ] * change default url for bootstrap * update default netid -- Jason Rhinelander Wed, 04 Sep 2019 13:37:57 -0300 lokinet (0.5.0~pre20190902-1) sid; urgency=medium [ Jeff ] * try fixing handover drop bug * make osx unit tests compile on old gcc -- Jason Rhinelander Mon, 02 Sep 2019 21:00:41 -0300 lokinet (0.5.0~pre20190830-1) sid; urgency=medium [ Jeff Becker ] * optimize [ Jason Rhinelander ] * Make sure /etc/loki exists during postinst -- Jason Rhinelander Fri, 30 Aug 2019 13:13:47 -0300 lokinet (0.5.0~pre20190829-1) sid; urgency=medium [ Jeff Becker ] * prepare for 0.5.0 * make it compile * make format -- Jason Rhinelander Thu, 29 Aug 2019 13:19:27 -0300 lokinet (0.5.0~pre20190828-1) sid; urgency=medium [ Jeff Becker ] * bump path build handover window, check cooldown on build. * use estimated build time instead of expiration time for delta when determining when to space out builds * add short data fragments and rx replay filter * please the CI gods, wololo * correct constructors on llarp_buffer_t and check rc on regen * quick little fixes * fix explore * get rid of dead code * fix sign -- Jason Rhinelander Wed, 28 Aug 2019 12:39:29 -0300 lokinet (0.5.0~pre20190827-2) sid; urgency=medium [ Jeff Becker ] * fix log level -- Jason Rhinelander Tue, 27 Aug 2019 16:41:25 -0300 lokinet (0.5.0~pre20190827-1) sid; urgency=medium [ Jeff Becker ] * initial mempipe implementation [ Michael ] * docker-compose fixes * Give explicit names to builds so we know wtf failed * Fix static linking on macOS * Find libatomic fix cmake magics * Fix on compilers which aren't C++11 by default * Replace StatusObject with underlying JSON type * Use ToString instead * Use ToString over ToHex * Dump more info from router contact * replace endl with '\n in config.cpp [ Jeff Becker ] * more * initial iwp * default to iwp * update iwp , add NACK * mark alive on nack * don't crash * send keep alive on pump when needed * disable log spew * lower log level for renegotiate * use std::make_tuple * silence clang errors * silence clang errors again * default to no implementation on pipe for pleasing win32 * ignore test on win32 [ Rick V ] * reeeee * header got stripped * fix log colours on old win32 platforms * add new and improved 32-bit lokinet-rcutil to install pkg * override print * ok use clang-format v8 [ Jeff Becker ] * code review fixes: * more fixups [ Michael ] * Partial fixes for shadow * Fix docker-compose isolated network [ Rick V ] * sun fix [ despair ] * fix cmake (restore crypto opts) [ Rick V ] * add native build option [ Jeff Becker ] * add likn layer delivery timeout notification for iwp * add forgotten bits * use correct constructor for llarp_buffer_t -- Jason Rhinelander Tue, 27 Aug 2019 11:48:39 -0300 lokinet (0.5.0~pre20190814-1) sid; urgency=medium [ Jeff Becker ] * try adding proper limits * add limits files * include header * limit connections in outbound session maker * more * pump to make stuff speed up if stuck * ensure timestamp is not in future * use llarp::path::default_len to inform how many routers we need [ Jason Rhinelander ] * Refresh patches [ Jeff Becker ] * correct header? [ Michael ] * Use the right version of clang-tidy * Fix make install -- Jason Rhinelander Wed, 14 Aug 2019 16:12:26 -0300 lokinet (0.5.0~pre20190813-1) sid; urgency=medium [ Michael ] * Set fast_finish so we don't need to wait for the sloooow 'make windows' target * WIP on docker-compose workflow [ Jeff Becker ] * drop missmatched convotags [ Michael ] * Fix a deadlock when link fails to establish [ Jeff ] * don't expire based on reply intro [ Michael ] * Fix suspicious thread-unsafety * Make format [ Jeff Becker ] * also check if we are a public router when checking for timeout in read direction * make it compile * move convotag missmatch check to the right place * make format * more consise utp timeout logic * make it compile * lokinet monitor * when pushing large amounts per tick try not to bottleneck on utp_writev * pumpwrite -> pump * make sure stats are called every 1s * redo commit [ Michael ] * CI to catch missing `make format` * Test make windows on macOS, and avoid timeouts * clang-tidy modernize pass * Fix format verify * Bump version of cxxopts * Update rcutil and add to build * Include json output * make format * Add missing header * Dump config * make windows fixes * try with clang-format 7 -- Jason Rhinelander Tue, 13 Aug 2019 10:58:15 -0300 lokinet (0.5.0~pre20190805-1) sid; urgency=medium [ Rick V ] * add debug helper lib for core dump generation on all supported windows targets * ok use exception filter * back out for now * enable SetThreadName (#689) * fix single-arch install config * fix header case * add make windows config command line * fix sun * really fix #689 this time * fix netbsd * this is new, intro'd with the libuv refactor * clang-format * namespace * why isn't cmake picking this up * this is getting hairy * fix thread naming on windows * get our TAP ifindex to pass to ipv6(1) on old platforms * fix a crash on some win32 systems [ Michael ] * Add fail-able docker build for gcc trunk * Fix gcc trunk warnings * fixup! Fix gcc trunk warnings [ Jeff Becker ] * dont close socket on bad state [ Michael ] * Jeff's fixes [ Jeff Becker ] * don't time out clients based on downstream traffic * always regen expired rc -- Jason Rhinelander Mon, 05 Aug 2019 21:19:05 -0300 lokinet (0.5.0~pre20190801.1-1) sid; urgency=medium [ Jeff Becker ] * have IPPacket::srcv6 and IPPacket::dstv6 check for ipv4 packets and expand them to ipv6 * call path build fail stuff in logic thread * properly close dropped inbound sessions on utp * remove limit * mark addresses as active when we use them * remove session->Close() * close dropped session later in event loop * always rewrite address -- Jason Rhinelander Thu, 01 Aug 2019 21:02:48 -0300 lokinet (0.5.0~pre20190801-3) sid; urgency=medium * Fix "boostrap.signed" misnaming in deb postinst -- Jason Rhinelander Thu, 01 Aug 2019 16:59:52 -0300 lokinet (0.5.0~pre20190801-2) sid; urgency=medium * Replace tmpdir in generated config file -- Jason Rhinelander Thu, 01 Aug 2019 16:38:19 -0300 lokinet (0.5.0~pre20190801-1) sid; urgency=medium [ Michael ] * Use travis_wait because builds/linkers are slow [ michael-loki ] * Try bumping to 30 minutes wait * Go back to 20 minutes, don't let this job block CI * ugh travis [ Jason Rhinelander ] * Fix lokinet.ini permissions; clean up during purge -- Jason Rhinelander Thu, 01 Aug 2019 13:19:30 -0300 lokinet (0.5.0~pre20190731-1) sid; urgency=medium [ Thomas Winget ] * Adds Link-Relay Status Messages * make TransitHop self-destruct if path is invalidated [ Jeff Becker ] * run main in it's own thread and set its process name. * try deferred resolve for exit handler * add link layer delivery feedback * make travis happy * propagate all utp link errors * make it compile * * increase utp buffers * disallow inbound traffic on outbound utp link * const correctness * use size_t * fix compile for tests * on logic queue overflow put job on timer instead * correct cmake paramter for shellhooks * * const correctness * use std::map's upper_bound to find many closer entries * randomize key for exploration to allow many explore jobs in paralell * fix crashes in testnet * const correctness * const correctness [ Michael ] * Initial experiment with a docker-based CI * try to make some windows * Abandon debian * Fixup * Use __cpp_lib_filesystem * or not [ Jeff Becker ] * revert dht stuff * fix dht exploration ;~; * remove -1 * use std::min * use ipv4 address on snodes for now [ Michael ] * Add ASAN CI -- Jason Rhinelander Wed, 31 Jul 2019 23:45:23 -0300 lokinet (0.5.0~pre20190726-1) sid; urgency=medium [ Thomas Winget ] * make travis happy again *and* don't break message sending [ Jeff Becker ] * fix crash of clients and propagate lookup failures [ Jason Rhinelander ] * lokinet-bootstrap improvements * Remove unneeded git dependency * Deb updates & fixes -- Jason Rhinelander Fri, 26 Jul 2019 18:21:31 -0300 lokinet (0.5.0~pre20190725-1) sid; urgency=medium [ Jeff Becker (probably not evil) ] * bug fix release [ Jeff Becker ] * i am a potatoe * aaaaaaaaaaAAAah * potatoe * mor potatoe * don't kill bootstrap * aaaaaaA * disable * connect out to committed routers if we don't have a session each tick * don't kill nodes as service node * null check * prevent crash * more * attempt every time * use 1 for dht exploration * fix * const * don't resize frames * meh * fix * more * fuck * whatever [ Michael ] * Fixup MSVC build [ Jeff Becker ] * revert breaking change * re-enable unit test * hax to make it work. * hard code range for now as a /16 don't revert me * add comment * pick newer intros only [ Rick V ] * really remove line break * move tun autoconfig from config parser to tun setup * fix ui * fix UI again [ Jeff Becker ] * more hax * shift introduction * fix [ Michael ] * Fix ASAN build * More explicit error when keyfile is not a valid file * Convert router diskworker to use a modern ThreadPool * Drain diskworker pool on close * Change ExecShellHookBackend to use a modern thread pool [ Jeff Becker ] * commit recent stuff [ Michael ] * Apply rule of zero to code base [ Jeff Becker ] * make format and revert stupid alloc changes * try allowing ip addresses in bind section [ Michael ] * Minor warnings fixes in python/javascript code [ Jeff Becker ] * more docs * don't move, instead copy [ Ryan Tharp ] * osx pkg updates [ Michael ] * Replace dict_reader/list_reader with version which doesn't involve indirection [ Rick V ] * bump version * fix * jeff forgot to bump [ Jeff Becker ] * add docs on debs * revert * move llarp::Logic to std::shared_ptr * make format * use limited size queue for logic and singled threaded threadpool * fixit * fix [ Michael ] * Fix thread safety issue in service::Endpoint::ProcessDataMessage [ Jeff Becker ] * DRY * more * double path build timeout [ Michael ] * Remove all use of IBEncodeMessage [ Jeff Becker ] * update docs and discard pending traffic on connect timeout to prevent memleak * prefer inbound links over outbound links * * don't lookup routers in sendtoorqueue * don't lookup routers that are not public when committing [ Jeff ] * Update high-level.txt [ Jeff Becker ] * use for each loop * delete inbound messages right after being handled * close timed out sessions * more strict connection timeouts * only check for ready paths when counting in future * update munin script * fix * more * more * add missing lines * gfdi * aaAaAAaaaa * add member to rpc response indicating weither or not a peer is a service node * don't log ips * differentiate between clients and service nodes * explicitly lookup router if not connected to it on LRCM forward. * uncomment * make format and introduce new function EnsureRouter on router to check nodedb or do dht lookup * set lifetime of paths * fix previous commit [ Michael ] * Add CryptoManager class to provide a guard-style class to manage the current Crypto instance * Port code to use CryptoManager over passing Crypto pointers * Move tests to use top-level LlarpTest * Fix crypto build derp [ Ryan Tharp ] * try to configure travis * Travis attempt #2 * Need GCC-6 for C++17 * change default compiler to gcc-6 * Oh actually install the apt packages in docker, impressed it gets this far * win/mac, xenial and make test at the end * xenial doesn't have a gcc-6 without ubuntu-toolchain-r * install gcc6 after some basics * give up an xenial too many overrides, bionic it is * add IRC support * well if IRC isn't going to work, add discord webhooks * Add travis badge [ Michael ] * Initial No-Op Crypto implementation * Update LinkLayer tests to use no-op crypto [ Jeff Becker ] * make format * make debian stable happy [ Michael ] * Move gtest to vendor dir * Update cmake to point to vendor dir [ Jeff Becker ] * revert modification to libutp * ingore paths that drop exit traffic * fix previous commit * use libuv [ Michael ] * Create util::MemFn and memFn to make binding callbacks easier * Convert to use memFn [ Jeff Becker ] * use timers not idle * try fixing tcp * more libuv jizz * make tcp work with libuv probably * fix travis and gitlab [ Ryan Tharp ] * Add static link to CI * add more makefile options * actually test the variables * disable extras for production day [ Jeff Becker ] * add rc expiration (again) * fix * use reply intro for inbound sessions * revert * use latest tag not oldest tag in inbound convos * dont use timers use check for tick * please don't work * please don't work [ Ryan Tharp ] * build a router config not a client [ Jeff Becker ] * try switching logic * fix * eh * fix * update RC expiration logic, lookup more often and remove stale entries * use timetamps * put deltas in timestamps * try addressing issue #642 * try fixing freebsd build * again * another freebsd fix * (more freebsd fixes) * try linking for freebsd * ammend previous commit * another fix for freebsd * ipv6 * more * make exits support v6 probably * handle ipv6 exit traffic * fix exit traffic for v6 [ cathugger ] * net/ip: cleanup * net/ip: IPv6 TCP/UDP delta chksum funcs [ Michael ] * Log when we publish to metrictank * Tidy up metric code * Unfuck metrics * Unfuck integer metrics [ cathugger ] * net/ip: IPv6 packet deltachecksum * net/ip: update names * fix stuff * make format [ Jeff Becker ] * typofixes [ cathugger ] * net/ip: skip IPv6 option headers * net/ip: correct IPv6 fragment processing, also check for length before modifying [ Jeff Becker ] * fix tpyos and pass event loop by l value * make format * update for win32 parts * reverse dns for ipv6 * swap intros on message rejection * swap intros on message rejection * add guard * add release key files * update readme with libuv dependancy * json logging option [ Ryan Tharp ] * attempt freebsd build * fix fbsd tag * fix typo * fix freebsd tag * Update .gitlab-ci.yml [ Michael ] * Introduce tag types * Introduce tags for metrics * Publish metric tags [ Ryan Tharp ] * fix freebsd artifact [ Rick V ] * remove all disused platform-specific event loops * we libuv now [ Jeff Becker ] * differentiate between inbound and outbound convos * pass in path [ Michael ] * Move local publishers to their own files * Fix event loop tests post-libuv [ Jeff Becker ] * try not spamming network with builds * store looked up routers * make format * remove libuv variable from makefile * add handover window to router contact updating * save all nodedb entries in memory on exit [ Rick V ] * fix legacy windows console logger * try fixing libabyss Why does abyss not inherit the include folders used by the rest of the lokinet build? * restore llarp_make_ev_loop() as we only use libuv now; separate function is now ded code * make format * fix windows native console * I _think_ this is a decent compromise for LTO vs non-LTO builds [ Jeff Becker ] * check for expiration * make freebsd compile [ Michael ] * Refactor path build code [ Rick V ] * now i remember why i had to open /dev/tun twice on solaris * fix callback hell * finally fix solaris [ Jeff ] * Update readme.md * Update readme.md * Update readme.md * Update readme.md * Update readme.md * Update readme.md * Update readme.md [ Jeff Becker ] * fix borken unit tests [ Michael ] * Move exit messages to match header * Move remaining messages around [ Jeff ] * Update readme.md [ Michael ] * Move subset of messages to right directory * Move exit messages * Move other messages * Tweak link message parser * Merge changes from upstream * Rename InboundMessageParser to LinkMessageParser [ Ryan Tharp ] * Update README.md [ Michael ] * Rename message files * Send netid to metrictank [ Jeff Becker ] * fix comparision [ Michael ] * Tidy up pathbuilder code [ Jeff Becker ] * fix up libuv close logic * fix up libuv close logic * =default * only kill rcs as client * try fixing issue number 17 (not done) * finish up issue 17 * continue using llarp::openfilestream * try fixing issue number 17 (not done) * finish up issue 17 * continue using llarp::openfilestream * make it compile and make it secure files * reset errno and make unit tests pass * explore faster via all peers * fix fs stuff * fix freebsd build [ Ryan Tharp ] * copy travis to temp fix linux build * run update first * gitlabci: actually install the package [ Jeff Becker ] * tweak [ Michael ] * Remove cppbackport from vendor dir * Find libuv for Ryan [ Jeff Becker ] * update docs * handle reply intro * choose first timestamp * outbound context build more * fix previous commit * oooof * check for zero * swap intros only on path build success * correct comparison * fix convotag inbound state setting * set outbound context to be outbound session * fix order * add more metrics * track drop in metrics [ Michael ] * Revert "Merge pull request #668 from michael-loki/remove_cppbackport" [ Jeff Becker ] * do direct lookup when in endgame scenario as client when looking for router * better logging * start seperating tun and endpoint * start work on seperating ips out of endpoint * close after 30 seconds of dead * close after 30 seconds of dead * pump write when handshaking * ping on send idle not recv idle * relax timeouts for handshake and make format * pick ready paths for reply * swap path on inbound convo if expires soon [ Michael ] * Add in-source version of std::filesystem::permissions * Move config class to its own dir * Move ini parser as well * Convert to load config in config loader * Fix tests [ Jeff Becker ] * disable rpc by default * actually set config for network [ Thomas Winget ] * Reverts #678 #677 and #669 with hashes: [ Jeff ] * Update readme.md * Update api_v0.txt [ Jeff Becker ] * remove threadpool.hpp * remove threadpool.hpp * don't lock when visiting links * use sane defaults and deprecated "auto" as it's horribly bad style * * fix testnet codepath [ Jeff ] * make it work [ Jeff Becker ] * * fix testnet codepath [ Jeff ] * make it work [ Jeff Becker ] * try fix for localhost.loki * fix last commit [ Michael ] * Revert "Merge pull request #679 from tewinget/revert-config-refactor" * Fix llvm 8 build * Fixup and add tests * Fix macos build after rebase * Set netid before doing anything else [ Jeff Becker ] * fix * make format * whitespace fix * initialize tun with 0 and set defaults in correct places [ Michael ] * Move router config to be encapsulated * Have fromSection return void * Allow override of some config via env variables * Allow override of the rest of the config * Add function to set threadname, and use from threadpool impl [ Jeff Becker ] * make threadpool consice * lel * make it compile * make it compile * correct name * use logical or instead of bitwise or * use const reference and don't log invalid packets * use logical or not bitwise or and change function name to be plural * remove comment that is wrong * * pump after stopping hidden service context [ Michael ] * Remove redundant else blocks * Address Jeff's comment [ Jeff Becker ] * make it compile * fix freebsd build [ Michael ] * Add missing cppbackport fs::path constructor [ Jeff Becker ] * use correct function from free bsd pthread * use elseif * fix freebsd build for real [ Michael ] * Fixup two minor warnings [ Jeff Becker ] * typo fix lel * disable shell hooks by default * use correct uint128 functions when doing endian flipping * make format * change order of configuration * try bailing when configration failed * more logging [ Jeff ] * correct worker threads amounts * fix previous commit [ Michael ] * Add FindLibUV and migrate [ Jeff Becker ] * use std::string instead of fs::path [ Michael ] * Refactor endpoint state management to a new class [ Jeff Becker ] * try fixing bootstrap * durable write for nodedb * only update if newer * use static lookup timeout * unconditional insert so that we dont run out of peers * always ask peers for next closest [ Michael ] * Matrix build for travis * Fix config builds * Fix Ubuntu builds * Update ubuntu dockerfile to use static linking * always build release * Attempt macOS build * Set PIC everywhere * Remove matrix build of NETNS * Drop xcode11 for now * Install make too * fix formatting * Use ccache to speed up builds * Install gold on ubuntu * Disable matrix builds on build type * Matrix build debug and release, since we care about both [ Ricardo Jesus Malagon Jerez ] * Update readme.md to include readme_es.md link * Create readme_es.md spanish translation [ Jeff Becker ] * make cross compile happen in makefile [ Ricardo Jesus Malagon Jerez ] * Update readme_es.md [ Jeff Becker ] * * fix arm cross compile on ubuntu disco * add forgotten file * add ppc64le toolchain * add cross compile docs * update cross compiler docs * fix network interface iteration infinite loop * reduce logging * make it compile * when lastSend is zero don;t time out * set timestamps to zero * revert * only issue deferred utp acks before timeout checks in pump * make hop count and length configurable * set limits correctly * do lookup for RC to neighboor even if we have them in our DHT buckets so we get an updated RC in reply * fix testnet scripts [ Ricardo Jesus Malagon Jerez ] * Create release_es.md * Create CONTRIBUTING_es.md * Update CONTRIBUTING.md [ rjmalagon ] * Basic docs translations to spanish, more to go later [ Michael ] * Test windows support in travis * Try installing make and ninja * Fixup fs * Try with clang?! * Bump cmake version maybe * use whatever vcvarsall is * exceptions BE GONE * Explictly enable catching exceptions * try to fix pid_t issue * Try forcing avx2 * include cctype * Fix some string_view problems * fix fs.cpp * fix str.cpp * Fix more headers for fs.cpp * more fs.cpp * fixup printer.cpp * Don't use LoadFromString * Change ConfigParser too * Try building tests on windows * Silence spammy threadpool warning * build gtest/gmock in shared mode * Try to silence some warnings to reduce noise * Try to link shared again * try actually reading the gtest docs * Change manifest ids * fix test.rc * Delete ev loop tests * Fixup some tests * try to ensure on windows, but don't fail * Skip 3 tests on windows * fix test.rc * Normalise build * Tidy up cmake files * Introduce a couple more builds, fixup notifications maybe [ Jeff Becker ] * make android compile * fix android compile, have makefile pull in libuv for cmake on android [ Thomas Winget ] * Refactor Router code into more classes * change log level of message send success * add debug-level log message on path build success * revert change that made travis happy because it broke things -- Jason Rhinelander Thu, 25 Jul 2019 17:29:26 -0300 lokinet (0.4.1) disco; urgency=medium [ Jeff Becker (probably not evil) ] * MANDITORY UPGRADE FOR TOYNET (again) * crypto protocol fixes in utp preventing fragment replaying * rewrite dns subsystem * snode tld resolution to service nodes * random.snode CNAME records giving a random service node * localhost.loki A and CNAME records for giving IP and Hostnames (respectively) for all locally owned endpoints * stability tweaks * crash fixes * much refactoring * such documentation updates * many C++ 17 isms * very vendor updates * wow ! -- Jeff Becker (probably not evil) Sat, 11 May 2019 10:45:46 -0400 lokinet (0.2.3) bionic; urgency=medium [ Jeff Becker (probably not evil) ] * MANDITORY UPGRADE FOR TOYNET * remove iwp and replace with utp * use sntrup for introset public key (backwards incompatable) * hidden service tags (backwards incompatable) * add nicknames to RC (backwards incompatable) * change kdf for path keys (backwards incompatable) * various dht fixes * various dns fixes (still unused in lokinet executable) * hidden services should sorta work (no client interfacing code yet) * initial win32 port (may sorta work) * initial android point (should compile) * fix shadow testnet * moved netloop and logic into same thread * update motto * debian packaging * windows port * cross compile targets * continous integration * android port * android glue code ( will be moved later ) * snap network namespace isolation, untested [ jeff ] * bump versions * add lokinet-bootstrap script * dns automapping * hidden serivce junk * systemd unit * 0.4.0 -- jeff Thu, 28 Feb 2019 08:44:59 -0500