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 8a1178d..363c0d7 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 532fa15..3740622 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