<feed xmlns='http://www.w3.org/2005/Atom'>
<title>luci/applications/luci-app-sqm/root, 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-08-03T09:58:22Z</updated>
<entry>
<title>luci-app-sqm: control sqm through the rc ubus namespace</title>
<updated>2026-08-03T09:58:22Z</updated>
<author>
<name>Julius Bairaktaris</name>
</author>
<published>2026-08-02T00:41:03Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=6876211e2479d183a60cc338354ff59ab89ecc11'/>
<id>urn:sha1:6876211e2479d183a60cc338354ff59ab89ecc11</id>
<content type='text'>
rpcd's rc namespace does what luci.setInitAction does, without a shell:
rc.init accepts the same enable/disable/start/stop/restart/reload set,
execs the init script directly instead of interpolating name and action
into a /bin/sh command line, and additionally requires the script to be
root-owned and not world-writable.

The grant goes in the write scope, not read. rpcd matches ubus ACLs on
object and method only, with no per-argument filtering, so a read-scope
rc.init would let a session with read-only access to sqm drive any init
script on the box.

The "Enable SQM" button reached the init script a second way, through
fs.exec() and a pair of `/etc/init.d/sqm` exec grants that were likewise
in the read scope. It takes rc.init too, and both grants go.

While here, make the flag's call reach the router at all. `params` names
the positional arguments of the declared method, but the declaration
passed the intended *values* there - `[ 'sqm', 'enable' ]` - and
handleEnableSQM() was then invoked with no arguments. Every request
therefore went out as an empty argument object, which the method
rejected, while the UI told the user the sqm init script had just been
enabled on its behalf.

The notification stays wrong once that is fixed, because it fires
unconditionally and the promise is discarded: rpc.declare() without
`reject` resolves with the ubus status instead of raising, so a refused
rc.init - PERMISSION_DENIED on an init script that is not root-owned or
is world-writable, which rc.init enforces and setInitAction did not -
would still print the success text. Chain it onto the call, and declare
`reject: true` so there is a rejection to chain. The button above needs
the same handler for the same reason: ui.createHandlerFn() only clears
the spinner, so a refusal there would neither reload nor report.

Assisted-by: Claude:claude-opus-5
Signed-off-by: Julius Bairaktaris &lt;julius@bairaktaris.de&gt;
</content>
</entry>
<entry>
<title>luci-app-sqm: remove deprecated ucitrack</title>
<updated>2024-05-03T06:22:23Z</updated>
<author>
<name>Qosmio</name>
</author>
<published>2024-05-03T06:17:21Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=208333b5ee83b6fa0fd47c33ba1619e1d603b457'/>
<id>urn:sha1:208333b5ee83b6fa0fd47c33ba1619e1d603b457</id>
<content type='text'>
Package sqm-scripts already uses procd to manage uci config change
triggers, so ucitrack is not necessary.

Signed-off-by: Qosmio &lt;datapronix@protonmail.com&gt;
</content>
</entry>
<entry>
<title>luci-app-sqm: prevent restart loop</title>
<updated>2024-05-03T00:17:20Z</updated>
<author>
<name>Paul Donald</name>
</author>
<published>2024-05-03T00:17:20Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=d9a6e5b47a4ea8c7bad8ead8b77db6b91d21325f'/>
<id>urn:sha1:d9a6e5b47a4ea8c7bad8ead8b77db6b91d21325f</id>
<content type='text'>
Follow-up fix for 81b7e7d4a29980f2b12f36bde0dcb2f85c34fb47

Closes PR #7107

Signed-off-by: Paul Donald &lt;newtwen+github@gmail.com&gt;
</content>
</entry>
<entry>
<title>luci-app-sqm: upgrade uci-defaults for ucitrack handling to use json</title>
<updated>2024-04-11T14:15:52Z</updated>
<author>
<name>Florian Eckert</name>
</author>
<published>2024-04-11T09:16:32Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=81b7e7d4a29980f2b12f36bde0dcb2f85c34fb47'/>
<id>urn:sha1:81b7e7d4a29980f2b12f36bde0dcb2f85c34fb47</id>
<content type='text'>
Conversion of the 'uci-defaults' script for ucitrack handling to the new
json processing.

