* match timeouts in introset selection spread with logic for publishing
[ Jason Rhinelander ]
* Also consider last publish; eliminate unwanted condition
[ Jeff Becker ]
* create new constexpr for the staleness window for introsets and use it in publishing introsets and intro selection
[ Jason Rhinelander ]
* docker CI: Fix error message
[ Jeff Becker ]
* paralellize android build much better
* demote log statement levels
[ Jeff ]
* Update high-level.txt
[ Jeff Becker ]
* when lokinet looses ip4 connectivity libunbound used to freak out and only use ip6 after such an event. as a result dns queries stop working because we blackhole ip6 routes if exit mode is on. this prevents this case from being hit.
[ Jeff ]
* drop x86 for android as flutter does not support it
[ Jeff Becker ]
* remove old out of date documentation
[ Jeff ]
* * fix up lokinet cli help opts * document doxygen
* add big chunks of docs
* spaces
* more docs
* add deps to doxygen
* remove duplicate file
[ majestrate ]
* Update readme.md
* Update readme.md
* Update readme.md
* Update readme.md
* Update readme.md
[ Jeff ]
* match io loop event order on windows/apple to match linux.
* do not send buggy reply as rpc
* make serivce::Endpoint::EnsurePathToService have a default timeout as a named constant.
[ Jeff Becker ]
* implement exit node pooling, allows users to use multiple exits for an address range.
* configurable route poker this allows you to use exit nodes without forcing routes over the interface, useful for using lokinet with an exit and selectively routing over the lokinet interface using an external socks proxy or binding to device explicitly.
* reword auto-routing config comment
[ Benjamin Henrion ]
* Add missing libssl-dev
[ Jeff ]
* prevent segfault in route poker if Init() is not called
[ Jason Rhinelander ]
* readme: point to oxen docs; mention systemctl controls
[ majestrate ]
* Update llarp/router/route_poker.cpp
[ Jeff ]
* redo systemd status line to include number of paths and endpoint count. optionally warn about low path success.
* route poker: allow not blackholing routes. allow runtime configuration to disable ip blackholing.
* disable tests by default make ci enable tests explicitly
* wire up sigusr1 to trigger a network thaw on non win32 platforms
* detect timeskip and thaw network when we think it happened.
* move constant to new header
* make it so github sees the repo is gpl3
* fix typo in readme, use 3 hashes instead of 2 because it is a sub 3 section
[ Jeff Becker ]
* update header with notes
* update liblokinet udp api header
* remove dead shit from header
* update liblokinet udp header
* changes for liblokinet-ffi
* fix compile error
* lokinet_add_bootstrap_rc
* llarp::BootstrapConfig update
* typo fix
* log errors on decoding
* more logging
* sanity check
* more logging
* correct function names
* add WITH_BOOTSTRAP option for toggling building lokinet-bootstrap
* typo fixes and clarify docs
* fix typos add lokinet_udp_close
* typofix
* typofix
* add lokinet_hex_to_base32z
* wire up liblokient_udp_*
* thread safety stuff
* make it compile
* move WITH_BOOTSTRAP option to root project CMakeLists.txt
* enable liblokinet on macos
* build liblokinet on macos
* disable gost in static build
* nodejs dipshittery
* add liblokinet custom logger
* dont enable apple languages when not building daemon
[ Jeff ]
* Update mac.sh
* Update CMakeLists.txt
[ Jeff Becker ]
* dont pack struct becuase alignment
* make function pointer arguments named
* docstring update
* identify
* updates:
* cmake fixups
* make pybind compile
* typofix
* make it compile
* resolve race condition in udp flow and packet handling
* do less allocations in lokinet_hex_tobase32z
[ Jeff ]
* chore: bump static deps versions
* libcurl no long users --without-libmetalink so remove the flag
* bump ngtcp2 to v0.1.0 tag
* add close_reason parameter to quic::Endpoint::close_connection defaulting to emtpy string
* add cross compile helpers and update/add toolchains
* fix up contrib/cross.sh to put everything in build-cross
* fix up ppc64le toolchain, remove suffix
* fixup armhf target
* fix up ppc64le cross target
* dont capture flow_addr, results in compiler error on sid
[ majestrate ]
* fix up readme
* Update readme.md
* Update readme.md
* spruce up README more
* Delete llarp.png
[ Jeff ]
* use quad nine as default upstream dns
[ Audric Ackermann ]
* fix numPaths value in Router::ExtractSummaryStatus
[ Jason Rhinelander ]
* Crank oxen-mq to (1.2.)11; switch to oxen-encoding
[ Jeff ]
* make CI pipline generate docs with doxygen, doxybook2 and mkdocs.
* use COPYONLY for the non templated configure_file targets
* include mkdocs.yml in ci artifacts for docs
* move documentation builder closer to the top of the ci jobs
* remove markdown extension that is not required
* make comments with colins in them not have them in it
* make doxybook2 run from PATH if installed on our system
* more docs
[ Audric Ackermann ]
* add version and uptime to summary status endpoint
[ audric ]
* summary status: no services means not running
[ Jeff ]
* rpc fixes for lokinet gui only add stats for services when we have them
* remove old dead code
* cmake workarround for quark in older cmake where pkg config produces non existing targets
* oxenc
* fix wire protocol race condition
[ Pebu ]
* Fix spelling changes
[ majestrate ]
* Update readme.md
[ Jeff ]
* dry cross compile
* remove unneeded line from contrib/cross.sh
* redo contrib/cross.sh to take cmake arguments
* ci pipeline for cross compile
* bump zlib hashpin
* Cache best paths determined by GetPathByRouter to reduce cpu usage
* disable building fat liblokinet.so on bionic because lto is broken on bionoic still
* drone-ci image name fix, use -builder images
* try not to spam builds
* clean up paths that are ignored and inactive
[ majestrate ]
* add arch linux section to readme
[ Jeff ]
* idempotent flush queues on path builds
* add public key in rpc ping
* remove bitrotten files
* handle edge case better
* use the new electron gui in windows build
* kill/restore ipv6 with powershell because windows is vile
* static endpoint auth codes
* add file auth for tokens
* make destructor virtual
* add hashed password capability to endpoint auth by file
* disable hashed auth on windows
* make more platforms ignore libcrypt
* dont require libcrypt for cross compiled builds
[ Jason Rhinelander ]
* Replace llarp/util/endian.hpp with oxenc/endian.h
* Update to oxenc 1.0.2
[ Jeff ]
* add idempotent pump after sending lrcm to very make sure that it is pumped
* randomize all frames in lrsm to prevent info leak about hop length
* propagate link layer message priority to link layer so it can order retransmissions with that in mind
* add / remove route blackhole so we dont leak if we crash
[ Sean ]
* Update readme.md
[ Jason Rhinelander ]
* bencode-dump.py: support reading from stdin
* Remove unused defaults.hpp
* Rediff patches
* Remove old unused lokinet-bootstrap script
* Remove unneeded split(str, char) method
* Fix default upstream DNS not working
[ Jeff Becker ]
* format
* initial routing table refactor
* initial win32 port of route manager
* remove old routing table maniuplation code
* introduce add/del route via interface to route manager
* make add/del blackhole default to empty implementation
* use vpn::NetworkInterface for add/del route via interface instead of string
* add NOP implementation of VPN route manager for android
[ Jason Rhinelander ]
* SockAddr string optimization
[ Jeff Becker ]
* bump openssl static deps version for upstream security update
[ Jason Rhinelander ]
* Revert "fix dns on android"
* Reapply "fix dns on android" + fix argument order
[ Jeff Becker ]
* dont save addrmap on android as it hangs
* redo dns to use event loop on non windows and threading bullshit on windows
[ Jason Rhinelander ]
* Unbound callbacks also need arguments reversed
* Stop using deprecated OMQ connect_remote overload
[ Jeff Becker ]
* make ci try building the flutter apk in the android apk pipeline
* correct lokinet flutter url
* dont bundle raw jni libs
* upload bare apk as ci artifact
[ jeff ]
* initial network extension code for macos probably does not work
* add swift version bullshit file and additional bullshittery
[ Jason Rhinelander ]
* Various cmake build cleanups/refactors
* Set version into Info.plist, don't manually configure
* Switch extension from a framework to an appex
* Default CODESIGN_APPEX to CODESIGN_APP
[ jeff ]
* macos sort of works now
* make ci run ./contrib/mac.sh with no codesigning
* add dummy sign target for ci when we don't have signing keys remove static macos from ci pipeline
* it works
[ Jason Rhinelander ]
* Consolidate apple-specific bits into llarp/apple
* Tweak icns generation to only run when necessary
* Apple OS interface cleanup & refactoring
* Remove swift version (do not squash)
* format.sh: support macports clang-format
* Remove no-longer-used framework.mm
* Generate a default client lokinet.ini on startup if it doesn't exist
* Remove more unused dns-proxy files
* Remove unused/empty/no longer used apple headers
* Add lokinet subnet to default routes
* Add RouteManager; make exit on/off work
* Remove unused vars
* Add DNS trampoline
* Remove debug
* Unleak exit mode DNS via unbound DNS trampoline on (macOS)
* Reformat
* Silence warnings
* Remove dead code
[ Jeff Becker ]
* disable language ASM, yolo
[ Jason Rhinelander ]
* Forward-declare ub_ctx/ub_result
[ Jeff Becker ]
* invert logic for android dns hook
[ Jason Rhinelander ]
* Re-enable LTO; target macos 10.12+
* Remove debugging
* LOKINET_VERSION -> built in lokinet_VERSION
* Remove old mac installer packaging
* Remove advertising of big crappy company
* Remove obsolete bigs
[ Jeff Becker ]
* add comment about android dns
* tmp commit for debugging (revert me)
* remove unused import
[ Jason Rhinelander ]
* Fix IPv4 routes are disabling exit
[ Jeff Becker ]
* override ShouldHandlePacket on android to bypass non .snode/.loki dns hooking.
[ Jason Rhinelander ]
* Add IPv6 addr/routing for macos
[ Jeff Becker ]
* set ipv6 address on apple to hardcoded value
* format
* limit RC gossip to 20 peers max
* try not to prefer outbound vs inbound link sessions before when we get the list of router ids for gossip it was highly bias towards outbound sessions. instead now we get a full list of link session router ids in random order, truncate them to be at most MaxGossipPeers number of keys, and then put them into an unordered set
* use std::sample to grab MaxGossipPeers when populating std::unordered_set
[ Jason Rhinelander ]
* Disable tests on static bionic
* Bump dev branch version
-- Jason Rhinelander <jason@imaginary.ca> Fri, 03 Sep 2021 23:08:15 -0300
* fix minor oversight/inefficiency with already established connections
[ Jeff Becker ]
* update urls
* refactor to use RouterID instead of rc.pubkey
* add docker image for nodejs
* add wine as dependancy because god made windows so that man may suffer
* if we have an inbound session don't fail with NoLink
* establish outbound sessions when we have no outbound session. when we have an inbound session we still want to make an outbound session.
* * add log warn * throw if inbound link makes outbound session
* more information in logs
* inbound sessions from CLIENTS should only have an elevated lifetime
* dont give peer stats in rpc
* disable peer status entirely
* add string representation to SessionResult
* * add establish fail enum * dont call outbound session hooks for inbound sessions
* update lokinetmon
* expunge outbound contexts that have not gotten inbound traffic for a long while
* add age to outbound contexts in lokinetmon better time foratting in lokinetmon
* add path filter in lokinetmon
* make filters consistent for localhost.loki
* typofix
* fixes for lokinetmon filters
* fix unicode char
* unify introset-filter and path-filter
* better time formatting for future times
* add option to invert regex filter results
* * make tranform function for SessionResult to SendStatus * add case for SessionResult::EstablishFail * clean up outbound message handler to use transform function instead of many private member functions
* bump up the jam, bump it up, while your feet are jumping.
* * throw exception on invalid SessionResult when transforming to SendStatus * add case for printing unknown SessionResult
[ Jason Rhinelander ]
* Fix typo in libuv error message
[ Jeff Becker ]
* dont use constexpr
* fix issue with excessively pedantic stl on archlinux
[ Jason Rhinelander ]
* Rediff patches
-- Jason Rhinelander <jason@imaginary.ca> Tue, 06 Jul 2021 10:24:39 -0300
* [feature] optionally keep inbound convos mapped to same IP on restart (#1672)
[ Jeff Becker ]
* [buildsystem] remove use of ninja entirely
* update android ci docker image definition to include cmake and exclude gradle
* dont build shared libs when we are building static deps
* * make android ABIS list configurable * fix android ci jizz, correct typo, upload generated assets
* fix windows static ci upload for windows
* typofix
* fix android ci output path name so that it does not conflict
* ccache android builds in ci
* use make instead of build essential in ci so that it does not conflict with clang builds
* use $(MAKE) only on makefile generator
* pass VERBOSE=1 in ci jobs for full verbosity on builds
* use std::make_optional for backwards compat on older toolchains
* add new JNI function: LokinetDaemon DumpStatus
* fix #1655
* add dns hosts file option for user side dns filtering
* only use @ syntax when the dns port is not port 53
* mitigate lto compiler bug with lto
* update docker ci jizz to include flutter on android
* if git describe fails fall back to a placeholder
* update android ci docker jizz
* correct the logic for inbound convos
* dont mark inbound sessions as outbound when we get a DNS lookup for it
* format and logging ignore outbound session auth messages
* kill outbound context when we remove our convotag
* in outbound context, ShouldBuildMore intro.ExpiresSoon delta is too big and has no overlap, change it so that
[ Thomas Winget ]
* make sure we have a path to the next introduction we want to use
[ Jeff Becker ]
* more
* format
* make clang compile, remove unused variable
* remove badIntros from lokinetmon as rpc no longer has them in it
* ReadyToSend also should include checking we have a path to the remote
* value initialize introduction so that expiresAt defaults to zero
* remove redundant check as ReadyToSend also checks IntroSent()
* rename local variable to be clear about meaning, add comment
* make it so lookups dont time out
* bump version to 0.9.4
* add upperbound to number of endpoints used in lns lookups
* use exisitng convotag first instead of trying to send to directly
* publish introsets on nearest routers fetch introset from random routers
* if we get a discard message from the pivot discard the outbound context if the remote intro is also expired
* only permit 1 pending session per udp endpoint
[ Jason Rhinelander ]
* Add bencoded file dumper
* Fix program name in bencode-dump.py --help
[ Jeff ]
* update deps for source build
[ Jeff Becker ]
* when an outbound context is "marked bad" we want to ignore any new paths. before this commit when a new path was made when an outbound context marked bad lokinet would segfault.
* lower log level
[ Jason Rhinelander ]
* Rediff patches
-- Jason Rhinelander <jason@imaginary.ca> Wed, 23 Jun 2021 09:55:35 -0300
* windows cmake upgrades: * dont call lokinet-bootstrap.exe on install * bump lokinet gui version with hashpin update
* initial lokinet router testing: * report via rpc to oxen core connection stats on success and failure * connect to random service node by pubkey every 5 seconds for testing
* * use weak_ptr on core rpc * use reachability testing code lifted storage server's code
* there were some unhandled edge cases in outbound_session_maker, specifically when we are not permitted to connect to a remoute but we got its rc we silently drop the error.
[ Jason Rhinelander ]
* Switch stl mt19937_64 to CSRNG
[ Jeff Becker ]
* capture by value to appease clang 11
* handle case where we already have an outbound session, inform caller about it
[ Jason Rhinelander ]
* Fix use after move
* Add logging about testing success/fail
[ Jeff Becker ]
* separate white/grey list for active/decommissioned nodes.
* gossip RC when we are not deregistered so we can come back when we are decommissioned
[ Jason Rhinelander ]
* Add warning when can't update whitelist
* Fix unintentional whitelist/greylist copying
* Avoid copying & keep router alive by moving shared_ptr
* Don't pass last hash into UpdateServiceNodeList
* Fix failing pks not being populated
* Make format
[ Jeff Becker ]
* typofix
* dont run router testing if we are decommissioned.
[ Thomas Winget ]
* make outbound session if we do not have
[ Jeff Becker ]
* make windows happy by making some constexprs non static and such as windows does not LTO
* fix linking on win32 for lokinet.dll only apply static link flags for executables
* export functions in liblokinet for win32 dll
* * get_failing does not need abstract router as paramter so we remove it * add remove_node_from_failing to remove a node by pubkey from the failing set * if a router is deregistered we remove it from the failing set so we don't retest it * remove a router from the failing set if we get a test success
* updates to lokinetmon
* increase link layer buffer size
* reduce path build timeout from 30s to 10s
* reduce path intro spread slices from 5 to 4.
* fix an assert fail in gcc 11.
* improve log message clairity by printing the address not hex
* don't cache dns result if we have an address mapped. we want to use dns to trigger a call to EnsurePathTo
* make packet sending logic not attempt to align back to inbound sessions.
* make log warning have a more accurate message when we have no path for a relay downstream message
* fix latency tests.
* path and intro selection fixups:
* * don't include failed at when we are the pivot router as that case never happens. * mark paths as ingored instead of expired when we stop a path builder * only remove path builder when we have no established paths
* far stricter profiling algorithm * include first hop in profiling * decay stats faster * make fail case for path build profiling far more sensative
* make router tick 250ms instead of 100ms to prevent excessive log spam
* re-enable multithreading on clients but not on service nodes
* add relayOrder awareness to introset lookups.
* * tweak introset handover timeouts * introset path haodver tweaks * improve warn/error messages to convey more information * dont block on queue insertion * reset convotag on decrypt/verify fail * add multiple ready hooks on outbound context * lookup introsets from close routers on dht * continue to tick dead sessions so they expire their paths * introset spacing * reduce lns lookup diversity requirement for speed * add a function to send reset convotag message * only have 1 outbound context at a time
* remove service nodes we can't look up from the nodedb as client
* improve log messages about expiring convotags
* dont change send timeout for exits from tun handler as that screws with consistency in testing.
* use inbound sessions we don't have paths to in GetBestConvoTagFor just so we can give the caller SOMETHING.
* dont call null handler if we have no path to the remote router that's fine still use it just in case we have no other convotags
* log drop events more
* defer ready to send state until after we send a handshake
* delay setting sentIntro by the advertised latency of the remote intro instead of static value
* only inform failure or success of introset lookups when all lookups have returned
* decay path build limiter per path builder every tick
* add relay order to error message
* increase default session lifetime to 5 minutes for mobile client related reasons
* for inbound sessions, keep them alive for the default session lifetime, for outbound sessions keep alive for 5 ping intervals
* don't kill outbound context after build or lookup fails
* HandleTimeout can touch iterators so do all handling of lookup timeouts outside of loop iteration
* add idempotent wake up for sending messages to the network and writing packets on interfaces
* add path aligntment timeout to send and connect timeouts on outbound context to reduce the chance of timing race conditon
* log when we ignore a path
* treat ignored paths like established paths when dealing with expiration
* use weak_ptr on a path to reference its parent pathset instead of a bare pointer so crashes dont happen
* account for path latency in introset lookups on outbound contexts
* record reason for path fail and the full hops
* nuke invalid routers when we get a path build fail back to not resuse them in the future
* nuke from orbit style router profiling for path build timeouts.
* unconditional putsenderfor
* dont establish paths to inbound sessions to try and address state race condition
* add MarkAddressOutbound to plainquic
* this fixes the shit wtf
* when we map an address forever mark it as outbound
* on path timeout look up each router, if the lookup fails then we remove it from nodedb and close any connections to it so that bad first hops are rotated off of.
* tweak timeouts to be a bit more sane
* fixes for loopback testnet
* correctly persist link sessions
* more shit
* close links and remove commit
* mark exit address outbound when we add it via rpc
* mark ip active on successful send
* typofix
* add idempotent wakeup for flushing instead of the dumb queue checking
* spelling fix
* convert to lambda
* convert magic number to where it came from
* correctly do latency test FEC
* forgot to pump on wakeup
* remove case that spams build on an outbound context
* move setting hop to nullptr to after delivery or delivery fail
* downgrade log level
* increase timer timeout interval because 1 seconds RTT can happen but 2 seconds is pretty bad
* version bump
* fix for testing: dont remove from failing set
-- Jason Rhinelander <jason@imaginary.ca> Thu, 10 Jun 2021 16:37:22 -0300
* fix regression: llarp::Context::CallSafe was not deferring call on startup
* prepare for ipv6 on android
* remove test case
* limit calls to service node list updates for when we are synching the chain we dont spam with list updates
[ Jason Rhinelander ]
* Limit builds to 6 jobs (4 for arm)
* Add missing getIPv6 implementation
* Add systemd-resolved dynamic DNS updating
* Put systemd ifdef around the headers, too
* format
* Fix headers & grammar for non-systemd
[ Thomas Winget ]
* Fixes subtle memory leak, adds comments
[ Jeff Becker ]
* lokinetmon updates
* fix up outbound session
* limit path reanimation
* parameterize traffic alignement timeout in dns lookups
* don't rehash decaying hashsets that is no bueno and probably leaks like the pipes in tom's apartment
* compat for lokinet 0.8.x
* consmetic fixes
* win32 installer
* make path alignment timeout configuable
* make default log level warn fixes #1593
* change granularity to seconds
* try fixing std::shared_ptr leak with paths
* if a path's latency is zero dont use it because it's not actually a zero latency path it's probably about to be failed or timed out
* dont invalidate cache on lns timeout, only on explicit negative
* allow more than one outbound context per endpoint for fallback in case one outbound context takes a shit
* only use alive paths for lookups only track usage from sessions and don't care about intro timeouts
* use correct intro
* re-add parans
* report block height reported by oxend in systemd status
* report block height reported by oxend in systemd status
* format
* make profiling far stricter for path builds
* limit path builds across all builders
* always do path tests
[ David Arnold ]
* Tyops
[ Jeff Becker ]
* fixups in service endpoint
* don't send nx if we have an address already mapped
* in the event that a session is removed and then gets more traffic we would re-add the session with everything blank if there was more traffic in the same tick.
* shift off bad intros when we get a discard message, this happens if the other side's intro expires or the pivot restarts for whatever reason.
* when we have to reestablish an outbound session use a much much higher timeout for restablishment so it doesn't time out and get into a state that's totally screwed.
* add ulimit -n 1024 to mac ci stuff because lol apple
[ Yevhen Stasiv ]
* Update readme.md (#1512)
[ Jason Rhinelander ]
* lokimq rename compatibility fix
* Add oxend to dependencies
[ Jeff ]
* libuv cmake fixups (#1511)
* prevent crash by removing duplicate logic (#1515)
[ Jason Rhinelander ]
* Fix build server name & path (#1516)
* Downgrade required libuv version to 1.18
* Add automake+libtool for libuv static build
* Remove CMAKE_CROSSCOMPILE
* Link against libdl for libuv
[ jahway603 ]
* fixed broken documentation link
[ Jeff Becker ]
* bump submodule
* nodedb refactor
* fix iteration bug
* minidump fix
* fix pybind layer
* proper lokimq -> oxenmq refactor
* consolidate pathbuilder logic
* use good routers
* make llarp::NodeDB::GetIf always randmize location
* clean up calls to NodeDB::GetIf to be cleaner and more concise
* GetIf -> GetRandom
[ Anton Nesterov ]
* update apparmor profile:
[ Jeff Becker ]
* redo readme structure:
* update windows parts
* update badge url
* update readme links
* initial v6 exits
* fix exit range default value
* fix up route poking with lokinet to work with ipv6
* windows and macos route pokers for ipv6
* fix up macos route command for ipv6
* fix up names of functions to be less hidious.
* make it compile again
* clarify new member's purpose and name. add comment.
* wire up sigusr1 to reset libunbound dns resolver
* close stale sessions on thaw because they are probably already gone. this removes them and forces the sessions to be renegotiated.
* thaw router when connectivity changes
* dont wire up router thaw to sigusr1
* update route poker logic to include "up"
* always use most recent convotag
* call closed hook when we explicitly close a link session
* actually set disabled when disabiling route poker
* prevent bad side effects, dont use iterator after use and use operator[]
* try coleasing inbound packets from iwp
* flush queue when full
* get rid of use of llarp::IpAddress from hotpaths
* drop on overload
* feedback from tom.
* remove pointless operator overload
* add missing header
* only set public address when provided
* feedback auth result via lmq rpc
* make service restart
* revise lambda captures
* add string reason to auth messages
* fix typo
* make AuthResultCode an enum class
* use static_cast with enum class
[ Jason Rhinelander ]
* SockAddr fixes and cleanups
* Fix SockAddr test code
[ Jeff Becker ]
* loki-mq -> oxen-mq
* add option to enforce unique netblocks per path.
* truly random access in nodedb iteration
* feedback from jason
* make non 64 bit platforms happy
* use 64-bit Mersenne Twister instead of 32 bit flavor in nodedb
* use pointers to entries instead of lookups by key
* dont use std::optional
* add value 0 to disable unique-range-size
* fix typo
* add llarp::CSRNG for cryptographically secure random number generator for use in std::shuffle
* fix up pyllarp parts
* add mx records to lns names
* redo ci pipeline:
* add explicit check for setcap binary when doing setcap so when it's missing it's not a nop / silent failure
[ Thomas Winget ]
* Large collection of changes to make android work
[ Jeff Becker ]
* disallow fail on ci pipeline for android builds
[ Jason Rhinelander ]
* Allow multiple gradles to run on the same box
[ Jeff Becker ]
* use mutable lambda instead of shared_ptr for handling mx dns reply for lns
* use lowest latency path for send context
* fixes for ipv4 traffic: dont use new range because that breaks backwards comapt
* explicitly turn off setcap on ci builds so they pass
* enable route poker poking before going "up"
* rework cmake install targets
* dont include lokinet-bootstrap.ps1 in ci builds
* only do single ack packets
* use a std::map instead of a std::unordered_map for holding message buffers by their sequentially increasing message id. when retransmissions happen, they will be executed in a deterministic order by their delivery id. this reduces the jitter from delayed message delivery on link layer as with an unordered map the order of iteration is "random", so when we iterate all messages for retransmission we do it lowest id first (the messages queued first).
* consolidate rx message handling in iwp
* simplify call
* revert priority queue ordering change
* reduce test message count so it can pass
* don't leave old multi ack codepath in
* plug memory leak in outbound message queue.
[ lyyn ]
* Migrate tests from gtest to catch2
[ Jeff Becker ]
* get rid of the rest of gtest/gmock
* catchAll -> testAll
* generate keys in unit test
* decaying hashset unit test fixes
[ Jason Rhinelander ]
* Add more junk & clangd symlinks to .gitignore
* Bump required oxenmq version
* Fix signed/unsigned char comparison bug
* Shut up noisy catch tests
* Tweak clang-tidy rules
* Disallow evil compilation
* C++17 simplification
* Replace libuv with uvw & related refactoring
* Merge Logic functions into EventLoop
* Make format
* Remove unused variable
* Fix linux compilation & narrowing conversion warning
* Switch uvw to a fork with libuv backwards compat support
* stop lokinet before uninstalling service (#1469)
[ Jason Rhinelander ]
* Update win32 gui download with smaller svg icon
* Dev to stable (#1471)
* Disable LTO on sid for now (#1472)
[ Jeff ]
* poke route hole for loopback on windows because that OS is made by brain damaged non programmers. (#1473)
* do /1 route poker split on linux (#1480)
[ Jeff Becker ]
* fix install path for liblokinet-cryptography.so
[ Jason Rhinelander ]
* bump required lokimq to 1.2.2
* Fix the copy of lokinet-resolvconf that we install
[ Jeff Becker ]
* update packaging for macos add preinstall script that nukes any existing lokinet make uninstaller revert dns to "empty" make cpack use preinstall script in pkg file
* preflight -> preinstall
* try watching trash for lokinet-gui.app and delete ourself if we see it
* revert
* add initial uninstaller code that is horrible
* fix typo
* chmod +x
* fix header
* more fixes for macos
* security.h
* ugh
* add install target
* fix icon path
* change tool name
* change icon
* add entitlements
* update icon
* remove line from uninstaller
* try installing to lokinet subdirectory
* remove old path too
* delete lokinet applications directory
* kill the gui
* use /var/log/ for log files
[ Jason Rhinelander ]
* Upgrade libunbound to latest stable
* Patch to avoid IP_DONTFRAG bug in latest xcode with broken Big Sur SDK
* Move all patches into contrib/patches
* Update to lokimq 1.2.2 for segfault-at-shutdown fix
* macos: pass our pre-built static libs into the gui sub-build
* Version bump (#1483)
* Build mac uninstaller as subproject instead of externalproject (#1485)
* Revert "Build mac uninstaller as subproject instead of externalproject (#1485)"
[ Jeff ]
* make macos uninstaller actually kill and uninstall lokinet (#1484)
* * make llarp.halt rpc call actually return a reply (#1488)
* resolve merge conflicts for 0.8.2 (#1493)
-- Jason Rhinelander <jason@imaginary.ca> Mon, 23 Nov 2020 19:01:04 -0400
* [PATCH] update lokinetmon to work again with dns rebinding protection
* Add "deb-" into version tag
[ Ryan Tharp ]
* fix make static when TOOLCHAIN isn't set
[ Jeff Becker ]
* when we have an inbound session and we do a forward dns lookup we should not look up the descriptor on the network as we already have a session with them
* disable accedental fec in iwp outbound messages
* fix use after move
* remove un needed check
* add bounds check
* strict check of bounds
* cpack win32
* set license
* initial lokinet-bootstrap in powershell for windows
* make installer pull in tuntap driver
* update ci for windows installers
* allow fail
* update lokinet-bootstrap
* make gitlab pump out 32 bit installers, no lto for builds as that is cursed for now.
* move cmake unix down
* add mac target for release
* more macos installer bits
* fix gitlab ci file
* fix gitlab tag
* fix gitlab tag (again)
* use 64 bit windows target for now
* fix up cpack for macos
* remove god awful "packaging" cruft that is no longer used.
* make gitlab mac runner poop out mac pkg builds too
* static link on macos
* turn off optimizations for releases
* make apple builds build for older versions and embrace the bitrot
* tinker with release scripts to hopefully appease the apple gods.
* macos post install script that bootstraps, generates configs and registers plist
* add plist
* gut ui-*
[ Stephen Shelton ]
* MacOS installer / runtime nonsense
* Bundle gui in mac installer
[ Jason Rhinelander ]
* Consolidate cmake vars & definitions
* Build lokinet-gui with ExternalProject
* Add -DBUILD_PACKAGE=ON to make cpack code opt-in
* Change mac install prefix to /opt/lokinet
* Add simple installer readme
* codesigning and notarization
* Move release motto string into CMakeLists.txt
* Notarize has an "a" in it
* Pass CMAKE_PREFIX_PATH through to lokinet-gui
* NOTARIZE only has one O
[ Stephen Shelton ]
* Include macos uninstall script
[ Jason Rhinelander ]
* Add stapling after notarization
* Bump version to 0.7.1
* Disable thread safety annotations on AppleClang
* Remove unwanted defines
[ Stephen Shelton ]
* Handle no-explicitly-set-dns case in launchd script
-- Jason Rhinelander <jason@imaginary.ca> Tue, 21 Apr 2020 19:26:46 -0300
* 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
* 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 <jason@imaginary.ca> Thu, 16 Jan 2020 01:25:31 -0400
* 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 <jason@imaginary.ca> Wed, 04 Sep 2019 13:37:57 -0300