Commit Graph

254 Commits

Author SHA1 Message Date
Michael
edd0ec398f
Move thread stuff to subdirectory 2019-09-03 20:52:28 +01:00
Michael
0950571313
Move metrics to subdirectory 2019-09-03 20:52:28 +01:00
Michael
4d8fe2a8a8
Move meta programming to subdirectory 2019-09-03 20:52:28 +01:00
Michael
1aec0dfa2b
Move logging to subdirectory 2019-09-03 20:52:27 +01:00
Michael
16cdfbd5f0
clang-tidy modernize pass 2019-08-12 16:52:58 +01:00
Jeff
183ec25717
Merge pull request #729 from majestrate/fix-android-2019-07-24
make android compile again
2019-07-25 14:24:13 -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
43cb62af16
fix android compile, have makefile pull in libuv for cmake on android 2019-07-24 11:25:40 -04:00
Jeff Becker
16e20a9e79
try fixing bootstrap 2019-07-15 12:56:09 -04:00
Jeff
284a352dda fix previous commit 2019-07-13 07:57:41 -04:00
Jeff
b9cdfd116e correct worker threads amounts 2019-07-13 07:54:58 -04:00
Jeff Becker
1fd6b5ae74
Merge remote-tracking branch 'origin/master' into ipv6-tun 2019-07-12 09:53:52 -04:00
Jeff Becker
749ee7cb9f
make it compile 2019-07-10 10:11:06 -04:00
Jeff Becker
fcc3c05124
Merge remote-tracking branch 'origin/master' into ipv6-tun 2019-07-10 10:07:19 -04:00
Michael
488695047f
Remove redundant else blocks 2019-07-09 22:54:46 +01:00
Jeff Becker
edd3611166
correct name 2019-07-09 10:05:31 -04:00
Jeff Becker
ec6a1cfddc
make it compile 2019-07-09 09:58:16 -04:00
Jeff Becker
84407b3557
make it compile 2019-07-09 09:54:13 -04:00
Jeff Becker
b9bcc2b775
make threadpool consice 2019-07-09 09:47:24 -04:00
Michael
3ce90b678e
Allow override of the rest of the config 2019-07-09 00:29:43 +01:00
Michael
937f28f75d
Move router config to be encapsulated 2019-07-09 00:29:43 +01:00
Michael
f310160065
Fixup and add tests 2019-07-06 14:46:25 +01:00
Michael
a2326efa37
Revert "Merge pull request #679 from tewinget/revert-config-refactor"
This reverts commit 2996a7f29c, reversing
changes made to 10df3bd4b3.
2019-07-06 14:46:25 +01:00
Thomas Winget
d044d60101 Reverts #678 #677 and #669 with hashes:
10df3bd
766ece8
979f095

