#include <signal.h>
#include <sys/stat.h>
+#include <rpcd/exec.h>
+#include <rpcd/plugin.h>
+#include <rpcd/rc.h>
#include <rpcd/session.h>
#include <rpcd/uci.h>
-#include <rpcd/plugin.h>
-#include <rpcd/exec.h>
static struct ubus_context *ctx;
static bool respawn = false;
exec_self(int argc, char **argv)
{
int i;
- const char *cmd = rpc_exec_lookup(argv[0]);
- char **args = calloc(argc + 1, sizeof(char *));
+ const char *cmd;
+ char **args;
+
+ cmd = rpc_exec_lookup(argv[0]);
+ if (!cmd)
+ return;
- if (!cmd || !args)
+ args = calloc(argc + 1, sizeof(char *));
+ if (!args)
return;
for (i = 0; i < argc; i++)
rpc_session_api_init(ctx);
rpc_uci_api_init(ctx);
+ rpc_rc_api_init(ctx);
rpc_plugin_api_init(ctx);
hangup = getenv("RPC_HANGUP");