<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rpcd/include, branch master</title>
<subtitle>OpenWrt ubus RPC daemon</subtitle>
<id>https://git.openwrt.org/project/rpcd/atom?h=master</id>
<link rel='self' href='https://git.openwrt.org/project/rpcd/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/rpcd/'/>
<updated>2026-03-27T10:34:31Z</updated>
<entry>
<title>optimize by reusing timeout member</title>
<updated>2026-03-27T10:34:31Z</updated>
<author>
<name>Jo-Philipp Wich</name>
</author>
<published>2026-03-27T10:29:50Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/rpcd/commit/?id=5b078674a5929a5c90043c66721d45e1d8eae73d'/>
<id>urn:sha1:5b078674a5929a5c90043c66721d45e1d8eae73d</id>
<content type='text'>
Replace deferred_reply uloop_timeout with timeout reuse in both
rpc_exec_context and rpc_file_exec_context. This eliminates redundant
state tracking (deferred_reply_pending) and function pointers, reducing
struct sizes and code complexity while maintaining deferred reply
behavior through callback switching.

Signed-off-by: Jo-Philipp Wich &lt;jo@mein.io&gt;
</content>
</entry>
<entry>
<title>exec: defer async reply teardown to avoid use-after-free</title>
<updated>2026-03-16T09:34:41Z</updated>
<author>
<name>Meng</name>
</author>
<published>2026-03-16T08:58:36Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/rpcd/commit/?id=e655a0d69492a91d9dada74f0832e028e6b5367b'/>
<id>urn:sha1:e655a0d69492a91d9dada74f0832e028e6b5367b</id>
<content type='text'>
Async exec replies currently tear down their context directly from
ustream callbacks. When the callback chain keeps running after the
reply path frees the context, rpcd can hit a use-after-free and crash
with SIGSEGV.

Defer reply completion through a 0 ms uloop timeout and guard against
duplicate scheduling so cleanup runs after the callbacks unwind in both
exec paths.

Signed-off-by: Meng &lt;x.meng@genexis.eu&gt;
</content>
</entry>
<entry>
<title>build: honour CMake install prefix in hardcoded paths</title>
<updated>2021-12-08T19:09:24Z</updated>
<author>
<name>Jo-Philipp Wich</name>
</author>
<published>2021-12-03T22:36:35Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/rpcd/commit/?id=75a96dc281d4e3652655155e85ea04abcffcb5e9'/>
<id>urn:sha1:75a96dc281d4e3652655155e85ea04abcffcb5e9</id>
<content type='text'>
Search plugins, ACL ressources and other data files relative to the compile
time CMAKE_INSTALL_PREFIX instead of hardcoding `/usr`.

Also ensure that plugin libraries are installed into the lib/rpcd subdir.

Signed-off-by: Jo-Philipp Wich &lt;jo@mein.io&gt;
</content>
</entry>
<entry>
<title>rc: new ubus object for handling /etc/init.d/ scripts</title>
<updated>2020-09-10T11:18:09Z</updated>
<author>
<name>Rafał Miłecki</name>
</author>
<published>2020-06-23T18:46:19Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/rpcd/commit/?id=646daa0bec742e4c0af010ca85eda9021d95e4cf'/>
<id>urn:sha1:646daa0bec742e4c0af010ca85eda9021d95e4cf</id>
<content type='text'>
This commit adds "rc" ubus object with methods "list" and "exec" for
listing and calling init.d script appropriately. It's useful for all
kind of UIs (e.g. LuCI) and custom apps.

Example:
root@OpenWrt:~# ubus call rc list
{
	"blockd": {
		"start": 80,
		"enabled": true,
		"running": true
	},
	"dnsmasq": {
		"start": 19,
		"enabled": true,
		"running": true
	}
}
root@OpenWrt:~# ubus call rc init '{ "name": "blockd", "action": "disable" }'
root@OpenWrt:~# ubus call rc init '{ "name": "dnsmasq", "action": "stop" }'
root@OpenWrt:~# ubus call rc list
{
	"blockd": {
		"start": 80,
		"enabled": false,
		"running": true
	},
	"dnsmasq": {
		"start": 19,
		"enabled": true,
		"running": false
	}
}

