Jo-Philipp Wich
49f6e218a4
uci: fix same buffer reuse introduced by previous commit
2014-01-12 17:43:48 +00:00
Jo-Philipp Wich
b0254d1203
debug
2014-01-12 17:42:05 +00:00
Jo-Philipp Wich
7cac6af5ed
uci: grant access to confirm and rollback methods only to initiating session
...
Previously any session with access permissions for the corresponding method
was able to confirm or rollback commits initiated by another session.
Change those methods to only grant access to the initiating session.
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
2014-01-12 17:23:27 +00:00
Jo-Philipp Wich
0239c345ca
uci: introduce confirm method to cancel pending rollbacks without side effects
...
Calling commit with rollback=false to cancel a pending rollback timer can
potentially trigger another commit if no rollback is actually pending.
This introduces a new method "confirm" which cancels the rollback timer
without any other possible side effects.
While being at it, change the return code when trying to commit during
a pending rollback or when trying to rollback without a pending timeout to
UBUS_STATUS_NO_DATA. This is needed to be able to differentiate between a
denied request and an inappropriate state.
Also change the error return code for glob() failures to the more
appropriate UBUS_STATUS_NOT_FOUND.
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
2014-01-12 17:02:43 +00:00
Jo-Philipp Wich
0c4e97b4e7
Extend copyright
2014-01-12 12:48:58 +00:00
Jo-Philipp Wich
64633f3136
uci: rename uci.apply "commit" attribute to "roolback" and invert its logic
2014-01-12 12:45:11 +00:00
John Crispin
bbaaa41f8c
config.change triggers should only run if the config is valid
...
Signed-off-by: John Crispin <blogic@openwrt.org>
2013-12-18 14:01:33 +01:00
John Crispin
326f5bcaf6
fix inverted apply_running check
...
Signed-off-by: John Crispin <blogic@openwrt.org>
2013-12-18 13:56:54 +01:00
Jo-Philipp Wich
065d8f47fc
uci: make config argument of changes call optional to allow listing all changes in all files
2013-11-23 20:38:09 +00:00
Jo-Philipp Wich
2f5a613718
uci: add state call to retrieve uci state variables
2013-11-23 19:30:29 +00:00
Jo-Philipp Wich
a7ef5ca736
session: fix file descriptor leak in rpc_blob_from_file()
2013-10-26 14:16:29 +00:00
Alexander Couzens
a511e620c8
rpcd: CMake: fix out of tree builds
...
Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
2013-10-10 12:19:01 +00:00
Jo-Philipp Wich
095b1058c8
uci: clear ptr.value in rpc_uci_merge_set(), this fixes missing delete deltas if multiple options are merged
2013-09-29 13:11:37 +00:00
Jo-Philipp Wich
a23010d407
session: change "sid" attribute to "ubus_rpc_session", this ensures that exposed session calls are confined to the calling session context
2013-09-13 14:52:35 +02:00
Jo-Philipp Wich
6b189b2201
plugin: use blobmsg_type() instead of blob_id()
2013-09-12 13:36:49 +02:00
Jo-Philipp Wich
22c7c2675d
session.c: use blobmsg_type() instead of blob_id()
2013-09-12 13:31:21 +02:00
Jo-Philipp Wich
296c9d9ceb
session: support negative group expressions
...
This change allows excluding specific groups after a wildcard expression.
The following example would grant read access to any acl group except the
group named "example".
list read '*'
list read '!example'
2013-09-12 13:10:30 +02:00
Jo-Philipp Wich
b76addec87
session: restore ACL dumping for session get and session list calls
2013-09-12 12:13:05 +02:00
Jo-Philipp Wich
4c9f178ad6
session: fix enum mismatch in rpc_handle_get() and rpc_handle_set()
2013-09-12 12:04:14 +02:00
Jo-Philipp Wich
6128bf647c
session: remove unused ctx argument from rpc_session_grant() and rpc_session_destroy()
2013-09-12 12:04:14 +02:00
Jo-Philipp Wich
d0d1a92432
session: do not dump and restore session ACLs but recalculate them when restoring the session
2013-09-12 12:04:06 +02:00
Jo-Philipp Wich
00a3ec2e52
session: disallow destroying the null session
2013-09-12 10:35:55 +02:00
Jo-Philipp Wich
ae63188069
uci: properly deal with uci_load() failures
2013-09-11 13:16:27 +02:00
Jo-Philipp Wich
4d618b2e3b
session: fix argument order of crypt() and prevent segfault if /etc/config/rpcd does not exist
2013-09-10 20:12:39 +02:00
Jo-Philipp Wich
4bf5d60f65
session: use correct policy for rpc_handle_login()
2013-09-10 20:01:05 +02:00
Jo-Philipp Wich
5a101fcc08
session: setup a persistent NULL section and implement login procedure
2013-09-10 19:56:36 +02:00
Jo-Philipp Wich
22fbf13086
Drop LuCI2 backend, it will move to its own repository
2013-09-09 16:32:53 +02:00
John Crispin
6f78bfbbdf
add config transaction support
...
Signed-off-by: John Crispin <blogic@openwrt.org>
2013-09-06 01:42:02 +02:00
John Crispin
7abfa9bc05
make uci commit calls trigger config.change events
...
Signed-off-by: John Crispin <blogic@openwrt.org>
2013-09-06 01:31:23 +02:00
John Crispin
f1882ac5bd
rename rpc_uci_purge_savedir to rpc_uci_purge_dir
...
Signed-off-by: John Crispin <blogic@openwrt.org>
2013-09-06 01:31:16 +02:00
Jo-Philipp Wich
334a067a74
Fix rpcd includes in plugin.h
2013-09-05 17:00:23 +02:00
Jo-Philipp Wich
b86774de65
Set umask to 0077 on daemon startup to prevent libuci from making world-readable directories
2013-09-05 16:14:30 +02:00
Jo-Philipp Wich
fa53571f2b
Use common /var/run/rpcd base directory to store runtime information
2013-09-05 15:14:00 +02:00
Jo-Philipp Wich
b4649c9fda
main: only purge uci savedirs if not reloading
2013-09-05 14:38:01 +02:00
Jo-Philipp Wich
fc1b008e08
uci: expose rpc_uci_purge_savedirs() helper
2013-09-05 14:38:01 +02:00
Jo-Philipp Wich
524032c291
main: store session data to disk on receipt of SIGUSR1 or SIGHUP. On HUP terminate self and re-exec
2013-09-05 14:37:56 +02:00
Jo-Philipp Wich
aa2afdb739
session: add support for saving and restoring session data to disk
2013-09-04 17:08:56 +02:00
Jo-Philipp Wich
e0afdb10ae
Move includes into subdirectory
2013-09-04 12:46:11 +02:00
Jo-Philipp Wich
b3a5c08e08
uci: use per-session save directory and register session destroy callback to purge leftover deltas
2013-09-03 13:40:47 +02:00
Jo-Philipp Wich
ad8e937f97
luci2: change ops->access to ops->session_access to accomodate for changed plugin api
2013-09-03 12:47:06 +02:00
Jo-Philipp Wich
059a6df1fd
plugin: expose rpc_session_create_cb() and rpc_session_destroy_cb() in plugin ops; rename access to session_access
2013-09-03 12:47:06 +02:00
Jo-Philipp Wich
60b9c9d919
session: introduce api to register session create and destroy callbacks
2013-09-03 12:47:04 +02:00
Jo-Philipp Wich
11f37e2889
Fold plugin specific headers files into the plugins .c file
2013-09-02 17:29:06 +02:00
Jo-Philipp Wich
07c2f0a9b1
Rename from "luci-rpcd" to "rpcd"
2013-09-02 17:23:30 +02:00
Jo-Philipp Wich
84642137f0
Add CMake definitions for plugins
2013-09-02 15:24:00 +02:00
Jo-Philipp Wich
7434b2bf6c
luci2: convert to plugin library
2013-09-02 15:23:09 +02:00
Jo-Philipp Wich
c849d04fc8
file: convert to plugin library
2013-09-02 15:23:09 +02:00
Jo-Philipp Wich
bc100538d3
iwinfo: convert to plugin library
2013-09-02 15:23:09 +02:00
Jo-Philipp Wich
3d358bb3a1
Introduce shared object plugin api
2013-09-02 15:23:04 +02:00
Jo-Philipp Wich
0b4d4aeeac
Register dummy stderr callback when ivoking plugins calls to avoid filling the ustream with unread data.
2013-09-01 22:42:17 +02:00