<feed xmlns='http://www.w3.org/2005/Atom'>
<title>luci/modules/luci-base/root/usr/share/rpcd/ucode, branch master</title>
<subtitle>Lua Configuration Interface (mirror)</subtitle>
<id>https://git.openwrt.org/project/luci/atom?h=master</id>
<link rel='self' href='https://git.openwrt.org/project/luci/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/'/>
<updated>2026-04-04T17:12:54Z</updated>
<entry>
<title>luci-mod-network: check kernel for mptcp to display MPTCP options</title>
<updated>2026-04-04T17:12:54Z</updated>
<author>
<name>Paul Donald</name>
</author>
<published>2026-04-04T17:12:54Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=a6b7ad4652f7a47fe21482ff97679ca3a2e6d7fb'/>
<id>urn:sha1:a6b7ad4652f7a47fe21482ff97679ca3a2e6d7fb</id>
<content type='text'>
https://www.kernel.org/doc/html/v6.12/networking/mptcp-sysctl.html

There may be user instances where mptcp was not compiled
into the kernel or is an unloaded module, so gate the options
behind the feature check.

Closes #8522

Signed-off-by: Paul Donald &lt;newtwen+github@gmail.com&gt;
</content>
</entry>
<entry>
<title>luci-base: fix ubus getFeatures() crash</title>
<updated>2026-04-01T11:11:14Z</updated>
<author>
<name>Jo-Philipp Wich</name>
</author>
<published>2026-04-01T11:11:14Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=95a84c0c4369cfaad6b67961b2c5e6be0870f528'/>
<id>urn:sha1:95a84c0c4369cfaad6b67961b2c5e6be0870f528</id>
<content type='text'>
OpenWrt versions that provide odhcpd versions reporting a compile time
features line in their help output trigger a crash in the getFeatures()
procedure (attempt to set property on boolean value) - fix this issue
by not predeclaring the odhcpd flag as `false`.

Fixes: #8489
Fixes: 0529dca7a2 ("luci-base: fix feature detection patterns")
Signed-off-by: Jo-Philipp Wich &lt;jo@mein.io&gt;
</content>
</entry>
<entry>
<title>luci-base: fix feature detection patterns</title>
<updated>2026-03-30T13:08:45Z</updated>
<author>
<name>Jo-Philipp Wich</name>
</author>
<published>2026-03-24T19:50:05Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=0529dca7a263a9ce713dd043d87467d16544e204'/>
<id>urn:sha1:0529dca7a263a9ce713dd043d87467d16544e204</id>
<content type='text'>
Upstream ucode commit 8a8b4d1 ("types: fix regexp `/.../s` flag inversion")
changed the semantics of /.../s regexp patterns to match the ECMAScript
behavior, meaning `/s` enables single line matching and omitting it
performs line-wise matching. Besides changing the behavior of `.` to match
newlines, the `/s` flag also changes `^` and `$` to only match the begin
and end of the entire string input, respectively instead of matching the
start and end of lines.

This broke feature pattern matching in the luci rpcd plugin, causing LuCI
to incorrectly disable certain features.

This commit changes the affected places to read the command outputs
linewise and to perform the feature flag matching against each read line
individually, including an explicit terminating newline to make the
pattern match forward- and backward compatible with fixed and unfixed
ucode versions.

Fixes: https://github.com/jow-/ucode/issues/389
Signed-off-by: Jo-Philipp Wich &lt;jo@mein.io&gt;
</content>
</entry>
<entry>
<title>luci-base: resolve symlinks for PCI hardware</title>
<updated>2026-03-16T14:54:07Z</updated>
<author>
<name>Paul Donald</name>
</author>
<published>2026-03-16T14:54:07Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=ab72c4457a18334a99a175da6eb6a1a53c63af7e'/>
<id>urn:sha1:ab72c4457a18334a99a175da6eb6a1a53c63af7e</id>
<content type='text'>
getBuiltinEthernetPorts crashed with "Unknown error"
on hardware where NICs have PCI subsystem symlinks at
different sysfs depths (e.g. onboard NIC vs PCIe card NIC).

The getBuiltinEthernetPorts x86_64 workaround block
needs realpath() to resolve PCI subsystem symlinks.

readlink() returns different strings ("../../../bus/pci" vs
"../../../../bus/pci") even though both resolve to /sys/bus/pci,
causing eth1 and eth2 to be incorrectly excluded from the result.

E.g.:

  eth0: /sys/class/net/eth0/device/subsystem -&gt; ../../../bus/pci
  eth1: /sys/class/net/eth1/device/subsystem -&gt; ../../../../bus/pci
  eth2: /sys/class/net/eth2/device/subsystem -&gt; ../../../../bus/pci

