Commit Graph

164 Commits (a6f901a3a996a3b5bc52355b47ea84f1182e5cb9)

Author SHA1 Message Date
Thomas Winget 771d0b4489 hive pytest framework in place (and path build test works)! 5 years ago
Thomas Winget a9882ad475 PathRequestReceivedEvent implemented 5 years ago
Jeff Becker 32e768d7dd
change log 5 years ago
Jeff Becker bf0416cab8
remove Time_t, add operator overload for printing llarp_time_t and add to_json function for serializing llarp_time_t to json 5 years ago
Jeff Becker d2d109e92c
llarp_time_t is now using std::chrono 5 years ago
Jason Rhinelander 089056ca5b Remove all ABSL_ATTRIBUTE_UNUSED uses 5 years ago
Jason Rhinelander f84ce61d66 Removed empty cpp files
These aren't needed: CMake already knows how to follow #includes and
rebuild when headers change as long as the headers are included
*somewhere*.  The extra .cpp files here just require building a bunch of
.cpp files with just header content that we just end up throw away
during linking (since the same things will also be compiled in whatever
other compilation units include the same headers).
5 years ago
Jason Rhinelander b4440094b0 De-abseil, part 2: mutex, locks, (most) time
- util::Mutex is now a std::shared_timed_mutex, which is capable of
  exclusive and shared locks.

- util::Lock is still present as a std::lock_guard<util::Mutex>.

- the locking annotations are preserved, but updated to the latest
  supported by clang rather than using abseil's older/deprecated ones.

- ACQUIRE_LOCK macro is gone since we don't pass mutexes by pointer into
  locks anymore (WTF abseil).

- ReleasableLock is gone.  Instead there are now some llarp::util helper
  methods to obtain unique and/or shared locks:
    - `auto lock = util::unique_lock(mutex);` gets an RAII-but-also
      unlockable object (std::unique_lock<T>, with T inferred from
      `mutex`).
    - `auto lock = util::shared_lock(mutex);` gets an RAII shared (i.e.
      "reader") lock of the mutex.
    - `auto lock = util::unique_locks(mutex1, mutex2, mutex3);` can be
      used to atomically lock multiple mutexes at once (returning a
      tuple of the locks).
  This are templated on the mutex which makes them a bit more flexible
  than using a concrete type: they can be used for any type of lockable
  mutex, not only util::Mutex.  (Some of the code here uses them for
  getting locks around a std::mutex).  Until C++17, using the RAII types
  is painfully verbose:

  ```C++
  // pre-C++17 - needing to figure out the mutex type here is annoying:
  std::unique_lock<util::Mutex> lock(mutex);
  // pre-C++17 and even more verbose (but at least the type isn't needed):
  std::unique_lock<decltype(mutex)> lock(mutex);
  // our compromise:
  auto lock = util::unique_lock(mutex);
  // C++17:
  std::unique_lock lock(mutex);
  ```

  All of these functions will also warn (under gcc or clang) if you
  discard the return value.  You can also do fancy things like
  `auto l = util::unique_lock(mutex, std::adopt_lock)` (which lets a
  lock take over an already-locked mutex).

- metrics code is gone, which also removes a big pile of code that was
  only used by metrics:
  - llarp::util::Scheduler
  - llarp:🧵:TimerQueue
  - llarp::util::Stopwatch
5 years ago
Jason Rhinelander ac1486d0be Replace absl::optional with optional-lite
Step 1 of removing abseil from lokinet.

For the most part this is a drop-in replacement, but there are also a
few changes here to the JSONRPC layer that were needed to work around
current gcc 10 dev snapshot:

- JSONRPC returns a json now instead of an optional<json>.  It doesn't
  make any sense to have a json rpc call that just closes the connection
  with returning anything.  Invoked functions can return a null (default
  constructed) result now if they don't have anything to return (such a
  null value won't be added as "result").
