plugin: store pointer to exec timeout value in the ops structure
authorJo-Philipp Wich <jo@mein.io>
Wed, 28 Nov 2018 11:09:35 +0000 (12:09 +0100)
committerJo-Philipp Wich <jo@mein.io>
Wed, 28 Nov 2018 11:10:40 +0000 (12:10 +0100)
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 <jo@mein.io>
include/rpcd/plugin.h
plugin.c

index 8a1178d6594a087943c365b6d5e686a68291d527..363c0d7db40b71da4cb09021a2e1c1080812c5fe 100644 (file)
@@ -54,6 +54,7 @@ struct rpc_daemon_ops {
                 rpc_exec_read_cb_t err, rpc_exec_done_cb_t end,
                 void *priv, struct ubus_context *ctx,
                 struct ubus_request_data *req);
+    int *exec_timeout;
 };
 
 struct rpc_plugin {
index 532fa15284b17a715d896244043befc2c93e1063..3740622e8fe9c753a8f2b73df341173b9642079c 100644 (file)
--- a/plugin.c
+++ b/plugin.c
@@ -404,6 +404,7 @@ static const struct rpc_daemon_ops ops = {
        .session_create_cb  = rpc_session_create_cb,
        .session_destroy_cb = rpc_session_destroy_cb,
        .exec               = rpc_exec,
+       .exec_timeout       = &rpc_exec_timeout,
 };
 
 static int