Guus Sliepen [Sun, 14 Nov 2021 15:35:09 +0000 (16:35 +0100)]
Use a key/value store with configurable storage callbacks.
For greater flexibility with how configuration files are stored, we
assume a key/value store, and allow the application to provide callbacks
for storing and loading values, and listing all the keys. By default, we
use the filesystem as a backing store, with one file per key in a flat
directory.
It depends on the full Meshlink library being available as well, which must
be installed or its location should be added to LD_LIBRARY_PATH in order to
be able to run the tests. It is being loaded using dlopen() with the
RTLD_LOCAL and RTLD_DEEPBIND flags to ensure the symbols from the tiny and
full version don't collide.
Guus Sliepen [Mon, 21 Jun 2021 21:13:50 +0000 (23:13 +0200)]
Remove all support for channels.
Also, only allow communication with the peer we have a connection to.
Instead of using an inner SPTPS session, just send raw packets directly
over the meta-connection.
Guus Sliepen [Sat, 19 Jun 2021 21:38:49 +0000 (23:38 +0200)]
Ensure we exchange a session key for application data exchange.
We need to create an edge and send it to the peer, so it will be able to
run its graph algorithms and consider us reachable, otherwise it will not
respond to REQ_KEY requests.
Guus Sliepen [Sat, 12 Jun 2021 21:07:27 +0000 (23:07 +0200)]
Rename the library and public header to meshlink-tiny.
This allows the library to coexist with the full MeshLink library in the
same installation directory, and avoids accidental linking to the wrong
version of the library.
The function names have not changed, so it is not possible to
simultaneously link both versions of the library into a single program.