5 years ago
Jeff Becker 9efd796145
initial wack at 0.7.0 dht fixes 5 years ago
Jeff Becker 4185d47d4b
link layer message priority 5 years ago
Jeff Becker ecf2685aa3
use optional 5 years ago
Jeff Becker d7c78b0c71
comments 5 years ago
Jeff Becker f3e96e06b2
propagate error to client 5 years ago
Jeff Becker a9c9fe9c24
limit client side path builds per ip 5 years ago
Stephen Shelton 66a058a2af Make format 5 years ago
Stephen Shelton 93b8832026
Merge branch 'dev' into private-keys-backup-support 5 years ago
Jeff Becker 56dce90de9
add trace log level for tracking logic thread jobs 5 years ago
Stephen Shelton db56e17c23 Rename bencode function for clarity 5 years ago
Stephen Shelton 1666498405 Replace bencode_write_version_entry with a more general-purpose function for writing bencoded dictionary entries 5 years ago
Jason Rhinelander d96d33329b
Merge pull request #912 from majestrate/logic-thread-fix-2019-11-13
fix logic thread behavior
5 years ago
Jason Rhinelander 6524563d33
Merge pull request #897 from majestrate/bencode-seek-for-version-2019-11-03
seek for version and set it before deserializing
5 years ago
Jeff Becker b34caa3e26
make unit tests pass for iwp 5 years ago
Thomas Winget 75512b1b58 ban zero id for pathid; clarity and cleanup 5 years ago
Thomas Winget 9d3e7d349c Add per-path queues, prioritize control messages over traffic 5 years ago
Jeff Becker 9d266dbec7
meh 5 years ago
Jeff Becker bdb0b847f8
seek for version and set it before deserializing 5 years ago
Jeff Becker 5cdd92e2a3
remove more locking and make it safe 5 years ago
Michael edd0ec398f
Move thread stuff to subdirectory 5 years ago
Michael 0950571313
Move metrics to subdirectory 5 years ago
Michael 4d8fe2a8a8
Move meta programming to subdirectory 5 years ago
Michael 1aec0dfa2b
Move logging to subdirectory 5 years ago
Michael 16cdfbd5f0
clang-tidy modernize pass 5 years ago
Michael 4763888d2c
Add fail-able docker build for gcc trunk 5 years ago
Thomas Winget 697ece64cc make TransitHop self-destruct if path is invalidated 5 years ago
Thomas Winget 38fd0552d3 Adds Link-Relay Status Messages
Success case:
  - the path endpoint creates and sends a LR_StatusMessage upon
    successful path creation

Failure case:
  - an intermediate hop creates and sends a LR_StatusMessage upon
    failure to forward the path to the next hop for any reason

Both cases:
  - transit hops receive LR_StatusMessages and add a frame
    to them reflecting their "status" with respect to that path
  - the path creator receives LR_StatusMessages and decrypts/parses
    the LR_StatusRecord frames from the path hops.  If all is good,
    the Path does as it would when receiving a PathConfirmMessage.
    If not, the Path marks the new path as failed.

LR_StatusMessage is now used/sent in place of PathConfirmMessage
5 years ago
Michael 488695047f
Remove redundant else blocks 5 years ago
Michael 08609f9e5a
Rename message files 5 years ago
Michael 68063b320c
Rename InboundMessageParser to LinkMessageParser 5 years ago
Michael 8884d0d9d4
Merge changes from upstream 5 years ago
Michael 333b23b59c
Tweak link message parser 5 years ago
Michael 8a058fcb34
Move other messages 5 years ago
Michael 83bd9227a7
Move exit messages 5 years ago
Michael d6751e3eeb
Move subset of messages to right directory 5 years ago
Michael 2291d48bcc
Move remaining messages around 5 years ago
Michael 66cf5cc73d
Move exit messages to match header 5 years ago
Michael b89689fec3
Refactor path build code 5 years ago
Michael 95646d2d87
Publish metric tags 5 years ago
Michael 75430a234c
Convert to use memFn 5 years ago
Michael 491fee206b
Port code to use CryptoManager over passing Crypto pointers 5 years ago
Michael 3f53965b71
Remove all use of IBEncodeMessage 5 years ago
Jeff Becker 64c7ed42fc
make format 5 years ago
Jeff Becker 9c96aecf3f
move llarp::Logic to std::shared_ptr
add sequence numbers to HSD messages

begin work on network isolation code

