The alfred server always needs interfaces to operate on. But these
interfaces might not exist at the moment when the daemon process is
started. This situation stopped the startup process after the init scripts
waited for a longer period of polling the system state.
But alfred is able to deal with interfaces which disappeared at runtime but
existed at startup. To force a similar behavior for the alfred startup, the
parameter "--force" or "-f" is used. The extra polling code is therefore no
longer needed in the init scripts.
Signed-off-by: Sven Eckelmann <sven@narfation.org>
Alfred can be stopped during a (re)start or reload when:
* disabled = 1
* batman-adv interface is missing
* MAC based EUI64 IPv6 link-local address not set
It is assumed that procd detects that the procd instance definition
disappeared and the currently running instance must be stopped. But all
these checks were triggering an "exit" which then stopped the alfred init
script and the wrapper from /lib/functions/procd.sh. And thus procd was
never informed about the instances which should be changed.
The correct handling is to return the result of the function instead of
directly killing the init scripts.
Fixes: 45db0e60d2 ("alfred: use procd")
Signed-off-by: Sven Eckelmann <sven@narfation.org>
* vis: Use rtnl to query list of hardifs of meshif
* vis: Retrieve hardif status via generic netlink
Signed-off-by: Sven Eckelmann <sven@narfation.org>
* bugs squashed:
- fixed detection of own IPv4 packets
- use manual IPv4 ARP requests to retrieve MAC of neighbors
Signed-off-by: Sven Eckelmann <sven@narfation.org>
OpenWrt is using a modified version of the software and these modifications
may introduce extra bugs (or behavior changes). It is also patched for
stable releases instead of switching to new releases. The revision should
therefore be added to the version number to make it easier understandable
which modified version the user may have installed.
Signed-off-by: Sven Eckelmann <sven@narfation.org>
The commit 45db0e6 introduced curly brackets which are not correct
syntax and thus broke the script.
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Occationally /proc/net/if_inet6 contains interface IDs with
three digits. In this case, the regex in wait_for_ll_address()
does not work anymore and alfred is not starting.
This patch changes the evaluation so that fields are used instead
of the mere position by counting characters.
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* synchronization of batman-adv netlink and packet headers
* mark licenses clearer, change batman-adv UAPI header from ISC to MIT
* coding style cleanups and refactoring
Signed-off-by: Sven Eckelmann <sven@narfation.org>
* support interface validity checks on systems without debugfs
* remove debugfs check during batadv-vis startup
* allow out-of-order txend packets during transmissions
Signed-off-by: Sven Eckelmann <sven@narfation.org>
kmod-ipv6 is obsolete.
The symbol IPV6 is a global config symbol, don't select it because it
will override the user decision of IPV6 as all other package in base do
it. A select (+) will also create a recursive dependency error.
Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
From the CHANGELOG:
* add support for master servers to receive push_data packets with
foreign source addresses
* various code cleanups
* bugs squashed:
- ignore invalid EUI64 addresses
Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de>
open-mesh.org and its subdomains can only be accessed via HTTPS. HTTP-only
requests are currently redirected automatically to HTTPS but references
to it should be only https.
Signed-off-by: Sven Eckelmann <sven@narfation.org>
This reverts commit bcaa87776f.
Caused circular dependencies; reverted for now. (kmod-ipv6 explicit
dependencies _should_ be eliminated though, but this is clearly not
the way.)
Changes between alfred 2015.0 and 2015.1 cause alfred to print an error
and exit when the interface to bind to is not completely set up (has no
non-tentative link-local address). As a workaround, wait for such an
address by reading /proc/net/if_inet6 before alfred is started.
In the long term, it would be nice to make alfred more robust against
missing interfaces (allowing alfred to start without the interface
existing, and keeping it working even when the interface is removed and
re-added while alfred is running).
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
From the CHANGELOG:
* add support to run on interfaces with multiple link-local addresses
* various code cleanups
* bugs squashed:
- reduce of maximum payload size to always fit into UDP datagrams
Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de>
From the CHANGELOG:
* add support to call commands after data was updated
* automatic reduction of process capabilities when not needed anymore
* allow printing of the data version number in the alfred client mode
* various code cleanups
* bugs squashed:
- update of the version number when data was updated with different
version number
- tighten size check on received packet
Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de>
alfred always requires IPv6 support in the kernel and not only when
"Enable IPv6 support in packages" is enabled.
Signed-off-by: Sven Eckelmann <sven@open-mesh.com>
Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de>
From the CHANGELOG:
* add support for multiple interfaces per master
* add support for changing interfaces on the fly
* changes to support multiple alfred interfaces:
- bind alfred to a specific interface
- allow configuring the unix socket path
* enhanced debugging
Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de>
From the CHANGELOG:
* fix various possible memleak, access errors and strncpy issues
* handle fcntl return codes
* fix altitude verification check in gpsd
Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de>
From the CHANGELOG:
* Handle EPERM errors on every sendto
* Check for changed interface properties, e.g. recreation or
changed MAC- and IPv6 addresses
Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de>