Adds support for building Lokinet as a system extension, and fixes
various problems in the macos implementation found during development of
the system extension support.
Codesigns and notarizes the package. Requires a bunch of stuff to
actually get this working. (see contrib/macos-signing.txt).
I'm currently also building with
-DLOKINET_GUI_REPO=https://github.com/jagerman/loki-network-control-panel.git -DLOKINET_GUI_CHECKOUT=cmake
because it needs the camke-ification PR for the control panel to
properly sign everything there.
CMake will set version variables itself if you give the version in the
project(), which is cleaner. Also removes some (nearly) duplicate
definitions and settings added in basic_definitions.cmake for unknown
reasons.
Removes some redundant settings (name, description, version) from the
cpack settings which already default to the values from the project()
call.
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