1. Add realpath to the 'fs' module import statement
2. Use realpath() to normalize paths

Closes #8425
Reported-by: @MI2-2
Signed-off-by: Paul Donald &lt;newtwen+github@gmail.com&gt;
</content>
</entry>
<entry>
<title>luci-base: rpc: fix luci/getMountPoints crash</title>
<updated>2026-01-09T20:52:18Z</updated>
<author>
<name>Liangbin Lian</name>
</author>
<published>2026-01-08T18:25:11Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=5ad9c3609e1616836d6bc6125a6c983231a2de9c'/>
<id>urn:sha1:5ad9c3609e1616836d6bc6125a6c983231a2de9c</id>
<content type='text'>
getMountPoints crash on path containing '\xxx'.

`char` should be `chr`

Fixes https://github.com/openwrt/openwrt/issues/21459

Signed-off-by: Liangbin Lian &lt;jjm2473@gmail.com&gt;
</content>
</entry>
<entry>
<title>luci-base: add odhcp6c stats to luci ucode</title>
<updated>2025-12-08T14:02:38Z</updated>
<author>
<name>Paul Donald</name>
</author>
<published>2025-12-08T14:02:38Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=b6d43252f444a2fc1c854965d75543a7d9ce4bdd'/>
<id>urn:sha1:b6d43252f444a2fc1c854965d75543a7d9ce4bdd</id>
<content type='text'>
Provides odhcp6c statistics of DHCPv6 request and response traffic

Signed-off-by: Paul Donald &lt;newtwen+github@gmail.com&gt;
</content>
</entry>
<entry>
<title>luci-base: shell quote package name variable to prevent command injection</title>
<updated>2025-11-05T21:11:17Z</updated>
<author>
<name>Paul Donald</name>
</author>
<published>2025-11-05T21:10:48Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=89b55a7ae09796d360c64fb930189d0af74ce813'/>
<id>urn:sha1:89b55a7ae09796d360c64fb930189d0af74ce813</id>
<content type='text'>
Do not export the function for use elsewhere - it shall only be used within
the luci script (to determine netifd version).

Signed-off-by: Paul Donald &lt;newtwen+github@gmail.com&gt;
</content>
</entry>
<entry>
<title>luci-base: extend luci WiFi features checks</title>
<updated>2025-11-03T21:38:52Z</updated>
<author>
<name>Paul Donald</name>
</author>
<published>2025-11-03T21:38:52Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=92934332129f2921597dd53c363d778270260ada'/>
<id>urn:sha1:92934332129f2921597dd53c363d778270260ada</id>
<content type='text'>
sort list
include mesh

Signed-off-by: Paul Donald &lt;newtwen+github@gmail.com&gt;
</content>
</entry>
<entry>
<title>luci-base: rename getLocaltime to getUnixtime</title>
<updated>2025-10-17T11:44:25Z</updated>
<author>
<name>Paul Donald</name>
</author>
<published>2025-10-17T11:44:16Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=54432996bb44fb97aa74cdacb9c9e623a679e56f'/>
<id>urn:sha1:54432996bb44fb97aa74cdacb9c9e623a679e56f</id>
<content type='text'>
There appear to be no consumers of getLocaltime. One instance of a
callGetLocaltime uses the system info call whose localtime property uses
tm-&gt;tm_gmtoff which is "Seconds East of UTC" i.e. a unixtime value
with the timezone baked in to the value.

Sometimes we actually want Unixtime. So rename to clarify what this
function actually returns.

Signed-off-by: Paul Donald &lt;newtwen+github@gmail.com&gt;
</content>
</entry>
<entry>
<title>luci-mod-status,-network: remove checkUfpInstalled</title>
<updated>2025-10-15T23:24:42Z</updated>
<author>
<name>David Härdeman</name>
</author>
<published>2025-10-15T13:07:32Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=50abd15e88c7aaf9a7233d7b42bf07674984c69c'/>
<id>urn:sha1:50abd15e88c7aaf9a7233d7b42bf07674984c69c</id>
<content type='text'>
Right now, the checkUfpInstalled RPC call is performed first, and only after
that can the other Promises be called. Simplify this by adding a single check
for /usr/sbin/ufpd in the rpcd ucode, and replace calls to checkUfpInstalled()
with simple L.hasSystemFeature('ufpd') check (which is only done once, and
cached).

This also allows the 'stat' permission to be removed from a couple of acls.

Signed-off-by: David Härdeman &lt;david@hardeman.nu&gt;
</content>
</entry>
</feed>