add more docs
5 years ago
Michael 7ca0927d8f
Replace dict_reader/list_reader with version which doesn't involve indirection 5 years ago
Michael dd8a93a400
Apply rule of zero to code base 5 years ago
Jeff Becker d423ee02d2
use shared_ptr 6 years ago
Jeff Becker 2a7ebce8f4
Merge remote-tracking branch 'origin/master' 6 years ago
Jeff Becker d50b18d7b0
try fixing leak also make format 6 years ago
Jeff a5cc5225ab static function 6 years ago
Jeff 7cb659343b static function 6 years ago
Jeff 27fac68716 fix 6 years ago
Jeff 01906c5d94 Merge remote-tracking branch 'origin/master' 6 years ago
Michael 0b4d787042
More work on router docker image
- Multi-stage docker build (final image only 15MB!)
- Build in release mode
    - Fix bug with release mode
    - Fix compiler being dumb AF
    - Disable FORTIFY for now
- Enable LTO when making a staticly linked release
- Fix some gcc specific warnings
- Refactor cmake stuff into multiple files
6 years ago
Michael 9ee525a006
Fix shadowing warnings 6 years ago
Jeff Becker af1529fa72
Merge remote-tracking branch 'origin/master' 6 years ago
Michael 4143472a17
Add cmake module to target a library as 'system', and fix a few warnings 6 years ago
Jeff Becker 5872573e91
rename Logic and Crypto functions to GetLogic and GetCrypto 6 years ago
Jeff Becker a2912ff860
Merge remote-tracking branch 'origin/master' 6 years ago
Michael e33a33635c
Remove usage of raw new from service classes 6 years ago
Jeff Becker 3a8cb0bfb5
add shell based hooks for service::Endpoint, also make format 6 years ago
michael-loki 0195152e05 Allow builds on MSVC (#518)
* Import cxxopts to replace getopts usage

* Add visual studio build things

* Fixup abseil build parts

* Replace __attribute__((unused)) with ABSL_ATTRIBUTE_UNUSED

* Fixup minor windows build issues

* Replace getopts usage

* Temporarily fixup .rc files

* More minor windows fixes

* Get a working build

* Revert .rc files

* Revert changes to nodedb
6 years ago
Jeff Becker 94eb37d490
bundle RC in build record to improve build success rates. 6 years ago
Jeff Becker 9503cc66f0
add disk worker based file flusher logger
make format

remove package.json
6 years ago
Jeff 5834607997 * don't ban bootstrap nodes with profiling
* less vigorous profiling timeouts
* async remove rc from disk
6 years ago
Jeff Becker c910a2a2fb
more 6 years ago
Michael 3bada02d89
Fixup one ASAN warning 6 years ago
Jeff Becker b254c19c5f
more metrics 6 years ago
Jeff Becker 0258eb9cb8
add some metrics 6 years ago
Jeff Becker 77e238bf94
stick for 10 seconds longer in relay commit 6 years ago
Jeff 5c941263e9
Merge pull request #339 from michael-loki/dht_context_testing
Solidify interfaces
6 years ago
Michael 4fb2b39f74
Format changes 6 years ago
Jeff Becker 068b60221c
don't ever fail on dht messages 6 years ago
Rick V 5a3947ca5c
clang-format 6 years ago
Michael a00d6afc5e
Convert llarp_buffer_t to be a class with methods 6 years ago
Michael 048fa83c39
Finish replacement of Router with AbstractRouter 6 years ago
Michael 67b5d48095
Replace usage of new/delete with unique_ptr/stack allocation 6 years ago
Michael 729cd045f1
Convert llarp::Router into an abstract base class 6 years ago
Ryan Tharp 4bf4faa956 make format 6 years ago
Michael 7ca3e13e78
Rename to ManagedBuffer 6 years ago
Michael 47380ba64b
Simplify some code 6 years ago
Michael f3b0af9d2f
Create CopyableBuffer type 6 years ago
Michael 2de621b0ad
Disable copy constructing llarp_buffer_t 6 years ago
Michael f24f554a01
Convert llarp::Crypto into an abstract base class 6 years ago
Michael 2d395cc3f9
Move code to correct home 6 years ago
Michael 550669e318
Fix typo in class name 6 years ago
Michael da6cdfc0b2
More refactoring to continue to make dependency graph acylic 6 years ago
Michael 6e38e85a79
Produce hierarchy of 'libraries' inside libllarp 6 years ago
Michael 79157414f3
Split crypto.hpp into 3 different files 6 years ago
Michael 04e0fe3ad7
Move crypto code to a subdirectory 6 years ago
Michael 081d4dfa32
Reorganise source into more folders 6 years ago