Dnsmasq DHCPv6 use colons in the generated duid present in the lease file. Strip the colon as this is not supported by the OpenWrt config and follow the same way odhcpd use to display duid.
Fixes: #4543
Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
The musl libc only implements POSIX basename() but provided a GNU header
kludge in <string.h>, which was removed in musl 1.2.5 [1]. Use the standard
<libgen.h> header to avoid compilation errors like:
luci.c: In function 'rpc_luci_parse_network_device_sys':
luci.c:676:53: error: implicit declaration of function 'basename' [-Werror=implicit-function-declaration]
676 | blobmsg_add_string(&blob, "master", basename(link));
| ^~~~~~~~
luci.c:676:53: error: passing argument 3 of 'blobmsg_add_string' makes pointer from integer without a cast [-Werror=int-conversion]
676 | blobmsg_add_string(&blob, "master", basename(link));
| ^~~~~~~~~~~~~~
| |
| int
...
cc1: all warnings being treated as errors
Link 1: https://git.musl-libc.org/cgit/musl/log/?qt=grep&q=basename
Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
* luci-lib-nixio: Fix add_luci_conffiles adding duplicate files
add_luci_conffiles does not check whether the file already exists
when adding the file, which may result in redundant backups in the
sysupgrade backup.
Signed-off-by: Xiang W <wxjstz@126.com>
Ensure that the proper byte order is used when creating IPv4/IPv6/MAC
instances from integer values on big endian systems.
Fixes: #6678
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Properly deal with integral numeric values exceeding the int32_t range
by replacing the cast logic with more fine grained checks:
- Lua numbers which are integers in the first place are directly converted
to JSON integers
- Finite double Lua numbers which are integral are converted to JSON
integer values
- All other numeric values are converted to JSON doubles
This should bring the handling of large integral value in line with the
documented behavior of turning non-fractional Lua numbers into JSON
integers.
Fixes: #6647
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
See commit 5c545bdb "treewide: replace PKG_USE_MIPS16:=0 with
PKG_BUILD_FLAGS:=no-mips16" on the main repository.
Signed-off-by: Andre Heider <a.heider@gmail.com>
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>
Airplay of a statically hosted video file from one Apple device to another
fails due to unrecognized content-type. Adding Airplay supported
mime types fixes the issue.
Signed-off-by: Sasha Andonov <s.andonnov@gmail.com>
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>
Various existing Lua software is requiring the `luci.http` library for
URL encoding/decoding tasks so ensure that it can be loaded in a stand
alone manner even if the emulated Lua runtime environment is not
available.
Fixes: cea2c3578e ("luci-lib-base: forward luci.http.context.request.message to ucode")
Ref: https://forum.openwrt.org/t/x/141817
Ref: https://github.com/openwrt/luci/pull/5976#issuecomment-1296220586
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Some packages require Lua libraries but do not ship with a luasrc directory,
add explicit dependencies in these cases.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Some existing LuCI application code accesses the
`luci.http.context.request.message.params` HTTP parameter table directly.
Forward the `luci.http.context.request.message` object to the ucode
`luci.http.message` instance in order to properly support this.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Move classes required for Lua runtime support into a new `luci-lua-runtime`
package. Also replace the `luci.http` and `luci.util` classes in
`luci-lib-base` with stubbed versions interacting with the ucode based
runtime environment.
Finally merge `luci-base-ucode` into the remainders of `luci-base`.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
The build system fails to set up the chosen TLS provider and always
builds the package without TLS.
While this could be easily fixed, the package would fail to build with
axTLS and cyaSSL without further intervention.
The version of axTLS included with the source is outdated, as is the API
used with cyaSSL, now wolfSSL.
OpenSSL support could be enabled, but the TLS code limits connections to
TLS 1.0, deprecated by RFC 8996: "TLS 1.0 MUST NOT be used".
Remove the provider configuration from build options, and always build
the library without TLS.
Signed-off-by: Eneas U de Queiroz <cotequeiroz@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>