Signed-off-by: Rafał Miłecki &lt;rafal@milecki.pl&gt;
Acked-by: Jo-Philipp Wich &lt;jo@mein.io&gt;
</content>
</entry>
<entry>
<title>plugin: store pointer to exec timeout value in the ops structure</title>
<updated>2018-11-28T11:10:40Z</updated>
<author>
<name>Jo-Philipp Wich</name>
</author>
<published>2018-11-28T11:09:35Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/rpcd/commit/?id=7235f348958969d8aa0bfffd167acd3cd161efd0'/>
<id>urn:sha1:7235f348958969d8aa0bfffd167acd3cd161efd0</id>
<content type='text'>
This is required for plugins that need access to the configured execution
timeout. The global variable cannot be used as-is since we dlopen() with
RTLD_LOCAL.

Signed-off-by: Jo-Philipp Wich &lt;jo@mein.io&gt;
</content>
</entry>
<entry>
<title>treewide: rename exec_timeout to rpc_exec_timeout</title>
<updated>2018-11-28T11:07:58Z</updated>
<author>
<name>Jo-Philipp Wich</name>
</author>
<published>2018-11-28T11:07:58Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/rpcd/commit/?id=ccd7c0af75da808ce284a8fb321ce4571bd250af'/>
<id>urn:sha1:ccd7c0af75da808ce284a8fb321ce4571bd250af</id>
<content type='text'>
Rename the extern int to denote a global symbol.

Signed-off-by: Jo-Philipp Wich &lt;jo@mein.io&gt;
</content>
</entry>
<entry>
<title>exec: increase maximum execution time to 120s</title>
<updated>2018-11-22T13:28:28Z</updated>
<author>
<name>Jo-Philipp Wich</name>
</author>
<published>2018-11-22T13:04:45Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/rpcd/commit/?id=ecd1660f17ea257ea005253babcc773f0e9f7180'/>
<id>urn:sha1:ecd1660f17ea257ea005253babcc773f0e9f7180</id>
<content type='text'>
Increase the maximum possible execution time to 120 seconds and add a new
command line flag `-t` which allows overwriting the default value.

Signed-off-by: Jo-Philipp Wich &lt;jo@mein.io&gt;
</content>
</entry>
<entry>
<title>session: support reclaiming pending apply session</title>
<updated>2018-03-15T11:29:15Z</updated>
<author>
<name>Jo-Philipp Wich</name>
</author>
<published>2018-03-15T10:22:47Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/rpcd/commit/?id=3d400c723b332915683e7b290406753b9cd4391d'/>
<id>urn:sha1:3d400c723b332915683e7b290406753b9cd4391d</id>
<content type='text'>
Reclaim the pending apply session upon login when the username matches the
current login.

This is required to support apply-confirm-rollback workflow for ubus browser
clients, since changing IPs requires re-login to the device due to cross
domain restrictions.

Signed-off-by: Jo-Philipp Wich &lt;jo@mein.io&gt;
</content>
</entry>
<entry>
<title>fix for json 0.12</title>
<updated>2015-03-08T14:04:13Z</updated>
<author>
<name>John Crispin</name>
</author>
<published>2015-03-08T14:04:13Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/rpcd/commit/?id=b71df5b75f9abb369cdcc69ba47297e5fbc17a64'/>
<id>urn:sha1:b71df5b75f9abb369cdcc69ba47297e5fbc17a64</id>
<content type='text'>
Signed-off-by: John Crispin &lt;blogic@openwrt.org&gt;
</content>
</entry>
<entry>
<title>plugin.h: explicitly include json.h</title>
<updated>2014-10-04T17:54:58Z</updated>
<author>
<name>Felix Fietkau</name>
</author>
<published>2014-10-04T17:54:58Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/rpcd/commit/?id=c1ed6d7856353d187e57992e77087984019f621e'/>
<id>urn:sha1:c1ed6d7856353d187e57992e77087984019f621e</id>
<content type='text'>
Signed-off-by: Felix Fietkau &lt;nbd@openwrt.org&gt;
</content>
</entry>
</feed>
