Merge pull request #341 from mattsm/backport_ubus_system_reboot
CC: procd: backport ability to reboot board via ubusmaster
commit
8ef26de894
|
@ -0,0 +1,66 @@
|
|||
From 02d56c03115276aa4e2203ddbd411c3e587cf08f Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <zajec5@gmail.com>
|
||||
Date: Wed, 6 Jul 2016 13:55:48 +0200
|
||||
Subject: [PATCH] system: add reboot method to system ubus object
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Sometimes, for various reasons, user may want to reboot a device. This
|
||||
is a common task and it makes sense to support it with something common
|
||||
like a procd.
|
||||
|
||||
Right now both: LuCI and LuCI2 implement this feature on their own with
|
||||
luci-rpc-luci2-system reboot and luci-rpc-sys reboot. This leads to code
|
||||
duplication and situation may become even worse with more software
|
||||
controlling system with ubus.
|
||||
|
||||
Othen than that procd already has support for rebooting so one may
|
||||
consider this ubus method even cleaner.
|
||||
|
||||
Once we get this patch in place we may consider switching LuCI and LuCI2
|
||||
to this new method.
|
||||
|
||||
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
|
||||
---
|
||||
system.c | 10 ++++++++++
|
||||
1 file changed, 10 insertions(+)
|
||||
|
||||
diff --git a/system.c b/system.c
|
||||
index 569a75d..1e31ce6 100644
|
||||
--- a/system.c
|
||||
+++ b/system.c
|
||||
@@ -18,6 +18,7 @@
|
||||
#endif
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/types.h>
|
||||
+#include <sys/reboot.h>
|
||||
#include <sys/stat.h>
|
||||
#include <fcntl.h>
|
||||
#include <signal.h>
|
||||
@@ -242,6 +243,14 @@ static int system_upgrade(struct ubus_context *ctx, struct ubus_object *obj,
|
||||
return 0;
|
||||
}
|
||||
|
||||
+static int system_reboot(struct ubus_context *ctx, struct ubus_object *obj,
|
||||
+ struct ubus_request_data *req, const char *method,
|
||||
+ struct blob_attr *msg)
|
||||
+{
|
||||
+ procd_shutdown(RB_AUTOBOOT);
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
enum {
|
||||
WDT_FREQUENCY,
|
||||
WDT_TIMEOUT,
|
||||
@@ -388,6 +397,7 @@ static const struct ubus_method system_methods[] = {
|
||||
UBUS_METHOD_NOARG("board", system_board),
|
||||
UBUS_METHOD_NOARG("info", system_info),
|
||||
UBUS_METHOD_NOARG("upgrade", system_upgrade),
|
||||
+ UBUS_METHOD_NOARG("reboot", system_reboot),
|
||||
UBUS_METHOD("watchdog", watchdog_set, watchdog_policy),
|
||||
UBUS_METHOD("signal", proc_signal, signal_policy),
|
||||
|
||||
--
|
||||
2.7.4
|
||||
|
Loading…
Reference in New Issue