projects
/
project
/
rpcd.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
c89e51f
)
luci2: add reboot call
author
Jo-Philipp Wich
<jow@openwrt.org>
Wed, 31 Jul 2013 17:47:35 +0000
(19:47 +0200)
committer
Jo-Philipp Wich
<jow@openwrt.org>
Wed, 31 Jul 2013 17:47:35 +0000
(19:47 +0200)
luci2.c
patch
|
blob
|
history
diff --git
a/luci2.c
b/luci2.c
index
8d763f0
..
500adc9
100644
(file)
--- a/
luci2.c
+++ b/
luci2.c
@@
-1061,6
+1061,34
@@
rpc_luci2_reset_start(struct ubus_context *ctx, struct ubus_object *obj,
}
}
}
}
+static int
+rpc_luci2_reboot(struct ubus_context *ctx, struct ubus_object *obj,
+ struct ubus_request_data *req, const char *method,
+ struct blob_attr *msg)
+{
+ switch (fork())
+ {
+ case -1:
+ return rpc_errno_status();
+
+ case 0:
+ chdir("/");
+
+ close(0);
+ close(1);
+ close(2);
+
+ sleep(1);
+
+ execl("/sbin/reboot", "/sbin/reboot", NULL);
+
+ return rpc_errno_status();
+
+ default:
+ return 0;
+ }
+}
+
static FILE *
dnsmasq_leasefile(void)
static FILE *
dnsmasq_leasefile(void)
@@
-1861,7
+1889,8
@@
int rpc_luci2_api_init(struct ubus_context *ctx)
UBUS_METHOD_NOARG("backup_restore", rpc_luci2_backup_restore),
UBUS_METHOD_NOARG("backup_clean", rpc_luci2_backup_clean),
UBUS_METHOD_NOARG("reset_test", rpc_luci2_reset_test),
UBUS_METHOD_NOARG("backup_restore", rpc_luci2_backup_restore),
UBUS_METHOD_NOARG("backup_clean", rpc_luci2_backup_clean),
UBUS_METHOD_NOARG("reset_test", rpc_luci2_reset_test),
- UBUS_METHOD_NOARG("reset_start", rpc_luci2_reset_start)
+ UBUS_METHOD_NOARG("reset_start", rpc_luci2_reset_start),
+ UBUS_METHOD_NOARG("reboot", rpc_luci2_reboot)
};
static struct ubus_object_type luci2_system_type =
};
static struct ubus_object_type luci2_system_type =