Signed-off-by: Florian Eckert &lt;fe@dev.tdt.de&gt;
</content>
</entry>
<entry>
<title>luci-app-sqm: fix JS error if service is disabled</title>
<updated>2021-06-09T20:36:32Z</updated>
<author>
<name>Dirk Brenken</name>
</author>
<published>2021-06-05T07:43:46Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=e76d9cc7673ffbebd8887bcfc14542c1269288e0'/>
<id>urn:sha1:e76d9cc7673ffbebd8887bcfc14542c1269288e0</id>
<content type='text'>
* fix a 'resource not found error' if the sqm service has been disabled
  and the dir '/var/run/sqm/available_qdiscs' not exist
* inform the user about this issue and provide a button
  to enable &amp; start the service

Signed-off-by: Dirk Brenken &lt;dev@brenken.org&gt;</content>
</entry>
<entry>
<title>luci-app-sqm: convert to client side implementation</title>
<updated>2020-10-23T21:05:14Z</updated>
<author>
<name>Ansuel Smith</name>
</author>
<published>2020-10-19T12:54:18Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=63aea8f84831a01c49ee8731196f1c4d1d81ddfd'/>
<id>urn:sha1:63aea8f84831a01c49ee8731196f1c4d1d81ddfd</id>
<content type='text'>
Convert sqm app to client side implementation. Only a small rework in the logic to get qos scripts help text. The rest of the script is a porting 1:1.

Signed-off-by: Ansuel Smith &lt;ansuelsmth@gmail.com&gt;
</content>
</entry>
<entry>
<title>luci-app-sqm: this is now generally handled in luci.mk</title>
<updated>2020-05-07T06:24:40Z</updated>
<author>
<name>Florian Eckert</name>
</author>
<published>2020-05-07T06:24:38Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=16142d35c419af6c4e02e468e438cdcf14413510'/>
<id>urn:sha1:16142d35c419af6c4e02e468e438cdcf14413510</id>
<content type='text'>
Signed-off-by: Florian Eckert &lt;fe@dev.tdt.de&gt;
</content>
</entry>
<entry>
<title>luci-app-sqm: fix whitspaces</title>
<updated>2020-05-07T06:22:02Z</updated>
<author>
<name>Florian Eckert</name>
</author>
<published>2020-05-07T06:22:02Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=fe4d4ed950c78f63cf38766b5c017a31ac121f2a'/>
<id>urn:sha1:fe4d4ed950c78f63cf38766b5c017a31ac121f2a</id>
<content type='text'>
Signed-off-by: Florian Eckert &lt;fe@dev.tdt.de&gt;
</content>
</entry>
<entry>
<title>treewide: stage ACL rules for legacy applications</title>
<updated>2020-04-10T21:21:35Z</updated>
<author>
<name>Jo-Philipp Wich</name>
</author>
<published>2020-04-10T21:21:35Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=43e872871a85dce70509c3c97c10e9c61788c378'/>
<id>urn:sha1:43e872871a85dce70509c3c97c10e9c61788c378</id>
<content type='text'>
Fixes: #3866
Signed-off-by: Jo-Philipp Wich &lt;jo@mein.io&gt;
</content>
</entry>
<entry>
<title>luci-app-sqm: move from packages feed</title>
<updated>2020-04-03T15:40:34Z</updated>
<author>
<name>Hannu Nyman</name>
</author>
<published>2020-04-03T15:27:25Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=c03e395146122745c31ee37de7ce39c2f3bcc9d0'/>
<id>urn:sha1:c03e395146122745c31ee37de7ce39c2f3bcc9d0</id>
<content type='text'>
Move the SQM app from the packages feed
to enable translation.

* Initialize translation

Signed-off-by: Hannu Nyman &lt;hannu.nyman@iki.fi&gt;
</content>
</entry>
</feed>
