- `::handle_message` is transposed; Rather than the message calling the method and taking a reference to the router, the router should have a handle_message method and take a reference to the message
- `::EndcodeBuffer` takes a string reference, to which the result of `::bt_encode()` is assigned
- routing messages and surrounding code
- shim code in place for iteration and optimization after deciding what to do with buffer, string handling, and subsequent function calls
By not having BUILD_SHARED_LIBS as a defaulted option, if it was not set
in the invocation of cmake then any submodule could come along and set
it instead by declaring it as an option. If/when this happens in the
middle of the cmake process, some modules will have the flag unset and
others will have it as the default that the submodule set, leading to
inconsistent compilation parameters at best, but likely linking failure.
Note: this is compilation-fixing only. Behavior fixing will come later with combining
the earlier efforts on liblokinet with the new wire protocol changes.
TODO:
- set up all the callbacks for libquic
- define control message requests, responses, commands
- plug new control messages into lokinet (path creation, network state, etc)
- plug connection state changes (established, failed, closed, etc.) into lokinet
- lots of cleanup and miscellanea
TODO: correctly plug it into CMake and remove ngtcp2 submodule from lokinet
as it will now come from oxen-libquic, if even used directly by lokinet at all.
- oxen-logging updated to bump fmt version
- version bump oxen-logging to fix fmt version
- version bump oxen-mq to solve uniform distribution error
- misc errors introduced by above version bumps
- clang-format 14 -> 15
when setting libunbound's upstream dns, we need to not pass in the square braces of an ipv6 address.
we also net udp handles have ipv6 address for the local ip.
This allows bencode-dump.py autodetect hex input and decode it on the
fly, which is quite convenient when working with binary-containing
bencoded data strings.
in rpc client, contention on a null lock happened.
fix this by making the sending of pings always done in the logic
thread. this is done by wrapping the lambda we made with EventLoop::make_caller()