summaryrefslogtreecommitdiffstats
path: root/system.c
diff options
context:
space:
mode:
authorJohn Crispin <blogic@openwrt.org>2013-04-18 21:27:58 +0200
committerJohn Crispin <blogic@openwrt.org>2013-04-23 18:54:03 +0200
commit32f1c6e4679b6e0737616f3e58528531e826a3ce (patch)
tree48c57bd9cf880799db14a75a9f5e8d603287bc08 /system.c
parent9961e88dd853a30503298378679d2cedc497410e (diff)
downloadunitd-32f1c6e4679b6e0737616f3e58528531e826a3ce.tar
unitd-32f1c6e4679b6e0737616f3e58528531e826a3ce.zip
fix behaviour during sysupgrade
Signed-off-by: John Crispin <blogic@openwrt.org>
Diffstat (limited to 'system.c')
-rw-r--r--system.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/system.c b/system.c
index 658dd5e..8dbc7d0 100644
--- a/system.c
+++ b/system.c
@@ -24,6 +24,7 @@
#include "procd.h"
#include "watchdog.h"
+#include "hotplug.h"
#define HOSTNAME_PATH "/proc/sys/kernel/hostname"
@@ -55,6 +56,17 @@ static int system_info(struct ubus_context *ctx, struct ubus_object *obj,
return 0;
}
+static int system_upgrade(struct ubus_context *ctx, struct ubus_object *obj,
+ struct ubus_request_data *req, const char *method,
+ struct blob_attr *msg)
+{
+ procd_reconnect_ubus(0);
+ log_shutdown();
+ hotplug_shutdown();
+
+ return 0;
+}
+
enum {
WDT_FREQUENCY,
WDT_TIMEOUT,
@@ -120,6 +132,7 @@ static int watchdog_set(struct ubus_context *ctx, struct ubus_object *obj,
static const struct ubus_method system_methods[] = {
UBUS_METHOD_NOARG("info", system_info),
+ UBUS_METHOD_NOARG("upgrade", system_upgrade),
UBUS_METHOD("watchdog", watchdog_set, watchdog_policy),
};