To avoid the resolver building the regular binary with private network
related code. In the future the regular binary might become part of the
workspace again, TBD.
Signed-off-by: Lee Smet <lee.smet@hotmail.com>
More delay between periodic announcements. This is mainly to observe the
effect on a larget scale in preparation for #253.
Signed-off-by: Lee Smet <lee.smet@hotmail.com>
In case a triggered update to _all_ peers is not sent, send one to those
peers who sent us a seqno request which matches the update.
Signed-off-by: Lee Smet <lee.smet@hotmail.com>
Previously we just tried to find the same route when forwarding a seqno
request. Now we record the forward info in the cache, while also
improving the search. That is, we try to forward to a peer we haven't
used yet (but we don't do a fanout/broadcast search), and also actually
do our very best to forward the request. If we know that didn't work,
use a different peer.
Fixes#169
Signed-off-by: Lee Smet <lee.smet@hotmail.com>
People seem to just copy and paste without verifying the address, so use
a public node which has the highest chance of always working.
Signed-off-by: Lee Smet <lee.smet@hotmail.com>
This reverts commit f2caf4f515.
Upon inspection tracing_subscriber, by default, attempts to install a
tracing_log subscriber (this is gated by a feature gate, which is
enabled by default). Thus, manually doing that actually causes a crash
at startup since the global logger is attempted to be initialized twice.
This switches:
- from android_logger to tracing-android
- from oslog to tracing-oslog
- from log to the default tracing log infrastructure
Most of the noise in here is changing the imports from
`log::{…}` to `tracing::{…}`.
In terms of log setup, for now this tries to stick with the existing
behaviour:
- myceliumd now uses `EnvFilter` and the `compact()` default formatter,
instead of `prety_env_logger`.
Its CLI args are kept as-is. `RUST_LOG` env var still works, too.
- The `setup_the_logger` function in the `mobile` crate is renamed to
`setup_logging`.
It seems that it is not generally understood that network interface
names need to be unique, or that the error generated is "device
busy"/EBUSY in case of a collision. For now, explicitly add an error
log until #213 is implemented.
Signed-off-by: Lee Smet <lee.smet@hotmail.com>
Previously a seqno request was only sent when the selected route
received an unfeasible update. In accordance with the babel rfc, we now
also send seqno requests if we lose a selected route for a subnet
because of route selection (after an update or because we noticed a peer
disappeared).
Closes#233
Signed-off-by: Lee Smet <lee.smet@hotmail.com>
Extract logic from the update handler, and refactor it slightly. The
update handler now drops the source table read lock instantly after
checking if a route is feasible as well.
In preparation of #233
Signed-off-by: Lee Smet <lee.smet@hotmail.com>
* feat(ios): add support for iOS
- add oslog as iOS logger
- add ios TUN device
- temporary disable QUIC for android
- change 'acquired route' logging level to debug. It is very noisy to
use info
* undo unnessary changes
Allow the peer manager to run without quic socket, even in public mode.
This will not create the socket, and prevent connections to quic peers.
Signed-off-by: Lee Smet <lee.smet@hotmail.com>
- use tokio Mutex, to avoid holding a synchronous mutex across an await
point.
- Ignore type complexity on the global channel which governs shutdown
for now, as it's pretty clear what it does.
Signed-off-by: Lee Smet <lee.smet@hotmail.com>