Commit Graph

46 Commits

Author SHA1 Message Date
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
ea835405c5
Refactor NotifyRouterEvent() to forward args, event code cleanup
This template-ifies Router::NotifyRouterEvent() up so that it accepts
the arguments to instantiate the specified event type, forwarding them
to std::make_unique. This would allow (in the future) the function to
no-op the call and avoid memory allocation. It also slightly reduces
the amount of code required to fire an event.

This commit also simplifies some of the RouterEvent code to reduce
redundancy.
2020-03-12 11:50:46 -06:00
Thomas Winget
84a1d7dbcc clang format....... 2020-03-06 20:20:11 -05:00
Thomas Winget
f712acc486 huzzah it builds, time to test soon! 2020-03-03 19:57:09 -05:00
Jeff Becker
da79b14703 make it compile 2020-03-03 19:57:09 -05:00
Thomas Winget
8dc5dabe49 working toward compilation, still has include issue 2020-03-03 19:57:09 -05:00
Thomas Winget
8d03e6dd3c more router hive stuff, read below the fold
Router now has a hive pointer if LOKINET_HIVE is set.
llarp::Context has a method InjectHive to give Router the pointer.
Router has a method NotifyRouterEvent which does:
  - when LOKINET_HIVE is set, passes the event to RouterHive
  - else when LOKINET_DEBUG is set, prints the event at a low log level
  - else NOP
2020-03-03 19:57:09 -05:00
Thomas Winget
74d421ac2d PathBuildNumber -> NextPathBuildNumber because increment side-effect 2020-02-20 16:57:48 -05:00
Thomas Winget
fc56a018e5 path builder prints hops, rest print short name 2020-02-20 16:37:39 -05:00
Jeff Becker
ea3851d15f
rc gossiping 2020-02-12 12:10:48 -05:00
Stephen Shelton
fba12093ac
Remove dead code (AbstractRouter::EnsureRouter()) 2020-01-22 11:15:40 -07:00
Jeff Becker
e5f92eaa79
only ping lokid if a service node 2020-01-07 12:58:49 -05:00
Jeff Becker
f56e543d75
add deadlock checker and revert bencode change from long ago 2019-12-07 14:58:19 -05:00
Stephen Shelton
2c6226f54a Backup SNApp keys when migrating to new ed25519 crypto 2019-12-06 11:21:14 -07:00
jeff
58a25602f5 more fixes, implemenmt missing functions 2019-10-09 09:08:38 -04:00
Michael
15cb49c9bd
Introduce --background to only start JSON RPC
fixes #853
2019-10-04 10:32:52 +01:00
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
2019-07-25 17:46:56 -04:00
Thomas Winget
baf8019fe5 Refactor Router code into more classes
This commit refactors functionality from the Router class into separate,
dedicated classes.
There are a few behavior changes that came as a result of discussion on
what the correct behavior should be.
In addition, many things Router was previously doing can now be provided
callback functions to alert the calling point when the asynchronous
action completes, successfully or otherwise.
2019-07-25 14:11:02 -04:00
Jeff Becker
b9bcc2b775
make threadpool consice 2019-07-09 09:47:24 -04:00
Jeff Becker
9ec41b8831
update RC expiration logic, lookup more often and remove stale entries 2019-06-10 08:47:21 -04:00
Jeff Becker
762a0c534f
Merge remote-tracking branch 'origin/master' 2019-05-29 08:09:02 -04:00
Michael
491fee206b
Port code to use CryptoManager over passing Crypto pointers 2019-05-28 20:45:08 +01:00
Jeff Becker
2897141036
make format and introduce new function EnsureRouter on router to check nodedb or do dht lookup 2019-05-28 07:35:26 -04:00
Jeff Becker
a375f1103f
explicitly lookup router if not connected to it on LRCM forward. 2019-05-27 15:01:09 -04:00
Jeff Becker
64c7ed42fc
make format 2019-05-22 12:20:50 -04:00
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
2019-05-22 12:20:03 -04:00
Michael
636bb2a17d
Convert router diskworker to use a modern ThreadPool 2019-05-18 23:04:08 +01:00
Jeff Becker
ecc39428f6
count routers correctly 2019-05-09 11:36:39 -04:00
Jeff Becker
d423ee02d2
use shared_ptr 2019-05-03 09:15:03 -04:00
Jeff Becker
bb47d612b3
more 2019-04-30 12:07:17 -04:00
Jeff Becker
3a8cb0bfb5
add shell based hooks for service::Endpoint, also make format 2019-04-22 08:25:25 -04:00
Michael
c39c931d03
Remove IStateful virtual inheritance 2019-04-19 16:10:26 +01:00
Jeff Becker
94eb37d490
bundle RC in build record to improve build success rates. 2019-04-17 15:05:54 -04:00
Jeff Becker
e178a70929
use shared_ptr for event loop 2019-04-08 08:01:52 -04:00
Jeff
97b9c679b0 don't use bootstrap nodes for first hops in paths 2019-04-03 15:05:44 -04:00
Jeff Becker
965b0957ee
tweaks 2019-03-31 11:09:59 -04:00
Jeff Becker
f8d6becce8
make whitelist happy 2019-02-27 07:55:26 -05:00
Jeff Becker
ef13ec7499
Merge remote-tracking branch 'origin/staging' into staging 2019-02-26 07:55:27 -05:00
Michael
4fb2b39f74
Format changes 2019-02-22 17:18:54 +00:00
Michael
89ae60cfab
llarp::Context uses AbstractRouter now 2019-02-22 16:21:05 +00:00
Jeff Becker
7428855698
try fixing timeout bug after 6 or so hours 2019-02-20 07:09:18 -05:00
Rick V
5a3947ca5c
clang-format 2019-02-18 17:58:12 -06:00
Jeff Becker
445ed05b32
make format 2019-02-18 14:44:41 -05:00
Jeff Becker
b5a1637224
make shared lib compile 2019-02-15 17:55:52 -05:00
Jeff Becker
1d958d95de
* make rpc compile right
* make link sessions introspectable
* make utp write buffers fully flush each tick
2019-02-15 17:19:19 -05:00
Michael
048fa83c39
Finish replacement of Router with AbstractRouter 2019-02-14 22:31:31 +00:00