Fix reporting of ceertain flag values larger than 255, such as IFF_PROMISC
by explicitly casting the bit test expression to a boolean result since
the implicit integer truncation to uint8_t will turn the `0x100` result of
a set IFF_PROMISC bit into just `0x0`.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Don't hardcode bit/name pairs, instead iterate over what's known to the
library and use that instead.
This automatically adds the missing ad hwmode and HE80+80 htmode - and any
future ones.
The only difference in the output is the order of the 'hwmodes' array.
Signed-off-by: Andre Heider <a.heider@gmail.com>
When kernel bonding module is loaded it will create a special
file /sys/class/net/bonding_masters. This is no network device.
Filter it out for getNetworkDevices() call.
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Remember the prefix size when parsing odhcpd lease entries and expose
it in the ip6addrs array.
Fixes: #4345
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
- Do not incorrectly put the IP addresses from the rrdns reply into the
first hint, instead distribute hostnames to the appropriate hints.
- Avoid returning stale lease information from previously parsed records
by clearing the static struct before each parse attempt.
- Improve existing checks for empty MAC addresses and unspecified IPv6
addresses.
Fixes: #5126
Fixes: 87bcf9e923 ("rpcd-mod-luci: Return array of addresses in getHostHints")
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Add support for parsing 11ax modes returned from UBUS. This is required
so the frontend can display information about supported 11ax operation.
Signed-off-by: David Bauer <mail@david-bauer.net>
Update luci-rpc's getHostHints method to return two string arrays for
each host, `ipaddrs` and `ip6addrs`, each containing the host's IPv4
and IPv6 addresses, respectively. Each array is sorted by a priority
derived from the source from which the address was discovered. The
current address sources and their priority is as follows (a
higher (larger) priority is listed first):
- neighbor table entries: 10
- /etc/ethers entries: 50
- DHCP leasefile: 100
- RRDNS queries: 100
- getifaddrs(): 200
- UCI static leases: 200
The existing `ipv4` and `ipv6` string fields for each host in
`getHostHints` has been removed. Downstream users of getHostHints
still need to be updated.
Fixes: #4838
Signed-off-by: Niels Widger <niels@qacafe.com>
[squash commits, reformat fixes tag]
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Fix parsing of DUID-LLT's in duid2ea. Unlike DUID-LL's, DUID-LLT's have a 32-bit time field between the hardware type and link-layer address fields, see RFC 3315 Sections 9.2 and 9.4:
https://tools.ietf.org/html/rfc3315#section-9.2https://tools.ietf.org/html/rfc3315#section-9.4
therefore, the link-layer address starts at offset 16 instead of 8.
Signed-off-by: Niels Widger <niels@qacafe.com>
Recent versions ship a version suffixed libiwinfo.so, therefor we cannot
rely on a fixed path name anymore. Use globbing to find matching libraries
and load the first one we find.
Fixes: #4718
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Usage of killall is replaced with init script. This is cleaner solution
as it does not consider some implementation detail but rather passes
that on to init script implementation.
IPKG_INSTROOT was added to prevent execution when not running in current
root. It is invalid to request reload if install-root is not current
root. In this case it can be considered harmless but it is invalid
nonetheless.
Last change is removal of `exit 0`. This caused skip of default
postinst. Execution of default postinst does no harm and is more
standard considering possible future expansion of it.
Signed-off-by: Karel Kočí <karel.koci@nic.cz>
For DHCPv6, the second entry of a lease is the IAID. The parsing code
expects a MAC instead of a IAID.
Reported-by: Hartmut Birr <e9hack@gmail.com>
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Checking the return value of uci_lookup_ptr() is not enough to ensure that
the requested optiomn has actually been found.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>