Commit Graph

553 Commits (e742986e0f53b1d0ba8e1a4c31879708435ccc6f)

Author SHA1 Message Date
Thomas Winget 15229ea7ff
New RC format (#1368)
* initial work for RC SRVs.

Needs tests for new RC format.

Needs SRVs added to new RC, and associated tests.

* convert rc sign/verify test to catch2, add test for new rc

Also fixes a mistake in new rc serialization

* bump loki-mq submodule

need support for viewing bt deserialize consumer buffer so we
know how much it has consumed.

* fix some behavior errors

need to advance llarp_buffer_t after consuming data from it

only rewind and modify size of llarp_buffer_t in owning context.

* Add test for router contact (de-)serialization

Adds a test that makes a list of RouterContact with mixed
versions and ensures it serializes and deserializes correctly.
4 years ago
Jason Rhinelander 5765c128ad
Remove gcc-5 workaround (#1360) 4 years ago
Jason Rhinelander d03066ee05
Support [dns] no-resolvconf option (ignored by lokinet) for deb compatibility (#1362)
* Add ignored [dns]no-resolvconf option for deb backwards compat

The debs hack a `#no-resolvconf=1` into the config file in 0.7 to allow
a user to disable resolvconf setup during startup by uncommenting it.
That doesn't work anymore since 0.8 errors on invalid config options, so
add it as an ignored option so that 0.7 deb config files can still be
compatible.

* Fix `[dns]upstream` comment not being produced in generated conf file

* fix test

Co-authored-by: Jeff <jeff@i2p.rocks>
4 years ago
Jeff c91e4df856
make errors with service keyfile throw (#1358) 4 years ago
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
4 years ago
Jeff 60f4d96ba5
proper route poking (#1330)
* route poking:

* remove popen() call, replace with reading /proc/net/route for getting default route
* dynamically poke and unpoke routes on runtime

* swap intros and fix rpc endpoint for version to return what the ui expects

* use std::string::find_first_not_of instead of using a lambda
4 years ago
Thomas Winget 2c6e7b86c3
SRV records fixes (#1332)
* fix a log print log level

* correctly match SRV record service and protocol...

* tests for new dns question functions
4 years ago
jeff fc5035902a only stop router hive from fixture when router hive is not None 4 years ago
jeff 75f550434c change assert to throw an exception instead when service node has no peer stats enable.
update unit tests so it passes on debian sid
4 years ago
jeff b6d63968c4
* correct unit tests for exit context so they pass
* when providing an ip address for inbound links dont throw if they are valid
4 years ago
jeff 2aaed895f3
disable exits in RCs 4 years ago
Jeff Becker d531769e39
disable long running unit test so ci doesn't take so long 4 years ago
Jeff Becker 576c6ec9d4
fix serialize order of dict in peer stats and make the unit tests match this change 4 years ago
Jeff Becker fa37c7c9b5
use std::array in unit test and initialize it to be all zero so that when we use it the string we cast to is probably null terminated.
also apply clang format
4 years ago
Stephen Shelton 9deee9e542
Add bencoding serialization to PeerStats 4 years ago
Stephen Shelton baac6bf3bd
Update python test code to reflect HiveRouter API 4 years ago
Stephen Shelton 305795315b
Specify disabling RC gossiping (testing only) properly 4 years ago
Stephen Shelton 90ec789fe9
Avoid lokid in router hive 4 years ago
Stephen Shelton 0f074cff8c
Remove ambguity WRT loading and passing of Config 4 years ago
Stephen Shelton f607b99dbe
Fixes to Context::Configure with default config 4 years ago
Stephen Shelton fb75329b88
Update SessionEstablished function sig in test_iwp_session.cpp 4 years ago
Stephen Shelton 97c14d81fd
Refactor test_llarp_exit_context.cpp to remove C API usage 4 years ago
Stephen Shelton ec20d94c6b
Fix Context::Configure() 4 years ago
Stephen Shelton 343252c48d
Use HiveContext and HiveRouter properly 4 years ago
Stephen Shelton 552dcce5fd
Use inheritance to handle Hive injection 4 years ago
Stephen Shelton 1e95625f27
<3 apple -- avoid std::optional::value() 4 years ago
Stephen Shelton 186a35c0e2
Appease clang (fixes for minor compilation errors) 4 years ago
Stephen Shelton bdac43e19f
Peer stats test which artificially stops a router from gossiping its RC 4 years ago
Stephen Shelton 3b6f84c68c
Peek at peer stats db in test_peer_stats 4 years ago
Stephen Shelton d1b629f494
RouterHive ConnectionAttemptEvent 4 years ago
Stephen Shelton d69d538f1a
Add missing files 4 years ago
Stephen Shelton b2a72dd46a
Initial test_peer_stats hive test 4 years ago
Stephen Shelton a9ce319e76
Make llarp_time_t serializable in sqlite_orm 4 years ago
Stephen Shelton aa1c8f257f
Sort out peerstats receive <-> expiry windows 4 years ago
Stephen Shelton 5e05defc76
Add API query for peer stats, other related fixes 4 years ago
Stephen Shelton 595288e046
Add PeerDb::handleGossipedRC 4 years ago
Stephen Shelton 7109ddc951
Add PeerDb::modifyPeerStats() 4 years ago
Stephen Shelton cc6e9c882a
Use foo.snode as peerstats unique id, test file-backed db 4 years ago
Stephen Shelton a30806b375
Some sqlite_orm related fixes 4 years ago
Stephen Shelton 8adb6295fc
Initialize sqlite_orm and start interacting with it 4 years ago
Stephen Shelton 73c9ddff52
Begin peer stats infrastructure 4 years ago
Jason Rhinelander a7c42ab2bd
Use lokimq's hex/base32z encoding/decoding 4 years ago
Jason Rhinelander 271ded7a1f
Fix test variable scope
These variables need to persist past the end of the lambda and weren't;
release builds didn't seem to mind access the freed memory, but Debug
builds triggered failures.
4 years ago
Jeff Becker 8fc52fcbbe
increase test timeout 4 years ago
Jeff Becker c9a2222d39
Revert "bump submodules"
This reverts commit 0de2b994fa3e3252eae46d39960dd17872184050.
4 years ago
Jeff Becker 0f21eeccb0
* rework exit codepath to allow multiple exits
* rework net code for ip ranges to be cleaner
* clean up endpoint auth code
* refactor config to validate network configs before setting up endpoints
* remove buildone from path/pathbuilder.cpp so we don't spam connection attempts
4 years ago
Jeff Becker 2ef2e6171a
bump submodules 4 years ago
Jeff Becker 3cdca30a74
more auth shit 4 years ago
Jeff Becker 0d6e3bcd89
fix crashing tests 4 years ago
Jeff Becker 0787b6e2fd
load config differently for unit tests because they run as root in CI for some reason 4 years ago