lokinet/llarp
Jason Rhinelander 329da951b7
Apple OS interface cleanup & refactoring
- Add a C callback interface (context_wrapper.h) between lokinet and the
  objective-C code so that:
  - we can use objective-C (rather than objective-C++), which seems more
    likely to be supported by Apple into the future;
  - we minimize the amount of code that needs to be aware of the Apple
    APIs.
  - this replaces apple logger objective c++ implementation with a plain
    c++ implementation that takes a very simple C callback (provided
    from the obj-c code) to actually make the call to NSLog.

- Add various documentation to the code of what is going on.

- Send all DNS traffic to the primary IP on the tun interface.  The
  match prefixes simply don't work as advertised, and have weird shit
  (like even if you get it working for some domains, "instagram.com"
  still doesn't because of god-knows-what Apple internal politics).

- Drop the dns proxy code as we don't need it anymore.

- Don't use 9.9.9.9 for default DNS.  (We might consider the unfiltered
  9.9.9.10 as an alternative default, but if we do it should be a global
  lokinet change rather than a Mac-specific change).

- Parse a lokinet.ini in the data directory, if it exists.  (Since we
  are sandboxed, it is an app-specific "home" directory so is probably
  buried god knows where, but at least the GUI ought to be able to get
  it to let users add things to it).

- This commit also adds a swift version of the PacketTunnelProvider
  glue, which ought to work in theory, but the *tooling* for cmake is so
  underdeveloped that I couldn't find any way to actually get the damn
  thing working.  So I'm committing it here anyway (and will revert it
  away in the next commit) in case we someday want to switch to it.

-
2021-09-02 14:17:09 -04:00
..
android
apple Apple OS interface cleanup & refactoring 2021-09-02 14:17:09 -04:00
config it works 2021-09-02 14:17:09 -04:00
consensus fix for testing: 2021-06-10 14:17:31 -04:00
constants Remove unused defaults.hpp 2021-08-10 17:13:27 -03:00
crypto
dht separate white/grey list for active/decommissioned nodes. 2021-06-07 10:57:33 -04:00
dns macos sort of works now 2021-09-02 14:17:09 -04:00
ev macos sort of works now 2021-09-02 14:17:09 -04:00
exit add path filter in lokinetmon 2021-07-05 09:09:21 -04:00
handlers macos sort of works now 2021-09-02 14:17:09 -04:00
hook
iwp inbound sessions from CLIENTS should only have an elevated lifetime 2021-07-05 09:09:20 -04:00
link * add log warn 2021-07-05 09:09:20 -04:00
linux
messages move setting hop to nullptr to after delivery or delivery fail 2021-06-09 09:51:46 -04:00
net Merge pull request #1721 from majestrate/platform-bits-2021-08-26 2021-08-31 12:10:32 -04:00
path increase timer timeout interval because 1 seconds RTT can happen but 2 seconds is pretty bad 2021-06-09 20:15:22 -04:00
peerstats
quic fix #1655 2021-06-20 05:59:22 -04:00
router remove old routing table maniuplation code 2021-08-27 11:07:54 -04:00
routing
rpc macos sort of works now 2021-09-02 14:17:09 -04:00
service expunge outbound contexts that have not gotten inbound traffic for a long while 2021-07-05 09:09:20 -04:00
simulation
tooling
util Consolidate apple-specific bits into llarp/apple 2021-09-02 14:17:09 -04:00
vpn initial network extension code for macos 2021-09-02 14:17:08 -04:00
win32
app.xml
apple.hpp macos sort of works now 2021-09-02 14:17:09 -04:00
bootstrap.cpp
bootstrap.hpp
CMakeLists.txt Consolidate apple-specific bits into llarp/apple 2021-09-02 14:17:09 -04:00
context.cpp it works 2021-09-02 14:17:09 -04:00
endpoint_base.cpp
endpoint_base.hpp add MarkAddressOutbound to plainquic 2021-06-08 14:36:33 -04:00
lokinet_shared.cpp export functions in liblokinet for win32 dll 2021-06-08 08:32:52 -04:00
nodedb.cpp
nodedb.hpp
pow.cpp
pow.hpp
profiling.cpp far stricter profiling algorithm 2021-06-08 14:36:30 -04:00
profiling.hpp make profiling far stricter for path builds 2021-05-04 17:01:29 -04:00
router_contact.cpp
router_contact.hpp
router_id.cpp
router_id.hpp
router_version.cpp
router_version.hpp
testnet.c