See those commits for further details
2019-07-02 11:02:20 -04:00
Michael
b51f7d8015
Convert to load config in config loader 2019-07-02 01:58:39 +01:00
Michael
00c237dc6d
Move config class to its own dir 2019-07-02 01:58:38 +01:00
Michael
fedf6cb8e0
Send netid to metrictank 2019-06-20 00:00:59 +01:00
Rick V
5092a1fa85
restore llarp_make_ev_loop() as we only use libuv now; separate function is now ded code 2019-06-17 23:29:46 -05:00
Michael
c0525f2ea3
Move local publishers to their own files 2019-06-15 15:48:48 +01: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
223f2702d3
Merge branch 'fix-big-ooooofff' 2019-06-06 06:53:54 -04:00
Michael
75430a234c
Convert to use memFn 2019-06-02 22:19:10 +01:00
Jeff Becker
9deafa4cb8
use libuv 2019-06-02 17:17:05 -04:00
Michael
8323725509
Initial No-Op Crypto implementation 2019-05-29 09:46:34 +01:00
Michael
491fee206b
Port code to use CryptoManager over passing Crypto pointers 2019-05-28 20:45:08 +01: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
Jeff Becker
7b03b63d13
more sighup code 2019-05-07 14:15:22 -04:00
Jeff Becker
a53da68700
start work on sighup 2019-05-07 13:46:38 -04:00
Jeff Becker
8484e29c9b
turn more stuff into std::shared_ptr
remove dead codepaths
2019-04-23 10:47:23 -04:00
Jeff Becker
3a8cb0bfb5
add shell based hooks for service::Endpoint, also make format 2019-04-22 08:25:25 -04:00
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
2019-04-19 13:24:33 -05:00
Michael
fb0f08ec01
Make JSON metrics opt-in 2019-04-16 02:26:08 +01:00
Michael
ae341b40fd
fixup! MetricTank metric collector 2019-04-14 18:29:35 +01:00
Michael
9bc501bbf7 Integrate metric tank into build 2019-04-14 17:18:32 +01:00
Michael
544c5f9b61 Move metrics publishers to their own directory 2019-04-14 17:18:32 +01:00
Jeff Becker
3da6551e82
make android compile 2019-04-08 11:54:19 -04:00
Jeff Becker
184971a446
Merge remote-tracking branch 'origin/master' 2019-04-08 08:03:02 -04:00
Jeff Becker
e178a70929
use shared_ptr for event loop 2019-04-08 08:01:52 -04:00
Michael
5df8e16c44
Add metrics section to config 2019-04-07 18:55:21 +01:00
Michael
57d6668e55
Move metrics out of daemon into llarp::Context 2019-04-05 10:20:48 +01:00
Michael
89ae60cfab
llarp::Context uses AbstractRouter now 2019-02-22 16:21:05 +00:00
Michael
13a9f65520
Fully define interface for dht::Context 2019-02-22 15:08:08 +00:00
Michael
4fc582af96
Fix annoying typo 2019-02-12 00:33:19 +00:00
Michael
67b5d48095
Replace usage of new/delete with unique_ptr/stack allocation 2019-02-11 16:24:05 +00:00
Michael
729cd045f1
Convert llarp::Router into an abstract base class 2019-02-06 09:59:47 +00:00
Michael
f24f554a01
Convert llarp::Crypto into an abstract base class 2019-01-26 15:40:58 +00:00
Jeff Becker
d89e58199a
add initial identity key seed stuff
add more kubernetes stuff

make shared library installed if built
2019-01-21 10:45:18 -05:00
Jeff Becker
177dca91e2
add pidfile option 2019-01-18 08:24:33 -05:00
Michael
da6cdfc0b2
More refactoring to continue to make dependency graph acylic 2019-01-15 23:15:44 +00:00
Michael
081d4dfa32
Reorganise source into more folders 2019-01-11 01:19:49 +00:00
Michael
fa2b466ffe
Reorganise tests to mirror source layout 2019-01-11 00:12:52 +00:00
Michael
e5eda0fb8f
Move lokinet unspecific components to a util/ library 2019-01-10 20:07:24 +00:00
Jeff Becker
2afe296f8b
for real fix issue #185 2018-12-28 10:34:41 -05:00
Jeff Becker
e835c5f69a
add graceful stop for path builders and friends 2018-12-24 11:09:05 -05:00
Jeff Becker
cca19290de
session renegotiation, RC expiration, more utp unit tests, network isolation. 2018-12-19 11:17:41 -05:00
Jeff Becker
be234e4b6e
* make format
* snode to snode direct traffic

