summaryrefslogtreecommitdiffhomepage
path: root/libs/rpcd-mod-luci/src/luci.c
diff options
context:
space:
mode:
authorJo-Philipp Wich <jo@mein.io>2019-11-03 19:53:05 +0100
committerJo-Philipp Wich <jo@mein.io>2019-11-03 19:57:14 +0100
commitaf88f9a006b23f3ec0e559b1192570930ec648b5 (patch)
treecbbf3ef37028a3432eb394ffc08c068f4eb80b46 /libs/rpcd-mod-luci/src/luci.c
parenteb808d0e9f9fb43ee9312bfee22d8fcaa3a69b06 (diff)
rpcd-mod-luci: properly deal with failing ubus requests
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Diffstat (limited to 'libs/rpcd-mod-luci/src/luci.c')
-rw-r--r--libs/rpcd-mod-luci/src/luci.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/libs/rpcd-mod-luci/src/luci.c b/libs/rpcd-mod-luci/src/luci.c
index 91f6798d79..12a22c8891 100644
--- a/libs/rpcd-mod-luci/src/luci.c
+++ b/libs/rpcd-mod-luci/src/luci.c
@@ -83,6 +83,8 @@ invoke_data_cb(struct ubus_request *req, int type, struct blob_attr *msg)
if (ictx->cb != NULL)
ictx->cb(req, type, msg);
+
+ ictx->cb = NULL;
}
static void
@@ -91,6 +93,9 @@ invoke_done_cb(struct ubus_request *req, int ret)
struct invoke_context *ictx =
container_of(req, struct invoke_context, request);
+ if (ictx->cb != NULL)
+ ictx->cb(req, -1, NULL);
+
uloop_timeout_cancel(&ictx->timeout);
free(ictx);
}