diff --git a/mongoose/mongoose_interface.c b/mongoose/mongoose_interface.c index 1d636cdf..98639a35 100644 --- a/mongoose/mongoose_interface.c +++ b/mongoose/mongoose_interface.c @@ -344,8 +344,12 @@ static const char *get_source_string(unsigned int source) static void restart_handler(struct mg_connection *nc, void *ev_data) { - struct mg_http_message *hm = (struct mg_http_message *) ev_data; - ipc_message msg = {}; + struct mg_http_message* hm = (struct mg_http_message*)ev_data; + ipc_message msg; + + size_t size = sizeof(msg.data.procmsg.buf); + snprintf(msg.data.procmsg.buf, size, "{\"reboot\": \"true\"}"); + msg.data.procmsg.len = strnlen(msg.data.procmsg.buf, size); if(mg_strcasecmp(hm->method, mg_str("POST")) != 0) { mg_http_reply(nc, 405, "", "%s", "Method Not Allowed\n"); diff --git a/tools/swupdate-progress.c b/tools/swupdate-progress.c index 5e371627..6b70546e 100644 --- a/tools/swupdate-progress.c +++ b/tools/swupdate-progress.c @@ -442,6 +442,9 @@ int main(int argc, char **argv) break; case DONE: fprintf(stdout, "\nDONE.\n\n"); + if (opt_r && strcasestr(msg.info, "\"reboot\": \"true\"")) { + reboot_device(); + } break; case PROGRESS: /*