* wire up dns on service node tun
2018-12-13 11:14:44 -05:00
Michael
85dde7b6b0
Move remaining include/llarp headers to llarp/ 2018-12-12 02:53:02 +00:00
Michael
e887b4e9c7
Move service* to llarp/ 2018-12-12 02:53:01 +00:00
Michael
7be452092c
Convert llarp_crypto to be a true C++ class 2018-12-11 00:53:55 +00:00
Michael
6358b25db0
Convert llarp_nodedb to be a true C++ class 2018-12-10 23:31:39 +00:00
Michael
f0fce5b68a
Convert llarp_router to be a true C++ class 2018-12-10 20:15:35 +00:00
Michael
30e9dca2e5
Convert llarp_logic to be a C++ class 2018-12-10 14:15:11 +00:00
Jeff Becker
1d1bde2e88
add dnslib 2018-12-03 17:22:59 -05:00
Jeff Becker
622ed8d12e
fix crash on premature close of event loop (also make format) 2018-12-02 13:07:07 -05:00
Jeff Becker
7bc3d94895
try fixing rdns for local interace's address 2018-11-30 09:14:30 -05:00
Jeff Becker
11372c9544
Merge branch 'dev' into snode-endpoint 2018-11-29 09:34:19 -05:00
Jeff Becker
90a2545bb1
handle SIGTERM 2018-11-29 08:12:28 -05:00
Jeff Becker
7e4d74cbfc
add initial jni stuff for lokinet android. i fucking hate android so god damn much. 2018-11-26 17:46:22 -05:00
Jeff Becker
7090a012f3
Merge remote-tracking branch 'micheal/wextra' into dev 2018-11-07 10:57:34 -05:00
Michael Thorpe
33bfaf7ecd
Enable -Wextra
test criteria:
- test build on macOS
- test build in debian docker container
- test build in fedora docker container
2018-11-07 15:31:13 +00:00
Jeff Becker
f1cca956f9
make android compile again 2018-11-06 09:06:09 -05:00
despair
38f2a6b2c9 be slightly less annoying
check build rules
2018-10-30 00:16:34 -05:00
despair
c5d1b32286 remove microsoft c++ crud
🤔🤔🤔🤔
2018-10-30 00:16:33 -05:00
cathugger
4971fae171 uint32_t byte ordering type safety 2018-10-10 15:16:10 +00:00
Ryan Tharp
cc42e8e623 guard, rename endpoint to context, main_router_endpoint_iterator() implementation 2018-10-03 04:00:47 -07:00
Ryan Tharp
9ea564e832 update llarp_main_init_dnsd to make new DNSd init 2018-09-29 03:27:38 -07:00
Ryan Tharp
902f6f14b7 pass RC by ref, header cleanup, clang format 2018-09-24 06:10:36 -07:00
Ryan Tharp
9d4d595624 compile fixes 2018-09-22 03:39:53 -07:00
Ryan Tharp
6590d502cd get first tun interface wiring 2018-09-22 03:23:23 -07:00
Ryan Tharp
ca7d3567a2 prefetch and expose it 2018-09-21 12:53:20 +00:00
Ryan Tharp
4df6202c9f Merge branch 'master' of https://github.com/loki-project/loki-network 2018-09-21 12:51:54 +00:00
Jeff Becker
4e7c6ee90a
fix crash 2018-09-21 08:30:57 -04:00
Ryan Tharp
79fb82a3c8 main_router_getRange to get access to tun 2018-09-20 12:34:53 +00:00
Ryan Tharp
2bdee7d528 expose mapAddress of first tunEndpoint 2018-09-20 03:05:42 -07:00
Ryan Tharp
f283923cb7 Merge branch 'master' of https://github.com/loki-project/loki-network 2018-09-19 12:28:48 +00:00
Ryan Tharp
9f33edeed0 Merge branch 'master' of https://github.com/loki-project/loki-network 2018-09-19 12:22:34 +00:00
Jeff Becker
2761da0b5f
actually load config 2018-09-17 08:02:09 -04:00
Jeff Becker
e047bfa266
update readme
add sighup
2018-09-17 07:47:34 -04:00
Jeff Becker
c3c388b6aa
remove iwp and start on curvecp
does not compile
2018-09-02 14:25:42 -04:00
Jeff Becker
973f86c900
it compiles 2018-08-31 08:46:54 -04:00
Jeff Becker
5228a81bae
more refactor
get rid of C api
2018-08-30 14:48:43 -04:00
Ryan Tharp
8724ddd792 Merge branch 'master' of https://github.com/loki-project/loki-network 2018-08-23 22:51:23 +00:00
despair86
9ad93a0893 sunos patches, avoid shadowing data members in derived classes, header fixes
SunOS build works, with a few issues:

