Commit Graph

38 Commits

Author SHA1 Message Date
Thomas Winget
7caa87862e standardize include format and pragma once
All #ifndef guards on headers have been removed, I think,
in favor of #pragma once

Headers are now included as `#include "filename"` if the included file
resides in the same directory as the file including it, or any
subdirectory therein.  Otherwise they are included as
`#include <project/top/dir/relative/path/filename>`

The above does not include system/os headers.
2021-03-09 19:01:41 -05:00
Jeff Becker
df4ea34a56
nodedb refactor
* bump zmq static dep
* lokimq -> oxenmq
* llarp_nodedb -> llarp::NodeDB
* remove all crufty api parts of NodeDB
* make NodeDB rc selection api not suck
* make path builder api not suck
* propagate all above changes so that unit tests work and it all compiles
2021-02-02 09:35:40 -05:00
Jeff
21930cf667
LNS (#1342)
* initial relay side lns

* fix typo

* add reserved names and refactor test for dns

* lns name decryption

* all wired up (allegedly)

* refact to use service::EncryptedName for LNS responses to include nonce with ciphertext

* fully rwemove tag_lookup_job

* replace lns cache with DecayingHashTable

* check for lns name validity against the following rules:

* not localhost.loki, loki.loki, or snode.loki

* if it contains no dash then max 32 characters long, not including the .loki tld (and also assuming a leading subdomain has been stripped)

* These are from general DNS requirements, and also enforced in
registrations:

* Must be all [A-Za-z0-9-]. (A-Z will be lower-cased by the RPC call).

* cannot start or end with a -

* max 63 characters long if it does contain a dash

* cannot contain -- in the third and fourth characters unless it starts with xn--

* handle timeout in name lookup job by calling the right handler with std::nullopt
2020-09-17 15:18:08 -04:00
Jason Rhinelander
ebd2142114 Don't use std::optional::value() because f u macos
This replaces all use of std::optional's `opt.value()` with `*opt`
because macOS is great and the ghost of Steve Jobs says that actually
supporting std::optional's value() method is not for chumps before macOS
10.14.  So don't use it because Apple is great.

Pretty much all of our use of it actually is done better with operator*
anyway (since operator* doesn't do a check that the optional has a
value).

Also replaced *most* of the `has_value()` calls with direct bool
context, except for one in the config section which looked really
confusing at a glance without a has_value().
2020-05-20 19:18:28 -03:00
Stephen Shelton
273270916e
The Great Wall of Blame
This commit reflects changes to clang-format rules. Unfortunately,
these rule changes create a massive change to the codebase, which
causes an apparent rewrite of git history.

Git blame's --ignore-rev flag can be used to ignore this commit when
attempting to `git blame` some code.
2020-04-07 12:38:56 -06:00
Stephen Shelton
9be8050854
Make format 2020-03-02 09:57:37 -07:00
Stephen Shelton
886a981997
Consolidate introset publishing constants 2020-03-02 09:57:37 -07:00
Stephen Shelton
bbee45118e
Remove redundant lookup logic from relays 2020-03-02 09:27:07 -07:00
Stephen Shelton
63c3106db2
Make format 2020-02-20 13:14:20 -07:00
Stephen Shelton
66cb30fa58
Refactor: remove recursionDepth from DHT lookups 2020-02-20 11:18:05 -07:00
Stephen Shelton
45a36fcfee
Rework FindIntro logic per redundant strategy 2020-02-20 09:23:41 -07:00
Stephen Shelton
9dfcfbc3ac Bencode/decode relayOrder in lexigraphical order, make it uint64_t 2020-02-14 17:43:13 -04:00
Stephen Shelton
127e7ef31b Make format 2020-02-14 17:43:13 -04:00
Stephen Shelton
6ca2c11e59 Serialize / deserialize relayOrder @ FindIntroMessage 2020-02-14 17:43:13 -04:00
Stephen Shelton
906803e387 Refactor DHT introset lookups to use redundant lookup strategy 2020-02-14 17:43:13 -04:00
Jeff Becker
00260555bd
logic simplification 2020-02-07 15:28:13 -05:00
Jeff Becker
e4a16dfdd5
fix comment 2020-02-07 15:22:58 -05:00
Jeff Becker
b211450cc8
always recurse to second closest if we don't have it 2020-02-07 15:20:47 -05:00
Jeff Becker
19d91a440f
move declaration of peer 2020-02-07 14:50:02 -05:00
Jeff Becker
3bea7327cb
handle end case by telling requester that it's not there 2020-02-07 14:46:12 -05:00
Jeff Becker
7e1a6236be
if relayed try closer router if we don't have an intro 2020-02-07 14:35:57 -05:00
Jeff Becker
99eb7726ff
initial dht key blinding 2020-01-27 16:30:41 -05:00
Jeff Becker
626b2a6196
return true 2020-01-23 12:10:58 -05:00
Jeff Becker
e87b754906
fix recursion depth on introset lookup 2020-01-23 12:10:58 -05:00
Jeff Becker
2c0dc12f39
refactor single char variables in DHT (mostly) 2020-01-23 12:10:58 -05:00
Jeff Becker
49f696de9c
connect to closer nodes for introset lookups 2020-01-23 12:10:57 -05:00
Jeff Becker
3b66cf6e75
dht fixes, disable iterative lookups on clients, revert "fixes" from 0.6.3, pass in recursion depth from introset lookup 2020-01-22 17:08:05 -05:00
Stephen Shelton
66a058a2af Make format 2019-12-06 10:13:09 -07:00
Stephen Shelton
db56e17c23 Rename bencode function for clarity 2019-11-22 14:14:37 -07:00
Michael
16cdfbd5f0
clang-tidy modernize pass 2019-08-12 16:52:58 +01:00
Michael
488695047f
Remove redundant else blocks 2019-07-09 22:54:46 +01:00
Jeff Becker
d423ee02d2
use shared_ptr 2019-05-03 09:15:03 -04:00
Michael
13a9f65520
Fully define interface for dht::Context 2019-02-22 15:08:08 +00:00
Ryan Tharp
4bf4faa956 make format 2019-02-04 16:41:33 -08:00
Michael
2de621b0ad
Disable copy constructing llarp_buffer_t 2019-02-01 01:58:13 +00:00
Michael
03d56c1591
Add test suites for dht bucket, kademlia and key 2019-01-19 01:41:14 +00:00
Michael
7296ebcbe8
Tidy dht code 2019-01-19 01:41:14 +00:00
Michael
4257b62e88
Add .cpp files for all .hpp files 2018-12-15 16:21:52 +00:00