mirror of
https://github.com/Telecominfraproject/wlan-ucentral-client.git
synced 2026-01-27 02:23:32 +00:00
56 lines
1.3 KiB
C
56 lines
1.3 KiB
C
/* SPDX-License-Identifier: BSD-3-Clause */
|
|
|
|
#include "ucentral.h"
|
|
|
|
#define CRASHLOG "/tmp/crashlog"
|
|
#define CONSOLELOG "/tmp/consolelog"
|
|
|
|
static struct blob_buf rebootlog;
|
|
enum {
|
|
REBOOT_LOG,
|
|
__REBOOT_MAX,
|
|
};
|
|
|
|
static const struct blobmsg_policy crash_policy[__REBOOT_MAX] = {
|
|
[REBOOT_LOG] = { .name = "crashlog", .type = BLOBMSG_TYPE_ARRAY },
|
|
};
|
|
|
|
static const struct blobmsg_policy console_policy[__REBOOT_MAX] = {
|
|
[REBOOT_LOG] = { .name = "consolelog", .type = BLOBMSG_TYPE_ARRAY },
|
|
};
|
|
|
|
|
|
static void
|
|
rebootlog_init(const struct blobmsg_policy *policy, char *type, char *file)
|
|
{
|
|
struct blob_attr *tb[__REBOOT_MAX] = {};
|
|
struct stat s = {};
|
|
|
|
if (stat(file, &s))
|
|
return;
|
|
|
|
blob_buf_init(&rebootlog, 0);
|
|
if (blobmsg_add_json_from_file(&rebootlog, file)) {
|
|
blobmsg_parse(policy, __REBOOT_MAX, tb, blob_data(rebootlog.head),
|
|
blob_len(rebootlog.head));
|
|
if (tb[REBOOT_LOG])
|
|
rebootlog_send(type, tb[REBOOT_LOG]);
|
|
else
|
|
log_send("failed to parse the rebootlog", LOG_ERR);
|
|
} else {
|
|
log_send("found a rebootlog that is not valid json", LOG_ERR);
|
|
}
|
|
blob_buf_free(&rebootlog);
|
|
unlink(file);
|
|
}
|
|
|
|
void
|
|
crashlog_init(void) {
|
|
rebootlog_init(crash_policy, "crashlog", CRASHLOG);
|
|
}
|
|
|
|
void
|
|
consolelog_init(void) {
|
|
rebootlog_init(console_policy, "console", CONSOLELOG);
|
|
}
|