- no tuntap debugging on Solaris? (TUNSDEBUG ioctl missing)
- regular socket ioctls are not pulled in with #include <sys/ioctl.h>
  even though they're included at the bottom of same (filio.h,
  sockio.h)
- no named threads in any libre fork of solaris

-despair86 (rick)

sun patch
2018-08-18 21:25:24 -05:00
Ryan Tharp
3ada1e15be llarp_main_queryDHT_RC(), llarp_main_init_dnsd(), actually query DHT on dns lookup 2018-08-09 04:22:57 -07:00
Jeff Becker
62f41d3747
initial threadpool isolation code and run make format 2018-08-08 13:43:46 -04:00
despair86
bdc54835c2 initial windows server port. Requires Windows 2000 Server or later.
- updated CMake build script
- builds with Microsoft C++ 19.1x. such builds require Windows 8.1 or later
  unless you have the .NET Server 2003-toolset (v141_xp)
- windows port requires a C++17 compiler since cpp17::filesystem is POSIX-only
- HAVE_CXX17_FILESYSTEM manual toggle in CMake. You must manually specify where
  std::[experimental::]filesystem is defined in LDFLAGS or CMAKE_x_LINKER_FLAGS.
- IPv6 support can be added at any time, and the windows sdk still has that
  inline getaddrinfo(3) if it can't find a suitable IPv6 stack.
- inline code for mingw-w64: there's a few bits and pieces still missing simply because
  mingw-w64 derives its windows sdk from wine and reactos, and then writing all the newer
  stuff into it by hand straight from the MSDN manpages.
- misc. C++11 stuff (nullptr and friends)
- Internal file handling code takes UTF-8 or plain 8-bit text, NTFS is UTF-16, so
  std::filesystem::path::c_str() is wchar_t. That's no good unless you first
  call std::filesystem::path::string().
- implemented getifaddrs(3) and if_nametoindex(3) on top of GetAdapters[Info|Addresses](2).
- updated readme with new info

BONUS: may implement Solaris/illumos IOCP someday...

-despair86
2018-08-01 23:41:02 -05:00
Jeff Becker
928ec3790d deterministic logging 2018-07-31 08:35:54 +10:00
Jeff Becker
d011fb550e have logic and netio run in same thread for now 2018-07-30 08:20:31 +10:00
Jeff Becker
07b99e8ac4 extern "C" block for shared library 2018-07-27 13:41:55 +10:00
Ryan Tharp
bd229be656 handleBaseCmdLineArgs() refactor 2018-07-26 03:52:23 -07:00
despair86
bbe0634edc this should get things going on UNIX :D 2018-07-25 20:00:15 -05:00
Jeff Becker
17ad12cd2c * don't heap allocate llarp_rc
* store rc into network database cache on connect
2018-07-25 11:24:37 +10:00
Jeff Becker
a9c92213df more backport 2018-07-24 16:37:12 +10:00
Jeff Becker
f7daee5abf backport 2018-07-24 16:34:23 +10:00
Jeff Becker
066cf537e2 backport 2018-07-24 16:33:22 +10:00
Jeff Becker
62b94b17aa more backport 2018-07-24 16:30:01 +10:00
Jeff Becker
fd4938b1e4 more android pendatic fixes 2018-07-24 12:25:10 +10:00
Jeff Becker
6945fe53a5 more also run make format 2018-07-17 14:37:50 +10:00
Jeff Becker
f48acbc23e Merge remote-tracking branch 'ryan/libdns' into hidden-service-dht
also run make format
2018-07-17 07:26:16 +10:00
Jeff Becker
0242e293c9 more 2018-07-16 13:32:13 +10:00
Ryan Tharp
e1a4c2f32c Merge branch 'hidden-service-dht' of https://github.com/majestrate/llarp 2018-07-13 07:25:20 +00:00
Jeff Becker
5bbaae4e2e
more 2018-07-12 14:21:44 -04:00
Jeff Becker
fe01c38d8e
* fix dht feedback loop
* start on dht lookups for hidden services

* make debug logging confurable on runtime with env var LLARP_DEBUG=1

* make eventloop tick only when we get traffic

* make testnet parameters configurable on runtime
2018-07-12 09:43:37 -04:00
Jeff Becker
dfa567e816
Merge remote-tracking branch 'sachaaaa/refactor' into hidden-service-dht 2018-07-09 10:24:44 -04:00
sachaaaaa
33586d385b clang format 2018-07-09 14:34:28 +10:00
sachaaaaa
c7940076bf Remove most of the extern "C"
remove extern "C"
2018-07-09 14:34:09 +10:00
Ryan Tharp
00e56ecfd2 Merge branch 'hidden-service-dht' of https://github.com/majestrate/llarp 2018-07-08 11:41:44 +00:00
Jeff Becker
21a2ffdeaf
* refactor log functions
* add more stuff for hidden service dht
2018-07-05 11:44:06 -04:00
Ryan Tharp
876324fdbc llarp_main_abort => llarp_logic_stop_timer 2018-07-03 04:25:36 -07:00
Jeff Becker
7d9bffdf9c
make format 2018-06-29 08:15:15 -04:00
Ryan Tharp
b524f19119 fix missing header 2018-06-28 11:40:46 +00:00
Ryan Tharp
d132e3cd10 load config-file from config, llarp_main_getLocalRC(), llarp_main_checkOnline(), llarp_main_queryDHT() refactor 2018-06-28 04:32:26 -07:00
Ryan Tharp
ede0cb4772 Merge branch 'master' of https://github.com/neuroscr/loki-network 2018-06-26 10:08:51 +00:00
Jeff Becker
da22f306e0
* add path building management
* fix bug in iwp that caused crash
2018-06-25 11:12:08 -04:00
Ryan Tharp
c31e5795fc setup() refactor, llarp_main_queryDHT() 2018-06-23 07:56:59 -07:00
Ryan Tharp
2e74bce713 getDatabase and associated functions 2018-06-21 04:11:55 -07:00
Ryan Tharp
51c97d44b3 ReloadConfig refactor, direct nodedb functions 2018-06-19 02:44:53 -07:00
Ryan Tharp
f49bd89a42 Merge branch 'master' of https://github.com/neuroscr/llarp 2018-06-18 01:06:29 -07:00
Ryan Tharp
7cd13b3f89 changed info message 2018-06-18 00:55:06 -07:00
Jeff Becker
54366c040c
make format 2018-06-17 11:26:00 -04:00
Ryan Tharp
087f4c2f02 clean up llarp_nodedb_async_verify api, make setRC save to correct path 2018-06-13 04:40:49 -07:00
Jeff Becker
90611731a5
initial shadow test net 2018-06-06 13:02:57 -04:00
Jeff Becker
e12bd9442f
expose multi process/single process option 2018-06-06 08:49:46 -04:00
Jeff Becker
0278ba559c
add single threaded mode for shadow 2018-06-06 08:46:26 -04:00
Jeff Becker
9816fd65e9
* logging refactor to be concise
* don't inline bencode

* refactor initial start of dht code a bit
2018-06-01 13:47:37 -04:00
Jeff Becker
5649d261ae
start fleshing out dht subsystem a bit 2018-06-01 10:08:54 -04:00
Jeff Becker
fe19314484
more stuff 2018-05-30 16:56:47 -04:00
Ryan Tharp
9f2d7f717a Merge branch 'master' of https://github.com/majestrate/llarp 2018-05-29 12:21:50 +00:00
Ryan Tharp
78007425fd use FreeBSD API for setting thread names 2018-05-29 05:13:33 -07:00
Jeff Becker
a00a0622d1
more docs
more logging
2018-05-28 16:51:15 -04:00